1# 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# ----------------------------------------------------------------------------- 18# Libraries used by dt_runpath tests. 19# ----------------------------------------------------------------------------- 20 21# 22# Dependencies 23# 24# libtest_dt_runpath_d.so runpath: ${ORIGIN}/dt_runpath_b_c_x 25# |-> dt_runpath_b_c_x/libtest_dt_runpath_b.so runpath: ${ORIGIN}/../dt_runpath_a 26# | |-> dt_runpath_a/libtest_dt_runpath_a.so 27# |-> dt_runpath_b_c_x/libtest_dt_runpath_c.so runpath: ${ORIGIN}/invalid_dt_runpath 28# | |-> libtest_dt_runpath_a.so (soname) 29# 30# This one is used to test dlopen 31# dt_runpath_b_c_x/libtest_dt_runpath_x.so 32# 33 34# A leaf library in a non-standard directory. 35libtest_dt_runpath_a_src_files := \ 36 empty.cpp 37 38libtest_dt_runpath_a_relative_path := dt_runpath_a 39module := libtest_dt_runpath_a 40include $(LOCAL_PATH)/Android.build.testlib.mk 41 42# Depends on library A with a DT_RUNPATH 43libtest_dt_runpath_b_src_files := \ 44 empty.cpp 45 46libtest_dt_runpath_b_shared_libraries := libtest_dt_runpath_a 47libtest_dt_runpath_b_ldflags := -Wl,--rpath,\$${ORIGIN}/../dt_runpath_a -Wl,--enable-new-dtags 48libtest_dt_runpath_b_relative_path := dt_runpath_b_c_x 49module := libtest_dt_runpath_b 50include $(LOCAL_PATH)/Android.build.testlib.mk 51 52# Depends on library A with an incorrect DT_RUNPATH. This does not matter 53# because B is the first in the D (below) dependency order, and library A 54# is already loaded using the correct DT_RUNPATH from library B. 55libtest_dt_runpath_c_src_files := \ 56 empty.cpp 57 58libtest_dt_runpath_c_shared_libraries := libtest_dt_runpath_a 59libtest_dt_runpath_c_ldflags := -Wl,--rpath,\$${ORIGIN}/invalid_dt_runpath -Wl,--enable-new-dtags 60libtest_dt_runpath_c_relative_path := dt_runpath_b_c_x 61module := libtest_dt_runpath_c 62include $(LOCAL_PATH)/Android.build.testlib.mk 63 64# D depends on B and C with DT_RUNPATH. 65libtest_dt_runpath_d_src_files := \ 66 dlopen_b.cpp 67 68libtest_dt_runpath_d_shared_libraries := libtest_dt_runpath_b libtest_dt_runpath_c 69libtest_dt_runpath_d_ldflags := -Wl,--rpath,\$${ORIGIN}/dt_runpath_b_c_x -Wl,--enable-new-dtags 70libtest_dt_runpath_d_ldlibs := -ldl 71module := libtest_dt_runpath_d 72include $(LOCAL_PATH)/Android.build.testlib.mk 73 74# D version for open-from-zip test with runpath 75module := libtest_dt_runpath_d_zip 76 77libtest_dt_runpath_d_zip_src_files := \ 78 dlopen_b.cpp 79 80libtest_dt_runpath_d_zip_shared_libraries := libtest_dt_runpath_b libtest_dt_runpath_c 81libtest_dt_runpath_d_zip_ldflags := -Wl,--rpath,\$${ORIGIN}/dt_runpath_b_c_x -Wl,--enable-new-dtags 82libtest_dt_runpath_d_zip_ldlibs := -ldl 83libtest_dt_runpath_d_zip_install_to_native_tests_dir := $(module) 84 85module_tag := optional 86build_type := target 87build_target := SHARED_LIBRARY 88include $(TEST_PATH)/Android.build.mk 89 90 91# A leaf library in a directory library D has DT_RUNPATH for. 92libtest_dt_runpath_x_src_files := \ 93 empty.cpp 94 95libtest_dt_runpath_x_relative_path := dt_runpath_b_c_x 96module := libtest_dt_runpath_x 97include $(LOCAL_PATH)/Android.build.testlib.mk 98 99