blob: b7335d59e8f799a6b135412f9bac52d90e48cb66 [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
32build_type := target
33build_target := SHARED_LIBRARY
34include $(TEST_PATH)/Android.build.mk
35endif
36
37# -----------------------------------------------------------------------------
38# Library used by dlext tests - with GNU RELRO program header
39# -----------------------------------------------------------------------------
40libdlext_test_src_files := \
41 dlext_test_library.cpp \
42
43libdlext_test_ldflags := \
44 -Wl,-z,relro \
45
46module := libdlext_test
47module_tag := optional
48build_type := target
49build_target := SHARED_LIBRARY
50include $(TEST_PATH)/Android.build.mk
51
52# -----------------------------------------------------------------------------
53# create symlink to libdlext_test.so for symlink test
54# -----------------------------------------------------------------------------
55# Use = instead of := to defer the evaluation of $@
56$(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD = \
57 $(hide) cd $(dir $@) && ln -sf $(notdir $@) libdlext_test_v2.so
58
59ifneq ($(TARGET_2ND_ARCH),)
60# link 64 bit .so
61$(TARGET_OUT)/lib64/libdlext_test.so: PRIVATE_POST_INSTALL_CMD = \
62 $(hide) cd $(dir $@) && ln -sf $(notdir $@) libdlext_test_v2.so
63endif
64
65# -----------------------------------------------------------------------------
66# Library used by dlext tests - without GNU RELRO program header
67# -----------------------------------------------------------------------------
68libdlext_test_norelro_src_files := \
69 dlext_test_library.cpp \
70
71libdlext_test_norelro_ldflags := \
72 -Wl,-z,norelro \
73
74module := libdlext_test_norelro
75module_tag := optional
76build_type := target
77build_target := SHARED_LIBRARY
78include $(TEST_PATH)/Android.build.mk
79
80# -----------------------------------------------------------------------------
Dmitriy Ivanov04dc91a2014-07-01 14:10:16 -070081# Library used by dlext tests - different name non-default location
82# -----------------------------------------------------------------------------
83libdlext_test_fd_src_files := \
84 dlext_test_library.cpp \
85
86libdlext_test_fd_install_to_out_data := true
87module := libdlext_test_fd
88module_tag := optional
89build_type := target
90build_target := SHARED_LIBRARY
91include $(TEST_PATH)/Android.build.mk
92
93# -----------------------------------------------------------------------------
Dmitriy Ivanovde017802014-10-03 17:52:44 -070094# Library used by dlext tests - zipped and aligned
95# -----------------------------------------------------------------------------
96include $(CLEAR_VARS)
97bionic_2nd_arch_prefix :=
98include $(LOCAL_PATH)/Android.build.dlext_testzip.mk
99ifneq ($(TARGET_2ND_ARCH),)
100 bionic_2nd_arch_prefix := $(TARGET_2ND_ARCH_VAR_PREFIX)
101 include $(LOCAL_PATH)/Android.build.dlext_testzip.mk
102endif
103
104# -----------------------------------------------------------------------------
Dmitriy Ivanov1f5e1a32014-06-02 16:29:00 -0700105# Library used by dlfcn tests
106# -----------------------------------------------------------------------------
107libtest_simple_src_files := \
108 dlopen_testlib_simple.cpp
109
110module := libtest_simple
111build_type := target
112build_target := SHARED_LIBRARY
113include $(TEST_PATH)/Android.build.mk
114
Dmitriy Ivanovd97e9f52014-06-29 12:28:37 -0700115# -----------------------------------------------------------------------------
Dmitriy Ivanovc87f65d2014-05-19 15:06:58 -0700116# Library used by dlfcn nodelete tests
117# -----------------------------------------------------------------------------
118libtest_nodelete_1_src_files := \
119 dlopen_nodelete_1.cpp
120
121module := libtest_nodelete_1
122include $(LOCAL_PATH)/Android.build.testlib.mk
123
124# -----------------------------------------------------------------------------
125# Library used by dlfcn nodelete tests
126# -----------------------------------------------------------------------------
127libtest_nodelete_2_src_files := \
128 dlopen_nodelete_2.cpp
129
130module := libtest_nodelete_2
131include $(LOCAL_PATH)/Android.build.testlib.mk
132
133# -----------------------------------------------------------------------------
134# Library used by dlfcn nodelete tests
135# -----------------------------------------------------------------------------
136libtest_nodelete_dt_flags_1_src_files := \
137 dlopen_nodelete_dt_flags_1.cpp
138
139libtest_nodelete_dt_flags_1_ldflags := -Wl,-z,nodelete
140
141module := libtest_nodelete_dt_flags_1
142include $(LOCAL_PATH)/Android.build.testlib.mk
143
144# -----------------------------------------------------------------------------
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700145# Libraries used by dlfcn tests to verify correct load order:
146# libtest_check_order_2_right.so
147# -----------------------------------------------------------------------------
148libtest_check_order_2_right_src_files := \
149 dlopen_testlib_answer.cpp
150
151libtest_check_order_2_right_cflags := -D__ANSWER=42
152module := libtest_check_order_2_right
153build_type := target
154build_target := SHARED_LIBRARY
155include $(TEST_PATH)/Android.build.mk
156
157# -----------------------------------------------------------------------------
158# libtest_check_order_a.so
159# -----------------------------------------------------------------------------
160libtest_check_order_a_src_files := \
161 dlopen_testlib_answer.cpp
162
163libtest_check_order_a_cflags := -D__ANSWER=1
164module := libtest_check_order_a
165build_type := target
166build_target := SHARED_LIBRARY
167include $(TEST_PATH)/Android.build.mk
168
169# -----------------------------------------------------------------------------
170# libtest_check_order_b.so
171# -----------------------------------------------------------------------------
172libtest_check_order_b_src_files := \
173 dlopen_testlib_answer.cpp
174
175libtest_check_order_b_cflags := -D__ANSWER=2 -D__ANSWER2=43
176module := libtest_check_order_b
177build_type := target
178build_target := SHARED_LIBRARY
179include $(TEST_PATH)/Android.build.mk
180
181# -----------------------------------------------------------------------------
182# libtest_check_order_c.so
183# -----------------------------------------------------------------------------
184libtest_check_order_3_c_src_files := \
185 dlopen_testlib_answer.cpp
186
187libtest_check_order_3_c_cflags := -D__ANSWER=3
188module := libtest_check_order_3_c
189build_type := target
190build_target := SHARED_LIBRARY
191include $(TEST_PATH)/Android.build.mk
192
193# -----------------------------------------------------------------------------
194# libtest_check_order_d.so
195# -----------------------------------------------------------------------------
196libtest_check_order_d_src_files := \
197 dlopen_testlib_answer.cpp
198
199libtest_check_order_d_shared_libraries := libtest_check_order_b
200libtest_check_order_d_cflags := -D__ANSWER=4 -D__ANSWER2=4
201module := libtest_check_order_d
202build_type := target
203build_target := SHARED_LIBRARY
204include $(TEST_PATH)/Android.build.mk
205
206# -----------------------------------------------------------------------------
207# libtest_check_order_left.so
208# -----------------------------------------------------------------------------
209libtest_check_order_1_left_src_files := \
210 empty.cpp
211
212libtest_check_order_1_left_shared_libraries := libtest_check_order_a libtest_check_order_b
213
214module := libtest_check_order_1_left
215build_type := target
216build_target := SHARED_LIBRARY
217include $(TEST_PATH)/Android.build.mk
218
219# -----------------------------------------------------------------------------
220# libtest_check_order.so
221# -----------------------------------------------------------------------------
222libtest_check_order_src_files := \
223 empty.cpp
224
225libtest_check_order_shared_libraries := libtest_check_order_1_left \
226 libtest_check_order_2_right libtest_check_order_3_c
227
228module := libtest_check_order
229build_type := target
230build_target := SHARED_LIBRARY
231include $(TEST_PATH)/Android.build.mk
232
233# -----------------------------------------------------------------------------
234# Library with dependency loop used by dlfcn tests
235#
236# libtest_with_dependency_loop -> a -> b -> c -> a
237# -----------------------------------------------------------------------------
Dmitriy Ivanov7d971ec2014-09-09 10:21:42 -0700238libtest_with_dependency_loop_src_files := dlopen_testlib_invalid.cpp
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700239
240libtest_with_dependency_loop_shared_libraries := \
241 libtest_with_dependency_loop_a
242
243module := libtest_with_dependency_loop
244build_type := target
245build_target := SHARED_LIBRARY
246include $(TEST_PATH)/Android.build.mk
247
248# -----------------------------------------------------------------------------
249# libtest_with_dependency_loop_a.so
250# -----------------------------------------------------------------------------
Dmitriy Ivanov7d971ec2014-09-09 10:21:42 -0700251libtest_with_dependency_loop_a_src_files := dlopen_testlib_invalid.cpp
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700252
253libtest_with_dependency_loop_a_shared_libraries := \
254 libtest_with_dependency_loop_b_tmp
255
256module := libtest_with_dependency_loop_a
257build_type := target
258build_target := SHARED_LIBRARY
259include $(TEST_PATH)/Android.build.mk
260
261# -----------------------------------------------------------------------------
262# libtest_with_dependency_loop_b.so
263#
264# this is temporary placeholder - will be removed
265# -----------------------------------------------------------------------------
Dmitriy Ivanov7d971ec2014-09-09 10:21:42 -0700266libtest_with_dependency_loop_b_tmp_src_files := dlopen_testlib_invalid.cpp
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700267libtest_with_dependency_loop_b_tmp_ldflags := -Wl,-soname=libtest_with_dependency_loop_b.so
268
269module := libtest_with_dependency_loop_b_tmp
270build_type := target
271build_target := SHARED_LIBRARY
272include $(TEST_PATH)/Android.build.mk
273
274# -----------------------------------------------------------------------------
275# libtest_with_dependency_loop_b.so
276# -----------------------------------------------------------------------------
Dmitriy Ivanov7d971ec2014-09-09 10:21:42 -0700277libtest_with_dependency_loop_b_src_files := dlopen_testlib_invalid.cpp
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700278libtest_with_dependency_loop_b_shared_libraries := libtest_with_dependency_loop_c
279
280module := libtest_with_dependency_loop_b
281build_type := target
282build_target := SHARED_LIBRARY
283include $(TEST_PATH)/Android.build.mk
284
285# -----------------------------------------------------------------------------
286# libtest_with_dependency_loop_c.so
287# -----------------------------------------------------------------------------
Dmitriy Ivanov7d971ec2014-09-09 10:21:42 -0700288libtest_with_dependency_loop_c_src_files := dlopen_testlib_invalid.cpp
Dmitriy Ivanovae69a952014-09-05 16:42:53 -0700289
290libtest_with_dependency_loop_c_shared_libraries := \
291 libtest_with_dependency_loop_a
292
293module := libtest_with_dependency_loop_c
294build_type := target
295build_target := SHARED_LIBRARY
296include $(TEST_PATH)/Android.build.mk
297
298# -----------------------------------------------------------------------------
Dmitriy Ivanov8de1dde2014-09-04 18:23:00 -0700299# libtest_relo_check_dt_needed_order.so
300# |
301# +-> libtest_relo_check_dt_needed_order_1.so
302# |
303# +-> libtest_relo_check_dt_needed_order_2.so
304# -----------------------------------------------------------------------------
305libtest_relo_check_dt_needed_order_shared_libraries := \
306 libtest_relo_check_dt_needed_order_1 libtest_relo_check_dt_needed_order_2
307
308libtest_relo_check_dt_needed_order_src_files := dlopen_testlib_relo_check_dt_needed_order.cpp
309libtest_relo_check_dt_needed_order_1_src_files := dlopen_testlib_relo_check_dt_needed_order_1.cpp
310libtest_relo_check_dt_needed_order_2_src_files := dlopen_testlib_relo_check_dt_needed_order_2.cpp
311build_type := target
312build_target := SHARED_LIBRARY
313
314module := libtest_relo_check_dt_needed_order
315include $(TEST_PATH)/Android.build.mk
316module := libtest_relo_check_dt_needed_order_1
317include $(TEST_PATH)/Android.build.mk
318module := libtest_relo_check_dt_needed_order_2
319include $(TEST_PATH)/Android.build.mk
320
321# -----------------------------------------------------------------------------
Dmitriy Ivanovdb7a17d2014-08-04 23:39:22 +0000322# Library with dependency used by dlfcn tests
323# -----------------------------------------------------------------------------
324libtest_with_dependency_src_files := \
325 dlopen_testlib_simple.cpp
326
327libtest_with_dependency_shared_libraries := libdlext_test
328
329module := libtest_with_dependency
330build_type := target
331build_target := SHARED_LIBRARY
332include $(TEST_PATH)/Android.build.mk
333
334# -----------------------------------------------------------------------------
Brigid Smith31b88da2014-07-23 11:22:25 -0700335# Library used by ifunc tests
336# -----------------------------------------------------------------------------
Dmitriy Ivanov1cd0c672014-10-01 16:26:49 -0700337ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64))
Brigid Smith31b88da2014-07-23 11:22:25 -0700338 libtest_ifunc_src_files := \
339 dlopen_testlib_ifunc.c
340
341 LOCAL_SDK_VERSION := current
342 module := libtest_ifunc
343 build_type := target
344 build_target := SHARED_LIBRARY
Dmitriy Ivanovf4cb6312014-09-11 15:16:03 -0700345
Brigid Smith31b88da2014-07-23 11:22:25 -0700346 include $(TEST_PATH)/Android.build.mk
347endif
348
349# -----------------------------------------------------------------------------
Dmitriy Ivanov1f5e1a32014-06-02 16:29:00 -0700350# Library used by atexit tests
351# -----------------------------------------------------------------------------
352
353libtest_atexit_src_files := \
354 atexit_testlib.cpp
355
356module := libtest_atexit
357build_target := SHARED_LIBRARY
358build_type := target
359include $(TEST_PATH)/Android.build.mk
360build_type := host
361include $(TEST_PATH)/Android.build.mk
362
Dmitriy Ivanovce441662014-06-17 15:56:38 -0700363# -----------------------------------------------------------------------------
364# Library with weak function
365# -----------------------------------------------------------------------------
366libtest_dlsym_weak_func_src_files := \
367 dlsym_weak_function.cpp
368
369module := libtest_dlsym_weak_func
370build_target := SHARED_LIBRARY
371build_type := target
372include $(TEST_PATH)/Android.build.mk
373build_type := host
374include $(TEST_PATH)/Android.build.mk
Dmitriy Ivanovde017802014-10-03 17:52:44 -0700375
376LOCAL_ADDITIONAL_DEPENDENCIES := \
377 $(LOCAL_PATH)/Android.mk \
378 $(LOCAL_PATH)/Android.build.dlext_testzip.mk \
379 $(LOCAL_PATH)/Android.build.testlib.mk \
380 $(TEST_PATH)/Android.build.mk