blob: aa75e58ea0c3d84558d25b4d26f376309a16bbaf [file] [log] [blame]
// Copyright (C) 2007 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
cc_library_static {
name: "libfdlibm",
host_supported: true,
srcs: [
"k_standard.c",
"k_rem_pio2.c",
"k_cos.c",
"k_sin.c",
"k_tan.c",
"e_acos.c",
"e_acosh.c",
"e_asin.c",
"e_atan2.c",
"e_atanh.c",
"e_cosh.c",
"e_exp.c",
"e_fmod.c",
"e_gamma.c",
"e_gamma_r.c",
"e_hypot.c",
"e_j0.c",
"e_j1.c",
"e_jn.c",
"e_lgamma.c",
"e_lgamma_r.c",
"e_log.c",
"e_log10.c",
"e_pow.c",
"e_rem_pio2.c",
"e_remainder.c",
"e_scalb.c",
"e_sinh.c",
"e_sqrt.c",
"w_acos.c",
"w_acosh.c",
"w_asin.c",
"w_atan2.c",
"w_atanh.c",
"w_cosh.c",
"w_exp.c",
"w_fmod.c",
"w_gamma.c",
"w_gamma_r.c",
"w_hypot.c",
"w_j0.c",
"w_j1.c",
"w_jn.c",
"w_lgamma.c",
"w_lgamma_r.c",
"w_log.c",
"w_log10.c",
"w_pow.c",
"w_remainder.c",
"w_scalb.c",
"w_sinh.c",
"w_sqrt.c",
"s_asinh.c",
"s_atan.c",
"s_cbrt.c",
"s_ceil.c",
"s_copysign.c",
"s_cos.c",
"s_erf.c",
"s_expm1.c",
"s_fabs.c",
"s_finite.c",
"s_floor.c",
"s_frexp.c",
"s_ilogb.c",
"s_isnan.c",
"s_ldexp.c",
"s_lib_version.c",
"s_log1p.c",
"s_logb.c",
"s_matherr.c",
"s_modf.c",
"s_nextafter.c",
"s_rint.c",
"s_scalbn.c",
"s_signgam.c",
"s_significand.c",
"s_sin.c",
"s_tan.c",
"s_tanh.c",
],
// c99 specifies a less relaxed floating point model that does not
// enable floating point expession contraction (e.g: fused multiply-add
// operations).
c_std: "c99",
cflags: [
// This is necessary to guarantee that the FDLIBM functions are in
// "IEEE spirit", i.e. to guarantee that the IEEE 754 core functions
// are used.
"-D_IEEE_LIBM",
// Android only supports little-endian.
"-D__LITTLE_ENDIAN",
// Disable compiler optimizations that interact badly with this crufty
// library (see their own admission in 'readme'). Without this, we
// fail StrictMath tests on x86.
"-fno-strict-aliasing",
// Disable warnings. We need a specific version of fdlibm and can't fix this upstream.
"-Werror",
"-Wno-sign-compare",
"-Wno-dangling-else",
"-Wno-unknown-pragmas",
"-Wno-dangling-else",
"-Wno-logical-op-parentheses",
"-Wno-sometimes-uninitialized",
],
apex_available: [
"com.android.art.release",
"com.android.art.debug",
],
}