Home | History | Annotate | Download | only in libs
      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.
     35 libtest_dt_runpath_a_src_files := \
     36     empty.cpp
     37 
     38 libtest_dt_runpath_a_relative_path := dt_runpath_a
     39 module := libtest_dt_runpath_a
     40 include $(LOCAL_PATH)/Android.build.testlib.mk
     41 
     42 # Depends on library A with a DT_RUNPATH
     43 libtest_dt_runpath_b_src_files := \
     44     empty.cpp
     45 
     46 libtest_dt_runpath_b_shared_libraries := libtest_dt_runpath_a
     47 libtest_dt_runpath_b_ldflags := -Wl,--rpath,\$${ORIGIN}/../dt_runpath_a -Wl,--enable-new-dtags
     48 libtest_dt_runpath_b_relative_path := dt_runpath_b_c_x
     49 module := libtest_dt_runpath_b
     50 include $(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.
     55 libtest_dt_runpath_c_src_files := \
     56     empty.cpp
     57 
     58 libtest_dt_runpath_c_shared_libraries := libtest_dt_runpath_a
     59 libtest_dt_runpath_c_ldflags := -Wl,--rpath,\$${ORIGIN}/invalid_dt_runpath -Wl,--enable-new-dtags
     60 libtest_dt_runpath_c_relative_path := dt_runpath_b_c_x
     61 module := libtest_dt_runpath_c
     62 include $(LOCAL_PATH)/Android.build.testlib.mk
     63 
     64 # D depends on B and C with DT_RUNPATH.
     65 libtest_dt_runpath_d_src_files := \
     66     dlopen_b.cpp
     67 
     68 libtest_dt_runpath_d_shared_libraries := libtest_dt_runpath_b libtest_dt_runpath_c
     69 libtest_dt_runpath_d_ldflags := -Wl,--rpath,\$${ORIGIN}/dt_runpath_b_c_x -Wl,--enable-new-dtags
     70 module := libtest_dt_runpath_d
     71 include $(LOCAL_PATH)/Android.build.testlib.mk
     72 
     73 # D version for open-from-zip test with runpath
     74 libtest_dt_runpath_d_zip_src_files := \
     75     dlopen_b.cpp
     76 
     77 libtest_dt_runpath_d_zip_shared_libraries := libtest_dt_runpath_b libtest_dt_runpath_c
     78 libtest_dt_runpath_d_zip_ldflags := -Wl,--rpath,\$${ORIGIN}/dt_runpath_b_c_x -Wl,--enable-new-dtags
     79 libtest_dt_runpath_d_zip_install_to_out_data := true
     80 module := libtest_dt_runpath_d_zip
     81 module_tag := optional
     82 build_type := target
     83 build_target := SHARED_LIBRARY
     84 include $(TEST_PATH)/Android.build.mk
     85 
     86 
     87 # A leaf library in a directory library D has DT_RUNPATH for.
     88 libtest_dt_runpath_x_src_files := \
     89     empty.cpp
     90 
     91 libtest_dt_runpath_x_relative_path := dt_runpath_b_c_x
     92 module := libtest_dt_runpath_x
     93 include $(LOCAL_PATH)/Android.build.testlib.mk
     94 
     95