1// 2// libm.so and libm.a for target. 3// 4package { 5 default_applicable_licenses: ["bionic_libm_license"], 6} 7 8license { 9 name: "bionic_libm_license", 10 visibility: [":__subpackages__"], 11 license_kinds: [ 12 "SPDX-license-identifier-Apache-2.0", 13 "SPDX-license-identifier-BSD", 14 "SPDX-license-identifier-MIT", 15 "legacy_unencumbered", 16 ], 17 license_text: [ 18 "NOTICE", 19 ], 20} 21 22cc_library { 23 name: "libm", 24 defaults: ["linux_bionic_supported"], 25 ramdisk_available: true, 26 vendor_ramdisk_available: true, 27 recovery_available: true, 28 static_ndk_lib: true, 29 30 whole_static_libs: ["libarm-optimized-routines-math"], 31 32 srcs: [ 33 "upstream-freebsd/lib/msun/bsdsrc/b_exp.c", 34 "upstream-freebsd/lib/msun/bsdsrc/b_log.c", 35 "upstream-freebsd/lib/msun/bsdsrc/b_tgamma.c", 36 "upstream-freebsd/lib/msun/src/catrig.c", 37 "upstream-freebsd/lib/msun/src/catrigf.c", 38 "upstream-freebsd/lib/msun/src/e_acos.c", 39 "upstream-freebsd/lib/msun/src/e_acosf.c", 40 "upstream-freebsd/lib/msun/src/e_acosh.c", 41 "upstream-freebsd/lib/msun/src/e_acoshf.c", 42 "upstream-freebsd/lib/msun/src/e_asin.c", 43 "upstream-freebsd/lib/msun/src/e_asinf.c", 44 "upstream-freebsd/lib/msun/src/e_atan2.c", 45 "upstream-freebsd/lib/msun/src/e_atan2f.c", 46 "upstream-freebsd/lib/msun/src/e_atanh.c", 47 "upstream-freebsd/lib/msun/src/e_atanhf.c", 48 "upstream-freebsd/lib/msun/src/e_cosh.c", 49 "upstream-freebsd/lib/msun/src/e_coshf.c", 50 "upstream-freebsd/lib/msun/src/e_fmod.c", 51 "upstream-freebsd/lib/msun/src/e_fmodf.c", 52 "upstream-freebsd/lib/msun/src/e_gamma.c", 53 "upstream-freebsd/lib/msun/src/e_gammaf.c", 54 "upstream-freebsd/lib/msun/src/e_gammaf_r.c", 55 "upstream-freebsd/lib/msun/src/e_gamma_r.c", 56 "upstream-freebsd/lib/msun/src/e_hypot.c", 57 "upstream-freebsd/lib/msun/src/e_hypotf.c", 58 "upstream-freebsd/lib/msun/src/e_j0.c", 59 "upstream-freebsd/lib/msun/src/e_j0f.c", 60 "upstream-freebsd/lib/msun/src/e_j1.c", 61 "upstream-freebsd/lib/msun/src/e_j1f.c", 62 "upstream-freebsd/lib/msun/src/e_jn.c", 63 "upstream-freebsd/lib/msun/src/e_jnf.c", 64 "upstream-freebsd/lib/msun/src/e_lgamma.c", 65 "upstream-freebsd/lib/msun/src/e_lgammaf.c", 66 "upstream-freebsd/lib/msun/src/e_lgammaf_r.c", 67 "upstream-freebsd/lib/msun/src/e_lgamma_r.c", 68 "upstream-freebsd/lib/msun/src/e_log10.c", 69 "upstream-freebsd/lib/msun/src/e_log10f.c", 70 "upstream-freebsd/lib/msun/src/e_remainder.c", 71 "upstream-freebsd/lib/msun/src/e_remainderf.c", 72 "upstream-freebsd/lib/msun/src/e_rem_pio2.c", 73 "upstream-freebsd/lib/msun/src/e_rem_pio2f.c", 74 "upstream-freebsd/lib/msun/src/e_scalb.c", 75 "upstream-freebsd/lib/msun/src/e_scalbf.c", 76 "upstream-freebsd/lib/msun/src/e_sinh.c", 77 "upstream-freebsd/lib/msun/src/e_sinhf.c", 78 "upstream-freebsd/lib/msun/src/e_sqrt.c", 79 "upstream-freebsd/lib/msun/src/e_sqrtf.c", 80 "upstream-freebsd/lib/msun/src/k_cos.c", 81 "upstream-freebsd/lib/msun/src/k_cosf.c", 82 "upstream-freebsd/lib/msun/src/k_exp.c", 83 "upstream-freebsd/lib/msun/src/k_expf.c", 84 "upstream-freebsd/lib/msun/src/k_rem_pio2.c", 85 "upstream-freebsd/lib/msun/src/k_sin.c", 86 "upstream-freebsd/lib/msun/src/k_sinf.c", 87 "upstream-freebsd/lib/msun/src/k_tan.c", 88 "upstream-freebsd/lib/msun/src/k_tanf.c", 89 "upstream-freebsd/lib/msun/src/s_asinh.c", 90 "upstream-freebsd/lib/msun/src/s_asinhf.c", 91 "upstream-freebsd/lib/msun/src/s_atan.c", 92 "upstream-freebsd/lib/msun/src/s_atanf.c", 93 "upstream-freebsd/lib/msun/src/s_carg.c", 94 "upstream-freebsd/lib/msun/src/s_cargf.c", 95 "upstream-freebsd/lib/msun/src/s_cargl.c", 96 "upstream-freebsd/lib/msun/src/s_cbrt.c", 97 "upstream-freebsd/lib/msun/src/s_cbrtf.c", 98 "upstream-freebsd/lib/msun/src/s_ccosh.c", 99 "upstream-freebsd/lib/msun/src/s_ccoshf.c", 100 "upstream-freebsd/lib/msun/src/s_ceil.c", 101 "upstream-freebsd/lib/msun/src/s_ceilf.c", 102 "upstream-freebsd/lib/msun/src/s_cexp.c", 103 "upstream-freebsd/lib/msun/src/s_cexpf.c", 104 "upstream-freebsd/lib/msun/src/s_cimag.c", 105 "upstream-freebsd/lib/msun/src/s_cimagf.c", 106 "upstream-freebsd/lib/msun/src/s_cimagl.c", 107 "upstream-freebsd/lib/msun/src/s_clog.c", 108 "upstream-freebsd/lib/msun/src/s_clogf.c", 109 "upstream-freebsd/lib/msun/src/s_conj.c", 110 "upstream-freebsd/lib/msun/src/s_conjf.c", 111 "upstream-freebsd/lib/msun/src/s_conjl.c", 112 "upstream-freebsd/lib/msun/src/s_copysign.c", 113 "upstream-freebsd/lib/msun/src/s_copysignf.c", 114 "upstream-freebsd/lib/msun/src/s_cos.c", 115 "upstream-freebsd/lib/msun/src/s_cpow.c", 116 "upstream-freebsd/lib/msun/src/s_cpowf.c", 117 "upstream-freebsd/lib/msun/src/s_cpowl.c", 118 "upstream-freebsd/lib/msun/src/s_cproj.c", 119 "upstream-freebsd/lib/msun/src/s_cprojf.c", 120 "upstream-freebsd/lib/msun/src/s_cprojl.c", 121 "upstream-freebsd/lib/msun/src/s_creal.c", 122 "upstream-freebsd/lib/msun/src/s_crealf.c", 123 "upstream-freebsd/lib/msun/src/s_creall.c", 124 "upstream-freebsd/lib/msun/src/s_csinh.c", 125 "upstream-freebsd/lib/msun/src/s_csinhf.c", 126 "upstream-freebsd/lib/msun/src/s_csqrt.c", 127 "upstream-freebsd/lib/msun/src/s_csqrtf.c", 128 "upstream-freebsd/lib/msun/src/s_ctanh.c", 129 "upstream-freebsd/lib/msun/src/s_ctanhf.c", 130 "upstream-freebsd/lib/msun/src/s_erf.c", 131 "upstream-freebsd/lib/msun/src/s_erff.c", 132 "upstream-freebsd/lib/msun/src/s_expm1.c", 133 "upstream-freebsd/lib/msun/src/s_expm1f.c", 134 "upstream-freebsd/lib/msun/src/s_fdim.c", 135 "upstream-freebsd/lib/msun/src/s_finite.c", 136 "upstream-freebsd/lib/msun/src/s_finitef.c", 137 "upstream-freebsd/lib/msun/src/s_floor.c", 138 "upstream-freebsd/lib/msun/src/s_floorf.c", 139 "upstream-freebsd/lib/msun/src/s_fma.c", 140 "upstream-freebsd/lib/msun/src/s_fmaf.c", 141 "upstream-freebsd/lib/msun/src/s_fmax.c", 142 "upstream-freebsd/lib/msun/src/s_fmaxf.c", 143 "upstream-freebsd/lib/msun/src/s_fmin.c", 144 "upstream-freebsd/lib/msun/src/s_fminf.c", 145 "upstream-freebsd/lib/msun/src/s_frexp.c", 146 "upstream-freebsd/lib/msun/src/s_frexpf.c", 147 "upstream-freebsd/lib/msun/src/s_ilogb.c", 148 "upstream-freebsd/lib/msun/src/s_ilogbf.c", 149 "upstream-freebsd/lib/msun/src/s_llrint.c", 150 "upstream-freebsd/lib/msun/src/s_llrintf.c", 151 "upstream-freebsd/lib/msun/src/s_llround.c", 152 "upstream-freebsd/lib/msun/src/s_llroundf.c", 153 "upstream-freebsd/lib/msun/src/s_log1p.c", 154 "upstream-freebsd/lib/msun/src/s_log1pf.c", 155 "upstream-freebsd/lib/msun/src/s_logb.c", 156 "upstream-freebsd/lib/msun/src/s_logbf.c", 157 "upstream-freebsd/lib/msun/src/s_lrint.c", 158 "upstream-freebsd/lib/msun/src/s_lrintf.c", 159 "upstream-freebsd/lib/msun/src/s_lround.c", 160 "upstream-freebsd/lib/msun/src/s_lroundf.c", 161 "upstream-freebsd/lib/msun/src/s_modf.c", 162 "upstream-freebsd/lib/msun/src/s_modff.c", 163 "upstream-freebsd/lib/msun/src/s_nan.c", 164 "upstream-freebsd/lib/msun/src/s_nearbyint.c", 165 "upstream-freebsd/lib/msun/src/s_nextafter.c", 166 "upstream-freebsd/lib/msun/src/s_nextafterf.c", 167 "upstream-freebsd/lib/msun/src/s_remquo.c", 168 "upstream-freebsd/lib/msun/src/s_remquof.c", 169 "upstream-freebsd/lib/msun/src/s_rint.c", 170 "upstream-freebsd/lib/msun/src/s_rintf.c", 171 "upstream-freebsd/lib/msun/src/s_round.c", 172 "upstream-freebsd/lib/msun/src/s_roundf.c", 173 "upstream-freebsd/lib/msun/src/s_scalbln.c", 174 "upstream-freebsd/lib/msun/src/s_scalbn.c", 175 "upstream-freebsd/lib/msun/src/s_scalbnf.c", 176 "upstream-freebsd/lib/msun/src/s_signgam.c", 177 "upstream-freebsd/lib/msun/src/s_significand.c", 178 "upstream-freebsd/lib/msun/src/s_significandf.c", 179 "upstream-freebsd/lib/msun/src/s_sin.c", 180 "upstream-freebsd/lib/msun/src/s_sincos.c", 181 "upstream-freebsd/lib/msun/src/s_tan.c", 182 "upstream-freebsd/lib/msun/src/s_tanf.c", 183 "upstream-freebsd/lib/msun/src/s_tanh.c", 184 "upstream-freebsd/lib/msun/src/s_tanhf.c", 185 "upstream-freebsd/lib/msun/src/s_tgammaf.c", 186 "upstream-freebsd/lib/msun/src/s_trunc.c", 187 "upstream-freebsd/lib/msun/src/s_truncf.c", 188 "upstream-freebsd/lib/msun/src/w_cabs.c", 189 "upstream-freebsd/lib/msun/src/w_cabsf.c", 190 "upstream-freebsd/lib/msun/src/w_cabsl.c", 191 "upstream-freebsd/lib/msun/src/w_drem.c", 192 "upstream-freebsd/lib/msun/src/w_dremf.c", 193 194 // The FreeBSD complex functions appear to be better, but they're incomplete. 195 // We take the FreeBSD implementations when they exist, but fill out the rest 196 // of <complex.h> from NetBSD... 197 "upstream-netbsd/lib/libm/complex/ccoshl.c", 198 "upstream-netbsd/lib/libm/complex/ccosl.c", 199 "upstream-netbsd/lib/libm/complex/cephes_subrl.c", 200 "upstream-netbsd/lib/libm/complex/cexpl.c", 201 "upstream-netbsd/lib/libm/complex/csinhl.c", 202 "upstream-netbsd/lib/libm/complex/csinl.c", 203 "upstream-netbsd/lib/libm/complex/ctanhl.c", 204 "upstream-netbsd/lib/libm/complex/ctanl.c", 205 206 // TODO: this comes from from upstream's libc, not libm, but it's an 207 // implementation detail that should have hidden visibility, so it needs 208 // to be in whatever library the math code is in. 209 "digittoint.c", 210 211 // Functionality not in the BSDs. 212 "significandl.c", 213 "fake_long_double.c", 214 215 // Home-grown stuff. 216 "builtins.cpp", 217 "signbit.cpp", 218 ], 219 220 multilib: { 221 lib64: { 222 srcs: [ 223 "upstream-freebsd/lib/msun/src/catrigl.c", 224 "upstream-freebsd/lib/msun/src/e_acosl.c", 225 "upstream-freebsd/lib/msun/src/e_acoshl.c", 226 "upstream-freebsd/lib/msun/src/e_asinl.c", 227 "upstream-freebsd/lib/msun/src/e_atan2l.c", 228 "upstream-freebsd/lib/msun/src/e_atanhl.c", 229 "upstream-freebsd/lib/msun/src/e_fmodl.c", 230 "upstream-freebsd/lib/msun/src/e_hypotl.c", 231 "upstream-freebsd/lib/msun/src/e_lgammal.c", 232 "upstream-freebsd/lib/msun/src/e_remainderl.c", 233 "upstream-freebsd/lib/msun/src/e_sqrtl.c", 234 "upstream-freebsd/lib/msun/src/s_asinhl.c", 235 "upstream-freebsd/lib/msun/src/s_atanl.c", 236 "upstream-freebsd/lib/msun/src/s_cbrtl.c", 237 "upstream-freebsd/lib/msun/src/s_ceill.c", 238 "upstream-freebsd/lib/msun/src/s_clogl.c", 239 "upstream-freebsd/lib/msun/src/s_copysignl.c", 240 "upstream-freebsd/lib/msun/src/e_coshl.c", 241 "upstream-freebsd/lib/msun/src/s_cosl.c", 242 "upstream-freebsd/lib/msun/src/s_csqrtl.c", 243 "upstream-freebsd/lib/msun/src/s_floorl.c", 244 "upstream-freebsd/lib/msun/src/s_fmal.c", 245 "upstream-freebsd/lib/msun/src/s_fmaxl.c", 246 "upstream-freebsd/lib/msun/src/s_fminl.c", 247 "upstream-freebsd/lib/msun/src/s_modfl.c", 248 "upstream-freebsd/lib/msun/src/s_frexpl.c", 249 "upstream-freebsd/lib/msun/src/s_ilogbl.c", 250 "upstream-freebsd/lib/msun/src/s_llrintl.c", 251 "upstream-freebsd/lib/msun/src/s_llroundl.c", 252 "upstream-freebsd/lib/msun/src/s_logbl.c", 253 "upstream-freebsd/lib/msun/src/s_lrintl.c", 254 "upstream-freebsd/lib/msun/src/s_lroundl.c", 255 "upstream-freebsd/lib/msun/src/s_nextafterl.c", 256 "upstream-freebsd/lib/msun/src/s_nexttoward.c", 257 "upstream-freebsd/lib/msun/src/s_nexttowardf.c", 258 "upstream-freebsd/lib/msun/src/s_remquol.c", 259 "upstream-freebsd/lib/msun/src/s_rintl.c", 260 "upstream-freebsd/lib/msun/src/s_roundl.c", 261 "upstream-freebsd/lib/msun/src/s_scalbnl.c", 262 "upstream-freebsd/lib/msun/src/s_sincosl.c", 263 "upstream-freebsd/lib/msun/src/e_sinhl.c", 264 "upstream-freebsd/lib/msun/src/s_sinl.c", 265 "upstream-freebsd/lib/msun/src/s_tanhl.c", 266 "upstream-freebsd/lib/msun/src/s_tanl.c", 267 "upstream-freebsd/lib/msun/src/s_truncl.c", 268 269 "upstream-freebsd/lib/msun/ld128/invtrig.c", 270 "upstream-freebsd/lib/msun/ld128/e_lgammal_r.c", 271 "upstream-freebsd/lib/msun/ld128/e_powl.c", 272 "upstream-freebsd/lib/msun/ld128/k_cosl.c", 273 "upstream-freebsd/lib/msun/ld128/k_sinl.c", 274 "upstream-freebsd/lib/msun/ld128/k_tanl.c", 275 "upstream-freebsd/lib/msun/ld128/s_erfl.c", 276 "upstream-freebsd/lib/msun/ld128/s_exp2l.c", 277 "upstream-freebsd/lib/msun/ld128/s_expl.c", 278 "upstream-freebsd/lib/msun/ld128/s_logl.c", 279 "upstream-freebsd/lib/msun/ld128/s_nanl.c", 280 ], 281 local_include_dirs: ["upstream-freebsd/lib/msun/ld128/"], 282 }, 283 }, 284 285 // arch-specific settings 286 arch: { 287 arm: { 288 srcs: [ 289 "arm/fenv.c", 290 ], 291 neon: { 292 srcs: [ 293 "arm/sqrt.S", 294 "arm/floor.S", 295 ], 296 297 exclude_srcs: [ 298 "upstream-freebsd/lib/msun/src/e_sqrt.c", 299 "upstream-freebsd/lib/msun/src/e_sqrtf.c", 300 "upstream-freebsd/lib/msun/src/s_floor.c", 301 ], 302 }, 303 instruction_set: "arm", 304 pack_relocations: false, 305 ldflags: ["-Wl,--hash-style=both"], 306 version_script: ":libm.arm.map", 307 no_libcrt: true, 308 shared: { 309 // For backwards-compatibility, some arm32 builtins are exported from libm.so. 310 static_libs: ["libclang_rt.builtins-arm-android-exported"], 311 }, 312 }, 313 314 arm64: { 315 srcs: [ 316 "arm64/fenv.c", 317 "arm64/lrint.S", 318 "arm64/sqrt.S", 319 ], 320 exclude_srcs: [ 321 "upstream-freebsd/lib/msun/src/e_sqrt.c", 322 "upstream-freebsd/lib/msun/src/e_sqrtf.c", 323 "upstream-freebsd/lib/msun/src/s_ceil.c", 324 "upstream-freebsd/lib/msun/src/s_ceilf.c", 325 "upstream-freebsd/lib/msun/src/s_floor.c", 326 "upstream-freebsd/lib/msun/src/s_floorf.c", 327 "upstream-freebsd/lib/msun/src/s_fma.c", 328 "upstream-freebsd/lib/msun/src/s_fmaf.c", 329 "upstream-freebsd/lib/msun/src/s_fmax.c", 330 "upstream-freebsd/lib/msun/src/s_fmaxf.c", 331 "upstream-freebsd/lib/msun/src/s_fmin.c", 332 "upstream-freebsd/lib/msun/src/s_fminf.c", 333 "upstream-freebsd/lib/msun/src/s_llrint.c", 334 "upstream-freebsd/lib/msun/src/s_llrintf.c", 335 "upstream-freebsd/lib/msun/src/s_lrint.c", 336 "upstream-freebsd/lib/msun/src/s_lrintf.c", 337 "upstream-freebsd/lib/msun/src/s_rint.c", 338 "upstream-freebsd/lib/msun/src/s_rintf.c", 339 "upstream-freebsd/lib/msun/src/s_round.c", 340 "upstream-freebsd/lib/msun/src/s_roundf.c", 341 "upstream-freebsd/lib/msun/src/s_trunc.c", 342 "upstream-freebsd/lib/msun/src/s_truncf.c", 343 ], 344 version_script: ":libm.arm64.map", 345 }, 346 347 x86: { 348 srcs: [ 349 "i387/fenv.c", 350 "x86/ceil.S", 351 "x86/ceilf.S", 352 "x86/floor.S", 353 "x86/floorf.S", 354 "x86/rint.S", 355 "x86/rintf.S", 356 "x86/sqrt.S", 357 "x86/sqrtf.S", 358 "x86/trunc.S", 359 "x86/truncf.S", 360 "x86/e_acos.S", 361 "x86/e_asin.S", 362 "x86/e_atan2.S", 363 "x86/e_cosh.S", 364 "x86/e_hypot.S", 365 "x86/e_log10.S", 366 "x86/e_sinh.S", 367 "x86/libm_reduce_pi04l.S", 368 "x86/libm_sincos_huge.S", 369 "x86/libm_tancot_huge.S", 370 "x86/lrint.S", 371 "x86/lrintf.S", 372 "x86/s_atan.S", 373 "x86/s_cbrt.S", 374 "x86/s_cos.S", 375 "x86/s_expm1.S", 376 "x86/s_log1p.S", 377 "x86/s_sin.S", 378 "x86/s_tanh.S", 379 "x86/s_tan.S", 380 ], 381 exclude_srcs: [ 382 "upstream-freebsd/lib/msun/src/e_acos.c", 383 "upstream-freebsd/lib/msun/src/e_asin.c", 384 "upstream-freebsd/lib/msun/src/e_atan2.c", 385 "upstream-freebsd/lib/msun/src/e_cosh.c", 386 "upstream-freebsd/lib/msun/src/e_hypot.c", 387 "upstream-freebsd/lib/msun/src/e_log10.c", 388 "upstream-freebsd/lib/msun/src/e_sinh.c", 389 "upstream-freebsd/lib/msun/src/e_sqrt.c", 390 "upstream-freebsd/lib/msun/src/e_sqrtf.c", 391 "upstream-freebsd/lib/msun/src/s_atan.c", 392 "upstream-freebsd/lib/msun/src/s_cbrt.c", 393 "upstream-freebsd/lib/msun/src/s_ceil.c", 394 "upstream-freebsd/lib/msun/src/s_ceilf.c", 395 "upstream-freebsd/lib/msun/src/s_cos.c", 396 "upstream-freebsd/lib/msun/src/s_expm1.c", 397 "upstream-freebsd/lib/msun/src/s_floor.c", 398 "upstream-freebsd/lib/msun/src/s_floorf.c", 399 "upstream-freebsd/lib/msun/src/s_log1p.c", 400 "upstream-freebsd/lib/msun/src/s_lrint.c", 401 "upstream-freebsd/lib/msun/src/s_lrintf.c", 402 "upstream-freebsd/lib/msun/src/s_rint.c", 403 "upstream-freebsd/lib/msun/src/s_rintf.c", 404 "upstream-freebsd/lib/msun/src/s_sin.c", 405 "upstream-freebsd/lib/msun/src/s_tan.c", 406 "upstream-freebsd/lib/msun/src/s_tanh.c", 407 "upstream-freebsd/lib/msun/src/s_trunc.c", 408 "upstream-freebsd/lib/msun/src/s_truncf.c", 409 ], 410 local_include_dirs: ["i387"], 411 pack_relocations: false, 412 ldflags: ["-Wl,--hash-style=both"], 413 version_script: ":libm.x86.map", 414 }, 415 416 x86_64: { 417 srcs: [ 418 "amd64/fenv.c", 419 "x86_64/ceil.S", 420 "x86_64/ceilf.S", 421 "x86_64/floor.S", 422 "x86_64/floorf.S", 423 "x86_64/rint.S", 424 "x86_64/rintf.S", 425 "x86_64/sqrt.S", 426 "x86_64/sqrtf.S", 427 "x86_64/trunc.S", 428 "x86_64/truncf.S", 429 "x86_64/e_acos.S", 430 "x86_64/e_asin.S", 431 "x86_64/e_atan2.S", 432 "x86_64/e_cosh.S", 433 "x86_64/e_hypot.S", 434 "x86_64/e_log10.S", 435 "x86_64/e_sinh.S", 436 "x86_64/lrint.S", 437 "x86_64/lrintf.S", 438 "x86_64/s_atan.S", 439 "x86_64/s_cbrt.S", 440 "x86_64/s_cos.S", 441 "x86_64/s_expm1.S", 442 "x86_64/s_log1p.S", 443 "x86_64/s_sin.S", 444 "x86_64/s_tanh.S", 445 "x86_64/s_tan.S", 446 ], 447 exclude_srcs: [ 448 "upstream-freebsd/lib/msun/src/e_acos.c", 449 "upstream-freebsd/lib/msun/src/e_asin.c", 450 "upstream-freebsd/lib/msun/src/e_atan2.c", 451 "upstream-freebsd/lib/msun/src/e_cosh.c", 452 "upstream-freebsd/lib/msun/src/e_hypot.c", 453 "upstream-freebsd/lib/msun/src/e_log10.c", 454 "upstream-freebsd/lib/msun/src/e_sinh.c", 455 "upstream-freebsd/lib/msun/src/e_sqrt.c", 456 "upstream-freebsd/lib/msun/src/e_sqrtf.c", 457 "upstream-freebsd/lib/msun/src/s_atan.c", 458 "upstream-freebsd/lib/msun/src/s_cbrt.c", 459 "upstream-freebsd/lib/msun/src/s_ceil.c", 460 "upstream-freebsd/lib/msun/src/s_ceilf.c", 461 "upstream-freebsd/lib/msun/src/s_cos.c", 462 "upstream-freebsd/lib/msun/src/s_expm1.c", 463 "upstream-freebsd/lib/msun/src/s_floor.c", 464 "upstream-freebsd/lib/msun/src/s_floorf.c", 465 "upstream-freebsd/lib/msun/src/s_log1p.c", 466 "upstream-freebsd/lib/msun/src/s_llrint.c", 467 "upstream-freebsd/lib/msun/src/s_llrintf.c", 468 "upstream-freebsd/lib/msun/src/s_lrint.c", 469 "upstream-freebsd/lib/msun/src/s_lrintf.c", 470 "upstream-freebsd/lib/msun/src/s_rint.c", 471 "upstream-freebsd/lib/msun/src/s_rintf.c", 472 "upstream-freebsd/lib/msun/src/s_sin.c", 473 "upstream-freebsd/lib/msun/src/s_tan.c", 474 "upstream-freebsd/lib/msun/src/s_tanh.c", 475 "upstream-freebsd/lib/msun/src/s_trunc.c", 476 "upstream-freebsd/lib/msun/src/s_truncf.c", 477 ], 478 version_script: ":libm.x86_64.map", 479 }, 480 }, 481 482 local_include_dirs: [ 483 "upstream-freebsd/android/include/", 484 "upstream-freebsd/lib/msun/src/", 485 ], 486 487 cflags: [ 488 "-D__BIONIC_LP32_USE_LONG_DOUBLE", 489 "-D_BSD_SOURCE", 490 "-DFLT_EVAL_METHOD=0", 491 "-include freebsd-compat.h", 492 "-fno-math-errno", 493 "-Wall", 494 "-Werror", 495 "-Wno-ignored-pragmas", 496 "-Wno-missing-braces", 497 "-Wno-parentheses", 498 "-Wno-sign-compare", 499 "-Wno-unknown-pragmas", 500 "-Wno-unused-const-variable", 501 "-Wno-unused-variable", 502 ], 503 504 ldflags: [ 505 "-Wl,--Bsymbolic-functions", 506 ], 507 508 // b/120614316, non-critical readibility check 509 tidy_checks: ["-cert-dcl16-c"], 510 511 include_dirs: ["bionic/libc"], 512 system_shared_libs: ["libc"], 513 514 sanitize: { 515 address: false, 516 fuzzer: false, 517 integer_overflow: false, 518 }, 519 stl: "none", 520 native_bridge_supported: true, 521 522 stubs: { 523 symbol_file: "libm.map.txt", 524 versions: [ 525 "29", 526 "current", 527 ], 528 }, 529 530 llndk: { 531 symbol_file: "libm.map.txt", 532 }, 533 534 apex_available: [ 535 "//apex_available:platform", 536 "com.android.runtime", 537 ], 538 539 lto: { 540 never: true, 541 }, 542} 543 544ndk_library { 545 name: "libm", 546 symbol_file: "libm.map.txt", 547 first_version: "9", 548} 549 550genrule { 551 name: "libm.arm.map", 552 out: ["libm.arm.map"], 553 srcs: ["libm.map.txt"], 554 tool_files: [":bionic-generate-version-script"], 555 cmd: "$(location :bionic-generate-version-script) arm $(in) $(out)", 556} 557 558genrule { 559 name: "libm.arm64.map", 560 out: ["libm.arm64.map"], 561 srcs: ["libm.map.txt"], 562 tool_files: [":bionic-generate-version-script"], 563 cmd: "$(location :bionic-generate-version-script) arm64 $(in) $(out)", 564} 565 566genrule { 567 name: "libm.x86.map", 568 out: ["libm.x86.map"], 569 srcs: ["libm.map.txt"], 570 tool_files: [":bionic-generate-version-script"], 571 cmd: "$(location :bionic-generate-version-script) x86 $(in) $(out)", 572} 573 574genrule { 575 name: "libm.x86_64.map", 576 out: ["libm.x86_64.map"], 577 srcs: ["libm.map.txt"], 578 tool_files: [":bionic-generate-version-script"], 579 cmd: "$(location :bionic-generate-version-script) x86_64 $(in) $(out)", 580} 581