blob: 49b64982024b399690d75c73e16ad179f66c48cf [file] [log] [blame]
Evgeniy Stepanovdc3865b2012-03-13 15:38:23 +04001#
2# Copyright (C) 2012 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16#
17
18LOCAL_PATH := $(call my-dir)
Shih-wei Liao139a1062013-01-26 11:29:30 -080019
Stephen Hines30694612014-05-14 00:00:32 -070020
Shih-wei Liao139a1062013-01-26 11:29:30 -080021# The following list contains platform-independent functionalities.
22#
Shih-wei Liaocec07262013-01-26 22:12:04 -080023# Skip apple_versioning.c since it is unused.
Shih-wei Liao139a1062013-01-26 11:29:30 -080024# Skip atomic.c since it needs to be built separately according to the docs.
Shih-wei Liao139a1062013-01-26 11:29:30 -080025libcompiler_rt_common_SRC_FILES := \
Stephen Hines2d1fdb22014-05-28 23:58:16 -070026 lib/builtins/absvdi2.c \
27 lib/builtins/absvsi2.c \
28 lib/builtins/absvti2.c \
29 lib/builtins/adddf3.c \
30 lib/builtins/addsf3.c \
Dan Albert5c072a62014-06-19 16:03:10 -070031 lib/builtins/addtf3.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -070032 lib/builtins/addvdi3.c \
33 lib/builtins/addvsi3.c \
34 lib/builtins/addvti3.c \
35 lib/builtins/ashldi3.c \
36 lib/builtins/ashlti3.c \
37 lib/builtins/ashrdi3.c \
38 lib/builtins/ashrti3.c \
39 lib/builtins/clear_cache.c \
40 lib/builtins/clzdi2.c \
41 lib/builtins/clzsi2.c \
42 lib/builtins/clzti2.c \
43 lib/builtins/cmpdi2.c \
44 lib/builtins/cmpti2.c \
45 lib/builtins/comparedf2.c \
46 lib/builtins/comparesf2.c \
Dan Albert5148f962014-06-18 19:32:53 -070047 lib/builtins/comparetf2.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -070048 lib/builtins/ctzdi2.c \
49 lib/builtins/ctzsi2.c \
50 lib/builtins/ctzti2.c \
51 lib/builtins/divdc3.c \
52 lib/builtins/divdf3.c \
53 lib/builtins/divdi3.c \
54 lib/builtins/divmoddi4.c \
55 lib/builtins/divmodsi4.c \
56 lib/builtins/divsc3.c \
57 lib/builtins/divsf3.c \
58 lib/builtins/divsi3.c \
Stephen Hines87ce7962015-07-01 18:17:28 -070059 lib/builtins/divtf3.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -070060 lib/builtins/divti3.c \
61 lib/builtins/divxc3.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -070062 lib/builtins/eprintf.c \
Dan Albert9f647902014-10-14 14:28:39 -070063 lib/builtins/extenddftf2.c \
Pirama Arumuga Nainara4cf3ee2015-05-20 13:03:23 -070064 lib/builtins/extendhfsf2.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -070065 lib/builtins/extendsfdf2.c \
Dan Albert9f647902014-10-14 14:28:39 -070066 lib/builtins/extendsftf2.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -070067 lib/builtins/ffsdi2.c \
68 lib/builtins/ffsti2.c \
69 lib/builtins/fixdfdi.c \
70 lib/builtins/fixdfsi.c \
71 lib/builtins/fixdfti.c \
72 lib/builtins/fixsfdi.c \
73 lib/builtins/fixsfsi.c \
74 lib/builtins/fixsfti.c \
Stephen Hines87ce7962015-07-01 18:17:28 -070075 lib/builtins/fixtfdi.c \
76 lib/builtins/fixtfsi.c \
77 lib/builtins/fixtfti.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -070078 lib/builtins/fixunsdfdi.c \
79 lib/builtins/fixunsdfsi.c \
80 lib/builtins/fixunsdfti.c \
81 lib/builtins/fixunssfdi.c \
82 lib/builtins/fixunssfsi.c \
83 lib/builtins/fixunssfti.c \
Stephen Hines87ce7962015-07-01 18:17:28 -070084 lib/builtins/fixunstfdi.c \
85 lib/builtins/fixunstfsi.c \
86 lib/builtins/fixunstfti.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -070087 lib/builtins/fixunsxfdi.c \
88 lib/builtins/fixunsxfsi.c \
89 lib/builtins/fixunsxfti.c \
90 lib/builtins/fixxfdi.c \
91 lib/builtins/fixxfti.c \
92 lib/builtins/floatdidf.c \
93 lib/builtins/floatdisf.c \
94 lib/builtins/floatdixf.c \
95 lib/builtins/floatsidf.c \
96 lib/builtins/floatsisf.c \
Dan Albert9f647902014-10-14 14:28:39 -070097 lib/builtins/floatsitf.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -070098 lib/builtins/floattidf.c \
99 lib/builtins/floattisf.c \
100 lib/builtins/floattixf.c \
101 lib/builtins/floatundidf.c \
102 lib/builtins/floatundisf.c \
103 lib/builtins/floatundixf.c \
104 lib/builtins/floatunsidf.c \
105 lib/builtins/floatunsisf.c \
Dan Albert9f647902014-10-14 14:28:39 -0700106 lib/builtins/floatunsitf.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700107 lib/builtins/floatuntidf.c \
108 lib/builtins/floatuntisf.c \
109 lib/builtins/floatuntixf.c \
Dan Albertb6c48252014-10-13 11:14:36 -0700110 lib/builtins/gcc_personality_v0.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700111 lib/builtins/int_util.c \
112 lib/builtins/lshrdi3.c \
113 lib/builtins/lshrti3.c \
114 lib/builtins/moddi3.c \
115 lib/builtins/modsi3.c \
116 lib/builtins/modti3.c \
117 lib/builtins/muldc3.c \
118 lib/builtins/muldf3.c \
119 lib/builtins/muldi3.c \
120 lib/builtins/mulodi4.c \
121 lib/builtins/mulosi4.c \
122 lib/builtins/muloti4.c \
123 lib/builtins/mulsc3.c \
124 lib/builtins/mulsf3.c \
Dan Albert5c072a62014-06-19 16:03:10 -0700125 lib/builtins/multf3.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700126 lib/builtins/multi3.c \
127 lib/builtins/mulvdi3.c \
128 lib/builtins/mulvsi3.c \
129 lib/builtins/mulvti3.c \
130 lib/builtins/mulxc3.c \
131 lib/builtins/negdf2.c \
132 lib/builtins/negdi2.c \
133 lib/builtins/negsf2.c \
134 lib/builtins/negti2.c \
135 lib/builtins/negvdi2.c \
136 lib/builtins/negvsi2.c \
137 lib/builtins/negvti2.c \
138 lib/builtins/paritydi2.c \
139 lib/builtins/paritysi2.c \
140 lib/builtins/parityti2.c \
141 lib/builtins/popcountdi2.c \
142 lib/builtins/popcountsi2.c \
143 lib/builtins/popcountti2.c \
144 lib/builtins/powidf2.c \
145 lib/builtins/powisf2.c \
146 lib/builtins/powitf2.c \
147 lib/builtins/powixf2.c \
148 lib/builtins/subdf3.c \
149 lib/builtins/subsf3.c \
Dan Albert5c072a62014-06-19 16:03:10 -0700150 lib/builtins/subtf3.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700151 lib/builtins/subvdi3.c \
152 lib/builtins/subvsi3.c \
153 lib/builtins/subvti3.c \
154 lib/builtins/trampoline_setup.c \
Pirama Arumuga Nainara4cf3ee2015-05-20 13:03:23 -0700155 lib/builtins/truncdfhf2.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700156 lib/builtins/truncdfsf2.c \
Pirama Arumuga Nainara4cf3ee2015-05-20 13:03:23 -0700157 lib/builtins/truncsfhf2.c \
Dan Albert9f647902014-10-14 14:28:39 -0700158 lib/builtins/trunctfdf2.c \
159 lib/builtins/trunctfsf2.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700160 lib/builtins/ucmpdi2.c \
161 lib/builtins/ucmpti2.c \
162 lib/builtins/udivdi3.c \
163 lib/builtins/udivmoddi4.c \
164 lib/builtins/udivmodsi4.c \
165 lib/builtins/udivmodti4.c \
166 lib/builtins/udivsi3.c \
167 lib/builtins/udivti3.c \
168 lib/builtins/umoddi3.c \
169 lib/builtins/umodsi3.c \
170 lib/builtins/umodti3.c
Shih-wei Liao139a1062013-01-26 11:29:30 -0800171
172# ARM-specific runtimes
173libcompiler_rt_arm_SRC_FILES := \
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700174 lib/builtins/arm/aeabi_dcmp.S \
Dan Albertefae8612014-10-10 15:32:41 -0700175 lib/builtins/arm/aeabi_div0.c \
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700176 lib/builtins/arm/aeabi_fcmp.S \
177 lib/builtins/arm/aeabi_idivmod.S \
178 lib/builtins/arm/aeabi_ldivmod.S \
179 lib/builtins/arm/aeabi_memcmp.S \
180 lib/builtins/arm/aeabi_memcpy.S \
181 lib/builtins/arm/aeabi_memmove.S \
182 lib/builtins/arm/aeabi_memset.S \
183 lib/builtins/arm/aeabi_uidivmod.S \
184 lib/builtins/arm/aeabi_uldivmod.S \
185 lib/builtins/arm/comparesf2.S \
186 lib/builtins/arm/divmodsi4.S \
187 lib/builtins/arm/divsi3.S \
188 lib/builtins/arm/modsi3.S \
189 lib/builtins/arm/udivmodsi4.S \
190 lib/builtins/arm/udivsi3.S \
Stephen Hinesb6376a72015-07-15 23:52:21 -0700191 lib/builtins/arm/umodsi3.S \
192 lib/builtins/arm/adddf3vfp.S \
193 lib/builtins/arm/addsf3vfp.S \
194 lib/builtins/arm/divdf3vfp.S \
195 lib/builtins/arm/divsf3vfp.S \
196 lib/builtins/arm/eqdf2vfp.S \
197 lib/builtins/arm/eqsf2vfp.S \
198 lib/builtins/arm/extendsfdf2vfp.S \
199 lib/builtins/arm/fixdfsivfp.S \
200 lib/builtins/arm/fixsfsivfp.S \
201 lib/builtins/arm/fixunsdfsivfp.S \
202 lib/builtins/arm/fixunssfsivfp.S \
203 lib/builtins/arm/floatsidfvfp.S \
204 lib/builtins/arm/floatsisfvfp.S \
205 lib/builtins/arm/floatunssidfvfp.S \
206 lib/builtins/arm/floatunssisfvfp.S \
207 lib/builtins/arm/gedf2vfp.S \
208 lib/builtins/arm/gesf2vfp.S \
209 lib/builtins/arm/gtdf2vfp.S \
210 lib/builtins/arm/gtsf2vfp.S \
211 lib/builtins/arm/ledf2vfp.S \
212 lib/builtins/arm/lesf2vfp.S \
213 lib/builtins/arm/ltdf2vfp.S \
214 lib/builtins/arm/ltsf2vfp.S \
215 lib/builtins/arm/muldf3vfp.S \
216 lib/builtins/arm/mulsf3vfp.S \
217 lib/builtins/arm/nedf2vfp.S \
218 lib/builtins/arm/negdf2vfp.S \
219 lib/builtins/arm/negsf2vfp.S \
220 lib/builtins/arm/nesf2vfp.S \
221 lib/builtins/arm/subdf3vfp.S \
222 lib/builtins/arm/subsf3vfp.S \
223 lib/builtins/arm/truncdfsf2vfp.S \
224 lib/builtins/arm/unorddf2vfp.S \
225 lib/builtins/arm/unordsf2vfp.S
226
Shih-wei Liao139a1062013-01-26 11:29:30 -0800227
Tim Murray6731c552014-03-10 11:10:47 -0700228# ARM64-specific runtimes
229libcompiler_rt_arm64_SRC_FILES :=
230
Shih-wei Liao139a1062013-01-26 11:29:30 -0800231# MIPS-specific runtimes
232libcompiler_rt_mips_SRC_FILES := # nothing to add
Duane Sand5b87b3d2014-05-20 11:06:29 -0700233libcompiler_rt_mips64_SRC_FILES := # nothing to add
Shih-wei Liao139a1062013-01-26 11:29:30 -0800234
235# X86-specific runtimes
Shih-wei Liao139a1062013-01-26 11:29:30 -0800236libcompiler_rt_x86_SRC_FILES := \
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700237 lib/builtins/i386/ashldi3.S \
238 lib/builtins/i386/ashrdi3.S \
239 lib/builtins/i386/divdi3.S \
240 lib/builtins/i386/floatdidf.S \
241 lib/builtins/i386/floatdisf.S \
242 lib/builtins/i386/floatdixf.S \
243 lib/builtins/i386/floatundidf.S \
244 lib/builtins/i386/floatundisf.S \
245 lib/builtins/i386/floatundixf.S \
246 lib/builtins/i386/lshrdi3.S \
247 lib/builtins/i386/moddi3.S \
248 lib/builtins/i386/muldi3.S \
249 lib/builtins/i386/udivdi3.S \
250 lib/builtins/i386/umoddi3.S
Shih-wei Liao139a1062013-01-26 11:29:30 -0800251
Alexey Volkov99395062014-01-17 17:44:56 +0400252# X86_64-specific runtimes
253libcompiler_rt_x86_64_SRC_FILES := \
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700254 lib/builtins/x86_64/floatundixf.S \
255 lib/builtins/x86_64/floatdisf.c \
256 lib/builtins/x86_64/floatdidf.c \
257 lib/builtins/x86_64/floatdixf.c \
258 lib/builtins/x86_64/floatundisf.S \
259 lib/builtins/x86_64/floatundidf.S
Alexey Volkov99395062014-01-17 17:44:56 +0400260
Shih-wei Liao139a1062013-01-26 11:29:30 -0800261# The following list contains functions that are not available in libgcc.a, so
262# we potentially need them when using a Clang-built component (e.g., -ftrapv
263# with 64-bit integer multiplies. See http://llvm.org/bugs/show_bug.cgi?id=14469.)
264libcompiler_rt_extras_SRC_FILES := \
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700265 lib/builtins/mulodi4.c
Shih-wei Liao139a1062013-01-26 11:29:30 -0800266
267# $(1): arch
268define get-libcompiler-rt-source-files
269 $(if $(findstring $(1),arm),$(call get-libcompiler-rt-arm-source-files),
270 $(if $(findstring $(1),mips),$(call get-libcompiler-rt-mips-source-files),
271 $(if $(findstring $(1),x86),$(call get-libcompiler-rt-x86-source-files),
Alexey Volkov99395062014-01-17 17:44:56 +0400272 $(if $(findstring $(1),x86_64),$(call get-libcompiler-rt-x86_64-source-files),
Pavel Chupin5534fc32013-07-25 20:31:56 +0400273 $(if $(findstring $(1),x32),$(call get-libcompiler-rt-x86-source-files),
Tim Murray6731c552014-03-10 11:10:47 -0700274 $(if $(findstring $(1),arm64),$(call get-libcompiler-rt-arm64-source-files),
Duane Sand5b87b3d2014-05-20 11:06:29 -0700275 $(if $(findstring $(1),mips64),$(call get-libcompiler-rt-mips64-source-files),
276 $(error Unsupported ARCH $(1)))))))))
Shih-wei Liao139a1062013-01-26 11:29:30 -0800277endef
278
279# $(1): source list
280# $(2): arch
281#
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700282# If lib/builtins/<arch>/X.[cS] is included in the source list, we should filter out lib/builtins/X.c
Shih-wei Liao139a1062013-01-26 11:29:30 -0800283# in the result source list (i.e., use the one optimized for the arch.) Otherwise
284# there'll be multiple definitions for one symbol.
285define filter-libcompiler-rt-common-source-files
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700286 $(filter-out $(patsubst lib/builtins/$(strip $(2))/%.S,lib/builtins/%.c,\
287 $(filter lib/builtins/$(strip $(2))/%.S,$(1))) \
288 $(patsubst lib/builtins/$(strip $(2))/%.c,lib/builtins/%.c,\
289 $(filter lib/builtins/$(strip $(2))/%.c,$(1))),$(1))
Shih-wei Liao139a1062013-01-26 11:29:30 -0800290endef
291
Dan Albertc044a2f2015-08-06 17:20:39 -0700292define get-libcompiler-rt-arm-source-files
Shih-wei Liao139a1062013-01-26 11:29:30 -0800293 $(call filter-libcompiler-rt-common-source-files,
Shih-wei Liaoc8f55192013-02-07 22:00:08 -0800294 $(libcompiler_rt_common_SRC_FILES) \
Shih-wei Liaoece62642013-02-07 07:49:51 -0800295 $(libcompiler_rt_arm_SRC_FILES), arm)
296endef
297
Tim Murray6731c552014-03-10 11:10:47 -0700298define get-libcompiler-rt-arm64-source-files
299 $(call filter-libcompiler-rt-common-source-files,
300 $(libcompiler_rt_common_SRC_FILES) \
301 $(libcompiler_rt_arm64_SRC_FILES),arm64)
302endef
303
Shih-wei Liao139a1062013-01-26 11:29:30 -0800304define get-libcompiler-rt-mips-source-files
305 $(call filter-libcompiler-rt-common-source-files,
Shih-wei Liaoc8f55192013-02-07 22:00:08 -0800306 $(libcompiler_rt_common_SRC_FILES) \
Shih-wei Liao139a1062013-01-26 11:29:30 -0800307 $(libcompiler_rt_mips_SRC_FILES),mips)
308endef
309
Duane Sand5b87b3d2014-05-20 11:06:29 -0700310define get-libcompiler-rt-mips64-source-files
311 $(call filter-libcompiler-rt-common-source-files,
312 $(libcompiler_rt_common_SRC_FILES) \
313 $(libcompiler_rt_mips64_SRC_FILES),mips64)
314endef
315
Shih-wei Liao139a1062013-01-26 11:29:30 -0800316define get-libcompiler-rt-x86-source-files
317 $(call filter-libcompiler-rt-common-source-files,
Shih-wei Liaoc8f55192013-02-07 22:00:08 -0800318 $(libcompiler_rt_common_SRC_FILES) \
Shih-wei Liao139a1062013-01-26 11:29:30 -0800319 $(libcompiler_rt_x86_SRC_FILES),i386)
320endef
321
Alexey Volkov99395062014-01-17 17:44:56 +0400322define get-libcompiler-rt-x86_64-source-files
323 $(call filter-libcompiler-rt-common-source-files,
324 $(libcompiler_rt_common_SRC_FILES) \
325 $(libcompiler_rt_x86_64_SRC_FILES),x86_64)
326endef
327
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -0800328libcompiler_rt_common_CFLAGS := \
329 -Wno-unused-parameter \
330 -Werror
331
Evgeniy Stepanovdc3865b2012-03-13 15:38:23 +0400332#=====================================================================
Shih-wei Liao7f489a32013-02-07 03:34:40 -0800333# Device Static Library: libcompiler_rt-extras
Evgeniy Stepanovdc3865b2012-03-13 15:38:23 +0400334#=====================================================================
335
Evgeniy Stepanovdc3865b2012-03-13 15:38:23 +0400336include $(CLEAR_VARS)
337
Shih-wei Liao7f489a32013-02-07 03:34:40 -0800338LOCAL_MODULE := libcompiler_rt-extras
Evgeniy Stepanovdc3865b2012-03-13 15:38:23 +0400339LOCAL_MODULE_TAGS := optional
340LOCAL_MODULE_CLASS := STATIC_LIBRARIES
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -0800341LOCAL_CFLAGS := $(libcompiler_rt_common_CFLAGS)
Evgeniy Stepanovdc3865b2012-03-13 15:38:23 +0400342LOCAL_CLANG := true
Shih-wei Liao139a1062013-01-26 11:29:30 -0800343LOCAL_SRC_FILES := $(libcompiler_rt_extras_SRC_FILES)
Goran Jakovljevic033e09b2016-02-10 17:08:46 +0100344LOCAL_SRC_FILES_mips += lib/builtins/clear_cache.c
345LOCAL_SRC_FILES_mips64 += lib/builtins/clear_cache.c
Stephen Hines97ac43c2013-01-18 17:46:14 -0800346LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
Dan Albert22e3e212015-06-16 14:05:33 -0700347LOCAL_SANITIZE := never
Dan Albert1aa18fb2015-04-30 16:51:20 -0700348LOCAL_CXX_STL := none
Evgeniy Stepanovdc3865b2012-03-13 15:38:23 +0400349
Evgeniy Stepanovdc3865b2012-03-13 15:38:23 +0400350include $(BUILD_STATIC_LIBRARY)
351
Dan Albert06e4b402015-04-09 16:34:35 -0700352#=====================================================================
353# Host Static Library: libcompiler_rt-extras
354#=====================================================================
355
356include $(CLEAR_VARS)
357
358LOCAL_MODULE := libcompiler_rt-extras
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -0800359LOCAL_CFLAGS := $(libcompiler_rt_common_CFLAGS)
Dan Albert06e4b402015-04-09 16:34:35 -0700360LOCAL_SRC_FILES := $(libcompiler_rt_extras_SRC_FILES)
Dan Albert22e3e212015-06-16 14:05:33 -0700361LOCAL_SANITIZE := never
Dan Albert06e4b402015-04-09 16:34:35 -0700362LOCAL_MULTILIB := both
Dan Albert1aa18fb2015-04-30 16:51:20 -0700363LOCAL_CXX_STL := none
Dan Willemsen43781632015-08-18 15:39:04 -0700364LOCAL_MODULE_HOST_OS := darwin linux windows
Dan Albert06e4b402015-04-09 16:34:35 -0700365
366include $(BUILD_HOST_STATIC_LIBRARY)
367
Colin Cross47ca89c2014-03-14 20:12:30 -0700368# Don't build compiler-rt without clang
369ifneq ($(WITHOUT_TARGET_CLANG), true)
370
Shih-wei Liao139a1062013-01-26 11:29:30 -0800371#=====================================================================
Shih-wei Liao7f489a32013-02-07 03:34:40 -0800372# Device Static Library: libcompiler_rt
Shih-wei Liao139a1062013-01-26 11:29:30 -0800373#=====================================================================
Colin Cross75d873d2014-02-04 16:24:23 -0800374
375include $(CLEAR_VARS)
376
Colin Cross75d873d2014-02-04 16:24:23 -0800377LOCAL_MODULE := libcompiler_rt
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -0800378LOCAL_CFLAGS := $(libcompiler_rt_common_CFLAGS)
Colin Cross75d873d2014-02-04 16:24:23 -0800379LOCAL_CFLAGS_arm += -D__ARM_EABI__
Stephen Hines69026252016-03-18 16:52:02 -0700380LOCAL_CFLAGS_mips64 += -DCRT_HAS_128BIT
Colin Cross75d873d2014-02-04 16:24:23 -0800381LOCAL_ASFLAGS := -integrated-as
382LOCAL_CLANG := true
Dan Willemsen43781632015-08-18 15:39:04 -0700383LOCAL_SRC_FILES := lib/builtins/enable_execute_stack.c
Colin Cross75d873d2014-02-04 16:24:23 -0800384LOCAL_SRC_FILES_arm := $(call get-libcompiler-rt-source-files,arm)
Tim Murray6731c552014-03-10 11:10:47 -0700385LOCAL_SRC_FILES_arm64 := $(call get-libcompiler-rt-source-files,arm64)
Colin Cross75d873d2014-02-04 16:24:23 -0800386LOCAL_SRC_FILES_mips := $(call get-libcompiler-rt-source-files,mips)
Duane Sand5b87b3d2014-05-20 11:06:29 -0700387LOCAL_SRC_FILES_mips64 := $(call get-libcompiler-rt-source-files,mips64)
Colin Cross75d873d2014-02-04 16:24:23 -0800388LOCAL_SRC_FILES_x86 := $(call get-libcompiler-rt-source-files,x86)
389LOCAL_SRC_FILES_x86_64 := $(call get-libcompiler-rt-source-files,x86_64)
Stephen Hinesb3608eb2015-07-02 14:44:23 -0700390LOCAL_SRC_FILES_x86_64 += lib/builtins/ppc/floatditf.c
Duane Sand5b87b3d2014-05-20 11:06:29 -0700391LOCAL_MODULE_TARGET_ARCH := arm arm64 mips mips64 x86 x86_64
Colin Cross75d873d2014-02-04 16:24:23 -0800392LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
Dan Albert22e3e212015-06-16 14:05:33 -0700393LOCAL_SANITIZE := never
Dan Albert1aa18fb2015-04-30 16:51:20 -0700394LOCAL_CXX_STL := none
Colin Cross75d873d2014-02-04 16:24:23 -0800395
Dan Willemsenb09bd8b2016-03-04 13:57:35 -0800396# These don't actually link, but are required to get exported headers
Dan Willemsenb09bd8b2016-03-04 13:57:35 -0800397LOCAL_STATIC_LIBRARIES_arm64 := libunwindbacktrace
398LOCAL_STATIC_LIBRARIES_mips := libunwindbacktrace
399LOCAL_STATIC_LIBRARIES_mips64 := libunwindbacktrace
400LOCAL_STATIC_LIBRARIES_x86 := libunwindbacktrace
401LOCAL_STATIC_LIBRARIES_x86_64 := libunwindbacktrace
402
Colin Cross75d873d2014-02-04 16:24:23 -0800403include $(BUILD_STATIC_LIBRARY)
404
Shih-wei Liaofba76912013-01-27 00:56:26 -0800405#=====================================================================
Dan Albert95b6e9a2014-05-01 17:40:29 -0700406# Host Static Library: libcompiler_rt
407#=====================================================================
408
409include $(CLEAR_VARS)
410
411LOCAL_MODULE := libcompiler_rt
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -0800412LOCAL_CFLAGS := $(libcompiler_rt_common_CFLAGS)
Dan Albert95b6e9a2014-05-01 17:40:29 -0700413LOCAL_ASFLAGS := -integrated-as
414LOCAL_CLANG := true
Dan Willemsen328d0332016-05-05 15:37:45 -0700415LOCAL_SRC_FILES_x86 := $(call get-libcompiler-rt-source-files,x86)
416LOCAL_SRC_FILES_x86_64 := $(call get-libcompiler-rt-source-files,x86_64)
Dan Willemsen43781632015-08-18 15:39:04 -0700417# Only build enable_execute_stack.c on non-Windows hosts.
418LOCAL_SRC_FILES_darwin := lib/builtins/enable_execute_stack.c
419LOCAL_SRC_FILES_linux := lib/builtins/enable_execute_stack.c
Dan Albert22e3e212015-06-16 14:05:33 -0700420LOCAL_SANITIZE := never
Dan Albert95b6e9a2014-05-01 17:40:29 -0700421LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
Ian Rogersa217f3e2014-06-05 11:44:01 -0700422LOCAL_MULTILIB := both
Dan Albert1aa18fb2015-04-30 16:51:20 -0700423LOCAL_CXX_STL := none
Dan Albert95b6e9a2014-05-01 17:40:29 -0700424
Dan Willemsenb09bd8b2016-03-04 13:57:35 -0800425# These don't actually link, but are required to get exported headers
426LOCAL_STATIC_LIBRARIES_linux := libunwindbacktrace
427LOCAL_STATIC_LIBRARIES_windows := libunwindbacktrace
428
Dan Albert95b6e9a2014-05-01 17:40:29 -0700429include $(BUILD_HOST_STATIC_LIBRARY)
430
431#=====================================================================
Shih-wei Liaofba76912013-01-27 00:56:26 -0800432# Device Shared Library: libcompiler_rt
433#=====================================================================
Serban Constantinescue3c30bf2013-10-20 15:36:30 +0100434
Colin Cross75d873d2014-02-04 16:24:23 -0800435include $(CLEAR_VARS)
436
437LOCAL_MODULE := libcompiler_rt
438LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
439LOCAL_WHOLE_STATIC_LIBRARIES := libcompiler_rt
David Srbeckye4e49122015-06-02 22:31:04 +0100440LOCAL_SHARED_LIBRARIES := libdl liblog
441LOCAL_STATIC_LIBRARIES := liblzma
Dan Albertb6c48252014-10-13 11:14:36 -0700442LOCAL_STATIC_LIBRARIES_arm := libunwind_llvm
443LOCAL_STATIC_LIBRARIES_arm64 := libunwindbacktrace
444LOCAL_STATIC_LIBRARIES_mips := libunwindbacktrace
445LOCAL_STATIC_LIBRARIES_mips64 := libunwindbacktrace
446LOCAL_STATIC_LIBRARIES_x86 := libunwindbacktrace
447LOCAL_STATIC_LIBRARIES_x86_64 := libunwindbacktrace
Dan Albertb26c4212015-08-25 16:31:36 -0700448LOCAL_LDFLAGS_arm := -Wl,--exclude-libs,libunwind_llvm.a
449LOCAL_LDFLAGS_arm64 := -Wl,--exclude-libs,libunwindbacktrace.a
450LOCAL_LDFLAGS_mips := -Wl,--exclude-libs,libunwindbacktrace.a
451LOCAL_LDFLAGS_mips64 := -Wl,--exclude-libs,libunwindbacktrace.a
452LOCAL_LDFLAGS_x86 := -Wl,--exclude-libs,libunwindbacktrace.a
453LOCAL_LDFLAGS_x86_64 := -Wl,--exclude-libs,libunwindbacktrace.a
Duane Sand5b87b3d2014-05-20 11:06:29 -0700454LOCAL_MODULE_TARGET_ARCH := arm arm64 mips mips64 x86 x86_64
Dan Albert22e3e212015-06-16 14:05:33 -0700455LOCAL_SANITIZE := never
Dan Albert1aa18fb2015-04-30 16:51:20 -0700456LOCAL_CXX_STL := none
Stephen Hines2d504642015-07-01 18:40:51 -0700457LOCAL_NO_LIBGCC := true
Colin Cross75d873d2014-02-04 16:24:23 -0800458
459include $(BUILD_SHARED_LIBRARY)
Shih-wei Liaofba76912013-01-27 00:56:26 -0800460
Dan Albert95b6e9a2014-05-01 17:40:29 -0700461#=====================================================================
462# Host Shared Library: libcompiler_rt
463#=====================================================================
464
465include $(CLEAR_VARS)
466
467LOCAL_MODULE := libcompiler_rt
468LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
469LOCAL_WHOLE_STATIC_LIBRARIES := libcompiler_rt
Dan Willemsen43781632015-08-18 15:39:04 -0700470LOCAL_STATIC_LIBRARIES_linux := libunwindbacktrace
471LOCAL_STATIC_LIBRARIES_windows := libunwindbacktrace
Dan Albert95b6e9a2014-05-01 17:40:29 -0700472LOCAL_CPPFLAGS := -nostdinc++
Dan Willemsen43781632015-08-18 15:39:04 -0700473LOCAL_LDFLAGS_darwin := -nodefaultlibs
474LOCAL_LDFLAGS_linux := -nodefaultlibs
475LOCAL_LDLIBS_darwin := -lpthread -lc -lm
476LOCAL_LDLIBS_linux := -lpthread -lc -lm
Ian Rogersa217f3e2014-06-05 11:44:01 -0700477LOCAL_MULTILIB := both
Dan Albert22e3e212015-06-16 14:05:33 -0700478LOCAL_SANITIZE := never
Dan Albert1aa18fb2015-04-30 16:51:20 -0700479LOCAL_CXX_STL := none
Stephen Hines2d504642015-07-01 18:40:51 -0700480LOCAL_NO_LIBGCC := true
Dan Albert95b6e9a2014-05-01 17:40:29 -0700481
482include $(BUILD_HOST_SHARED_LIBRARY)
483
Dan Albert93f64d92014-10-18 17:25:26 -0700484# Build asan, lsan, etc.
485include $(call all-makefiles-under,$(LOCAL_PATH)/lib)
486
Colin Cross47ca89c2014-03-14 20:12:30 -0700487endif