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