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