11f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov#
21f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# Copyright (C) 2012 The Android Open Source Project
31f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov#
41f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# Licensed under the Apache License, Version 2.0 (the "License");
51f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# you may not use this file except in compliance with the License.
61f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# You may obtain a copy of the License at
71f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov#
81f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov#      http://www.apache.org/licenses/LICENSE-2.0
91f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov#
101f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# Unless required by applicable law or agreed to in writing, software
111f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# distributed under the License is distributed on an "AS IS" BASIS,
121f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# See the License for the specific language governing permissions and
141f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# limitations under the License.
151f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov#
161f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
171f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy IvanovLOCAL_PATH := $(call my-dir)
181f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy IvanovTEST_PATH := $(LOCAL_PATH)/..
191f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
201f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# -----------------------------------------------------------------------------
211f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# Library used by dlfcn tests.
221f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# -----------------------------------------------------------------------------
231f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),mips mips64))
241f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovno-elf-hash-table-library_src_files := \
251f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov    empty.cpp \
261f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
271f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovno-elf-hash-table-library_ldflags := \
281f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov    -Wl,--hash-style=gnu \
291f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
301f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovmodule := no-elf-hash-table-library
311f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovmodule_tag := optional
321f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovbuild_type := target
331f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovbuild_target := SHARED_LIBRARY
341f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovinclude $(TEST_PATH)/Android.build.mk
351f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovendif
361f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
371f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# -----------------------------------------------------------------------------
381f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# Library used by dlext tests - with GNU RELRO program header
391f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# -----------------------------------------------------------------------------
401f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovlibdlext_test_src_files := \
411f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov    dlext_test_library.cpp \
421f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
431f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovlibdlext_test_ldflags := \
441f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov    -Wl,-z,relro \
451f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
461f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovmodule := libdlext_test
471f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovmodule_tag := optional
481f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovbuild_type := target
491f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovbuild_target := SHARED_LIBRARY
501f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovinclude $(TEST_PATH)/Android.build.mk
511f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
521f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# -----------------------------------------------------------------------------
531f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# create symlink to libdlext_test.so for symlink test
541f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# -----------------------------------------------------------------------------
551f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# Use = instead of := to defer the evaluation of $@
561f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov$(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD = \
571f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov    $(hide) cd $(dir $@) && ln -sf $(notdir $@) libdlext_test_v2.so
581f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
591f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovifneq ($(TARGET_2ND_ARCH),)
601f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# link 64 bit .so
611f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov$(TARGET_OUT)/lib64/libdlext_test.so: PRIVATE_POST_INSTALL_CMD = \
621f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov    $(hide) cd $(dir $@) && ln -sf $(notdir $@) libdlext_test_v2.so
631f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovendif
641f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
651f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# -----------------------------------------------------------------------------
661f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# Library used by dlext tests - without GNU RELRO program header
671f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# -----------------------------------------------------------------------------
681f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovlibdlext_test_norelro_src_files := \
691f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov    dlext_test_library.cpp \
701f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
711f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovlibdlext_test_norelro_ldflags := \
721f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov    -Wl,-z,norelro \
731f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
741f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovmodule := libdlext_test_norelro
751f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovmodule_tag := optional
761f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovbuild_type := target
771f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovbuild_target := SHARED_LIBRARY
781f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovinclude $(TEST_PATH)/Android.build.mk
791f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
801f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# -----------------------------------------------------------------------------
8104dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanov# Library used by dlext tests - different name non-default location
8204dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanov# -----------------------------------------------------------------------------
8304dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanovlibdlext_test_fd_src_files := \
8404dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanov    dlext_test_library.cpp \
8504dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanov
8604dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanovlibdlext_test_fd_install_to_out_data := true
8704dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanovmodule := libdlext_test_fd
8804dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanovmodule_tag := optional
8904dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanovbuild_type := target
9004dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanovbuild_target := SHARED_LIBRARY
9104dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanovinclude $(TEST_PATH)/Android.build.mk
9204dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanov
9304dc91ae763adc403a14c88b4c46f77b3d2d71a3Dmitriy Ivanov# -----------------------------------------------------------------------------
941f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# Library used by dlfcn tests
951f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# -----------------------------------------------------------------------------
961f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovlibtest_simple_src_files := \
971f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov    dlopen_testlib_simple.cpp
981f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
991f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovmodule := libtest_simple
1001f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovbuild_type := target
1011f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovbuild_target := SHARED_LIBRARY
1021f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovinclude $(TEST_PATH)/Android.build.mk
1031f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
104d97e9f546ea195686a78e539315b273393609b9eDmitriy Ivanov# -----------------------------------------------------------------------------
105db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanov# Library with dependency used by dlfcn tests
106db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanov# -----------------------------------------------------------------------------
107db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanovlibtest_with_dependency_src_files := \
108db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanov    dlopen_testlib_simple.cpp
109db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanov
110db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanovlibtest_with_dependency_shared_libraries := libdlext_test
111db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanov
112db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanovmodule := libtest_with_dependency
113db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanovbuild_type := target
114db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanovbuild_target := SHARED_LIBRARY
115db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanovinclude $(TEST_PATH)/Android.build.mk
116db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanov
117db7a17d4ff56a05af01ee2fee1f3c55245bfc630Dmitriy Ivanov# -----------------------------------------------------------------------------
1181f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# Library used by atexit tests
1191f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov# -----------------------------------------------------------------------------
1201f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
1211f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovlibtest_atexit_src_files := \
1221f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov    atexit_testlib.cpp
1231f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
1241f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovmodule := libtest_atexit
1251f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovbuild_target := SHARED_LIBRARY
1261f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovbuild_type := target
1271f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovinclude $(TEST_PATH)/Android.build.mk
1281f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovbuild_type := host
1291f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanovinclude $(TEST_PATH)/Android.build.mk
1301f5e1a3cbc564c593fe1090894ecdb070f36e20cDmitriy Ivanov
131ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanov# -----------------------------------------------------------------------------
132ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanov# Library with weak function
133ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanov# -----------------------------------------------------------------------------
134ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanovlibtest_dlsym_weak_func_src_files := \
135ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanov    dlsym_weak_function.cpp
136ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanov
137ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanovmodule := libtest_dlsym_weak_func
138ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanovbuild_target := SHARED_LIBRARY
139ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanovbuild_type := target
140ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanovinclude $(TEST_PATH)/Android.build.mk
141ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanovbuild_type := host
142ce44166c737b6737c3a0820bef10b074a5e36cf8Dmitriy Ivanovinclude $(TEST_PATH)/Android.build.mk
143