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