]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libcompiler_rt/Makefile
Update LLDB snapshot to upstream r225923 (git 2b588ecd)
[FreeBSD/FreeBSD.git] / lib / libcompiler_rt / Makefile
1 # $FreeBSD$
2
3 .include <src.opts.mk>
4
5 LIB=    compiler_rt
6 NO_PIC=
7 WARNS?= 2
8
9 CFLAGS+=${PICFLAG} -fvisibility=hidden -DVISIBILITY_HIDDEN
10
11 .if ${MACHINE_CPUARCH} == "amd64"
12 CRTARCH=x86_64
13 .else
14 CRTARCH=${MACHINE_CPUARCH}
15 .endif
16
17 CRTSRC=${.CURDIR}/../../contrib/compiler-rt/lib/builtins
18
19 .PATH: ${CRTSRC}/${CRTARCH} ${CRTSRC}
20
21 SRCF=   absvdi2 \
22         absvsi2 \
23         absvti2 \
24         addtf3 \
25         addvdi3 \
26         addvsi3 \
27         addvti3 \
28         apple_versioning \
29         ashldi3 \
30         ashlti3 \
31         ashrdi3 \
32         ashrti3 \
33         clear_cache \
34         clzdi2 \
35         clzsi2 \
36         clzti2 \
37         cmpdi2 \
38         cmpti2 \
39         ctzdi2 \
40         ctzsi2 \
41         ctzti2 \
42         divdc3 \
43         divdi3 \
44         divmoddi4 \
45         divmodsi4 \
46         divsc3 \
47         divtf3 \
48         divti3 \
49         divxc3 \
50         enable_execute_stack \
51         eprintf \
52         ffsdi2 \
53         ffsti2 \
54         fixdfdi \
55         fixdfti \
56         fixsfdi \
57         fixsfti \
58         fixunsdfdi \
59         fixunsdfsi \
60         fixunsdfti \
61         fixunssfdi \
62         fixunssfsi \
63         fixunssfti \
64         fixunsxfdi \
65         fixunsxfsi \
66         fixunsxfti \
67         fixxfdi \
68         fixxfti \
69         floatdidf \
70         floatdisf \
71         floatdixf \
72         floattidf \
73         floattisf \
74         floattixf \
75         floatundidf \
76         floatundisf \
77         floatundixf \
78         floatunsidf \
79         floatunsisf \
80         floatuntidf \
81         floatuntisf \
82         floatuntixf \
83         gcc_personality_v0 \
84         int_util \
85         lshrdi3 \
86         lshrti3 \
87         moddi3 \
88         modti3 \
89         muldc3 \
90         muldi3 \
91         mulodi4 \
92         mulosi4 \
93         muloti4 \
94         mulsc3 \
95         multf3 \
96         multi3 \
97         mulvdi3 \
98         mulvsi3 \
99         mulvti3 \
100         mulxc3 \
101         negdf2 \
102         negdi2 \
103         negsf2 \
104         negti2 \
105         negvdi2 \
106         negvsi2 \
107         negvti2 \
108         paritydi2 \
109         paritysi2 \
110         parityti2 \
111         popcountdi2 \
112         popcountsi2 \
113         popcountti2 \
114         powidf2 \
115         powisf2 \
116         powitf2 \
117         powixf2 \
118         subtf3 \
119         subvdi3 \
120         subvsi3 \
121         subvti3 \
122         trampoline_setup \
123         ucmpdi2 \
124         ucmpti2 \
125         udivdi3 \
126         udivmoddi4 \
127         udivmodsi4 \
128         udivmodti4 \
129         udivti3 \
130         umoddi3 \
131         umodti3
132
133 # These are already shipped by libc.a on arm and mips
134 .if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips"
135 SRCF+=  adddf3 \
136         addsf3 \
137         divdf3 \
138         divsf3 \
139         extendsfdf2 \
140         fixdfsi \
141         fixsfsi \
142         floatsidf \
143         floatsisf \
144         muldf3 \
145         mulsf3 \
146         subdf3 \
147         subsf3 \
148         truncdfsf2
149 .endif
150
151 .if ${MACHINE_CPUARCH} != "arm"
152 SRCF+=  comparedf2 \
153         comparesf2
154 .endif
155
156 .if ${MACHINE_CPUARCH} != "mips"
157 SRCF+=  divsi3 \
158         modsi3 \
159         udivsi3 \
160         umodsi3
161 .endif
162
163 # FreeBSD-specific atomic intrinsics.
164 .if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "armv6"
165 .PATH: ${.CURDIR}/../../sys/arm/arm
166
167 SRCF+=  stdatomic
168 CFLAGS+=        -DEMIT_SYNC_ATOMICS
169 .elif ${MACHINE_CPUARCH} == "mips"
170 .PATH: ${.CURDIR}/../../sys/mips/mips
171
172 SRCF+=  stdatomic
173 .endif
174
175 .for file in ${SRCF}
176 . if ${MACHINE_ARCH:Marm*hf*} != "" && exists(${CRTSRC}/${CRTARCH}/${file}vfp.S)
177 SRCS+= ${file}vfp.S
178 . elif !(${MACHINE_CPUARCH} == "arm" && ${MACHINE_ARCH:Marm*hf*} == "") && exists(${CRTSRC}/${CRTARCH}/${file}.S)
179 SRCS+=  ${file}.S
180 . else
181 SRCS+=  ${file}.c
182 . endif
183 .endfor
184
185 .if ${MACHINE_CPUARCH} == "arm"
186 SRCS+=  aeabi_div0.c \
187         aeabi_idivmod.S \
188         aeabi_ldivmod.S \
189         aeabi_memcmp.S \
190         aeabi_memcpy.S \
191         aeabi_memmove.S \
192         aeabi_memset.S \
193         aeabi_uidivmod.S \
194         aeabi_uldivmod.S \
195         bswapdi2.S \
196         bswapsi2.S \
197         switch16.S \
198         switch32.S \
199         switch8.S \
200         switchu8.S \
201         sync_synchronize.S
202 .endif
203
204 .if ${MK_INSTALLLIB} != "no"
205 SYMLINKS+=libcompiler_rt.a ${LIBDIR}/libgcc.a
206 .endif
207 .if ${MK_PROFILE} != "no"
208 SYMLINKS+=libcompiler_rt_p.a ${LIBDIR}/libgcc_p.a
209 .endif
210
211 .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
212     ${MACHINE_CPUARCH} == "powerpc"
213 AFLAGS+=--noexecstack
214 ACFLAGS+=-Wa,--noexecstack
215 .endif
216
217
218 .include <bsd.lib.mk>