xref: /aosp_15_r20/external/compiler-rt/Android.bp (revision 7c3d14c8b49c529e04be81a3ce6f5cc23712e4c6)
1*7c3d14c8STreehugger Robot//
2*7c3d14c8STreehugger Robot// Copyright (C) 2012 The Android Open Source Project
3*7c3d14c8STreehugger Robot//
4*7c3d14c8STreehugger Robot// Licensed under the Apache License, Version 2.0 (the "License");
5*7c3d14c8STreehugger Robot// you may not use this file except in compliance with the License.
6*7c3d14c8STreehugger Robot// You may obtain a copy of the License at
7*7c3d14c8STreehugger Robot//
8*7c3d14c8STreehugger Robot//      http://www.apache.org/licenses/LICENSE-2.0
9*7c3d14c8STreehugger Robot//
10*7c3d14c8STreehugger Robot// Unless required by applicable law or agreed to in writing, software
11*7c3d14c8STreehugger Robot// distributed under the License is distributed on an "AS IS" BASIS,
12*7c3d14c8STreehugger Robot// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*7c3d14c8STreehugger Robot// See the License for the specific language governing permissions and
14*7c3d14c8STreehugger Robot// limitations under the License.
15*7c3d14c8STreehugger Robot//
16*7c3d14c8STreehugger Robot//
17*7c3d14c8STreehugger Robot
18*7c3d14c8STreehugger Robot//=====================================================================
19*7c3d14c8STreehugger Robot// Static Library: libcompiler_rt-extras
20*7c3d14c8STreehugger Robot//=====================================================================
21*7c3d14c8STreehugger Robot
22*7c3d14c8STreehugger Robotpackage {
23*7c3d14c8STreehugger Robot    default_applicable_licenses: ["external_compiler-rt_license"],
24*7c3d14c8STreehugger Robot}
25*7c3d14c8STreehugger Robot
26*7c3d14c8STreehugger Robot// Added automatically by a large-scale-change that took the approach of
27*7c3d14c8STreehugger Robot// 'apply every license found to every target'. While this makes sure we respect
28*7c3d14c8STreehugger Robot// every license restriction, it may not be entirely correct.
29*7c3d14c8STreehugger Robot//
30*7c3d14c8STreehugger Robot// e.g. GPL in an MIT project might only apply to the contrib/ directory.
31*7c3d14c8STreehugger Robot//
32*7c3d14c8STreehugger Robot// Please consider splitting the single license below into multiple licenses,
33*7c3d14c8STreehugger Robot// taking care not to lose any license_kind information, and overriding the
34*7c3d14c8STreehugger Robot// default license using the 'licenses: [...]' property on targets as needed.
35*7c3d14c8STreehugger Robot//
36*7c3d14c8STreehugger Robot// For unused files, consider creating a 'fileGroup' with "//visibility:private"
37*7c3d14c8STreehugger Robot// to attach the license to, and including a comment whether the files may be
38*7c3d14c8STreehugger Robot// used in the current project.
39*7c3d14c8STreehugger Robot//
40*7c3d14c8STreehugger Robot// large-scale-change included anything that looked like it might be a license
41*7c3d14c8STreehugger Robot// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
42*7c3d14c8STreehugger Robot//
43*7c3d14c8STreehugger Robot// Please consider removing redundant or irrelevant files from 'license_text:'.
44*7c3d14c8STreehugger Robot// See: http://go/android-license-faq
45*7c3d14c8STreehugger Robotlicense {
46*7c3d14c8STreehugger Robot    name: "external_compiler-rt_license",
47*7c3d14c8STreehugger Robot    visibility: [":__subpackages__"],
48*7c3d14c8STreehugger Robot    license_kinds: [
49*7c3d14c8STreehugger Robot        "SPDX-license-identifier-BSD",
50*7c3d14c8STreehugger Robot        "SPDX-license-identifier-MIT",
51*7c3d14c8STreehugger Robot        "SPDX-license-identifier-NCSA",
52*7c3d14c8STreehugger Robot        "legacy_unencumbered",
53*7c3d14c8STreehugger Robot    ],
54*7c3d14c8STreehugger Robot    license_text: [
55*7c3d14c8STreehugger Robot        "LICENSE.TXT",
56*7c3d14c8STreehugger Robot        "NOTICE",
57*7c3d14c8STreehugger Robot    ],
58*7c3d14c8STreehugger Robot}
59*7c3d14c8STreehugger Robot
60*7c3d14c8STreehugger Robotcc_library_static {
61*7c3d14c8STreehugger Robot    name: "libcompiler_rt-extras",
62*7c3d14c8STreehugger Robot    host_supported: true,
63*7c3d14c8STreehugger Robot    static_ndk_lib: true,
64*7c3d14c8STreehugger Robot    vendor_available: true,
65*7c3d14c8STreehugger Robot    recovery_available: true,
66*7c3d14c8STreehugger Robot    sdk_version: "minimum",
67*7c3d14c8STreehugger Robot    // The following list contains functions that are not available in libgcc.a, so
68*7c3d14c8STreehugger Robot    // we potentially need them when using a Clang-built component (e.g., -ftrapv
69*7c3d14c8STreehugger Robot    // with 64-bit integer multiplies. See http://llvm.org/bugs/show_bug.cgi?id=14469.)
70*7c3d14c8STreehugger Robot    srcs: ["lib/builtins/mulodi4.c"],
71*7c3d14c8STreehugger Robot    sanitize: {
72*7c3d14c8STreehugger Robot        never: true,
73*7c3d14c8STreehugger Robot    },
74*7c3d14c8STreehugger Robot    stl: "none",
75*7c3d14c8STreehugger Robot
76*7c3d14c8STreehugger Robot    cflags: [
77*7c3d14c8STreehugger Robot        "-Wno-unused-parameter",
78*7c3d14c8STreehugger Robot        "-Wno-visibility",
79*7c3d14c8STreehugger Robot        "-Wno-incompatible-pointer-types",
80*7c3d14c8STreehugger Robot        "-Werror",
81*7c3d14c8STreehugger Robot    ],
82*7c3d14c8STreehugger Robot
83*7c3d14c8STreehugger Robot    arch: {
84*7c3d14c8STreehugger Robot        // Clang generates call to __unorddf2 builtin when compiling s_fmal.c
85*7c3d14c8STreehugger Robot        // in bionic.  Generate this builtin from compiler-rt for arm64 and
86*7c3d14c8STreehugger Robot        // x86_64 (where the corresponding libgcc does not have this builtin.
87*7c3d14c8STreehugger Robot        arm64: {
88*7c3d14c8STreehugger Robot            srcs: ["lib/builtins/comparedf2.c"],
89*7c3d14c8STreehugger Robot        },
90*7c3d14c8STreehugger Robot        x86_64: {
91*7c3d14c8STreehugger Robot            srcs: ["lib/builtins/comparedf2.c"],
92*7c3d14c8STreehugger Robot        },
93*7c3d14c8STreehugger Robot    },
94*7c3d14c8STreehugger Robot
95*7c3d14c8STreehugger Robot    target: {
96*7c3d14c8STreehugger Robot        linux_bionic: {
97*7c3d14c8STreehugger Robot            enabled: true,
98*7c3d14c8STreehugger Robot        },
99*7c3d14c8STreehugger Robot        windows: {
100*7c3d14c8STreehugger Robot            enabled: true,
101*7c3d14c8STreehugger Robot        },
102*7c3d14c8STreehugger Robot    },
103*7c3d14c8STreehugger Robot}
104*7c3d14c8STreehugger Robot
105*7c3d14c8STreehugger Robot//=====================================================================
106*7c3d14c8STreehugger Robot// Device and Host Static Library: libcompiler_rt
107*7c3d14c8STreehugger Robot//=====================================================================
108*7c3d14c8STreehugger Robot
109*7c3d14c8STreehugger Robotcc_library {
110*7c3d14c8STreehugger Robot    name: "libcompiler_rt",
111*7c3d14c8STreehugger Robot    vendor_available: true,
112*7c3d14c8STreehugger Robot    product_available: true,
113*7c3d14c8STreehugger Robot    double_loadable: true,
114*7c3d14c8STreehugger Robot    host_supported: true,
115*7c3d14c8STreehugger Robot    native_bridge_supported: true,
116*7c3d14c8STreehugger Robot    // The following list contains platform-independent functionalities.
117*7c3d14c8STreehugger Robot    //
118*7c3d14c8STreehugger Robot    // Skip apple_versioning.c since it is unused.
119*7c3d14c8STreehugger Robot    // Skip atomic.c since it needs to be built separately according to the docs.
120*7c3d14c8STreehugger Robot    srcs: [
121*7c3d14c8STreehugger Robot        "lib/builtins/enable_execute_stack.c",
122*7c3d14c8STreehugger Robot        "lib/builtins/absvdi2.c",
123*7c3d14c8STreehugger Robot        "lib/builtins/absvsi2.c",
124*7c3d14c8STreehugger Robot        "lib/builtins/absvti2.c",
125*7c3d14c8STreehugger Robot        "lib/builtins/adddf3.c",
126*7c3d14c8STreehugger Robot        "lib/builtins/addsf3.c",
127*7c3d14c8STreehugger Robot        "lib/builtins/addtf3.c",
128*7c3d14c8STreehugger Robot        "lib/builtins/addvdi3.c",
129*7c3d14c8STreehugger Robot        "lib/builtins/addvsi3.c",
130*7c3d14c8STreehugger Robot        "lib/builtins/addvti3.c",
131*7c3d14c8STreehugger Robot        "lib/builtins/ashldi3.c",
132*7c3d14c8STreehugger Robot        "lib/builtins/ashlti3.c",
133*7c3d14c8STreehugger Robot        "lib/builtins/ashrdi3.c",
134*7c3d14c8STreehugger Robot        "lib/builtins/ashrti3.c",
135*7c3d14c8STreehugger Robot        "lib/builtins/clear_cache.c",
136*7c3d14c8STreehugger Robot        "lib/builtins/clzdi2.c",
137*7c3d14c8STreehugger Robot        "lib/builtins/clzsi2.c",
138*7c3d14c8STreehugger Robot        "lib/builtins/clzti2.c",
139*7c3d14c8STreehugger Robot        "lib/builtins/cmpdi2.c",
140*7c3d14c8STreehugger Robot        "lib/builtins/cmpti2.c",
141*7c3d14c8STreehugger Robot        "lib/builtins/comparedf2.c",
142*7c3d14c8STreehugger Robot        "lib/builtins/comparesf2.c",
143*7c3d14c8STreehugger Robot        "lib/builtins/comparetf2.c",
144*7c3d14c8STreehugger Robot        "lib/builtins/ctzdi2.c",
145*7c3d14c8STreehugger Robot        "lib/builtins/ctzsi2.c",
146*7c3d14c8STreehugger Robot        "lib/builtins/ctzti2.c",
147*7c3d14c8STreehugger Robot        "lib/builtins/divdc3.c",
148*7c3d14c8STreehugger Robot        "lib/builtins/divdf3.c",
149*7c3d14c8STreehugger Robot        "lib/builtins/divdi3.c",
150*7c3d14c8STreehugger Robot        "lib/builtins/divmoddi4.c",
151*7c3d14c8STreehugger Robot        "lib/builtins/divmodsi4.c",
152*7c3d14c8STreehugger Robot        "lib/builtins/divsc3.c",
153*7c3d14c8STreehugger Robot        "lib/builtins/divsf3.c",
154*7c3d14c8STreehugger Robot        "lib/builtins/divsi3.c",
155*7c3d14c8STreehugger Robot        "lib/builtins/divtf3.c",
156*7c3d14c8STreehugger Robot        "lib/builtins/divti3.c",
157*7c3d14c8STreehugger Robot        "lib/builtins/divxc3.c",
158*7c3d14c8STreehugger Robot        "lib/builtins/eprintf.c",
159*7c3d14c8STreehugger Robot        "lib/builtins/extenddftf2.c",
160*7c3d14c8STreehugger Robot        "lib/builtins/extendhfsf2.c",
161*7c3d14c8STreehugger Robot        "lib/builtins/extendsfdf2.c",
162*7c3d14c8STreehugger Robot        "lib/builtins/extendsftf2.c",
163*7c3d14c8STreehugger Robot        "lib/builtins/ffsdi2.c",
164*7c3d14c8STreehugger Robot        "lib/builtins/ffsti2.c",
165*7c3d14c8STreehugger Robot        "lib/builtins/fixdfdi.c",
166*7c3d14c8STreehugger Robot        "lib/builtins/fixdfsi.c",
167*7c3d14c8STreehugger Robot        "lib/builtins/fixdfti.c",
168*7c3d14c8STreehugger Robot        "lib/builtins/fixsfdi.c",
169*7c3d14c8STreehugger Robot        "lib/builtins/fixsfsi.c",
170*7c3d14c8STreehugger Robot        "lib/builtins/fixsfti.c",
171*7c3d14c8STreehugger Robot        "lib/builtins/fixtfdi.c",
172*7c3d14c8STreehugger Robot        "lib/builtins/fixtfsi.c",
173*7c3d14c8STreehugger Robot        "lib/builtins/fixtfti.c",
174*7c3d14c8STreehugger Robot        "lib/builtins/fixunsdfdi.c",
175*7c3d14c8STreehugger Robot        "lib/builtins/fixunsdfsi.c",
176*7c3d14c8STreehugger Robot        "lib/builtins/fixunsdfti.c",
177*7c3d14c8STreehugger Robot        "lib/builtins/fixunssfdi.c",
178*7c3d14c8STreehugger Robot        "lib/builtins/fixunssfsi.c",
179*7c3d14c8STreehugger Robot        "lib/builtins/fixunssfti.c",
180*7c3d14c8STreehugger Robot        "lib/builtins/fixunstfdi.c",
181*7c3d14c8STreehugger Robot        "lib/builtins/fixunstfsi.c",
182*7c3d14c8STreehugger Robot        "lib/builtins/fixunstfti.c",
183*7c3d14c8STreehugger Robot        "lib/builtins/fixunsxfdi.c",
184*7c3d14c8STreehugger Robot        "lib/builtins/fixunsxfsi.c",
185*7c3d14c8STreehugger Robot        "lib/builtins/fixunsxfti.c",
186*7c3d14c8STreehugger Robot        "lib/builtins/fixxfdi.c",
187*7c3d14c8STreehugger Robot        "lib/builtins/fixxfti.c",
188*7c3d14c8STreehugger Robot        "lib/builtins/floatdidf.c",
189*7c3d14c8STreehugger Robot        "lib/builtins/floatdisf.c",
190*7c3d14c8STreehugger Robot        "lib/builtins/floatdixf.c",
191*7c3d14c8STreehugger Robot        "lib/builtins/floatsidf.c",
192*7c3d14c8STreehugger Robot        "lib/builtins/floatsisf.c",
193*7c3d14c8STreehugger Robot        "lib/builtins/floatsitf.c",
194*7c3d14c8STreehugger Robot        "lib/builtins/floattidf.c",
195*7c3d14c8STreehugger Robot        "lib/builtins/floattisf.c",
196*7c3d14c8STreehugger Robot        "lib/builtins/floattixf.c",
197*7c3d14c8STreehugger Robot        "lib/builtins/floatundidf.c",
198*7c3d14c8STreehugger Robot        "lib/builtins/floatundisf.c",
199*7c3d14c8STreehugger Robot        "lib/builtins/floatundixf.c",
200*7c3d14c8STreehugger Robot        "lib/builtins/floatunsidf.c",
201*7c3d14c8STreehugger Robot        "lib/builtins/floatunsisf.c",
202*7c3d14c8STreehugger Robot        "lib/builtins/floatunsitf.c",
203*7c3d14c8STreehugger Robot        "lib/builtins/floatuntidf.c",
204*7c3d14c8STreehugger Robot        "lib/builtins/floatuntisf.c",
205*7c3d14c8STreehugger Robot        "lib/builtins/floatuntixf.c",
206*7c3d14c8STreehugger Robot        "lib/builtins/gcc_personality_v0.c",
207*7c3d14c8STreehugger Robot        "lib/builtins/int_util.c",
208*7c3d14c8STreehugger Robot        "lib/builtins/lshrdi3.c",
209*7c3d14c8STreehugger Robot        "lib/builtins/lshrti3.c",
210*7c3d14c8STreehugger Robot        "lib/builtins/moddi3.c",
211*7c3d14c8STreehugger Robot        "lib/builtins/modsi3.c",
212*7c3d14c8STreehugger Robot        "lib/builtins/modti3.c",
213*7c3d14c8STreehugger Robot        "lib/builtins/muldc3.c",
214*7c3d14c8STreehugger Robot        "lib/builtins/muldf3.c",
215*7c3d14c8STreehugger Robot        "lib/builtins/muldi3.c",
216*7c3d14c8STreehugger Robot        "lib/builtins/mulodi4.c",
217*7c3d14c8STreehugger Robot        "lib/builtins/mulosi4.c",
218*7c3d14c8STreehugger Robot        "lib/builtins/muloti4.c",
219*7c3d14c8STreehugger Robot        "lib/builtins/mulsc3.c",
220*7c3d14c8STreehugger Robot        "lib/builtins/mulsf3.c",
221*7c3d14c8STreehugger Robot        "lib/builtins/multf3.c",
222*7c3d14c8STreehugger Robot        "lib/builtins/multi3.c",
223*7c3d14c8STreehugger Robot        "lib/builtins/mulvdi3.c",
224*7c3d14c8STreehugger Robot        "lib/builtins/mulvsi3.c",
225*7c3d14c8STreehugger Robot        "lib/builtins/mulvti3.c",
226*7c3d14c8STreehugger Robot        "lib/builtins/mulxc3.c",
227*7c3d14c8STreehugger Robot        "lib/builtins/negdf2.c",
228*7c3d14c8STreehugger Robot        "lib/builtins/negdi2.c",
229*7c3d14c8STreehugger Robot        "lib/builtins/negsf2.c",
230*7c3d14c8STreehugger Robot        "lib/builtins/negti2.c",
231*7c3d14c8STreehugger Robot        "lib/builtins/negvdi2.c",
232*7c3d14c8STreehugger Robot        "lib/builtins/negvsi2.c",
233*7c3d14c8STreehugger Robot        "lib/builtins/negvti2.c",
234*7c3d14c8STreehugger Robot        "lib/builtins/paritydi2.c",
235*7c3d14c8STreehugger Robot        "lib/builtins/paritysi2.c",
236*7c3d14c8STreehugger Robot        "lib/builtins/parityti2.c",
237*7c3d14c8STreehugger Robot        "lib/builtins/popcountdi2.c",
238*7c3d14c8STreehugger Robot        "lib/builtins/popcountsi2.c",
239*7c3d14c8STreehugger Robot        "lib/builtins/popcountti2.c",
240*7c3d14c8STreehugger Robot        "lib/builtins/powidf2.c",
241*7c3d14c8STreehugger Robot        "lib/builtins/powisf2.c",
242*7c3d14c8STreehugger Robot        "lib/builtins/powitf2.c",
243*7c3d14c8STreehugger Robot        "lib/builtins/powixf2.c",
244*7c3d14c8STreehugger Robot        "lib/builtins/subdf3.c",
245*7c3d14c8STreehugger Robot        "lib/builtins/subsf3.c",
246*7c3d14c8STreehugger Robot        "lib/builtins/subtf3.c",
247*7c3d14c8STreehugger Robot        "lib/builtins/subvdi3.c",
248*7c3d14c8STreehugger Robot        "lib/builtins/subvsi3.c",
249*7c3d14c8STreehugger Robot        "lib/builtins/subvti3.c",
250*7c3d14c8STreehugger Robot        "lib/builtins/trampoline_setup.c",
251*7c3d14c8STreehugger Robot        "lib/builtins/truncdfhf2.c",
252*7c3d14c8STreehugger Robot        "lib/builtins/truncdfsf2.c",
253*7c3d14c8STreehugger Robot        "lib/builtins/truncsfhf2.c",
254*7c3d14c8STreehugger Robot        "lib/builtins/trunctfdf2.c",
255*7c3d14c8STreehugger Robot        "lib/builtins/trunctfsf2.c",
256*7c3d14c8STreehugger Robot        "lib/builtins/ucmpdi2.c",
257*7c3d14c8STreehugger Robot        "lib/builtins/ucmpti2.c",
258*7c3d14c8STreehugger Robot        "lib/builtins/udivdi3.c",
259*7c3d14c8STreehugger Robot        "lib/builtins/udivmoddi4.c",
260*7c3d14c8STreehugger Robot        "lib/builtins/udivmodsi4.c",
261*7c3d14c8STreehugger Robot        "lib/builtins/udivmodti4.c",
262*7c3d14c8STreehugger Robot        "lib/builtins/udivsi3.c",
263*7c3d14c8STreehugger Robot        "lib/builtins/udivti3.c",
264*7c3d14c8STreehugger Robot        "lib/builtins/umoddi3.c",
265*7c3d14c8STreehugger Robot        "lib/builtins/umodsi3.c",
266*7c3d14c8STreehugger Robot        "lib/builtins/umodti3.c",
267*7c3d14c8STreehugger Robot    ],
268*7c3d14c8STreehugger Robot
269*7c3d14c8STreehugger Robot    cflags: [
270*7c3d14c8STreehugger Robot        "-Wno-unused-parameter",
271*7c3d14c8STreehugger Robot        "-Wno-visibility",
272*7c3d14c8STreehugger Robot        "-Wno-incompatible-pointer-types",
273*7c3d14c8STreehugger Robot        "-Werror",
274*7c3d14c8STreehugger Robot    ],
275*7c3d14c8STreehugger Robot
276*7c3d14c8STreehugger Robot    arch: {
277*7c3d14c8STreehugger Robot        arm: {
278*7c3d14c8STreehugger Robot            cflags: ["-D__ARM_EABI__"],
279*7c3d14c8STreehugger Robot            srcs: [
280*7c3d14c8STreehugger Robot                "lib/builtins/arm/aeabi_dcmp.S",
281*7c3d14c8STreehugger Robot                "lib/builtins/arm/aeabi_div0.c",
282*7c3d14c8STreehugger Robot                "lib/builtins/arm/aeabi_fcmp.S",
283*7c3d14c8STreehugger Robot                "lib/builtins/arm/aeabi_idivmod.S",
284*7c3d14c8STreehugger Robot                "lib/builtins/arm/aeabi_ldivmod.S",
285*7c3d14c8STreehugger Robot                "lib/builtins/arm/aeabi_memcmp.S",
286*7c3d14c8STreehugger Robot                "lib/builtins/arm/aeabi_memcpy.S",
287*7c3d14c8STreehugger Robot                "lib/builtins/arm/aeabi_memmove.S",
288*7c3d14c8STreehugger Robot                "lib/builtins/arm/aeabi_memset.S",
289*7c3d14c8STreehugger Robot                "lib/builtins/arm/aeabi_uidivmod.S",
290*7c3d14c8STreehugger Robot                "lib/builtins/arm/aeabi_uldivmod.S",
291*7c3d14c8STreehugger Robot                "lib/builtins/arm/comparesf2.S",
292*7c3d14c8STreehugger Robot                "lib/builtins/arm/divmodsi4.S",
293*7c3d14c8STreehugger Robot                "lib/builtins/arm/divsi3.S",
294*7c3d14c8STreehugger Robot                "lib/builtins/arm/modsi3.S",
295*7c3d14c8STreehugger Robot                "lib/builtins/arm/udivmodsi4.S",
296*7c3d14c8STreehugger Robot                "lib/builtins/arm/udivsi3.S",
297*7c3d14c8STreehugger Robot                "lib/builtins/arm/umodsi3.S",
298*7c3d14c8STreehugger Robot                "lib/builtins/arm/adddf3vfp.S",
299*7c3d14c8STreehugger Robot                "lib/builtins/arm/addsf3vfp.S",
300*7c3d14c8STreehugger Robot                "lib/builtins/arm/divdf3vfp.S",
301*7c3d14c8STreehugger Robot                "lib/builtins/arm/divsf3vfp.S",
302*7c3d14c8STreehugger Robot                "lib/builtins/arm/eqdf2vfp.S",
303*7c3d14c8STreehugger Robot                "lib/builtins/arm/eqsf2vfp.S",
304*7c3d14c8STreehugger Robot                "lib/builtins/arm/extendsfdf2vfp.S",
305*7c3d14c8STreehugger Robot                "lib/builtins/arm/fixdfsivfp.S",
306*7c3d14c8STreehugger Robot                "lib/builtins/arm/fixsfsivfp.S",
307*7c3d14c8STreehugger Robot                "lib/builtins/arm/fixunsdfsivfp.S",
308*7c3d14c8STreehugger Robot                "lib/builtins/arm/fixunssfsivfp.S",
309*7c3d14c8STreehugger Robot                "lib/builtins/arm/floatsidfvfp.S",
310*7c3d14c8STreehugger Robot                "lib/builtins/arm/floatsisfvfp.S",
311*7c3d14c8STreehugger Robot                "lib/builtins/arm/floatunssidfvfp.S",
312*7c3d14c8STreehugger Robot                "lib/builtins/arm/floatunssisfvfp.S",
313*7c3d14c8STreehugger Robot                "lib/builtins/arm/gedf2vfp.S",
314*7c3d14c8STreehugger Robot                "lib/builtins/arm/gesf2vfp.S",
315*7c3d14c8STreehugger Robot                "lib/builtins/arm/gtdf2vfp.S",
316*7c3d14c8STreehugger Robot                "lib/builtins/arm/gtsf2vfp.S",
317*7c3d14c8STreehugger Robot                "lib/builtins/arm/ledf2vfp.S",
318*7c3d14c8STreehugger Robot                "lib/builtins/arm/lesf2vfp.S",
319*7c3d14c8STreehugger Robot                "lib/builtins/arm/ltdf2vfp.S",
320*7c3d14c8STreehugger Robot                "lib/builtins/arm/ltsf2vfp.S",
321*7c3d14c8STreehugger Robot                "lib/builtins/arm/muldf3vfp.S",
322*7c3d14c8STreehugger Robot                "lib/builtins/arm/mulsf3vfp.S",
323*7c3d14c8STreehugger Robot                "lib/builtins/arm/nedf2vfp.S",
324*7c3d14c8STreehugger Robot                "lib/builtins/arm/negdf2vfp.S",
325*7c3d14c8STreehugger Robot                "lib/builtins/arm/negsf2vfp.S",
326*7c3d14c8STreehugger Robot                "lib/builtins/arm/nesf2vfp.S",
327*7c3d14c8STreehugger Robot                "lib/builtins/arm/subdf3vfp.S",
328*7c3d14c8STreehugger Robot                "lib/builtins/arm/subsf3vfp.S",
329*7c3d14c8STreehugger Robot                "lib/builtins/arm/truncdfsf2vfp.S",
330*7c3d14c8STreehugger Robot                "lib/builtins/arm/unorddf2vfp.S",
331*7c3d14c8STreehugger Robot                "lib/builtins/arm/unordsf2vfp.S",
332*7c3d14c8STreehugger Robot            ],
333*7c3d14c8STreehugger Robot            exclude_srcs: [
334*7c3d14c8STreehugger Robot                "lib/builtins/comparesf2.c",
335*7c3d14c8STreehugger Robot                "lib/builtins/divmodsi4.c",
336*7c3d14c8STreehugger Robot                "lib/builtins/divsi3.c",
337*7c3d14c8STreehugger Robot                "lib/builtins/modsi3.c",
338*7c3d14c8STreehugger Robot                "lib/builtins/udivmodsi4.c",
339*7c3d14c8STreehugger Robot                "lib/builtins/udivsi3.c",
340*7c3d14c8STreehugger Robot                "lib/builtins/umodsi3.c",
341*7c3d14c8STreehugger Robot            ],
342*7c3d14c8STreehugger Robot        },
343*7c3d14c8STreehugger Robot        x86: {
344*7c3d14c8STreehugger Robot            srcs: [
345*7c3d14c8STreehugger Robot                "lib/builtins/i386/ashldi3.S",
346*7c3d14c8STreehugger Robot                "lib/builtins/i386/ashrdi3.S",
347*7c3d14c8STreehugger Robot                "lib/builtins/i386/divdi3.S",
348*7c3d14c8STreehugger Robot                "lib/builtins/i386/floatdidf.S",
349*7c3d14c8STreehugger Robot                "lib/builtins/i386/floatdisf.S",
350*7c3d14c8STreehugger Robot                "lib/builtins/i386/floatdixf.S",
351*7c3d14c8STreehugger Robot                "lib/builtins/i386/floatundidf.S",
352*7c3d14c8STreehugger Robot                "lib/builtins/i386/floatundisf.S",
353*7c3d14c8STreehugger Robot                "lib/builtins/i386/floatundixf.S",
354*7c3d14c8STreehugger Robot                "lib/builtins/i386/lshrdi3.S",
355*7c3d14c8STreehugger Robot                "lib/builtins/i386/moddi3.S",
356*7c3d14c8STreehugger Robot                "lib/builtins/i386/muldi3.S",
357*7c3d14c8STreehugger Robot                "lib/builtins/i386/udivdi3.S",
358*7c3d14c8STreehugger Robot                "lib/builtins/i386/umoddi3.S",
359*7c3d14c8STreehugger Robot            ],
360*7c3d14c8STreehugger Robot            exclude_srcs: [
361*7c3d14c8STreehugger Robot                "lib/builtins/ashldi3.c",
362*7c3d14c8STreehugger Robot                "lib/builtins/ashrdi3.c",
363*7c3d14c8STreehugger Robot                "lib/builtins/divdi3.c",
364*7c3d14c8STreehugger Robot                "lib/builtins/floatdidf.c",
365*7c3d14c8STreehugger Robot                "lib/builtins/floatdisf.c",
366*7c3d14c8STreehugger Robot                "lib/builtins/floatdixf.c",
367*7c3d14c8STreehugger Robot                "lib/builtins/floatundidf.c",
368*7c3d14c8STreehugger Robot                "lib/builtins/floatundisf.c",
369*7c3d14c8STreehugger Robot                "lib/builtins/floatundixf.c",
370*7c3d14c8STreehugger Robot                "lib/builtins/lshrdi3.c",
371*7c3d14c8STreehugger Robot                "lib/builtins/moddi3.c",
372*7c3d14c8STreehugger Robot                "lib/builtins/muldi3.c",
373*7c3d14c8STreehugger Robot                "lib/builtins/udivdi3.c",
374*7c3d14c8STreehugger Robot                "lib/builtins/umoddi3.c",
375*7c3d14c8STreehugger Robot            ],
376*7c3d14c8STreehugger Robot        },
377*7c3d14c8STreehugger Robot        x86_64: {
378*7c3d14c8STreehugger Robot            srcs: [
379*7c3d14c8STreehugger Robot                "lib/builtins/x86_64/floatundixf.S",
380*7c3d14c8STreehugger Robot                "lib/builtins/x86_64/floatdisf.c",
381*7c3d14c8STreehugger Robot                "lib/builtins/x86_64/floatdidf.c",
382*7c3d14c8STreehugger Robot                "lib/builtins/x86_64/floatdixf.c",
383*7c3d14c8STreehugger Robot                "lib/builtins/x86_64/floatundisf.S",
384*7c3d14c8STreehugger Robot                "lib/builtins/x86_64/floatundidf.S",
385*7c3d14c8STreehugger Robot            ],
386*7c3d14c8STreehugger Robot            exclude_srcs: [
387*7c3d14c8STreehugger Robot                "lib/builtins/floatundixf.c",
388*7c3d14c8STreehugger Robot                "lib/builtins/floatdisf.c",
389*7c3d14c8STreehugger Robot                "lib/builtins/floatdidf.c",
390*7c3d14c8STreehugger Robot                "lib/builtins/floatdixf.c",
391*7c3d14c8STreehugger Robot                "lib/builtins/floatundisf.c",
392*7c3d14c8STreehugger Robot                "lib/builtins/floatundidf.c",
393*7c3d14c8STreehugger Robot            ],
394*7c3d14c8STreehugger Robot        },
395*7c3d14c8STreehugger Robot    },
396*7c3d14c8STreehugger Robot
397*7c3d14c8STreehugger Robot    sdk_version: "21",
398*7c3d14c8STreehugger Robot    target: {
399*7c3d14c8STreehugger Robot        android: {
400*7c3d14c8STreehugger Robot            shared_libs: ["liblog"],
401*7c3d14c8STreehugger Robot            static_libs: ["libunwind"],
402*7c3d14c8STreehugger Robot            ldflags: ["-Wl,--exclude-libs,libunwind.a"],
403*7c3d14c8STreehugger Robot        },
404*7c3d14c8STreehugger Robot        android_x86_64: {
405*7c3d14c8STreehugger Robot            srcs: ["lib/builtins/ppc/floatditf.c"],
406*7c3d14c8STreehugger Robot        },
407*7c3d14c8STreehugger Robot        windows: {
408*7c3d14c8STreehugger Robot            enabled: true,
409*7c3d14c8STreehugger Robot            // Only build enable_execute_stack.c on non-Windows hosts.
410*7c3d14c8STreehugger Robot            exclude_srcs: ["lib/builtins/enable_execute_stack.c"],
411*7c3d14c8STreehugger Robot        },
412*7c3d14c8STreehugger Robot    },
413*7c3d14c8STreehugger Robot
414*7c3d14c8STreehugger Robot    asflags: ["-integrated-as"],
415*7c3d14c8STreehugger Robot    no_libcrt: true,
416*7c3d14c8STreehugger Robot
417*7c3d14c8STreehugger Robot    sanitize: {
418*7c3d14c8STreehugger Robot        never: true,
419*7c3d14c8STreehugger Robot    },
420*7c3d14c8STreehugger Robot    stl: "none",
421*7c3d14c8STreehugger Robot}
422