1 // ANDROIDMK TRANSLATION ERROR: unsupported directive 2 // ifneq ($(TARGET_USE_PRIVATE_LIBM),true) 3 4 bionic_coverage = false 5 6 libm_common_src_files = [ 7 "upstream-freebsd/lib/msun/bsdsrc/b_exp.c", 8 "upstream-freebsd/lib/msun/bsdsrc/b_log.c", 9 "upstream-freebsd/lib/msun/bsdsrc/b_tgamma.c", 10 "upstream-freebsd/lib/msun/src/catrig.c", 11 "upstream-freebsd/lib/msun/src/catrigf.c", 12 "upstream-freebsd/lib/msun/src/e_acos.c", 13 "upstream-freebsd/lib/msun/src/e_acosf.c", 14 "upstream-freebsd/lib/msun/src/e_acosh.c", 15 "upstream-freebsd/lib/msun/src/e_acoshf.c", 16 "upstream-freebsd/lib/msun/src/e_asin.c", 17 "upstream-freebsd/lib/msun/src/e_asinf.c", 18 "upstream-freebsd/lib/msun/src/e_atan2.c", 19 "upstream-freebsd/lib/msun/src/e_atan2f.c", 20 "upstream-freebsd/lib/msun/src/e_atanh.c", 21 "upstream-freebsd/lib/msun/src/e_atanhf.c", 22 "upstream-freebsd/lib/msun/src/e_cosh.c", 23 "upstream-freebsd/lib/msun/src/e_coshf.c", 24 "upstream-freebsd/lib/msun/src/e_exp.c", 25 "upstream-freebsd/lib/msun/src/e_expf.c", 26 "upstream-freebsd/lib/msun/src/e_fmod.c", 27 "upstream-freebsd/lib/msun/src/e_fmodf.c", 28 "upstream-freebsd/lib/msun/src/e_gamma.c", 29 "upstream-freebsd/lib/msun/src/e_gammaf.c", 30 "upstream-freebsd/lib/msun/src/e_gammaf_r.c", 31 "upstream-freebsd/lib/msun/src/e_gamma_r.c", 32 "upstream-freebsd/lib/msun/src/e_hypot.c", 33 "upstream-freebsd/lib/msun/src/e_hypotf.c", 34 "upstream-freebsd/lib/msun/src/e_j0.c", 35 "upstream-freebsd/lib/msun/src/e_j0f.c", 36 "upstream-freebsd/lib/msun/src/e_j1.c", 37 "upstream-freebsd/lib/msun/src/e_j1f.c", 38 "upstream-freebsd/lib/msun/src/e_jn.c", 39 "upstream-freebsd/lib/msun/src/e_jnf.c", 40 "upstream-freebsd/lib/msun/src/e_lgamma.c", 41 "upstream-freebsd/lib/msun/src/e_lgammaf.c", 42 "upstream-freebsd/lib/msun/src/e_lgammaf_r.c", 43 "upstream-freebsd/lib/msun/src/e_lgamma_r.c", 44 "upstream-freebsd/lib/msun/src/e_log10.c", 45 "upstream-freebsd/lib/msun/src/e_log10f.c", 46 "upstream-freebsd/lib/msun/src/e_log2.c", 47 "upstream-freebsd/lib/msun/src/e_log2f.c", 48 "upstream-freebsd/lib/msun/src/e_log.c", 49 "upstream-freebsd/lib/msun/src/e_logf.c", 50 "upstream-freebsd/lib/msun/src/e_pow.c", 51 "upstream-freebsd/lib/msun/src/e_powf.c", 52 "upstream-freebsd/lib/msun/src/e_remainder.c", 53 "upstream-freebsd/lib/msun/src/e_remainderf.c", 54 "upstream-freebsd/lib/msun/src/e_rem_pio2.c", 55 "upstream-freebsd/lib/msun/src/e_rem_pio2f.c", 56 "upstream-freebsd/lib/msun/src/e_scalb.c", 57 "upstream-freebsd/lib/msun/src/e_scalbf.c", 58 "upstream-freebsd/lib/msun/src/e_sinh.c", 59 "upstream-freebsd/lib/msun/src/e_sinhf.c", 60 "upstream-freebsd/lib/msun/src/e_sqrt.c", 61 "upstream-freebsd/lib/msun/src/e_sqrtf.c", 62 "upstream-freebsd/lib/msun/src/imprecise.c", 63 "upstream-freebsd/lib/msun/src/k_cos.c", 64 "upstream-freebsd/lib/msun/src/k_cosf.c", 65 "upstream-freebsd/lib/msun/src/k_exp.c", 66 "upstream-freebsd/lib/msun/src/k_expf.c", 67 "upstream-freebsd/lib/msun/src/k_rem_pio2.c", 68 "upstream-freebsd/lib/msun/src/k_sin.c", 69 "upstream-freebsd/lib/msun/src/k_sinf.c", 70 "upstream-freebsd/lib/msun/src/k_tan.c", 71 "upstream-freebsd/lib/msun/src/k_tanf.c", 72 "upstream-freebsd/lib/msun/src/s_asinh.c", 73 "upstream-freebsd/lib/msun/src/s_asinhf.c", 74 "upstream-freebsd/lib/msun/src/s_atan.c", 75 "upstream-freebsd/lib/msun/src/s_atanf.c", 76 "upstream-freebsd/lib/msun/src/s_carg.c", 77 "upstream-freebsd/lib/msun/src/s_cargf.c", 78 "upstream-freebsd/lib/msun/src/s_cargl.c", 79 "upstream-freebsd/lib/msun/src/s_cbrt.c", 80 "upstream-freebsd/lib/msun/src/s_cbrtf.c", 81 "upstream-freebsd/lib/msun/src/s_ccosh.c", 82 "upstream-freebsd/lib/msun/src/s_ccoshf.c", 83 "upstream-freebsd/lib/msun/src/s_ceil.c", 84 "upstream-freebsd/lib/msun/src/s_ceilf.c", 85 "upstream-freebsd/lib/msun/src/s_cexp.c", 86 "upstream-freebsd/lib/msun/src/s_cexpf.c", 87 "upstream-freebsd/lib/msun/src/s_cimag.c", 88 "upstream-freebsd/lib/msun/src/s_cimagf.c", 89 "upstream-freebsd/lib/msun/src/s_cimagl.c", 90 "upstream-freebsd/lib/msun/src/s_conj.c", 91 "upstream-freebsd/lib/msun/src/s_conjf.c", 92 "upstream-freebsd/lib/msun/src/s_conjl.c", 93 "upstream-freebsd/lib/msun/src/s_copysign.c", 94 "upstream-freebsd/lib/msun/src/s_copysignf.c", 95 "upstream-freebsd/lib/msun/src/s_cos.c", 96 "upstream-freebsd/lib/msun/src/s_cosf.c", 97 "upstream-freebsd/lib/msun/src/s_cproj.c", 98 "upstream-freebsd/lib/msun/src/s_cprojf.c", 99 "upstream-freebsd/lib/msun/src/s_cprojl.c", 100 "upstream-freebsd/lib/msun/src/s_creal.c", 101 "upstream-freebsd/lib/msun/src/s_crealf.c", 102 "upstream-freebsd/lib/msun/src/s_creall.c", 103 "upstream-freebsd/lib/msun/src/s_csinh.c", 104 "upstream-freebsd/lib/msun/src/s_csinhf.c", 105 "upstream-freebsd/lib/msun/src/s_csqrt.c", 106 "upstream-freebsd/lib/msun/src/s_csqrtf.c", 107 "upstream-freebsd/lib/msun/src/s_csqrtl.c", 108 "upstream-freebsd/lib/msun/src/s_ctanh.c", 109 "upstream-freebsd/lib/msun/src/s_ctanhf.c", 110 "upstream-freebsd/lib/msun/src/s_erf.c", 111 "upstream-freebsd/lib/msun/src/s_erff.c", 112 "upstream-freebsd/lib/msun/src/s_exp2.c", 113 "upstream-freebsd/lib/msun/src/s_exp2f.c", 114 "upstream-freebsd/lib/msun/src/s_expm1.c", 115 "upstream-freebsd/lib/msun/src/s_expm1f.c", 116 "upstream-freebsd/lib/msun/src/s_fdim.c", 117 "upstream-freebsd/lib/msun/src/s_finite.c", 118 "upstream-freebsd/lib/msun/src/s_finitef.c", 119 "upstream-freebsd/lib/msun/src/s_floor.c", 120 "upstream-freebsd/lib/msun/src/s_floorf.c", 121 "upstream-freebsd/lib/msun/src/s_fma.c", 122 "upstream-freebsd/lib/msun/src/s_fmaf.c", 123 "upstream-freebsd/lib/msun/src/s_fmax.c", 124 "upstream-freebsd/lib/msun/src/s_fmaxf.c", 125 "upstream-freebsd/lib/msun/src/s_fmin.c", 126 "upstream-freebsd/lib/msun/src/s_fminf.c", 127 "upstream-freebsd/lib/msun/src/s_frexp.c", 128 "upstream-freebsd/lib/msun/src/s_frexpf.c", 129 "upstream-freebsd/lib/msun/src/s_ilogb.c", 130 "upstream-freebsd/lib/msun/src/s_ilogbf.c", 131 "upstream-freebsd/lib/msun/src/s_llrint.c", 132 "upstream-freebsd/lib/msun/src/s_llrintf.c", 133 "upstream-freebsd/lib/msun/src/s_llround.c", 134 "upstream-freebsd/lib/msun/src/s_llroundf.c", 135 "upstream-freebsd/lib/msun/src/s_log1p.c", 136 "upstream-freebsd/lib/msun/src/s_log1pf.c", 137 "upstream-freebsd/lib/msun/src/s_logb.c", 138 "upstream-freebsd/lib/msun/src/s_logbf.c", 139 "upstream-freebsd/lib/msun/src/s_lrint.c", 140 "upstream-freebsd/lib/msun/src/s_lrintf.c", 141 "upstream-freebsd/lib/msun/src/s_lround.c", 142 "upstream-freebsd/lib/msun/src/s_lroundf.c", 143 "upstream-freebsd/lib/msun/src/s_modf.c", 144 "upstream-freebsd/lib/msun/src/s_modff.c", 145 "upstream-freebsd/lib/msun/src/s_nan.c", 146 "upstream-freebsd/lib/msun/src/s_nearbyint.c", 147 "upstream-freebsd/lib/msun/src/s_nextafter.c", 148 "upstream-freebsd/lib/msun/src/s_nextafterf.c", 149 "upstream-freebsd/lib/msun/src/s_remquo.c", 150 "upstream-freebsd/lib/msun/src/s_remquof.c", 151 "upstream-freebsd/lib/msun/src/s_rint.c", 152 "upstream-freebsd/lib/msun/src/s_rintf.c", 153 "upstream-freebsd/lib/msun/src/s_round.c", 154 "upstream-freebsd/lib/msun/src/s_roundf.c", 155 "upstream-freebsd/lib/msun/src/s_scalbln.c", 156 "upstream-freebsd/lib/msun/src/s_scalbn.c", 157 "upstream-freebsd/lib/msun/src/s_scalbnf.c", 158 "upstream-freebsd/lib/msun/src/s_signgam.c", 159 "upstream-freebsd/lib/msun/src/s_significand.c", 160 "upstream-freebsd/lib/msun/src/s_significandf.c", 161 "upstream-freebsd/lib/msun/src/s_sin.c", 162 "upstream-freebsd/lib/msun/src/s_sinf.c", 163 "upstream-freebsd/lib/msun/src/s_tan.c", 164 "upstream-freebsd/lib/msun/src/s_tanf.c", 165 "upstream-freebsd/lib/msun/src/s_tanh.c", 166 "upstream-freebsd/lib/msun/src/s_tanhf.c", 167 "upstream-freebsd/lib/msun/src/s_tgammaf.c", 168 "upstream-freebsd/lib/msun/src/s_trunc.c", 169 "upstream-freebsd/lib/msun/src/s_truncf.c", 170 "upstream-freebsd/lib/msun/src/w_cabs.c", 171 "upstream-freebsd/lib/msun/src/w_cabsf.c", 172 "upstream-freebsd/lib/msun/src/w_cabsl.c", 173 "upstream-freebsd/lib/msun/src/w_drem.c", 174 "upstream-freebsd/lib/msun/src/w_dremf.c", 175 ] 176 177 libm_common_src_files += [ 178 // TODO: this comes from from upstream's libc, not libm, but it's an 179 // implementation detail that should have hidden visibility, so it needs 180 // to be in whatever library the math code is in. 181 "digittoint.c", 182 183 // Functionality not in the BSDs. 184 "significandl.c", 185 "sincos.c", 186 187 // Modified versions of BSD code. 188 "signbit.c", 189 190 // Home-grown stuff. 191 "fabs.cpp", 192 ] 193 194 libm_ld128_src_files = [ 195 "upstream-freebsd/lib/msun/src/e_acosl.c", 196 "upstream-freebsd/lib/msun/src/e_acoshl.c", 197 "upstream-freebsd/lib/msun/src/e_asinl.c", 198 "upstream-freebsd/lib/msun/src/e_atan2l.c", 199 "upstream-freebsd/lib/msun/src/e_atanhl.c", 200 "upstream-freebsd/lib/msun/src/e_fmodl.c", 201 "upstream-freebsd/lib/msun/src/e_hypotl.c", 202 "upstream-freebsd/lib/msun/src/e_lgammal.c", 203 "upstream-freebsd/lib/msun/src/e_remainderl.c", 204 "upstream-freebsd/lib/msun/src/e_sqrtl.c", 205 "upstream-freebsd/lib/msun/src/s_asinhl.c", 206 "upstream-freebsd/lib/msun/src/s_atanl.c", 207 "upstream-freebsd/lib/msun/src/s_cbrtl.c", 208 "upstream-freebsd/lib/msun/src/s_ceill.c", 209 "upstream-freebsd/lib/msun/src/s_copysignl.c", 210 "upstream-freebsd/lib/msun/src/e_coshl.c", 211 "upstream-freebsd/lib/msun/src/s_cosl.c", 212 "upstream-freebsd/lib/msun/src/s_floorl.c", 213 "upstream-freebsd/lib/msun/src/s_fmal.c", 214 "upstream-freebsd/lib/msun/src/s_fmaxl.c", 215 "upstream-freebsd/lib/msun/src/s_fminl.c", 216 "upstream-freebsd/lib/msun/src/s_modfl.c", 217 "upstream-freebsd/lib/msun/src/s_frexpl.c", 218 "upstream-freebsd/lib/msun/src/s_ilogbl.c", 219 "upstream-freebsd/lib/msun/src/s_llrintl.c", 220 "upstream-freebsd/lib/msun/src/s_llroundl.c", 221 "upstream-freebsd/lib/msun/src/s_logbl.c", 222 "upstream-freebsd/lib/msun/src/s_lrintl.c", 223 "upstream-freebsd/lib/msun/src/s_lroundl.c", 224 "upstream-freebsd/lib/msun/src/s_nextafterl.c", 225 "upstream-freebsd/lib/msun/src/s_nexttoward.c", 226 "upstream-freebsd/lib/msun/src/s_nexttowardf.c", 227 "upstream-freebsd/lib/msun/src/s_remquol.c", 228 "upstream-freebsd/lib/msun/src/s_rintl.c", 229 "upstream-freebsd/lib/msun/src/s_roundl.c", 230 "upstream-freebsd/lib/msun/src/s_scalbnl.c", 231 "upstream-freebsd/lib/msun/src/e_sinhl.c", 232 "upstream-freebsd/lib/msun/src/s_sinl.c", 233 "upstream-freebsd/lib/msun/src/s_tanhl.c", 234 "upstream-freebsd/lib/msun/src/s_tanl.c", 235 "upstream-freebsd/lib/msun/src/s_truncl.c", 236 ] 237 238 libm_ld128_src_files += [ 239 "upstream-freebsd/lib/msun/ld128/invtrig.c", 240 "upstream-freebsd/lib/msun/ld128/e_lgammal_r.c", 241 "upstream-freebsd/lib/msun/ld128/k_cosl.c", 242 "upstream-freebsd/lib/msun/ld128/k_sinl.c", 243 "upstream-freebsd/lib/msun/ld128/k_tanl.c", 244 "upstream-freebsd/lib/msun/ld128/s_erfl.c", 245 "upstream-freebsd/lib/msun/ld128/s_exp2l.c", 246 "upstream-freebsd/lib/msun/ld128/s_expl.c", 247 "upstream-freebsd/lib/msun/ld128/s_logl.c", 248 "upstream-freebsd/lib/msun/ld128/s_nanl.c", 249 ] 250 251 // TODO: re-enable i387/e_sqrtf.S for x86, and maybe others. 252 253 libm_common_cflags = [ 254 "-D__BIONIC_NO_MATH_INLINES", 255 "-DFLT_EVAL_METHOD=0", 256 "-include freebsd-compat.h", 257 "-Werror", 258 "-Wno-missing-braces", 259 "-Wno-parentheses", 260 "-Wno-sign-compare", 261 "-Wno-uninitialized", 262 "-Wno-unknown-pragmas", 263 "-fvisibility=hidden", 264 ] 265 266 // Workaround the GCC "(long)fn -> lfn" optimization bug which will result in 267 // self recursions for lrint, lrintf, and lrintl. 268 // BUG: 14225968 269 libm_common_cflags += [ 270 "-fno-builtin-rint", 271 "-fno-builtin-rintf", 272 "-fno-builtin-rintl", 273 ] 274 275 libm_common_local_includes = ["upstream-freebsd/lib/msun/src/"] 276 277 libm_ld_local_includes = ["upstream-freebsd/lib/msun/ld128/"] 278 279 // 280 // libm.so and libm.a for target. 281 // 282 cc_library { 283 name: "libm", 284 285 cflags: libm_common_cflags, 286 include_dirs: ["bionic/libc"], 287 local_include_dirs: libm_common_local_includes, 288 srcs: libm_common_src_files, 289 system_shared_libs: ["libc"], 290 291 native_coverage: bionic_coverage, 292 sanitize: ["never"], 293 294 multilib: { 295 lib32: { 296 srcs: ["fake_long_double.c"], 297 }, 298 lib64: { 299 srcs: libm_ld128_src_files, 300 local_include_dirs: libm_ld_local_includes, 301 // We'd really like to do this for all architectures, but since this wasn't done 302 // before, these symbols must continue to be exported on LP32 for binary 303 // compatibility. 304 ldflags: ["-Wl,--exclude-libs,libgcc.a"], 305 }, 306 }, 307 308 // arch-specific settings 309 arch: { 310 arm: { 311 srcs: [ 312 "arm/fenv.c", 313 ], 314 armv7_a_neon: { 315 srcs: [ 316 "arm/sqrt.S", 317 "arm/floor.S", 318 ], 319 exclude_srcs: [ 320 "upstream-freebsd/lib/msun/src/e_sqrt.c", 321 "upstream-freebsd/lib/msun/src/e_sqrtf.c", 322 "upstream-freebsd/lib/msun/src/s_floor.c", 323 ], 324 }, 325 instruction_set: "arm", 326 ldflags: ["-Wl,--hash-style=both"], 327 version_script: "libm.arm.map", 328 }, 329 330 arm64: { 331 srcs: [ 332 "arm64/ceil.S", 333 "arm64/fenv.c", 334 "arm64/fma.S", 335 "arm64/floor.S", 336 "arm64/lrint.S", 337 "arm64/rint.S", 338 "arm64/sqrt.S", 339 "arm64/trunc.S", 340 ], 341 exclude_srcs: [ 342 "upstream-freebsd/lib/msun/src/e_sqrt.c", 343 "upstream-freebsd/lib/msun/src/e_sqrtf.c", 344 "upstream-freebsd/lib/msun/src/s_ceil.c", 345 "upstream-freebsd/lib/msun/src/s_ceilf.c", 346 "upstream-freebsd/lib/msun/src/s_fma.c", 347 "upstream-freebsd/lib/msun/src/s_fmaf.c", 348 "upstream-freebsd/lib/msun/src/s_floor.c", 349 "upstream-freebsd/lib/msun/src/s_floorf.c", 350 "upstream-freebsd/lib/msun/src/s_llrint.c", 351 "upstream-freebsd/lib/msun/src/s_llrintf.c", 352 "upstream-freebsd/lib/msun/src/s_lrint.c", 353 "upstream-freebsd/lib/msun/src/s_lrintf.c", 354 "upstream-freebsd/lib/msun/src/s_rint.c", 355 "upstream-freebsd/lib/msun/src/s_rintf.c", 356 "upstream-freebsd/lib/msun/src/s_trunc.c", 357 "upstream-freebsd/lib/msun/src/s_truncf.c", 358 ], 359 version_script: "libm.arm64.map", 360 }, 361 362 mips: { 363 srcs: ["mips/fenv.c"], 364 version_script: "libm.mips.map", 365 }, 366 367 mips64: { 368 srcs: ["mips/fenv.c"], 369 version_script: "libm.mips64.map", 370 }, 371 372 x86: { 373 srcs: [ 374 "i387/fenv.c", 375 "x86/sqrt.S", 376 "x86/sqrtf.S", 377 "x86/e_acos.S", 378 "x86/e_asin.S", 379 "x86/e_atan2.S", 380 "x86/e_cosh.S", 381 "x86/e_exp.S", 382 "x86/e_hypot.S", 383 "x86/e_log10.S", 384 "x86/e_log.S", 385 "x86/e_pow.S", 386 "x86/e_sinh.S", 387 "x86/libm_reduce_pi04l.S", 388 "x86/libm_sincos_huge.S", 389 "x86/libm_tancot_huge.S", 390 "x86/s_atan.S", 391 "x86/s_cbrt.S", 392 "x86/s_cos.S", 393 "x86/s_expm1.S", 394 "x86/s_log1p.S", 395 "x86/s_sin.S", 396 "x86/s_tanh.S", 397 "x86/s_tan.S", 398 ], 399 exclude_srcs: [ 400 "upstream-freebsd/lib/msun/src/e_acos.c", 401 "upstream-freebsd/lib/msun/src/e_asin.c", 402 "upstream-freebsd/lib/msun/src/e_atan2.c", 403 "upstream-freebsd/lib/msun/src/e_cosh.c", 404 "upstream-freebsd/lib/msun/src/e_exp.c", 405 "upstream-freebsd/lib/msun/src/e_hypot.c", 406 "upstream-freebsd/lib/msun/src/e_log.c", 407 "upstream-freebsd/lib/msun/src/e_log10.c", 408 "upstream-freebsd/lib/msun/src/e_pow.c", 409 "upstream-freebsd/lib/msun/src/e_sinh.c", 410 "upstream-freebsd/lib/msun/src/e_sqrt.c", 411 "upstream-freebsd/lib/msun/src/e_sqrtf.c", 412 "upstream-freebsd/lib/msun/src/s_atan.c", 413 "upstream-freebsd/lib/msun/src/s_cbrt.c", 414 "upstream-freebsd/lib/msun/src/s_cos.c", 415 "upstream-freebsd/lib/msun/src/s_expm1.c", 416 "upstream-freebsd/lib/msun/src/s_log1p.c", 417 "upstream-freebsd/lib/msun/src/s_sin.c", 418 "upstream-freebsd/lib/msun/src/s_tan.c", 419 "upstream-freebsd/lib/msun/src/s_tanh.c", 420 ], 421 sse4_1: { 422 srcs: [ 423 "x86/ceil.S", 424 "x86/ceilf.S", 425 "x86/floor.S", 426 "x86/floorf.S", 427 "x86/trunc.S", 428 "x86/truncf.S", 429 ], 430 exclude_srcs: [ 431 "upstream-freebsd/lib/msun/src/s_ceil.c", 432 "upstream-freebsd/lib/msun/src/s_ceilf.c", 433 "upstream-freebsd/lib/msun/src/s_floor.c", 434 "upstream-freebsd/lib/msun/src/s_floorf.c", 435 "upstream-freebsd/lib/msun/src/s_trunc.c", 436 "upstream-freebsd/lib/msun/src/s_truncf.c", 437 ], 438 }, 439 local_include_dirs: ["i387"], 440 // Clang has wrong long double sizes for x86. 441 clang: false, 442 ldflags: ["-Wl,--hash-style=both"], 443 version_script: "libm.x86.map", 444 }, 445 446 x86_64: { 447 srcs: [ 448 "amd64/fenv.c", 449 "x86_64/sqrt.S", 450 "x86_64/sqrtf.S", 451 "x86_64/e_acos.S", 452 "x86_64/e_asin.S", 453 "x86_64/e_atan2.S", 454 "x86_64/e_cosh.S", 455 "x86_64/e_exp.S", 456 "x86_64/e_hypot.S", 457 "x86_64/e_log10.S", 458 "x86_64/e_log.S", 459 "x86_64/e_pow.S", 460 "x86_64/e_sinh.S", 461 "x86_64/s_atan.S", 462 "x86_64/s_cbrt.S", 463 "x86_64/s_cos.S", 464 "x86_64/s_expm1.S", 465 "x86_64/s_log1p.S", 466 "x86_64/s_sin.S", 467 "x86_64/s_tanh.S", 468 "x86_64/s_tan.S", 469 ], 470 exclude_srcs: [ 471 "upstream-freebsd/lib/msun/src/e_acos.c", 472 "upstream-freebsd/lib/msun/src/e_asin.c", 473 "upstream-freebsd/lib/msun/src/e_atan2.c", 474 "upstream-freebsd/lib/msun/src/e_cosh.c", 475 "upstream-freebsd/lib/msun/src/e_exp.c", 476 "upstream-freebsd/lib/msun/src/e_hypot.c", 477 "upstream-freebsd/lib/msun/src/e_log.c", 478 "upstream-freebsd/lib/msun/src/e_log10.c", 479 "upstream-freebsd/lib/msun/src/e_pow.c", 480 "upstream-freebsd/lib/msun/src/e_sinh.c", 481 "upstream-freebsd/lib/msun/src/e_sqrt.c", 482 "upstream-freebsd/lib/msun/src/e_sqrtf.c", 483 "upstream-freebsd/lib/msun/src/s_atan.c", 484 "upstream-freebsd/lib/msun/src/s_cbrt.c", 485 "upstream-freebsd/lib/msun/src/s_cos.c", 486 "upstream-freebsd/lib/msun/src/s_expm1.c", 487 "upstream-freebsd/lib/msun/src/s_log1p.c", 488 "upstream-freebsd/lib/msun/src/s_sin.c", 489 "upstream-freebsd/lib/msun/src/s_tan.c", 490 "upstream-freebsd/lib/msun/src/s_tanh.c", 491 ], 492 sse4_1: { 493 srcs: [ 494 "x86_64/ceil.S", 495 "x86_64/ceilf.S", 496 "x86_64/floor.S", 497 "x86_64/floorf.S", 498 "x86_64/trunc.S", 499 "x86_64/truncf.S", 500 ], 501 exclude_srcs: [ 502 "upstream-freebsd/lib/msun/src/s_ceil.c", 503 "upstream-freebsd/lib/msun/src/s_ceilf.c", 504 "upstream-freebsd/lib/msun/src/s_floor.c", 505 "upstream-freebsd/lib/msun/src/s_floorf.c", 506 "upstream-freebsd/lib/msun/src/s_trunc.c", 507 "upstream-freebsd/lib/msun/src/s_truncf.c", 508 ], 509 }, 510 // Clang has wrong long double sizes for x86. 511 clang: false, 512 version_script: "libm.x86_64.map", 513 }, 514 }, 515 516 stl: "none", 517 } 518 519 // ANDROIDMK TRANSLATION ERROR: unsupported directive 520 // endif 521