1*1e651e1eSRoland Levillain// Copyright (C) 2007 The Android Open Source Project 2*1e651e1eSRoland Levillain// 3*1e651e1eSRoland Levillain// Licensed under the Apache License, Version 2.0 (the "License"); 4*1e651e1eSRoland Levillain// you may not use this file except in compliance with the License. 5*1e651e1eSRoland Levillain// You may obtain a copy of the License at 6*1e651e1eSRoland Levillain// 7*1e651e1eSRoland Levillain// http://www.apache.org/licenses/LICENSE-2.0 8*1e651e1eSRoland Levillain// 9*1e651e1eSRoland Levillain// Unless required by applicable law or agreed to in writing, software 10*1e651e1eSRoland Levillain// distributed under the License is distributed on an "AS IS" BASIS, 11*1e651e1eSRoland Levillain// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*1e651e1eSRoland Levillain// See the License for the specific language governing permissions and 13*1e651e1eSRoland Levillain// limitations under the License. 14*1e651e1eSRoland Levillain 15*1e651e1eSRoland Levillainpackage { 16*1e651e1eSRoland Levillain default_applicable_licenses: ["external_fdlibm_license"], 17*1e651e1eSRoland Levillain} 18*1e651e1eSRoland Levillain 19*1e651e1eSRoland Levillain// Added automatically by a large-scale-change 20*1e651e1eSRoland Levillainlicense { 21*1e651e1eSRoland Levillain name: "external_fdlibm_license", 22*1e651e1eSRoland Levillain visibility: [":__subpackages__"], 23*1e651e1eSRoland Levillain license_kinds: [ 24*1e651e1eSRoland Levillain "SPDX-license-identifier-BSD", 25*1e651e1eSRoland Levillain ], 26*1e651e1eSRoland Levillain license_text: [ 27*1e651e1eSRoland Levillain "NOTICE", 28*1e651e1eSRoland Levillain ], 29*1e651e1eSRoland Levillain} 30*1e651e1eSRoland Levillain 31*1e651e1eSRoland Levillaincc_library_static { 32*1e651e1eSRoland Levillain name: "libfdlibm", 33*1e651e1eSRoland Levillain host_supported: true, 34*1e651e1eSRoland Levillain 35*1e651e1eSRoland Levillain srcs: [ 36*1e651e1eSRoland Levillain "k_standard.c", 37*1e651e1eSRoland Levillain "k_rem_pio2.c", 38*1e651e1eSRoland Levillain "k_cos.c", 39*1e651e1eSRoland Levillain "k_sin.c", 40*1e651e1eSRoland Levillain "k_tan.c", 41*1e651e1eSRoland Levillain "e_acos.c", 42*1e651e1eSRoland Levillain "e_acosh.c", 43*1e651e1eSRoland Levillain "e_asin.c", 44*1e651e1eSRoland Levillain "e_atan2.c", 45*1e651e1eSRoland Levillain "e_atanh.c", 46*1e651e1eSRoland Levillain "e_cosh.c", 47*1e651e1eSRoland Levillain "e_exp.c", 48*1e651e1eSRoland Levillain "e_fmod.c", 49*1e651e1eSRoland Levillain "e_gamma.c", 50*1e651e1eSRoland Levillain "e_gamma_r.c", 51*1e651e1eSRoland Levillain "e_hypot.c", 52*1e651e1eSRoland Levillain "e_j0.c", 53*1e651e1eSRoland Levillain "e_j1.c", 54*1e651e1eSRoland Levillain "e_jn.c", 55*1e651e1eSRoland Levillain "e_lgamma.c", 56*1e651e1eSRoland Levillain "e_lgamma_r.c", 57*1e651e1eSRoland Levillain "e_log.c", 58*1e651e1eSRoland Levillain "e_log10.c", 59*1e651e1eSRoland Levillain "e_pow.c", 60*1e651e1eSRoland Levillain "e_rem_pio2.c", 61*1e651e1eSRoland Levillain "e_remainder.c", 62*1e651e1eSRoland Levillain "e_scalb.c", 63*1e651e1eSRoland Levillain "e_sinh.c", 64*1e651e1eSRoland Levillain "e_sqrt.c", 65*1e651e1eSRoland Levillain "w_acos.c", 66*1e651e1eSRoland Levillain "w_acosh.c", 67*1e651e1eSRoland Levillain "w_asin.c", 68*1e651e1eSRoland Levillain "w_atan2.c", 69*1e651e1eSRoland Levillain "w_atanh.c", 70*1e651e1eSRoland Levillain "w_cosh.c", 71*1e651e1eSRoland Levillain "w_exp.c", 72*1e651e1eSRoland Levillain "w_fmod.c", 73*1e651e1eSRoland Levillain "w_gamma.c", 74*1e651e1eSRoland Levillain "w_gamma_r.c", 75*1e651e1eSRoland Levillain "w_hypot.c", 76*1e651e1eSRoland Levillain "w_j0.c", 77*1e651e1eSRoland Levillain "w_j1.c", 78*1e651e1eSRoland Levillain "w_jn.c", 79*1e651e1eSRoland Levillain "w_lgamma.c", 80*1e651e1eSRoland Levillain "w_lgamma_r.c", 81*1e651e1eSRoland Levillain "w_log.c", 82*1e651e1eSRoland Levillain "w_log10.c", 83*1e651e1eSRoland Levillain "w_pow.c", 84*1e651e1eSRoland Levillain "w_remainder.c", 85*1e651e1eSRoland Levillain "w_scalb.c", 86*1e651e1eSRoland Levillain "w_sinh.c", 87*1e651e1eSRoland Levillain "w_sqrt.c", 88*1e651e1eSRoland Levillain "s_asinh.c", 89*1e651e1eSRoland Levillain "s_atan.c", 90*1e651e1eSRoland Levillain "s_cbrt.c", 91*1e651e1eSRoland Levillain "s_ceil.c", 92*1e651e1eSRoland Levillain "s_copysign.c", 93*1e651e1eSRoland Levillain "s_cos.c", 94*1e651e1eSRoland Levillain "s_erf.c", 95*1e651e1eSRoland Levillain "s_expm1.c", 96*1e651e1eSRoland Levillain "s_fabs.c", 97*1e651e1eSRoland Levillain "s_finite.c", 98*1e651e1eSRoland Levillain "s_floor.c", 99*1e651e1eSRoland Levillain "s_frexp.c", 100*1e651e1eSRoland Levillain "s_ilogb.c", 101*1e651e1eSRoland Levillain "s_isnan.c", 102*1e651e1eSRoland Levillain "s_ldexp.c", 103*1e651e1eSRoland Levillain "s_lib_version.c", 104*1e651e1eSRoland Levillain "s_log1p.c", 105*1e651e1eSRoland Levillain "s_logb.c", 106*1e651e1eSRoland Levillain "s_matherr.c", 107*1e651e1eSRoland Levillain "s_modf.c", 108*1e651e1eSRoland Levillain "s_nextafter.c", 109*1e651e1eSRoland Levillain "s_rint.c", 110*1e651e1eSRoland Levillain "s_scalbn.c", 111*1e651e1eSRoland Levillain "s_signgam.c", 112*1e651e1eSRoland Levillain "s_significand.c", 113*1e651e1eSRoland Levillain "s_sin.c", 114*1e651e1eSRoland Levillain "s_tan.c", 115*1e651e1eSRoland Levillain "s_tanh.c", 116*1e651e1eSRoland Levillain ], 117*1e651e1eSRoland Levillain 118*1e651e1eSRoland Levillain // c99 specifies a less relaxed floating point model that does not 119*1e651e1eSRoland Levillain // enable floating point expession contraction (e.g: fused multiply-add 120*1e651e1eSRoland Levillain // operations). 121*1e651e1eSRoland Levillain c_std: "c99", 122*1e651e1eSRoland Levillain 123*1e651e1eSRoland Levillain cflags: [ 124*1e651e1eSRoland Levillain // This is necessary to guarantee that the FDLIBM functions are in 125*1e651e1eSRoland Levillain // "IEEE spirit", i.e. to guarantee that the IEEE 754 core functions 126*1e651e1eSRoland Levillain // are used. 127*1e651e1eSRoland Levillain "-D_IEEE_LIBM", 128*1e651e1eSRoland Levillain 129*1e651e1eSRoland Levillain // Android only supports little-endian. 130*1e651e1eSRoland Levillain "-D__LITTLE_ENDIAN", 131*1e651e1eSRoland Levillain 132*1e651e1eSRoland Levillain // Disable compiler optimizations that interact badly with this crufty 133*1e651e1eSRoland Levillain // library (see their own admission in 'readme'). Without this, we 134*1e651e1eSRoland Levillain // fail StrictMath tests on x86. 135*1e651e1eSRoland Levillain "-fno-strict-aliasing", 136*1e651e1eSRoland Levillain 137*1e651e1eSRoland Levillain // Disable warnings. We need a specific version of fdlibm and can't fix this upstream. 138*1e651e1eSRoland Levillain "-Werror", 139*1e651e1eSRoland Levillain "-Wno-sign-compare", 140*1e651e1eSRoland Levillain "-Wno-dangling-else", 141*1e651e1eSRoland Levillain "-Wno-unknown-pragmas", 142*1e651e1eSRoland Levillain 143*1e651e1eSRoland Levillain "-Wno-dangling-else", 144*1e651e1eSRoland Levillain "-Wno-logical-op-parentheses", 145*1e651e1eSRoland Levillain "-Wno-sometimes-uninitialized", 146*1e651e1eSRoland Levillain ], 147*1e651e1eSRoland Levillain 148*1e651e1eSRoland Levillain apex_available: [ 149*1e651e1eSRoland Levillain "com.android.art", 150*1e651e1eSRoland Levillain "com.android.art.debug", 151*1e651e1eSRoland Levillain ], 152*1e651e1eSRoland Levillain min_sdk_version: "S", 153*1e651e1eSRoland Levillain} 154