this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Build $fenv_access_off symbol variants of libsystem_m (resolves #120)

+421 -2
+120 -2
src/libm/CMakeLists.txt
··· 4 4 enable_language(C ASM) 5 5 6 6 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse -msse2 -msse3 -w") 7 - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__DARWIN_UNIX03 -fPIC -w -DBUILDING_FOR_CARBONCORE_LEGACY") # -DBUILDING_FOR_CARBONCORE_LEGACY") 7 + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__DARWIN_UNIX03 -fPIC -w -DBUILDING_FOR_CARBONCORE_LEGACY -funroll-loops -msse3") # -DBUILDING_FOR_CARBONCORE_LEGACY") 8 8 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -nostdlib -Wl,--version-script=${DARLING_TOP_DIRECTORY}/darwin.map") 9 9 10 10 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Source/Intel) ··· 140 140 Source/Intel/trunc.S 141 141 142 142 ) 143 + set(libm_nofenv_sources 144 + Source/Intel/s_sin.S 145 + Source/Intel/s_tan.S 146 + Source/Intel/acos.c 147 + Source/Intel/asin.c 148 + Source/Intel/atan.c 149 + Source/Intel/complex.c 150 + Source/Intel/containsNothingIntel.c 151 + Source/Intel/e_acosh.c 152 + Source/Intel/e_atanh.c 153 + Source/Intel/e_cosh.c 154 + Source/Intel/e_sinh.c 155 + Source/Intel/expf_logf_powf.c 156 + Source/Intel/fmaf.c 157 + Source/Intel/s_asinh.c 158 + Source/Intel/sincostan.c 159 + Source/Intel/s_tanh.c 160 + Source/Intel/xmm_arcsincostan.c 161 + #Source/Intel/xmm_erfgamma.c 162 + Source/Intel/xmm_exp.c 163 + Source/Intel/xmm_fma.c 164 + Source/Intel/xmm_log.c 165 + Source/Intel/xmm_nextafter.c 166 + Source/Intel/xmm_power.c 167 + Source/Intel/xmm_remainder.c 168 + Source/Intel/xmm_sqrt.c 169 + 170 + Source/Intel/acosf.S 171 + Source/Intel/acoshf.S 172 + Source/Intel/asinf.S 173 + Source/Intel/asinhf.S 174 + Source/Intel/atan2f.S 175 + Source/Intel/atanf.S 176 + Source/Intel/atanhf.S 177 + Source/Intel/cbrtf.S 178 + Source/Intel/ceilf.S 179 + Source/Intel/ceill.S 180 + Source/Intel/ceil.S 181 + Source/Intel/copysign.S 182 + Source/Intel/coshf.S 183 + Source/Intel/cosh.S 184 + Source/Intel/e_acos.S 185 + Source/Intel/e_asin.S 186 + Source/Intel/e_atan2.S 187 + Source/Intel/e_cbrtl.S 188 + Source/Intel/e_exp.S 189 + Source/Intel/e_log10.S 190 + Source/Intel/e_log.S 191 + Source/Intel/e_remainder.S 192 + Source/Intel/e_sqrt.S 193 + Source/Intel/exp2.S 194 + Source/Intel/expm1f.S 195 + Source/Intel/expm1.S 196 + Source/Intel/exp.S 197 + Source/Intel/floorf.S 198 + Source/Intel/floorl.S 199 + Source/Intel/floor.S 200 + Source/Intel/fmaxfminfdim.S 201 + Source/Intel/fmod.S 202 + Source/Intel/frexp.S 203 + Source/Intel/hypotf.S 204 + Source/Intel/hypotl.S 205 + Source/Intel/hypot.S 206 + Source/Intel/ilogb.S 207 + Source/Intel/log10f.S 208 + Source/Intel/log2f.S 209 + Source/Intel/log2.S 210 + Source/Intel/logf.S 211 + #Source/Intel/log.S 212 + Source/Intel/lrintl.S 213 + Source/Intel/lroundf.S 214 + Source/Intel/lroundl.S 215 + Source/Intel/lround.S 216 + Source/Intel/modff.S 217 + Source/Intel/modfl.S 218 + Source/Intel/modf.S 219 + Source/Intel/nearbyintf.S 220 + Source/Intel/nearbyintl.S 221 + Source/Intel/nearbyint.S 222 + Source/Intel/nextafterl.S 223 + Source/Intel/nextafter.S 224 + #Source/Intel/powf.S 225 + Source/Intel/rintf.S 226 + Source/Intel/rintl.S 227 + Source/Intel/rint.S 228 + Source/Intel/roundf.S 229 + Source/Intel/roundl.S 230 + Source/Intel/round.S 231 + Source/Intel/s_atan.S 232 + Source/Intel/scalbnf.S 233 + Source/Intel/scalbnl.S 234 + #Source/Intel/s_cos.S 235 + #Source/Intel/s_ilogb.S 236 + Source/Intel/sinfcosf.S 237 + Source/Intel/sinhf.S 238 + Source/Intel/sinh.S 239 + Source/Intel/s_log1p.S 240 + #Source/Intel/s_logb.S 241 + Source/Intel/s_rint.S 242 + #Source/Intel/s_significand.S 243 + Source/Intel/tanf.S 244 + Source/Intel/tanhf.S 245 + Source/Intel/tanh.S 246 + Source/Intel/truncf.S 247 + Source/Intel/truncl.S 248 + Source/Intel/trunc.S 249 + 250 + ) 251 + 252 + # Gross hack to rename symbols in $fenv_access_off variants 253 + set(CMAKE_AR "${CMAKE_CURRENT_SOURCE_DIR}/rename_wrapper") 143 254 144 255 SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/darling") 145 256 SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) 146 257 SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) 147 258 148 - add_library(system_m_extra OBJECT Source/Intel/xmm_misc.c) 259 + add_library(system_m_extra OBJECT Source/Intel/xmm_misc.c Source/Intel/xmm_log.c) 149 260 set_target_properties(system_m_extra PROPERTIES COMPILE_FLAGS "-UBUILDING_FOR_CARBONCORE_LEGACY") 150 261 262 + #add_library(system_m_extra_no_fenv OBJECT Source/Intel/xmm_log.c) 263 + #set_target_properties(system_m_extra_no_fenv PROPERTIES COMPILE_FLAGS "-UBUILDING_FOR_CARBONCORE_LEGACY -ftrapping-math -fPIC -DNO_FENV") 264 + 265 + add_library(system_m_no_fenv STATIC ${libm_nofenv_sources}) # $<TARGET_OBJECTS:system_m_extra_no_fenv>) 266 + set_target_properties(system_m_no_fenv PROPERTIES COMPILE_FLAGS "-UBUILDING_FOR_CARBONCORE_LEGACY -ftrapping-math -fPIC -DNO_FENV") 267 + 151 268 add_library(system_m SHARED ${libm_sources} $<TARGET_OBJECTS:system_m_extra>) 269 + target_link_libraries(system_m PRIVATE "-Wl,--whole-archive" system_m_no_fenv) 152 270 153 271 install(TARGETS system_m DESTINATION ${CMAKE_INSTALL_LIBDIR}/darling) 154 272
+270
src/libm/Exports/darlingIntel.alias
··· 1 + exp2 exp2$fenv_access_off 2 + fdim fdim$fenv_access_off 3 + fmax fmax$fenv_access_off 4 + fmin fmin$fenv_access_off 5 + log2 log2$fenv_access_off 6 + modff modff$fenv_access_off 7 + remquo remquo$fenv_access_off"#.o names are from the ppc build, and probably don't map properly to other archs" 8 + #libm.a(complex.o): 9 + cabsf cabsf$fenv_access_off 10 + cacos cacos$fenv_access_off 11 + cacosf cacosf$fenv_access_off 12 + cacosh cacosh$fenv_access_off 13 + cacoshf cacoshf$fenv_access_off 14 + carg carg$fenv_access_off 15 + cargf cargf$fenv_access_off 16 + casin casin$fenv_access_off 17 + casinf casinf$fenv_access_off 18 + casinh casinh$fenv_access_off 19 + casinhf casinhf$fenv_access_off 20 + catan catan$fenv_access_off 21 + catanf catanf$fenv_access_off 22 + catanh catanh$fenv_access_off 23 + catanhf catanhf$fenv_access_off 24 + ccos ccos$fenv_access_off 25 + ccosf ccosf$fenv_access_off 26 + ccosh ccosh$fenv_access_off 27 + ccoshf ccoshf$fenv_access_off 28 + cexp cexp$fenv_access_off 29 + cexpf cexpf$fenv_access_off 30 + cimag cimag$fenv_access_off 31 + cimagf cimagf$fenv_access_off 32 + clog clog$fenv_access_off 33 + clogf clogf$fenv_access_off 34 + conj conj$fenv_access_off 35 + conjf conjf$fenv_access_off 36 + cpow cpow$fenv_access_off 37 + cpowf cpowf$fenv_access_off 38 + cproj cproj$fenv_access_off 39 + cprojf cprojf$fenv_access_off 40 + creal creal$fenv_access_off 41 + crealf crealf$fenv_access_off 42 + csin csin$fenv_access_off 43 + csinf csinf$fenv_access_off 44 + csinh csinh$fenv_access_off 45 + csinhf csinhf$fenv_access_off 46 + csqrt csqrt$fenv_access_off 47 + csqrtf csqrtf$fenv_access_off 48 + ctan ctan$fenv_access_off 49 + ctanf ctanf$fenv_access_off 50 + ctanh ctanh$fenv_access_off 51 + ctanhf ctanhf$fenv_access_off 52 + #libm.a(complexld64.o): 53 + cabsl cabsl$fenv_access_off 54 + cacoshl cacoshl$fenv_access_off 55 + cacosl cacosl$fenv_access_off 56 + cargl cargl$fenv_access_off 57 + casinhl casinhl$fenv_access_off 58 + casinl casinl$fenv_access_off 59 + catanhl catanhl$fenv_access_off 60 + catanl catanl$fenv_access_off 61 + ccoshl ccoshl$fenv_access_off 62 + ccosl ccosl$fenv_access_off 63 + cexpl cexpl$fenv_access_off 64 + cimagl cimagl$fenv_access_off 65 + clogl clogl$fenv_access_off 66 + conjl conjl$fenv_access_off 67 + cpowl cpowl$fenv_access_off 68 + cprojl cprojl$fenv_access_off 69 + creall creall$fenv_access_off 70 + csinhl csinhl$fenv_access_off 71 + csinl csinl$fenv_access_off 72 + csqrtl csqrtl$fenv_access_off 73 + ctanhl ctanhl$fenv_access_off 74 + ctanl ctanl$fenv_access_off 75 + #libm.a(floating.o): #libm.a(floating.o):$fenv_access_off 76 + acosf acosf$fenv_access_off 77 + acoshf acoshf$fenv_access_off 78 + asinf asinf$fenv_access_off 79 + asinhf asinhf$fenv_access_off 80 + atan2f atan2f$fenv_access_off 81 + atanf atanf$fenv_access_off 82 + atanhf atanhf$fenv_access_off 83 + cbrtf cbrtf$fenv_access_off 84 + cosf cosf$fenv_access_off 85 + coshf coshf$fenv_access_off 86 + erfcf erfcf$fenv_access_off 87 + erff erff$fenv_access_off 88 + #_exp2f exp2f$fenv_access_off 89 + #_expf expf$fenv_access_off 90 + expm1f expm1f$fenv_access_off 91 + hypotf hypotf$fenv_access_off 92 + lgammaf lgammaf$fenv_access_off 93 + log10f log10f$fenv_access_off 94 + log1pf log1pf$fenv_access_off 95 + log2f log2f$fenv_access_off 96 + logf logf$fenv_access_off 97 + powf powf$fenv_access_off 98 + sinf sinf$fenv_access_off 99 + sinhf sinhf$fenv_access_off 100 + sqrtf sqrtf$fenv_access_off 101 + tanf tanf$fenv_access_off 102 + tanhf tanhf$fenv_access_off 103 + tgammaf tgammaf$fenv_access_off 104 + #libm.a(FastSinCos.o): 105 + cos cos$fenv_access_off 106 + sin sin$fenv_access_off 107 + #libm.a(arctg.o): 108 + atan atan$fenv_access_off 109 + #libm.a(ashachath.o): 110 + acosh acosh$fenv_access_off 111 + asinh asinh$fenv_access_off 112 + atanh atanh$fenv_access_off 113 + #libm.a(asinacos.o): 114 + acos acos$fenv_access_off 115 + asin asin$fenv_access_off 116 + #libm.a(atan2.o): 117 + atan2 atan2$fenv_access_off 118 + #libm.a(ceilfloor.o): 119 + ceil ceil$fenv_access_off 120 + ceilf ceilf$fenv_access_off 121 + floor floor$fenv_access_off 122 + floorf floorf$fenv_access_off 123 + #libm.a(copysign.o): 124 + copysign copysign$fenv_access_off 125 + copysignf copysignf$fenv_access_off 126 + #libm.a(erfcerf.o): 127 + erf erf$fenv_access_off 128 + erfc erfc$fenv_access_off 129 + #libm.a(fabs.o): 130 + fabs fabs$fenv_access_off 131 + fabsf fabsf$fenv_access_off 132 + #libm.a(frexpldexp.o): 133 + frexp frexp$fenv_access_off 134 + frexpf frexpf$fenv_access_off 135 + ldexp ldexp$fenv_access_off 136 + ldexpf ldexpf$fenv_access_off 137 + #libm.a(gamma.o): 138 + tgamma tgamma$fenv_access_off 139 + #libm.a(hypot.o): 140 + hypot hypot$fenv_access_off 141 + #libm.a(lgamma.o): 142 + lgamma lgamma$fenv_access_off 143 + lgamma_r lgamma_r$fenv_access_off 144 + lgammaf_r lgammaf_r$fenv_access_off 145 + lgammal_r lgammal_r$fenv_access_off 146 + #libm.a(logb.o): 147 + ilogb ilogb$fenv_access_off 148 + ilogbf ilogbf$fenv_access_off 149 + logb logb$fenv_access_off 150 + logbf logbf$fenv_access_off 151 + #libm.a(minmaxdim.o): 152 + fdimf fdimf$fenv_access_off 153 + fma fma$fenv_access_off 154 + fmaf fmaf$fenv_access_off 155 + fmaxf fmaxf$fenv_access_off 156 + fminf fminf$fenv_access_off 157 + #libm.a(nextafter.o): 158 + nextafter nextafter$fenv_access_off 159 + #libm.a(power.o): 160 + pow pow$fenv_access_off 161 + #libm.a(remmod.o): #libm.a(remmod.o):$fenv_access_off 162 + fmod fmod$fenv_access_off 163 + fmodf fmodf$fenv_access_off 164 + remainder remainder$fenv_access_off 165 + remainderf remainderf$fenv_access_off 166 + remquof remquof$fenv_access_off 167 + #libm.a(rndint.o): 168 + llrint llrint$fenv_access_off 169 + llrintf llrintf$fenv_access_off 170 + llround llround$fenv_access_off 171 + llroundf llroundf$fenv_access_off 172 + lrint lrint$fenv_access_off 173 + lrintf lrintf$fenv_access_off 174 + lround lround$fenv_access_off 175 + lroundf lroundf$fenv_access_off 176 + modf modf$fenv_access_off 177 + nearbyint nearbyint$fenv_access_off 178 + nearbyintf nearbyintf$fenv_access_off 179 + rint rint$fenv_access_off 180 + rintf rintf$fenv_access_off 181 + round round$fenv_access_off 182 + roundf roundf$fenv_access_off 183 + trunc trunc$fenv_access_off 184 + truncf truncf$fenv_access_off 185 + #libm.a(scalb.o): 186 + scalbln scalbln$fenv_access_off 187 + scalblnf scalblnf$fenv_access_off 188 + scalbn scalbn$fenv_access_off 189 + scalbnf scalbnf$fenv_access_off 190 + #libm.a(shchth.o): 191 + cosh cosh$fenv_access_off 192 + sinh sinh$fenv_access_off 193 + tanh tanh$fenv_access_off 194 + #libm.a(sqrt.o): 195 + sqrt sqrt$fenv_access_off 196 + #libm.a(tableExpD.o): 197 + exp exp$fenv_access_off 198 + expm1 expm1$fenv_access_off 199 + #libm.a(tableLogD.o): 200 + log log$fenv_access_off 201 + log10 log10$fenv_access_off 202 + log1p log1p$fenv_access_off 203 + #libm.a(tg.o): 204 + tan tan$fenv_access_off 205 + #libm.a(gamma9.o): 206 + gamma gamma$fenv_access_off 207 + #libm.a(matherr.o): 208 + #libm.a(w_cabs.o): 209 + cabs cabs$fenv_access_off 210 + #libm.a(ld64.o): 211 + acoshl acoshl$fenv_access_off 212 + acosl acosl$fenv_access_off 213 + asinhl asinhl$fenv_access_off 214 + asinl asinl$fenv_access_off 215 + atan2l atan2l$fenv_access_off 216 + atanhl atanhl$fenv_access_off 217 + atanl atanl$fenv_access_off 218 + cbrtl cbrtl$fenv_access_off 219 + ceill ceill$fenv_access_off 220 + copysignl copysignl$fenv_access_off 221 + coshl coshl$fenv_access_off 222 + cosl cosl$fenv_access_off 223 + erfcl erfcl$fenv_access_off 224 + erfl erfl$fenv_access_off 225 + exp2l exp2l$fenv_access_off 226 + #_expl expl$fenv_access_off 227 + expm1l expm1l$fenv_access_off 228 + fabsl fabsl$fenv_access_off 229 + fdiml fdiml$fenv_access_off 230 + floorl floorl$fenv_access_off 231 + fmal fmal$fenv_access_off 232 + fmaxl fmaxl$fenv_access_off 233 + fminl fminl$fenv_access_off 234 + fmodl fmodl$fenv_access_off 235 + frexpl frexpl$fenv_access_off 236 + hypotl hypotl$fenv_access_off 237 + ilogbl ilogbl$fenv_access_off 238 + ldexpl ldexpl$fenv_access_off 239 + lgammal lgammal$fenv_access_off 240 + llrintl llrintl$fenv_access_off 241 + llroundl llroundl$fenv_access_off 242 + log10l log10l$fenv_access_off 243 + log1pl log1pl$fenv_access_off 244 + log2l log2l$fenv_access_off 245 + logbl logbl$fenv_access_off 246 + logl logl$fenv_access_off 247 + lrintl lrintl$fenv_access_off 248 + lroundl lroundl$fenv_access_off 249 + modfl modfl$fenv_access_off 250 + nearbyintl nearbyintl$fenv_access_off 251 + nextafterl nextafterl$fenv_access_off 252 + nexttoward nexttoward$fenv_access_off 253 + nexttowardf nexttowardf$fenv_access_off 254 + nexttowardl nexttowardl$fenv_access_off 255 + powl powl$fenv_access_off 256 + remainderl remainderl$fenv_access_off 257 + remquol remquol$fenv_access_off 258 + rintl rintl$fenv_access_off 259 + roundl roundl$fenv_access_off 260 + scalblnl scalblnl$fenv_access_off 261 + scalbnl scalbnl$fenv_access_off 262 + sinhl sinhl$fenv_access_off 263 + sinl sinl$fenv_access_off 264 + sqrtl sqrtl$fenv_access_off 265 + tanhl tanhl$fenv_access_off 266 + tanl tanl$fenv_access_off 267 + tgammal tgammal$fenv_access_off 268 + truncl truncl$fenv_access_off 269 + #libm.a(s_cbrt.o): #libm.a(s_cbrt.o):$fenv_access_off 270 + cbrt cbrt$fenv_access_off
+5
src/libm/Source/Intel/machine/asm.h
··· 20 20 * 21 21 * @APPLE_LICENSE_HEADER_END@ 22 22 */ 23 + 23 24 #define ENTRY(name) \ 24 25 .globl name; \ 25 26 .align (2<<4); \ 26 27 name##: 27 28 29 + #ifndef NO_FENV 28 30 #define PRIVATE_ENTRY(name) \ 29 31 .globl name; .hidden name; \ 30 32 .align (2<<4); \ 31 33 name##: 34 + #else 35 + #define PRIVATE_ENTRY(name) 36 + #endif 32 37 33 38 #undef END 34 39 #define END(name) /* NOTHING */
+26
src/libm/rename_wrapper
··· 1 + #!/bin/sh 2 + set -e 3 + 4 + #redefines="$1" 5 + #shift 6 + #ar_prog="$1" 7 + #shift 8 + redefines="$(dirname $0)/Exports/darlingIntel.alias" 9 + ar_prog="ar" 10 + ar_op="$1" 11 + shift 12 + ar_target="$1" 13 + shift 14 + 15 + for obj_in in "$@"; do 16 + out=$(mktemp --suffix=.o) 17 + objcopy "--redefine-syms=${redefines}" "$obj_in" "$out" 18 + files="${files} $out" 19 + done 20 + 21 + "$ar_prog" "$ar_op" "$ar_target" $files 22 + 23 + for file in $files; do 24 + rm -f $file 25 + done 26 +