blob: 8746ff298f4041a2d3aa59e90af8eedb80660723 [file] [log] [blame]
Dmitriy Ivanov1f5e1a32014-06-02 16:29:00 -07001#
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
17LOCAL_PATH := $(call my-dir)
18TEST_PATH := $(LOCAL_PATH)/..
19
20# -----------------------------------------------------------------------------
21# Library used by dlfcn tests.
22# -----------------------------------------------------------------------------
23ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),mips mips64))
24no-elf-hash-table-library_src_files := \
25 empty.cpp \
26
27no-elf-hash-table-library_ldflags := \
28 -Wl,--hash-style=gnu \
29
30module := no-elf-hash-table-library
31module_tag := optional
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -070032include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanov1f5e1a32014-06-02 16:29:00 -070033endif
34
35# -----------------------------------------------------------------------------
36# Library used by dlext tests - with GNU RELRO program header
37# -----------------------------------------------------------------------------
38libdlext_test_src_files := \
39 dlext_test_library.cpp \
40
41libdlext_test_ldflags := \
42 -Wl,-z,relro \
43
44module := libdlext_test
45module_tag := optional
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -070046include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanov1f5e1a32014-06-02 16:29:00 -070047
48# -----------------------------------------------------------------------------
49# create symlink to libdlext_test.so for symlink test
50# -----------------------------------------------------------------------------
51# Use = instead of := to defer the evaluation of $@
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -070052$(TARGET_OUT)/lib/libdlext_test.so: PRIVATE_POST_INSTALL_CMD = \
Dmitriy Ivanov1f5e1a32014-06-02 16:29:00 -070053 $(hide) cd $(dir $@) && ln -sf $(notdir $@) libdlext_test_v2.so
54
55ifneq ($(TARGET_2ND_ARCH),)
56# link 64 bit .so
57$(TARGET_OUT)/lib64/libdlext_test.so: PRIVATE_POST_INSTALL_CMD = \
58 $(hide) cd $(dir $@) && ln -sf $(notdir $@) libdlext_test_v2.so
59endif
60
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -070061# host symlinks
62$(HOST_OUT)/lib64/libdlext_test.so: PRIVATE_POST_INSTALL_CMD = \
63 $(hide) cd $(dir $@) && ln -sf $(notdir $@) libdlext_test_v2.so
64
65$(HOST_OUT)/lib/libdlext_test.so: PRIVATE_POST_INSTALL_CMD = \
66 $(hide) cd $(dir $@) && ln -sf $(notdir $@) libdlext_test_v2.so
67
Dmitriy Ivanov1f5e1a32014-06-02 16:29:00 -070068# -----------------------------------------------------------------------------
69# Library used by dlext tests - without GNU RELRO program header
70# -----------------------------------------------------------------------------
71libdlext_test_norelro_src_files := \
72 dlext_test_library.cpp \
73
74libdlext_test_norelro_ldflags := \
75 -Wl,-z,norelro \
76
77module := libdlext_test_norelro
78module_tag := optional
79build_type := target
80build_target := SHARED_LIBRARY
81include $(TEST_PATH)/Android.build.mk
82
83# -----------------------------------------------------------------------------
Dmitriy Ivanov04dc91a2014-07-01 14:10:16 -070084# Library used by dlext tests - different name non-default location
85# -----------------------------------------------------------------------------
86libdlext_test_fd_src_files := \
87 dlext_test_library.cpp \
88
89libdlext_test_fd_install_to_out_data := true
90module := libdlext_test_fd
91module_tag := optional
92build_type := target
93build_target := SHARED_LIBRARY
94include $(TEST_PATH)/Android.build.mk
95
96# -----------------------------------------------------------------------------
Dmitriy Ivanovde017802014-10-03 17:52:44 -070097# Library used by dlext tests - zipped and aligned
98# -----------------------------------------------------------------------------
99include $(CLEAR_VARS)
100bionic_2nd_arch_prefix :=
101include $(LOCAL_PATH)/Android.build.dlext_testzip.mk
102ifneq ($(TARGET_2ND_ARCH),)
103 bionic_2nd_arch_prefix := $(TARGET_2ND_ARCH_VAR_PREFIX)
104 include $(LOCAL_PATH)/Android.build.dlext_testzip.mk
105endif
106
107# -----------------------------------------------------------------------------
Dmitriy Ivanov1f5e1a32014-06-02 16:29:00 -0700108# Library used by dlfcn tests
109# -----------------------------------------------------------------------------
110libtest_simple_src_files := \
111 dlopen_testlib_simple.cpp
112
113module := libtest_simple
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700114include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanov1f5e1a32014-06-02 16:29:00 -0700115
Dmitriy Ivanovd97e9f52014-06-29 12:28:37 -0700116# -----------------------------------------------------------------------------
Dmitriy Ivanovc87f65d2014-05-19 15:06:58 -0700117# Library used by dlfcn nodelete tests
118# -----------------------------------------------------------------------------
119libtest_nodelete_1_src_files := \
120 dlopen_nodelete_1.cpp
121
122module := libtest_nodelete_1
123include $(LOCAL_PATH)/Android.build.testlib.mk
124
125# -----------------------------------------------------------------------------
126# Library used by dlfcn nodelete tests
127# -----------------------------------------------------------------------------
128libtest_nodelete_2_src_files := \
129 dlopen_nodelete_2.cpp
130
131module := libtest_nodelete_2
132include $(LOCAL_PATH)/Android.build.testlib.mk
133
134# -----------------------------------------------------------------------------
135# Library used by dlfcn nodelete tests
136# -----------------------------------------------------------------------------
137libtest_nodelete_dt_flags_1_src_files := \
138 dlopen_nodelete_dt_flags_1.cpp
139
140libtest_nodelete_dt_flags_1_ldflags := -Wl,-z,nodelete
141
142module := libtest_nodelete_dt_flags_1
143include $(LOCAL_PATH)/Android.build.testlib.mk
144
145# -----------------------------------------------------------------------------
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700146# Libraries used by dlfcn tests to verify correct load order:
147# libtest_check_order_2_right.so
148# -----------------------------------------------------------------------------
149libtest_check_order_2_right_src_files := \
150 dlopen_testlib_answer.cpp
151
152libtest_check_order_2_right_cflags := -D__ANSWER=42
153module := libtest_check_order_2_right
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700154include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700155
156# -----------------------------------------------------------------------------
157# libtest_check_order_a.so
158# -----------------------------------------------------------------------------
159libtest_check_order_a_src_files := \
160 dlopen_testlib_answer.cpp
161
162libtest_check_order_a_cflags := -D__ANSWER=1
163module := libtest_check_order_a
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700164include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700165
166# -----------------------------------------------------------------------------
167# libtest_check_order_b.so
168# -----------------------------------------------------------------------------
169libtest_check_order_b_src_files := \
170 dlopen_testlib_answer.cpp
171
172libtest_check_order_b_cflags := -D__ANSWER=2 -D__ANSWER2=43
173module := libtest_check_order_b
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700174include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700175
176# -----------------------------------------------------------------------------
177# libtest_check_order_c.so
178# -----------------------------------------------------------------------------
179libtest_check_order_3_c_src_files := \
180 dlopen_testlib_answer.cpp
181
182libtest_check_order_3_c_cflags := -D__ANSWER=3
183module := libtest_check_order_3_c
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700184include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700185
186# -----------------------------------------------------------------------------
187# libtest_check_order_d.so
188# -----------------------------------------------------------------------------
189libtest_check_order_d_src_files := \
190 dlopen_testlib_answer.cpp
191
192libtest_check_order_d_shared_libraries := libtest_check_order_b
193libtest_check_order_d_cflags := -D__ANSWER=4 -D__ANSWER2=4
194module := libtest_check_order_d
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700195include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700196
197# -----------------------------------------------------------------------------
198# libtest_check_order_left.so
199# -----------------------------------------------------------------------------
200libtest_check_order_1_left_src_files := \
201 empty.cpp
202
203libtest_check_order_1_left_shared_libraries := libtest_check_order_a libtest_check_order_b
204
205module := libtest_check_order_1_left
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700206include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700207
208# -----------------------------------------------------------------------------
209# libtest_check_order.so
210# -----------------------------------------------------------------------------
211libtest_check_order_src_files := \
212 empty.cpp
213
214libtest_check_order_shared_libraries := libtest_check_order_1_left \
215 libtest_check_order_2_right libtest_check_order_3_c
216
217module := libtest_check_order
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700218include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700219
220# -----------------------------------------------------------------------------
221# Library with dependency loop used by dlfcn tests
222#
223# libtest_with_dependency_loop -> a -> b -> c -> a
224# -----------------------------------------------------------------------------
Dmitriy Ivanov7d971ec2014-09-09 10:21:42 -0700225libtest_with_dependency_loop_src_files := dlopen_testlib_invalid.cpp
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700226
227libtest_with_dependency_loop_shared_libraries := \
228 libtest_with_dependency_loop_a
229
230module := libtest_with_dependency_loop
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700231include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700232
233# -----------------------------------------------------------------------------
234# libtest_with_dependency_loop_a.so
235# -----------------------------------------------------------------------------
Dmitriy Ivanov7d971ec2014-09-09 10:21:42 -0700236libtest_with_dependency_loop_a_src_files := dlopen_testlib_invalid.cpp
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700237
238libtest_with_dependency_loop_a_shared_libraries := \
239 libtest_with_dependency_loop_b_tmp
240
241module := libtest_with_dependency_loop_a
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700242include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700243
244# -----------------------------------------------------------------------------
245# libtest_with_dependency_loop_b.so
246#
247# this is temporary placeholder - will be removed
248# -----------------------------------------------------------------------------
Dmitriy Ivanov7d971ec2014-09-09 10:21:42 -0700249libtest_with_dependency_loop_b_tmp_src_files := dlopen_testlib_invalid.cpp
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700250libtest_with_dependency_loop_b_tmp_ldflags := -Wl,-soname=libtest_with_dependency_loop_b.so
251
252module := libtest_with_dependency_loop_b_tmp
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700253include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700254
255# -----------------------------------------------------------------------------
256# libtest_with_dependency_loop_b.so
257# -----------------------------------------------------------------------------
Dmitriy Ivanov7d971ec2014-09-09 10:21:42 -0700258libtest_with_dependency_loop_b_src_files := dlopen_testlib_invalid.cpp
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700259libtest_with_dependency_loop_b_shared_libraries := libtest_with_dependency_loop_c
260
261module := libtest_with_dependency_loop_b
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700262include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700263
264# -----------------------------------------------------------------------------
265# libtest_with_dependency_loop_c.so
266# -----------------------------------------------------------------------------
Dmitriy Ivanov7d971ec2014-09-09 10:21:42 -0700267libtest_with_dependency_loop_c_src_files := dlopen_testlib_invalid.cpp
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700268
269libtest_with_dependency_loop_c_shared_libraries := \
270 libtest_with_dependency_loop_a
271
272module := libtest_with_dependency_loop_c
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700273include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700274
275# -----------------------------------------------------------------------------
Dmitriy Ivanov8de1dde2014-09-04 18:23:00 -0700276# libtest_relo_check_dt_needed_order.so
277# |
278# +-> libtest_relo_check_dt_needed_order_1.so
279# |
280# +-> libtest_relo_check_dt_needed_order_2.so
281# -----------------------------------------------------------------------------
282libtest_relo_check_dt_needed_order_shared_libraries := \
283 libtest_relo_check_dt_needed_order_1 libtest_relo_check_dt_needed_order_2
284
285libtest_relo_check_dt_needed_order_src_files := dlopen_testlib_relo_check_dt_needed_order.cpp
286libtest_relo_check_dt_needed_order_1_src_files := dlopen_testlib_relo_check_dt_needed_order_1.cpp
287libtest_relo_check_dt_needed_order_2_src_files := dlopen_testlib_relo_check_dt_needed_order_2.cpp
Dmitriy Ivanov8de1dde2014-09-04 18:23:00 -0700288
289module := libtest_relo_check_dt_needed_order
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700290include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanov8de1dde2014-09-04 18:23:00 -0700291module := libtest_relo_check_dt_needed_order_1
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700292include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanov8de1dde2014-09-04 18:23:00 -0700293module := libtest_relo_check_dt_needed_order_2
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700294include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanov8de1dde2014-09-04 18:23:00 -0700295
296# -----------------------------------------------------------------------------
Dmitriy Ivanovdb7a17d2014-08-04 23:39:22 +0000297# Library with dependency used by dlfcn tests
298# -----------------------------------------------------------------------------
299libtest_with_dependency_src_files := \
300 dlopen_testlib_simple.cpp
301
302libtest_with_dependency_shared_libraries := libdlext_test
303
304module := libtest_with_dependency
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700305include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanovdb7a17d2014-08-04 23:39:22 +0000306
307# -----------------------------------------------------------------------------
Brigid Smith31b88da2014-07-23 11:22:25 -0700308# Library used by ifunc tests
309# -----------------------------------------------------------------------------
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700310libtest_ifunc_src_files := \
311 dlopen_testlib_ifunc.c
312
313libtest_ifunc_clang_host := false
314module := libtest_ifunc
315build_target := SHARED_LIBRARY
316
317build_type := host
318include $(TEST_PATH)/Android.build.mk
319
Dmitriy Ivanov1cd0c672014-10-01 16:26:49 -0700320ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64))
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700321 ifeq ($(TARGET_ARCH),arm64)
322 libtest_ifunc_multilib := 64
323 # TODO: This is a workaround - remove it once gcc
324 # removes its Android ifunc checks
325 libtest_ifunc_cflags := -mglibc
326 endif
Brigid Smith31b88da2014-07-23 11:22:25 -0700327
Brigid Smith31b88da2014-07-23 11:22:25 -0700328 build_type := target
Brigid Smith31b88da2014-07-23 11:22:25 -0700329 include $(TEST_PATH)/Android.build.mk
330endif
331
332# -----------------------------------------------------------------------------
Dmitriy Ivanov1f5e1a32014-06-02 16:29:00 -0700333# Library used by atexit tests
334# -----------------------------------------------------------------------------
335
336libtest_atexit_src_files := \
337 atexit_testlib.cpp
338
339module := libtest_atexit
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700340include $(LOCAL_PATH)/Android.build.testlib.mk
Dmitriy Ivanov1f5e1a32014-06-02 16:29:00 -0700341
Dmitriy Ivanovce441662014-06-17 15:56:38 -0700342# -----------------------------------------------------------------------------
343# Library with weak function
344# -----------------------------------------------------------------------------
345libtest_dlsym_weak_func_src_files := \
346 dlsym_weak_function.cpp
347
348module := libtest_dlsym_weak_func
Dmitriy Ivanov382e06c2014-10-30 23:42:45 -0700349include $(LOCAL_PATH)/Android.build.testlib.mk