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