1 1.20.2.2 yamt # $NetBSD: Makefile.inc,v 1.20.2.2 2014/05/22 11:36:51 yamt Exp $ 2 1.20.2.2 yamt 3 1.20.2.2 yamt COMPILER_RT_SRCDIR= ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist 4 1.20.2.2 yamt 5 1.20.2.2 yamt .if ${LIBC_MACHINE_ARCH} == "powerpc" 6 1.20.2.2 yamt COMPILER_RT_CPU_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/ppc 7 1.20.2.2 yamt COMPILER_RT_ARCH_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/ppc 8 1.20.2.2 yamt .else 9 1.20.2.2 yamt COMPILER_RT_CPU_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/${MACHINE_CPU} 10 1.20.2.2 yamt COMPILER_RT_ARCH_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/${LIBC_MACHINE_ARCH} 11 1.20.2.2 yamt .endif 12 1.20.2.2 yamt 13 1.20.2.2 yamt .PATH: ${COMPILER_RT_CPU_DIR} 14 1.20.2.2 yamt .PATH: ${COMPILER_RT_ARCH_DIR} 15 1.20.2.2 yamt .PATH: ${COMPILER_RT_SRCDIR}/lib/builtins 16 1.20.2.2 yamt .PATH: ${COMPILER_RT_SRCDIR}/lib/profile 17 1.20.2.2 yamt 18 1.20.2.2 yamt # Complex support needs parts of libm 19 1.20.2.2 yamt #GENERIC_SRCS+= 20 1.20.2.2 yamt # mulxc3.c \ 21 1.20.2.2 yamt # mulsc3.c \ 22 1.20.2.2 yamt # divxc3.c \ 23 1.20.2.2 yamt # divdc3.c \ 24 1.20.2.2 yamt # divsc3.c 25 1.20.2.2 yamt 26 1.20.2.2 yamt .if ${HAVE_LLVM:Uno} == "yes" 27 1.20.2.2 yamt # Requires C11 support 28 1.20.2.2 yamt GENERIC_SRCS+= atomic.c 29 1.20.2.2 yamt .endif 30 1.20.2.2 yamt 31 1.20.2.2 yamt .if ${HAVE_LIBGCC_EH} == "no" 32 1.20.2.2 yamt GENERIC_SRCS+= \ 33 1.20.2.2 yamt gcc_personality_v0.c 34 1.20.2.2 yamt .endif 35 1.20.2.2 yamt 36 1.20.2.2 yamt .if 0 37 1.20.2.2 yamt # Conflicts with soft-float 38 1.20.2.2 yamt GENERIC_SRCS+= \ 39 1.20.2.2 yamt comparedf2.c \ 40 1.20.2.2 yamt comparesf2.c \ 41 1.20.2.2 yamt adddf3.c \ 42 1.20.2.2 yamt addsf3.c \ 43 1.20.2.2 yamt divdf3.c \ 44 1.20.2.2 yamt divsf3.c \ 45 1.20.2.2 yamt extendsfdf2.c \ 46 1.20.2.2 yamt fixdfsi.c \ 47 1.20.2.2 yamt fixdfti.c \ 48 1.20.2.2 yamt fixsfsi.c \ 49 1.20.2.2 yamt fixsfti.c \ 50 1.20.2.2 yamt floatsidf.c \ 51 1.20.2.2 yamt floatsisf.c \ 52 1.20.2.2 yamt floatunsidf.c \ 53 1.20.2.2 yamt floatunsisf.c \ 54 1.20.2.2 yamt muldf3.c \ 55 1.20.2.2 yamt mulsf3.c \ 56 1.20.2.2 yamt subdf3.c \ 57 1.20.2.2 yamt subsf3.c \ 58 1.20.2.2 yamt truncdfsf2.c 59 1.20.2.2 yamt .endif 60 1.20.2.2 yamt 61 1.20.2.2 yamt GENERIC_SRCS+= \ 62 1.20.2.2 yamt absvsi2.c \ 63 1.20.2.2 yamt absvti2.c \ 64 1.20.2.2 yamt addvsi3.c \ 65 1.20.2.2 yamt addvti3.c \ 66 1.20.2.2 yamt ashlti3.c \ 67 1.20.2.2 yamt ashrti3.c \ 68 1.20.2.2 yamt clzsi2.c \ 69 1.20.2.2 yamt clzti2.c \ 70 1.20.2.2 yamt cmpti2.c \ 71 1.20.2.2 yamt ctzsi2.c \ 72 1.20.2.2 yamt ctzti2.c \ 73 1.20.2.2 yamt divmodsi4.c \ 74 1.20.2.2 yamt divsi3.c \ 75 1.20.2.2 yamt divti3.c \ 76 1.20.2.2 yamt ffsti2.c \ 77 1.20.2.2 yamt fixsfdi.c \ 78 1.20.2.2 yamt fixdfdi.c \ 79 1.20.2.2 yamt fixunsdfdi.c \ 80 1.20.2.2 yamt fixunsdfsi.c \ 81 1.20.2.2 yamt fixunsdfti.c \ 82 1.20.2.2 yamt fixunssfdi.c \ 83 1.20.2.2 yamt fixunssfsi.c \ 84 1.20.2.2 yamt fixunssfti.c \ 85 1.20.2.2 yamt fixunsxfdi.c \ 86 1.20.2.2 yamt fixunsxfsi.c \ 87 1.20.2.2 yamt fixunsxfti.c \ 88 1.20.2.2 yamt fixxfdi.c \ 89 1.20.2.2 yamt fixxfti.c \ 90 1.20.2.2 yamt floatdidf.c \ 91 1.20.2.2 yamt floatdisf.c \ 92 1.20.2.2 yamt floatdixf.c \ 93 1.20.2.2 yamt floattidf.c \ 94 1.20.2.2 yamt floattisf.c \ 95 1.20.2.2 yamt floattixf.c \ 96 1.20.2.2 yamt floatundidf.c \ 97 1.20.2.2 yamt floatundisf.c \ 98 1.20.2.2 yamt floatundixf.c \ 99 1.20.2.2 yamt floatuntidf.c \ 100 1.20.2.2 yamt floatuntisf.c \ 101 1.20.2.2 yamt floatuntixf.c \ 102 1.20.2.2 yamt int_util.c \ 103 1.20.2.2 yamt lshrti3.c \ 104 1.20.2.2 yamt modsi3.c \ 105 1.20.2.2 yamt modti3.c \ 106 1.20.2.2 yamt muldc3.c \ 107 1.20.2.2 yamt mulosi4.c \ 108 1.20.2.2 yamt muloti4.c \ 109 1.20.2.2 yamt multi3.c \ 110 1.20.2.2 yamt mulvsi3.c \ 111 1.20.2.2 yamt mulvti3.c \ 112 1.20.2.2 yamt negdf2.c \ 113 1.20.2.2 yamt negsf2.c \ 114 1.20.2.2 yamt negti2.c \ 115 1.20.2.2 yamt negvsi2.c \ 116 1.20.2.2 yamt negvti2.c \ 117 1.20.2.2 yamt paritysi2.c \ 118 1.20.2.2 yamt parityti2.c \ 119 1.20.2.2 yamt popcountsi2.c \ 120 1.20.2.2 yamt popcountti2.c \ 121 1.20.2.2 yamt powidf2.c \ 122 1.20.2.2 yamt powisf2.c \ 123 1.20.2.2 yamt powitf2.c \ 124 1.20.2.2 yamt powixf2.c \ 125 1.20.2.2 yamt subvsi3.c \ 126 1.20.2.2 yamt subvti3.c \ 127 1.20.2.2 yamt ucmpti2.c \ 128 1.20.2.2 yamt udivmodsi4.c \ 129 1.20.2.2 yamt udivmodti4.c \ 130 1.20.2.2 yamt udivti3.c \ 131 1.20.2.2 yamt umodsi3.c \ 132 1.20.2.2 yamt umodti3.c 133 1.20.2.2 yamt 134 1.20.2.2 yamt .if ${MACHINE_CPU} != "sh3" 135 1.20.2.2 yamt # On sh3 __udivsi3 is gcc "millicode" with special calling convention 136 1.20.2.2 yamt # (less registers clobbered than usual). Each DSO that needs it gets 137 1.20.2.2 yamt # its own hidden copy from libgcc.a. 138 1.20.2.2 yamt GENERIC_SRCS+= \ 139 1.20.2.2 yamt udivsi3.c 140 1.20.2.2 yamt .endif 141 1.20.2.2 yamt 142 1.20.2.2 yamt GENERIC_SRCS+= \ 143 1.20.2.2 yamt absvdi2.c \ 144 1.20.2.2 yamt addvdi3.c \ 145 1.20.2.2 yamt clzdi2.c \ 146 1.20.2.2 yamt ctzdi2.c \ 147 1.20.2.2 yamt ffsdi2.c \ 148 1.20.2.2 yamt mulodi4.c \ 149 1.20.2.2 yamt mulvdi3.c \ 150 1.20.2.2 yamt negvdi2.c \ 151 1.20.2.2 yamt paritydi2.c \ 152 1.20.2.2 yamt popcountdi2.c \ 153 1.20.2.2 yamt subvdi3.c 154 1.20.2.2 yamt 155 1.20.2.2 yamt .if empty(LIBC_MACHINE_ARCH:M*64*) && ${LIBC_MACHINE_ARCH} != "alpha" 156 1.20.2.2 yamt GENERIC_SRCS+= \ 157 1.20.2.2 yamt cmpdi2.c \ 158 1.20.2.2 yamt ashldi3.c \ 159 1.20.2.2 yamt ashrdi3.c \ 160 1.20.2.2 yamt divdi3.c \ 161 1.20.2.2 yamt divmoddi4.c \ 162 1.20.2.2 yamt lshrdi3.c \ 163 1.20.2.2 yamt moddi3.c \ 164 1.20.2.2 yamt muldi3.c \ 165 1.20.2.2 yamt negdi2.c \ 166 1.20.2.2 yamt ucmpdi2.c \ 167 1.20.2.2 yamt udivdi3.c \ 168 1.20.2.2 yamt udivmoddi4.c \ 169 1.20.2.2 yamt umoddi3.c 170 1.20.2.2 yamt .endif 171 1.20.2.2 yamt 172 1.20.2.2 yamt GENERIC_SRCS+= \ 173 1.20.2.2 yamt GCDAProfiling.c \ 174 1.20.2.2 yamt PGOProfiling.c 175 1.20.2.2 yamt 176 1.20.2.2 yamt .if ${LIBC_MACHINE_ARCH} == "powerpc" 177 1.20.2.2 yamt GENERIC_SRCS+= \ 178 1.20.2.2 yamt fixtfdi.c \ 179 1.20.2.2 yamt fixunstfdi.c \ 180 1.20.2.2 yamt floatditf.c \ 181 1.20.2.2 yamt floatunditf.c \ 182 1.20.2.2 yamt gcc_qadd.c \ 183 1.20.2.2 yamt gcc_qdiv.c \ 184 1.20.2.2 yamt gcc_qmul.c \ 185 1.20.2.2 yamt gcc_qsub.c 186 1.20.2.2 yamt .endif 187 1.20.2.2 yamt 188 1.20.2.2 yamt .if ${MACHINE_CPU} == "arm" 189 1.20.2.2 yamt .if !empty(LIBC_MACHINE_ARCH:Mearm*) 190 1.20.2.2 yamt GENERIC_SRCS+= \ 191 1.20.2.2 yamt aeabi_idivmod.S \ 192 1.20.2.2 yamt aeabi_ldivmod.S \ 193 1.20.2.2 yamt aeabi_uidivmod.S \ 194 1.20.2.2 yamt aeabi_uldivmod.S 195 1.20.2.2 yamt .endif 196 1.20.2.2 yamt GENERIC_SRCS+= \ 197 1.20.2.2 yamt clear_cache.c 198 1.20.2.2 yamt # Not yet, overlaps with softfloat 199 1.20.2.2 yamt # aeabi_dcmp.S \ 200 1.20.2.2 yamt # aeabi_fcmp.S 201 1.20.2.2 yamt # Not yet, requires ARMv6 202 1.20.2.2 yamt #GENERIC_SRCS+= \ 203 1.20.2.2 yamt # bswapdi2.S \ 204 1.20.2.2 yamt # bswapsi2.S 205 1.20.2.2 yamt .endif 206 1.20.2.2 yamt 207 1.20.2.2 yamt .for src in ${GENERIC_SRCS} 208 1.20.2.2 yamt . if exists(${COMPILER_RT_CPU_DIR}/${src:R}.S) || \ 209 1.20.2.2 yamt exists(${COMPILER_RT_ARCH_DIR}/${src:R}.S) 210 1.20.2.2 yamt SRCS+= ${src:R}.S 211 1.20.2.2 yamt . else 212 1.20.2.2 yamt SRCS+= ${src} 213 1.20.2.2 yamt COPTS.${src}+= -Wno-missing-prototypes \ 214 1.20.2.2 yamt -Wno-old-style-definition \ 215 1.20.2.2 yamt -Wno-strict-prototypes \ 216 1.20.2.2 yamt -Wno-uninitialized 217 1.20.2.2 yamt . endif 218 1.20.2.2 yamt .endfor 219