Android.mk revision 4b4f557b295efe886cb7b4199f136afa9c6db6e8
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (C) 2012 The Android Open Source Project 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Licensed under the Apache License, Version 2.0 (the "License"); 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# you may not use this file except in compliance with the License. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# You may obtain a copy of the License at 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# http://www.apache.org/licenses/LICENSE-2.0 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Unless required by applicable law or agreed to in writing, software 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)# distributed under the License is distributed on an "AS IS" BASIS, 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# See the License for the specific language governing permissions and 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# limitations under the License. 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_PATH := $(call my-dir) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The following list contains platform-independent functionalities. 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Skip apple_versioning.c since it is unused. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Skip atomic.c since it needs to be built separately according to the docs. 247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch# Skip clear_cache.c since it redefines a system function on Android. 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Skip gcc_personality_v0.c since it depends on libunwind. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)libcompiler_rt_common_SRC_FILES := \ 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/absvdi2.c \ 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/absvsi2.c \ 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/absvti2.c \ 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/adddf3.c \ 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/addsf3.c \ 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/addvdi3.c \ 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/addvsi3.c \ 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/addvti3.c \ 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/ashldi3.c \ 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/ashlti3.c \ 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/ashrdi3.c \ 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/ashrti3.c \ 39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) lib/clzdi2.c \ 40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) lib/clzsi2.c \ 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/clzti2.c \ 42a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) lib/cmpdi2.c \ 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/cmpti2.c \ 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/comparedf2.c \ 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/comparesf2.c \ 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/ctzdi2.c \ 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/ctzsi2.c \ 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/ctzti2.c \ 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/divdc3.c \ 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/divdf3.c \ 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/divdi3.c \ 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/divmoddi4.c \ 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/divmodsi4.c \ 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/divsc3.c \ 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/divsf3.c \ 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/divsi3.c \ 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/divti3.c \ 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/divxc3.c \ 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/enable_execute_stack.c \ 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/eprintf.c \ 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/extendsfdf2.c \ 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/ffsdi2.c \ 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/ffsti2.c \ 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixdfdi.c \ 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixdfsi.c \ 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixdfti.c \ 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixsfdi.c \ 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixsfsi.c \ 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixsfti.c \ 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixunsdfdi.c \ 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixunsdfsi.c \ 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixunsdfti.c \ 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixunssfdi.c \ 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixunssfsi.c \ 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixunssfti.c \ 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/fixunsxfdi.c \ 7790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) lib/fixunsxfsi.c \ 7890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) lib/fixunsxfti.c \ 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) lib/fixxfdi.c \ 80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) lib/fixxfti.c \ 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatdidf.c \ 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatdisf.c \ 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatdixf.c \ 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatsidf.c \ 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatsisf.c \ 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floattidf.c \ 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floattisf.c \ 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floattixf.c \ 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatundidf.c \ 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatundisf.c \ 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatundixf.c \ 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatunsidf.c \ 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatunsisf.c \ 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatuntidf.c \ 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatuntisf.c \ 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/floatuntixf.c \ 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/int_util.c \ 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/lshrdi3.c \ 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/lshrti3.c \ 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/moddi3.c \ 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/modsi3.c \ 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/modti3.c \ 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/muldc3.c \ 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/muldf3.c \ 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/muldi3.c \ 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/mulodi4.c \ 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/mulosi4.c \ 108868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) lib/muloti4.c \ 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/mulsc3.c \ 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/mulsf3.c \ 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/multi3.c \ 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/mulvdi3.c \ 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/mulvsi3.c \ 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/mulvti3.c \ 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/mulxc3.c \ 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/negdf2.c \ 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/negdi2.c \ 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/negsf2.c \ 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/negti2.c \ 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/negvdi2.c \ 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/negvsi2.c \ 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/negvti2.c \ 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/paritydi2.c \ 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/paritysi2.c \ 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/parityti2.c \ 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/popcountdi2.c \ 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/popcountsi2.c \ 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/popcountti2.c \ 129868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) lib/powidf2.c \ 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/powisf2.c \ 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/powitf2.c \ 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/powixf2.c \ 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/subdf3.c \ 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/subsf3.c \ 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/subvdi3.c \ 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/subvsi3.c \ 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/subvti3.c \ 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/trampoline_setup.c \ 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/truncdfsf2.c \ 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/ucmpdi2.c \ 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/ucmpti2.c \ 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/udivdi3.c \ 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/udivmoddi4.c \ 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/udivmodsi4.c \ 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/udivmodti4.c \ 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/udivsi3.c \ 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/udivti3.c \ 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/umoddi3.c \ 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/umodsi3.c \ 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/umodti3.c 151868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ARM-specific runtimes 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)libcompiler_rt_arm_SRC_FILES := \ 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/aeabi_dcmp.S \ 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/aeabi_fcmp.S \ 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/aeabi_idivmod.S \ 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/aeabi_ldivmod.S \ 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/aeabi_memcmp.S \ 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/aeabi_memcpy.S \ 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/aeabi_memmove.S \ 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/aeabi_memset.S \ 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/aeabi_uidivmod.S \ 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/aeabi_uldivmod.S \ 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/comparesf2.S \ 165ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch lib/arm/divmodsi4.S \ 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/arm/divsi3.S \ 167ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch lib/arm/modsi3.S \ 168ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch lib/arm/udivmodsi4.S \ 169ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch lib/arm/udivsi3.S \ 170ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch lib/arm/umodsi3.S 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ARM64-specific runtimes 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)libcompiler_rt_arm64_SRC_FILES := 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# MIPS-specific runtimes 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)libcompiler_rt_mips_SRC_FILES := # nothing to add 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# X86-specific runtimes 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)libcompiler_rt_x86_SRC_FILES := \ 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/ashldi3.S \ 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/ashrdi3.S \ 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/divdi3.S \ 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/floatdidf.S \ 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/floatdisf.S \ 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/floatdixf.S \ 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/floatundidf.S \ 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/floatundisf.S \ 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/floatundixf.S \ 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/lshrdi3.S \ 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/moddi3.S \ 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/muldi3.S \ 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/udivdi3.S \ 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/i386/umoddi3.S 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# X86_64-specific runtimes 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)libcompiler_rt_x86_64_SRC_FILES := \ 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/x86_64/floatundixf.S \ 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/x86_64/floatdisf.c \ 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/x86_64/floatdidf.c \ 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/x86_64/floatdixf.c \ 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/x86_64/floatundisf.S \ 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/x86_64/floatundidf.S 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The following list contains functions that are not available in libgcc.a, so 205868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)# we potentially need them when using a Clang-built component (e.g., -ftrapv 206868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)# with 64-bit integer multiplies. See http://llvm.org/bugs/show_bug.cgi?id=14469.) 207868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)libcompiler_rt_extras_SRC_FILES := \ 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lib/mulodi4.c 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $(1): arch 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)define get-libcompiler-rt-source-files 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(if $(findstring $(1),arm),$(call get-libcompiler-rt-arm-source-files), 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(if $(findstring $(1),mips),$(call get-libcompiler-rt-mips-source-files), 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(if $(findstring $(1),x86),$(call get-libcompiler-rt-x86-source-files), 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(if $(findstring $(1),x86_64),$(call get-libcompiler-rt-x86_64-source-files), 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(if $(findstring $(1),x32),$(call get-libcompiler-rt-x86-source-files), 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(if $(findstring $(1),arm64),$(call get-libcompiler-rt-arm64-source-files), 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(error Unsupported ARCH $(1)))))))) 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)endef 22090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $(1): source list 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $(2): arch 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# If lib/<arch>/X.[cS] is included in the source list, we should filter out lib/X.c 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# in the result source list (i.e., use the one optimized for the arch.) Otherwise 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# there'll be multiple definitions for one symbol. 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)define filter-libcompiler-rt-common-source-files 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(filter-out $(patsubst lib/$(strip $(2))/%.S,lib/%.c,\ 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(filter lib/$(strip $(2))/%.S,$(1))) \ 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(patsubst lib/$(strip $(2))/%.c,lib/%.c,\ 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(filter lib/$(strip $(2))/%.c,$(1))),$(1)) 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)endef 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)define get-libcompiler-rt-arm-common-source-files 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(call filter-libcompiler-rt-common-source-files, 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(libcompiler_rt_common_SRC_FILES) \ 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(libcompiler_rt_arm_SRC_FILES), arm) 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)endef 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $(1): common runtime list 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Add ARM runtimes implemented in VFP 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)define add-libcompiler-rt-arm-vfp-source-files 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(filter-out $(addprefix lib/,adddf3.c addsf3.c comparedf2.c comparesf2.c \ 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arm/comparesf2.S divdf3.c divsf3.c extendsfdf2.c \ 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fixdfsi.c fixsfsi.c fixunsdfsi.c fixunssfsi.c \ 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) floatsidf.c floatsisf.c floatunsidf.c floatunsisf.c \ 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) muldf3.c mulsf3.c negdf2.c negsf2.c subdf3.c \ 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) subsf3.c truncdfsf2.c),$(1)) lib/arm/vfp_alias.S 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)endef 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)define get-libcompiler-rt-arm-source-files 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(if $(findstring $(ARCH_ARM_HAVE_VFP),true), 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(call add-libcompiler-rt-arm-vfp-source-files, 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(call get-libcompiler-rt-arm-common-source-files)), 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(call get-libcompiler-rt-arm-common-source-files)) 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)endef 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)define get-libcompiler-rt-arm64-source-files 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(call filter-libcompiler-rt-common-source-files, 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(libcompiler_rt_common_SRC_FILES) \ 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(libcompiler_rt_arm64_SRC_FILES),arm64) 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)endef 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)define get-libcompiler-rt-mips-source-files 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(call filter-libcompiler-rt-common-source-files, 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(libcompiler_rt_common_SRC_FILES) \ 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(libcompiler_rt_mips_SRC_FILES),mips) 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)endef 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)define get-libcompiler-rt-x86-source-files 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(call filter-libcompiler-rt-common-source-files, 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(libcompiler_rt_common_SRC_FILES) \ 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(libcompiler_rt_x86_SRC_FILES),i386) 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)endef 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)define get-libcompiler-rt-x86_64-source-files 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(call filter-libcompiler-rt-common-source-files, 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(libcompiler_rt_common_SRC_FILES) \ 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $(libcompiler_rt_x86_64_SRC_FILES),x86_64) 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)endef 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Don't build compiler-rt without clang 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ifneq ($(WITHOUT_TARGET_CLANG), true) 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#===================================================================== 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Device Static Library: libcompiler_rt-extras 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#===================================================================== 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)include $(CLEAR_VARS) 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_MODULE := libcompiler_rt-extras 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_MODULE_TAGS := optional 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_MODULE_CLASS := STATIC_LIBRARIES 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_CLANG := true 296c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)LOCAL_SRC_FILES := $(libcompiler_rt_extras_SRC_FILES) 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)include $(BUILD_STATIC_LIBRARY) 300c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#===================================================================== 302c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch# Device Static Library: libcompiler_rt 303c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#===================================================================== 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)include $(CLEAR_VARS) 306eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 307eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochifeq ($(TARGET_ARCH),mips64) 3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$(warning TODOMips64: Enable compiler-rt build) 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)endif 310eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_MODULE := libcompiler_rt 312eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochLOCAL_CFLAGS_arm += -D__ARM_EABI__ 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_ASFLAGS := -integrated-as 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_CLANG := true 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_SRC_FILES_arm := $(call get-libcompiler-rt-source-files,arm) 316c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)LOCAL_SRC_FILES_arm64 := $(call get-libcompiler-rt-source-files,arm64) 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_SRC_FILES_mips := $(call get-libcompiler-rt-source-files,mips) 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_SRC_FILES_x86 := $(call get-libcompiler-rt-source-files,x86) 319c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)LOCAL_SRC_FILES_x86_64 := $(call get-libcompiler-rt-source-files,x86_64) 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_MODULE_TARGET_ARCH := arm arm64 mips x86 x86_64 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)include $(BUILD_STATIC_LIBRARY) 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#===================================================================== 326868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)# Device Shared Library: libcompiler_rt 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#===================================================================== 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 329c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)include $(CLEAR_VARS) 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_MODULE := libcompiler_rt 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_WHOLE_STATIC_LIBRARIES := libcompiler_rt 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LOCAL_MODULE_TARGET_ARCH := arm arm64 mips x86 x86_64 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 336c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)include $(BUILD_SHARED_LIBRARY) 337868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 338868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)# Build ASan 339c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)include $(LOCAL_PATH)/lib/asan/Android.mk 340868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 341c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)endif