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