Annotation of src/lib/libc/compiler_rt/Makefile.inc, Revision 1.24.2.2
1.24.2.2! martin 1: # $NetBSD: Makefile.inc,v 1.24.2.1 2014/08/20 13:49:28 martin Exp $
1.1 joerg 2:
3: COMPILER_RT_SRCDIR= ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist
4:
1.24.2.2! martin 5: .if ${LIBC_MACHINE_ARCH} == "powerpc" || ${LIBC_MACHINE_ARCH} == "powerpc64"
1.15 joerg 6: COMPILER_RT_CPU_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/ppc
7: COMPILER_RT_ARCH_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/ppc
1.1 joerg 8: .else
1.24 matt 9: COMPILER_RT_CPU_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/${LIBC_MACHINE_CPU}
1.16 matt 10: COMPILER_RT_ARCH_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/${LIBC_MACHINE_ARCH}
1.1 joerg 11: .endif
12:
13: .PATH: ${COMPILER_RT_CPU_DIR}
14: .PATH: ${COMPILER_RT_ARCH_DIR}
1.15 joerg 15: .PATH: ${COMPILER_RT_SRCDIR}/lib/builtins
1.4 joerg 16: .PATH: ${COMPILER_RT_SRCDIR}/lib/profile
1.1 joerg 17:
18: # Complex support needs parts of libm
19: #GENERIC_SRCS+=
20: # mulxc3.c \
21: # mulsc3.c \
22: # divxc3.c \
23: # divdc3.c \
24: # divsc3.c
25:
1.21 joerg 26: # Implemented on top of our atomic interface.
27: #GENERIC_SRCS+= atomic.c
1.2 joerg 28:
1.10 joerg 29: .if ${HAVE_LIBGCC_EH} == "no"
1.2 joerg 30: GENERIC_SRCS+= \
31: gcc_personality_v0.c
1.6 joerg 32: .endif
1.2 joerg 33:
1.8 joerg 34: .if 0
1.2 joerg 35: # Conflicts with soft-float
36: GENERIC_SRCS+= \
37: comparedf2.c \
1.3 joerg 38: comparesf2.c \
39: adddf3.c \
40: addsf3.c \
1.23 joerg 41: addtf3.c \
1.3 joerg 42: divdf3.c \
43: divsf3.c \
1.23 joerg 44: divtf3.c \
1.3 joerg 45: extendsfdf2.c \
1.23 joerg 46: extendsftf2.c \
47: extenddftf2.c \
1.11 joerg 48: fixdfsi.c \
1.3 joerg 49: fixdfti.c \
50: fixsfsi.c \
51: fixsfti.c \
52: floatsidf.c \
53: floatsisf.c \
1.7 joerg 54: floatunsidf.c \
55: floatunsisf.c \
1.3 joerg 56: muldf3.c \
57: mulsf3.c \
1.23 joerg 58: multf3.c \
1.3 joerg 59: subdf3.c \
60: subsf3.c \
1.23 joerg 61: subtf3.c \
62: truncdfsf2.c \
63: trunctfdf2.c \
64: trunctfsf2.c
1.2 joerg 65: .endif
66:
1.1 joerg 67: GENERIC_SRCS+= \
68: absvsi2.c \
69: absvti2.c \
70: addvsi3.c \
71: addvti3.c \
72: ashlti3.c \
73: ashrti3.c \
74: clzti2.c \
75: cmpti2.c \
76: ctzti2.c \
77: divti3.c \
78: ffsti2.c \
1.11 joerg 79: fixsfdi.c \
1.7 joerg 80: fixdfdi.c \
1.1 joerg 81: fixunsdfdi.c \
82: fixunsdfsi.c \
83: fixunssfdi.c \
84: fixunssfsi.c \
85: fixunsxfdi.c \
86: fixunsxfsi.c \
87: fixxfdi.c \
88: floatdidf.c \
89: floatdisf.c \
90: floatdixf.c \
91: floatundidf.c \
92: floatundisf.c \
93: floatundixf.c \
94: int_util.c \
95: lshrti3.c \
96: modti3.c \
97: muldc3.c \
98: mulosi4.c \
99: muloti4.c \
100: multi3.c \
101: mulvsi3.c \
102: mulvti3.c \
103: negdf2.c \
104: negsf2.c \
105: negti2.c \
106: negvsi2.c \
107: negvti2.c \
108: paritysi2.c \
109: parityti2.c \
110: popcountsi2.c \
111: popcountti2.c \
112: powidf2.c \
113: powisf2.c \
114: powitf2.c \
115: powixf2.c \
116: subvsi3.c \
117: subvti3.c \
118: ucmpti2.c \
119: udivmodti4.c \
120: udivti3.c \
121: umodti3.c
122:
1.22 matt 123: .if ${MACHINE_ARCH} != "aarch64"
124: GENERIC_SRCS+= \
125: fixunsdfti.c \
126: fixunssfti.c \
127: fixunsxfti.c \
128: fixxfti.c \
129: floattidf.c \
130: floattisf.c \
131: floattixf.c \
132: floatuntidf.c \
133: floatuntisf.c \
134: floatuntixf.c
135: .endif
136:
137: # These have h/w instructions which are always used.
1.24 matt 138: .if ${LIBC_MACHINE_ARCH} != "alpha" && ${LIBC_MACHINE_CPU} != "powerpc" \
1.24.2.1 martin 139: && ${LIBC_MACHINE_CPU} != "aarch64"
140: GENERIC_SRCS+= \
141: clzsi2.c
142: .endif
143:
144: # These have h/w instructions which are always used.
145: .if ${LIBC_MACHINE_ARCH} != "alpha" && ${LIBC_MACHINE_CPU} != "powerpc" \
1.24 matt 146: && ${LIBC_MACHINE_CPU} != "aarch64" && ${LIBC_MACHINE_ARCH} != "vax"
1.22 matt 147: GENERIC_SRCS+= \
148: ctzsi2.c \
149: divmodsi4.c \
150: divsi3.c \
151: modsi3.c \
152: udivmodsi4.c \
153: umodsi3.c
154:
1.24 matt 155: . if ${LIBC_MACHINE_CPU} != "sh3"
1.17 uwe 156: # On sh3 __udivsi3 is gcc "millicode" with special calling convention
157: # (less registers clobbered than usual). Each DSO that needs it gets
158: # its own hidden copy from libgcc.a.
159: GENERIC_SRCS+= \
160: udivsi3.c
1.22 matt 161: . endif
1.17 uwe 162: .endif
163:
1.22 matt 164:
1.4 joerg 165: GENERIC_SRCS+= \
1.5 matt 166: absvdi2.c \
167: addvdi3.c \
168: mulodi4.c \
169: mulvdi3.c \
170: negvdi2.c \
171: paritydi2.c \
172: popcountdi2.c \
173: subvdi3.c
174:
1.22 matt 175: # These have h/w instructions which are always used.
1.24 matt 176: .if ${LIBC_MACHINE_ARCH} != "alpha" && ${LIBC_MACHINE_CPU} != "powerpc64" \
177: && ${LIBC_MACHINE_ARCH} != "aarch64"
1.22 matt 178: GENERIC_SRCS+= \
179: clzdi2.c \
180: ctzdi2.c \
181: ffsdi2.c
182: .endif
183:
184: # Don't need these on 64-bit machines.
1.12 joerg 185: .if empty(LIBC_MACHINE_ARCH:M*64*) && ${LIBC_MACHINE_ARCH} != "alpha"
1.5 matt 186: GENERIC_SRCS+= \
187: cmpdi2.c \
188: ashldi3.c \
189: ashrdi3.c \
190: divdi3.c \
191: divmoddi4.c \
192: lshrdi3.c \
193: moddi3.c \
194: muldi3.c \
195: negdi2.c \
196: ucmpdi2.c \
197: udivdi3.c \
198: udivmoddi4.c \
199: umoddi3.c
200: .endif
201:
202: GENERIC_SRCS+= \
1.4 joerg 203: GCDAProfiling.c \
1.18 joerg 204: InstrProfiling.c \
205: InstrProfilingBuffer.c \
206: InstrProfilingFile.c \
207: InstrProfilingPlatformOther.c
1.4 joerg 208:
1.24.2.2! martin 209: .if ${LIBC_MACHINE_ARCH} == "powerpc" || ${LIBC_MACHINE_ARCH} == "powerpc64"
1.1 joerg 210: GENERIC_SRCS+= \
211: fixtfdi.c \
212: fixunstfdi.c \
213: floatditf.c \
214: floatunditf.c \
215: gcc_qadd.c \
216: gcc_qdiv.c \
217: gcc_qmul.c \
218: gcc_qsub.c
219: .endif
220:
1.24 matt 221: .if ${LIBC_MACHINE_CPU} == "aarch64"
1.22 matt 222: GENERIC_SRCS+= \
223: clear_cache.c
224: .endif
225:
1.24 matt 226: .if ${LIBC_MACHINE_CPU} == "arm"
1.2 joerg 227: .if !empty(LIBC_MACHINE_ARCH:Mearm*)
228: GENERIC_SRCS+= \
229: aeabi_idivmod.S \
230: aeabi_ldivmod.S \
231: aeabi_uidivmod.S \
232: aeabi_uldivmod.S
233: .endif
1.13 joerg 234: GENERIC_SRCS+= \
235: clear_cache.c
1.9 joerg 236: # Not yet, overlaps with softfloat
237: # aeabi_dcmp.S \
238: # aeabi_fcmp.S
1.3 joerg 239: # Not yet, requires ARMv6
240: #GENERIC_SRCS+= \
241: # bswapdi2.S \
242: # bswapsi2.S
1.2 joerg 243: .endif
244:
1.1 joerg 245: .for src in ${GENERIC_SRCS}
246: . if exists(${COMPILER_RT_CPU_DIR}/${src:R}.S) || \
247: exists(${COMPILER_RT_ARCH_DIR}/${src:R}.S)
248: SRCS+= ${src:R}.S
249: . else
250: SRCS+= ${src}
1.19 joerg 251: . if ${src:E} != "cc"
1.2 joerg 252: COPTS.${src}+= -Wno-missing-prototypes \
253: -Wno-old-style-definition \
254: -Wno-strict-prototypes \
1.20 joerg 255: -Wno-uninitialized \
256: -Wno-cast-qual
1.19 joerg 257: . endif
1.1 joerg 258: . endif
259: .endfor
CVSweb <webmaster@jp.NetBSD.org>