Android.mk revision 2d1fdb26e458c4ddc04155c1d421bced3ba90cd0
1dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
2dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# Copyright (C) 2012 The Android Open Source Project
3dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
4dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# Licensed under the Apache License, Version 2.0 (the "License");
5dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# you may not use this file except in compliance with the License.
6dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# You may obtain a copy of the License at
7dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
8dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#      http://www.apache.org/licenses/LICENSE-2.0
9dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
10dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# Unless required by applicable law or agreed to in writing, software
11dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# distributed under the License is distributed on an "AS IS" BASIS,
12dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# See the License for the specific language governing permissions and
14dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# limitations under the License.
15dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
16dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
17dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
18dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy StepanovLOCAL_PATH := $(call my-dir)
19139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao
20306946113efca741da8e33fd35edb1d7c29794ffStephen Hinesifeq (,$(TARGET_BUILD_APPS))
21306946113efca741da8e33fd35edb1d7c29794ffStephen Hines
22139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# The following list contains platform-independent functionalities.
23139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao#
24cec0726037ef2716d4d131ae22764d00a4570bb7Shih-wei Liao# Skip apple_versioning.c since it is unused.
25139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# Skip atomic.c since it needs to be built separately according to the docs.
264d40231aa139331cbc0806bb1ff7475cd1dc9f04Shih-wei Liao# Skip gcc_personality_v0.c since it depends on libunwind.
27139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaolibcompiler_rt_common_SRC_FILES := \
282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/absvdi2.c \
292d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/absvsi2.c \
302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/absvti2.c \
312d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/adddf3.c \
322d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/addsf3.c \
332d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/addvdi3.c \
342d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/addvsi3.c \
352d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/addvti3.c \
362d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/ashldi3.c \
372d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/ashlti3.c \
382d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/ashrdi3.c \
392d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/ashrti3.c \
402d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/clear_cache.c \
412d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/clzdi2.c \
422d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/clzsi2.c \
432d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/clzti2.c \
442d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/cmpdi2.c \
452d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/cmpti2.c \
462d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/comparedf2.c \
472d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/comparesf2.c \
482d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/ctzdi2.c \
492d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/ctzsi2.c \
502d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/ctzti2.c \
512d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/divdc3.c \
522d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/divdf3.c \
532d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/divdi3.c \
542d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/divmoddi4.c \
552d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/divmodsi4.c \
562d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/divsc3.c \
572d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/divsf3.c \
582d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/divsi3.c \
592d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/divti3.c \
602d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/divxc3.c \
612d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/enable_execute_stack.c \
622d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/eprintf.c \
632d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/extendsfdf2.c \
642d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/ffsdi2.c \
652d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/ffsti2.c \
662d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixdfdi.c \
672d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixdfsi.c \
682d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixdfti.c \
692d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixsfdi.c \
702d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixsfsi.c \
712d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixsfti.c \
722d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixunsdfdi.c \
732d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixunsdfsi.c \
742d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixunsdfti.c \
752d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixunssfdi.c \
762d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixunssfsi.c \
772d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixunssfti.c \
782d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixunsxfdi.c \
792d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixunsxfsi.c \
802d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixunsxfti.c \
812d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixxfdi.c \
822d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/fixxfti.c \
832d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatdidf.c \
842d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatdisf.c \
852d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatdixf.c \
862d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatsidf.c \
872d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatsisf.c \
882d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floattidf.c \
892d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floattisf.c \
902d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floattixf.c \
912d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatundidf.c \
922d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatundisf.c \
932d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatundixf.c \
942d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatunsidf.c \
952d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatunsisf.c \
962d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatuntidf.c \
972d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatuntisf.c \
982d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/floatuntixf.c \
992d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/int_util.c \
1002d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/lshrdi3.c \
1012d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/lshrti3.c \
1022d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/moddi3.c \
1032d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/modsi3.c \
1042d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/modti3.c \
1052d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/muldc3.c \
1062d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/muldf3.c \
1072d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/muldi3.c \
1082d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/mulodi4.c \
1092d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/mulosi4.c \
1102d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/muloti4.c \
1112d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/mulsc3.c \
1122d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/mulsf3.c \
1132d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/multi3.c \
1142d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/mulvdi3.c \
1152d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/mulvsi3.c \
1162d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/mulvti3.c \
1172d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/mulxc3.c \
1182d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/negdf2.c \
1192d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/negdi2.c \
1202d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/negsf2.c \
1212d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/negti2.c \
1222d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/negvdi2.c \
1232d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/negvsi2.c \
1242d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/negvti2.c \
1252d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/paritydi2.c \
1262d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/paritysi2.c \
1272d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/parityti2.c \
1282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/popcountdi2.c \
1292d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/popcountsi2.c \
1302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/popcountti2.c \
1312d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/powidf2.c \
1322d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/powisf2.c \
1332d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/powitf2.c \
1342d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/powixf2.c \
1352d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/subdf3.c \
1362d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/subsf3.c \
1372d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/subvdi3.c \
1382d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/subvsi3.c \
1392d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/subvti3.c \
1402d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/trampoline_setup.c \
1412d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/truncdfsf2.c \
1422d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/ucmpdi2.c \
1432d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/ucmpti2.c \
1442d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/udivdi3.c \
1452d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/udivmoddi4.c \
1462d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/udivmodsi4.c \
1472d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/udivmodti4.c \
1482d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/udivsi3.c \
1492d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/udivti3.c \
1502d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/umoddi3.c \
1512d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/umodsi3.c \
1522d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/umodti3.c
153139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao
154139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# ARM-specific runtimes
155139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaolibcompiler_rt_arm_SRC_FILES := \
1562d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/aeabi_dcmp.S \
1572d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/aeabi_fcmp.S \
1582d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/aeabi_idivmod.S \
1592d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/aeabi_ldivmod.S \
1602d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/aeabi_memcmp.S \
1612d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/aeabi_memcpy.S \
1622d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/aeabi_memmove.S \
1632d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/aeabi_memset.S \
1642d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/aeabi_uidivmod.S \
1652d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/aeabi_uldivmod.S \
1662d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/comparesf2.S \
1672d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/divmodsi4.S \
1682d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/divsi3.S \
1692d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/modsi3.S \
1702d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/udivmodsi4.S \
1712d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/udivsi3.S \
1722d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/arm/umodsi3.S
173139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao
1746731c5590dadf4d65fae4d75e03a724aba0cadc9Tim Murray# ARM64-specific runtimes
1756731c5590dadf4d65fae4d75e03a724aba0cadc9Tim Murraylibcompiler_rt_arm64_SRC_FILES :=
1766731c5590dadf4d65fae4d75e03a724aba0cadc9Tim Murray
177139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# MIPS-specific runtimes
178139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaolibcompiler_rt_mips_SRC_FILES := # nothing to add
179139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao
180139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# X86-specific runtimes
181139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaolibcompiler_rt_x86_SRC_FILES := \
1822d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/ashldi3.S \
1832d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/ashrdi3.S \
1842d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/divdi3.S \
1852d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/floatdidf.S \
1862d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/floatdisf.S \
1872d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/floatdixf.S \
1882d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/floatundidf.S \
1892d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/floatundisf.S \
1902d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/floatundixf.S \
1912d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/lshrdi3.S \
1922d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/moddi3.S \
1932d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/muldi3.S \
1942d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/udivdi3.S \
1952d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/i386/umoddi3.S
196139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao
1979939506f2e20a9989daf409ed1979f43de0a6222Alexey Volkov# X86_64-specific runtimes
1989939506f2e20a9989daf409ed1979f43de0a6222Alexey Volkovlibcompiler_rt_x86_64_SRC_FILES := \
1992d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/x86_64/floatundixf.S \
2002d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/x86_64/floatdisf.c \
2012d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/x86_64/floatdidf.c \
2022d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/x86_64/floatdixf.c \
2032d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/x86_64/floatundisf.S \
2042d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/x86_64/floatundidf.S
2059939506f2e20a9989daf409ed1979f43de0a6222Alexey Volkov
206139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# The following list contains functions that are not available in libgcc.a, so
207139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# we potentially need them when using a Clang-built component (e.g., -ftrapv
208139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# with 64-bit integer multiplies. See http://llvm.org/bugs/show_bug.cgi?id=14469.)
209139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaolibcompiler_rt_extras_SRC_FILES := \
2102d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  lib/builtins/mulodi4.c
211139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao
212139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# $(1): arch
213139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaodefine get-libcompiler-rt-source-files
214139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao  $(if $(findstring $(1),arm),$(call get-libcompiler-rt-arm-source-files),
215139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao      $(if $(findstring $(1),mips),$(call get-libcompiler-rt-mips-source-files),
216139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao          $(if $(findstring $(1),x86),$(call get-libcompiler-rt-x86-source-files),
2179939506f2e20a9989daf409ed1979f43de0a6222Alexey Volkov             $(if $(findstring $(1),x86_64),$(call get-libcompiler-rt-x86_64-source-files),
2185534fc3b40c7d5c6949f454632afd7b56928ea7cPavel Chupin                 $(if $(findstring $(1),x32),$(call get-libcompiler-rt-x86-source-files),
2196731c5590dadf4d65fae4d75e03a724aba0cadc9Tim Murray                    $(if $(findstring $(1),arm64),$(call get-libcompiler-rt-arm64-source-files),
2206731c5590dadf4d65fae4d75e03a724aba0cadc9Tim Murray  $(error Unsupported ARCH $(1))))))))
221139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaoendef
222139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao
223139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# $(1): source list
224139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# $(2): arch
225139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao#
2262d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# If lib/builtins/<arch>/X.[cS] is included in the source list, we should filter out lib/builtins/X.c
227139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# in the result source list (i.e., use the one optimized for the arch.) Otherwise
228139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# there'll be multiple definitions for one symbol.
229139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaodefine filter-libcompiler-rt-common-source-files
2302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  $(filter-out $(patsubst lib/builtins/$(strip $(2))/%.S,lib/builtins/%.c,\
2312d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines                          $(filter lib/builtins/$(strip $(2))/%.S,$(1))) \
2322d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines               $(patsubst lib/builtins/$(strip $(2))/%.c,lib/builtins/%.c,\
2332d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines                          $(filter lib/builtins/$(strip $(2))/%.c,$(1))),$(1))
234139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaoendef
235139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao
236ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liaodefine get-libcompiler-rt-arm-common-source-files
237139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao  $(call filter-libcompiler-rt-common-source-files,
238c8f5519892684eadc0cb1a7ef739905fa1ab4953Shih-wei Liao      $(libcompiler_rt_common_SRC_FILES) \
239ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liao      $(libcompiler_rt_arm_SRC_FILES), arm)
240ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liaoendef
241ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liao
242ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liao# $(1): common runtime list
243ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liao#
244ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liao# Add ARM runtimes implemented in VFP
245ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liaodefine add-libcompiler-rt-arm-vfp-source-files
2462d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  $(filter-out $(addprefix lib/builtins/,adddf3.c addsf3.c comparedf2.c comparesf2.c         \
2472d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines                                         arm/comparesf2.S divdf3.c divsf3.c extendsfdf2.c    \
2482d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines                                         fixdfsi.c fixsfsi.c fixunsdfsi.c fixunssfsi.c       \
2492d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines                                         floatsidf.c floatsisf.c floatunsidf.c floatunsisf.c \
2502d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines                                         muldf3.c mulsf3.c negdf2.c negsf2.c subdf3.c        \
2512d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines                                         subsf3.c truncdfsf2.c),$(1)) lib/builtins/arm/vfp_alias.S
252ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liaoendef
253ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liao
254ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liaodefine get-libcompiler-rt-arm-source-files
255ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liao  $(if $(findstring $(ARCH_ARM_HAVE_VFP),true),
256ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liao      $(call add-libcompiler-rt-arm-vfp-source-files,
257ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liao          $(call get-libcompiler-rt-arm-common-source-files)),
258ece62647281ee30b6bb01b0e052d58f41986a665Shih-wei Liao      $(call get-libcompiler-rt-arm-common-source-files))
259139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaoendef
260139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao
2616731c5590dadf4d65fae4d75e03a724aba0cadc9Tim Murraydefine get-libcompiler-rt-arm64-source-files
2626731c5590dadf4d65fae4d75e03a724aba0cadc9Tim Murray  $(call filter-libcompiler-rt-common-source-files,
2636731c5590dadf4d65fae4d75e03a724aba0cadc9Tim Murray      $(libcompiler_rt_common_SRC_FILES) \
2646731c5590dadf4d65fae4d75e03a724aba0cadc9Tim Murray      $(libcompiler_rt_arm64_SRC_FILES),arm64)
2656731c5590dadf4d65fae4d75e03a724aba0cadc9Tim Murrayendef
2666731c5590dadf4d65fae4d75e03a724aba0cadc9Tim Murray
267139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaodefine get-libcompiler-rt-mips-source-files
268139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao  $(call filter-libcompiler-rt-common-source-files,
269c8f5519892684eadc0cb1a7ef739905fa1ab4953Shih-wei Liao      $(libcompiler_rt_common_SRC_FILES) \
270139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao      $(libcompiler_rt_mips_SRC_FILES),mips)
271139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaoendef
272139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao
273139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaodefine get-libcompiler-rt-x86-source-files
274139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao  $(call filter-libcompiler-rt-common-source-files,
275c8f5519892684eadc0cb1a7ef739905fa1ab4953Shih-wei Liao      $(libcompiler_rt_common_SRC_FILES) \
276139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao      $(libcompiler_rt_x86_SRC_FILES),i386)
277139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaoendef
278139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao
2799939506f2e20a9989daf409ed1979f43de0a6222Alexey Volkovdefine get-libcompiler-rt-x86_64-source-files
2809939506f2e20a9989daf409ed1979f43de0a6222Alexey Volkov  $(call filter-libcompiler-rt-common-source-files,
2819939506f2e20a9989daf409ed1979f43de0a6222Alexey Volkov      $(libcompiler_rt_common_SRC_FILES) \
2829939506f2e20a9989daf409ed1979f43de0a6222Alexey Volkov      $(libcompiler_rt_x86_64_SRC_FILES),x86_64)
2839939506f2e20a9989daf409ed1979f43de0a6222Alexey Volkovendef
2849939506f2e20a9989daf409ed1979f43de0a6222Alexey Volkov
285dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#=====================================================================
2867f489a3deb01ecca5038d02b71111bac313ee57fShih-wei Liao# Device Static Library: libcompiler_rt-extras
287dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#=====================================================================
288dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
289dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanovinclude $(CLEAR_VARS)
290dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
2917f489a3deb01ecca5038d02b71111bac313ee57fShih-wei LiaoLOCAL_MODULE := libcompiler_rt-extras
292dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy StepanovLOCAL_MODULE_TAGS := optional
293dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy StepanovLOCAL_MODULE_CLASS := STATIC_LIBRARIES
294dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy StepanovLOCAL_CLANG := true
295139a106d12a5789561b3244bb34704eb618e4ffeShih-wei LiaoLOCAL_SRC_FILES := $(libcompiler_rt_extras_SRC_FILES)
29697ac43c7cf39e8ad2719b4f395093e7415280577Stephen HinesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
297dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
298dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanovinclude $(BUILD_STATIC_LIBRARY)
299dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
30047ca89cea5ecba05b383df2fc816de66b3d961f6Colin Cross# Don't build compiler-rt without clang
30147ca89cea5ecba05b383df2fc816de66b3d961f6Colin Crossifneq ($(WITHOUT_TARGET_CLANG), true)
30247ca89cea5ecba05b383df2fc816de66b3d961f6Colin Cross
303139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao#=====================================================================
3047f489a3deb01ecca5038d02b71111bac313ee57fShih-wei Liao# Device Static Library: libcompiler_rt
305139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao#=====================================================================
30675d873d8fc8341b2c48954737995b49e0bc1ab6cColin Cross
30775d873d8fc8341b2c48954737995b49e0bc1ab6cColin Crossinclude $(CLEAR_VARS)
30875d873d8fc8341b2c48954737995b49e0bc1ab6cColin Cross
30975d873d8fc8341b2c48954737995b49e0bc1ab6cColin Crossifeq ($(TARGET_ARCH),mips64)
31075d873d8fc8341b2c48954737995b49e0bc1ab6cColin Cross$(warning TODOMips64: Enable compiler-rt build)
311e3c30bfc1e34e323bf83ed3f062e4251778007b2Serban Constantinescuendif
312dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
31375d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_MODULE := libcompiler_rt
31475d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_CFLAGS_arm += -D__ARM_EABI__
31575d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_ASFLAGS := -integrated-as
31675d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_CLANG := true
31775d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_SRC_FILES_arm := $(call get-libcompiler-rt-source-files,arm)
3186731c5590dadf4d65fae4d75e03a724aba0cadc9Tim MurrayLOCAL_SRC_FILES_arm64 := $(call get-libcompiler-rt-source-files,arm64)
31975d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_SRC_FILES_mips := $(call get-libcompiler-rt-source-files,mips)
32075d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_SRC_FILES_x86 := $(call get-libcompiler-rt-source-files,x86)
32175d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_SRC_FILES_x86_64 := $(call get-libcompiler-rt-source-files,x86_64)
3226731c5590dadf4d65fae4d75e03a724aba0cadc9Tim MurrayLOCAL_MODULE_TARGET_ARCH := arm arm64 mips x86 x86_64
32375d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
32475d873d8fc8341b2c48954737995b49e0bc1ab6cColin Cross
32575d873d8fc8341b2c48954737995b49e0bc1ab6cColin Crossinclude $(BUILD_STATIC_LIBRARY)
32675d873d8fc8341b2c48954737995b49e0bc1ab6cColin Cross
327fba76918950962438ed40f78365947bf9927b24cShih-wei Liao#=====================================================================
32895b6e9a2552f005857c81626638dfd98cc8665dfDan Albert# Host Static Library: libcompiler_rt
32995b6e9a2552f005857c81626638dfd98cc8665dfDan Albert#=====================================================================
33095b6e9a2552f005857c81626638dfd98cc8665dfDan Albert
33195b6e9a2552f005857c81626638dfd98cc8665dfDan Albertinclude $(CLEAR_VARS)
33295b6e9a2552f005857c81626638dfd98cc8665dfDan Albert
33395b6e9a2552f005857c81626638dfd98cc8665dfDan AlbertLOCAL_MODULE := libcompiler_rt
33495b6e9a2552f005857c81626638dfd98cc8665dfDan AlbertLOCAL_ASFLAGS := -integrated-as
33595b6e9a2552f005857c81626638dfd98cc8665dfDan AlbertLOCAL_CLANG := true
33695b6e9a2552f005857c81626638dfd98cc8665dfDan AlbertLOCAL_SRC_FILES := $(call get-libcompiler-rt-source-files,x86_64)
33795b6e9a2552f005857c81626638dfd98cc8665dfDan AlbertLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
33895b6e9a2552f005857c81626638dfd98cc8665dfDan Albert
33995b6e9a2552f005857c81626638dfd98cc8665dfDan Albertinclude $(BUILD_HOST_STATIC_LIBRARY)
34095b6e9a2552f005857c81626638dfd98cc8665dfDan Albert
34195b6e9a2552f005857c81626638dfd98cc8665dfDan Albert#=====================================================================
342ba9a7b37ffac9156693ae0ceeef37b1f167cb1d6Dmitriy Ivanov# Device Static Library: libprofile_rt
343ba9a7b37ffac9156693ae0ceeef37b1f167cb1d6Dmitriy Ivanov#=====================================================================
344ba9a7b37ffac9156693ae0ceeef37b1f167cb1d6Dmitriy Ivanov
345ba9a7b37ffac9156693ae0ceeef37b1f167cb1d6Dmitriy Ivanovinclude $(CLEAR_VARS)
346ba9a7b37ffac9156693ae0ceeef37b1f167cb1d6Dmitriy Ivanov
347ba9a7b37ffac9156693ae0ceeef37b1f167cb1d6Dmitriy IvanovLOCAL_MODULE = libprofile_rt
348ba9a7b37ffac9156693ae0ceeef37b1f167cb1d6Dmitriy IvanovLOCAL_SRC_FILES = lib/profile/GCDAProfiling.c
349ba9a7b37ffac9156693ae0ceeef37b1f167cb1d6Dmitriy Ivanov
350ba9a7b37ffac9156693ae0ceeef37b1f167cb1d6Dmitriy Ivanovinclude $(BUILD_STATIC_LIBRARY)
351ba9a7b37ffac9156693ae0ceeef37b1f167cb1d6Dmitriy Ivanov
352ba9a7b37ffac9156693ae0ceeef37b1f167cb1d6Dmitriy Ivanov#=====================================================================
353fba76918950962438ed40f78365947bf9927b24cShih-wei Liao# Device Shared Library: libcompiler_rt
354fba76918950962438ed40f78365947bf9927b24cShih-wei Liao#=====================================================================
355e3c30bfc1e34e323bf83ed3f062e4251778007b2Serban Constantinescu
35675d873d8fc8341b2c48954737995b49e0bc1ab6cColin Crossinclude $(CLEAR_VARS)
35775d873d8fc8341b2c48954737995b49e0bc1ab6cColin Cross
35875d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_MODULE := libcompiler_rt
35975d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
36075d873d8fc8341b2c48954737995b49e0bc1ab6cColin CrossLOCAL_WHOLE_STATIC_LIBRARIES := libcompiler_rt
3616731c5590dadf4d65fae4d75e03a724aba0cadc9Tim MurrayLOCAL_MODULE_TARGET_ARCH := arm arm64 mips x86 x86_64
36275d873d8fc8341b2c48954737995b49e0bc1ab6cColin Cross
36375d873d8fc8341b2c48954737995b49e0bc1ab6cColin Crossinclude $(BUILD_SHARED_LIBRARY)
364fba76918950962438ed40f78365947bf9927b24cShih-wei Liao
365139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liao# Build ASan
366139a106d12a5789561b3244bb34704eb618e4ffeShih-wei Liaoinclude $(LOCAL_PATH)/lib/asan/Android.mk
3674b4f557b295efe886cb7b4199f136afa9c6db6e8Tim Murray
36895b6e9a2552f005857c81626638dfd98cc8665dfDan Albert#=====================================================================
36995b6e9a2552f005857c81626638dfd98cc8665dfDan Albert# Host Shared Library: libcompiler_rt
37095b6e9a2552f005857c81626638dfd98cc8665dfDan Albert#=====================================================================
37195b6e9a2552f005857c81626638dfd98cc8665dfDan Albert
37295b6e9a2552f005857c81626638dfd98cc8665dfDan Albertinclude $(CLEAR_VARS)
37395b6e9a2552f005857c81626638dfd98cc8665dfDan Albert
37495b6e9a2552f005857c81626638dfd98cc8665dfDan AlbertLOCAL_MODULE := libcompiler_rt
37595b6e9a2552f005857c81626638dfd98cc8665dfDan AlbertLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
37695b6e9a2552f005857c81626638dfd98cc8665dfDan AlbertLOCAL_WHOLE_STATIC_LIBRARIES := libcompiler_rt
37795b6e9a2552f005857c81626638dfd98cc8665dfDan AlbertLOCAL_CPPFLAGS := -nostdinc++
37895b6e9a2552f005857c81626638dfd98cc8665dfDan AlbertLOCAL_LDFLAGS := -nodefaultlibs
37995b6e9a2552f005857c81626638dfd98cc8665dfDan AlbertLOCAL_LDLIBS := -lc -lm
38095b6e9a2552f005857c81626638dfd98cc8665dfDan Albert
38195b6e9a2552f005857c81626638dfd98cc8665dfDan Albertinclude $(BUILD_HOST_SHARED_LIBRARY)
38295b6e9a2552f005857c81626638dfd98cc8665dfDan Albert
38347ca89cea5ecba05b383df2fc816de66b3d961f6Colin Crossendif
384306946113efca741da8e33fd35edb1d7c29794ffStephen Hines
385306946113efca741da8e33fd35edb1d7c29794ffStephen Hinesendif # TARGET_BUILD_APPS only
386