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