Makefile revision 279981
1# $FreeBSD: head/lib/libcompiler_rt/Makefile 279981 2015-03-14 12:40:19Z dim $
2
3.include <src.opts.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/builtins
18
19.PATH: ${CRTSRC}/${CRTARCH} ${CRTSRC}
20
21SRCF=	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	fixtfdi \
59	fixtfsi \
60	fixtfti \
61	fixunsdfdi \
62	fixunsdfsi \
63	fixunsdfti \
64	fixunssfdi \
65	fixunssfsi \
66	fixunssfti \
67	fixunstfdi \
68	fixunstfsi \
69	fixunstfti \
70	fixunsxfdi \
71	fixunsxfsi \
72	fixunsxfti \
73	fixxfdi \
74	fixxfti \
75	floatdidf \
76	floatdisf \
77	floatdixf \
78	floattidf \
79	floattisf \
80	floattixf \
81	floatundidf \
82	floatundisf \
83	floatundixf \
84	floatunsidf \
85	floatunsisf \
86	floatuntidf \
87	floatuntisf \
88	floatuntixf \
89	gcc_personality_v0 \
90	int_util \
91	lshrdi3 \
92	lshrti3 \
93	moddi3 \
94	modti3 \
95	muldc3 \
96	muldi3 \
97	mulodi4 \
98	mulosi4 \
99	muloti4 \
100	mulsc3 \
101	multf3 \
102	multi3 \
103	mulvdi3 \
104	mulvsi3 \
105	mulvti3 \
106	mulxc3 \
107	negdf2 \
108	negdi2 \
109	negsf2 \
110	negti2 \
111	negvdi2 \
112	negvsi2 \
113	negvti2 \
114	paritydi2 \
115	paritysi2 \
116	parityti2 \
117	popcountdi2 \
118	popcountsi2 \
119	popcountti2 \
120	powidf2 \
121	powisf2 \
122	powitf2 \
123	powixf2 \
124	subtf3 \
125	subvdi3 \
126	subvsi3 \
127	subvti3 \
128	trampoline_setup \
129	ucmpdi2 \
130	ucmpti2 \
131	udivdi3 \
132	udivmoddi4 \
133	udivmodsi4 \
134	udivmodti4 \
135	udivti3 \
136	umoddi3 \
137	umodti3
138
139# These are already shipped by libc.a on arm and mips
140.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips"
141SRCF+=	adddf3 \
142	addsf3 \
143	divdf3 \
144	divsf3 \
145	extendsfdf2 \
146	fixdfsi \
147	fixsfsi \
148	floatsidf \
149	floatsisf \
150	muldf3 \
151	mulsf3 \
152	subdf3 \
153	subsf3 \
154	truncdfsf2
155.endif
156
157.if ${MACHINE_CPUARCH} != "arm"
158SRCF+=	comparedf2 \
159	comparesf2
160.endif
161
162.if ${MACHINE_CPUARCH} != "mips"
163SRCF+=	divsi3 \
164	modsi3 \
165	udivsi3 \
166	umodsi3
167.endif
168
169# FreeBSD-specific atomic intrinsics.
170.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "armv6"
171.PATH: ${.CURDIR}/../../sys/arm/arm
172
173SRCF+=	stdatomic
174CFLAGS+=	-DEMIT_SYNC_ATOMICS
175.elif ${MACHINE_CPUARCH} == "mips"
176.PATH: ${.CURDIR}/../../sys/mips/mips
177
178SRCF+=	stdatomic
179.endif
180
181.for file in ${SRCF}
182. if ${MACHINE_ARCH:Marm*hf*} != "" && exists(${CRTSRC}/${CRTARCH}/${file}vfp.S)
183SRCS+= ${file}vfp.S
184. elif !(${MACHINE_CPUARCH} == "arm" && ${MACHINE_ARCH:Marm*hf*} == "") && exists(${CRTSRC}/${CRTARCH}/${file}.S)
185SRCS+=	${file}.S
186. else
187SRCS+=	${file}.c
188. endif
189.endfor
190
191.if ${MACHINE_CPUARCH} == "arm"
192SRCS+=	aeabi_div0.c \
193	aeabi_idivmod.S \
194	aeabi_ldivmod.S \
195	aeabi_memcmp.S \
196	aeabi_memcpy.S \
197	aeabi_memmove.S \
198	aeabi_memset.S \
199	aeabi_uidivmod.S \
200	aeabi_uldivmod.S \
201	bswapdi2.S \
202	bswapsi2.S \
203	switch16.S \
204	switch32.S \
205	switch8.S \
206	switchu8.S \
207	sync_synchronize.S
208.endif
209
210.if ${MK_INSTALLLIB} != "no"
211SYMLINKS+=libcompiler_rt.a ${LIBDIR}/libgcc.a
212.endif
213.if ${MK_PROFILE} != "no"
214SYMLINKS+=libcompiler_rt_p.a ${LIBDIR}/libgcc_p.a
215.endif
216
217.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
218    ${MACHINE_CPUARCH} == "powerpc"
219AFLAGS+=--noexecstack
220ACFLAGS+=-Wa,--noexecstack
221.endif
222
223
224.include <bsd.lib.mk>
225