12a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov#
22a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# Copyright (C) 2015 The Android Open Source Project
32a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov#
42a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# Licensed under the Apache License, Version 2.0 (the "License");
52a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# you may not use this file except in compliance with the License.
62a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# You may obtain a copy of the License at
72a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov#
82a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov#      http://www.apache.org/licenses/LICENSE-2.0
92a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov#
102a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# Unless required by applicable law or agreed to in writing, software
112a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# distributed under the License is distributed on an "AS IS" BASIS,
122a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# See the License for the specific language governing permissions and
142a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# limitations under the License.
152a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov#
162a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
172a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
182a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# Libraries used to test versioned symbols
192a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
202a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_uselibv1_src_files := versioned_uselib.cpp
212a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
222a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_uselibv1_shared_libraries := \
232a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    libtest_versioned_libv1
242a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
252a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovmodule := libtest_versioned_uselibv1
262a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build.testlib.mk
272a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
282a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
292a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_uselibv2_src_files := \
302a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    versioned_uselib.cpp
312a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
322a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_uselibv2_shared_libraries := \
332a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    libtest_versioned_libv2
342a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
352a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_uselibv2_ldflags := \
362a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    -Wl,--version-script,$(LOCAL_PATH)/versioned_uselib.map
372a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
382a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovmodule := libtest_versioned_uselibv2
392a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build.testlib.mk
402a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
412a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
422a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_uselibv2_other_src_files := \
432a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    versioned_uselib.cpp
442a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
452a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_uselibv2_other_shared_libraries := \
462a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    libtest_versioned_otherlib_empty libtest_versioned_libv2
472a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
482a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovmodule := libtest_versioned_uselibv2_other
492a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build.testlib.mk
502a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
512a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
522a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_uselibv3_other_src_files := \
532a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    versioned_uselib.cpp
542a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
552a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_uselibv3_other_shared_libraries := \
562a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    libtest_versioned_otherlib_empty libtest_versioned_lib
572a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
582a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovmodule := libtest_versioned_uselibv3_other
592a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build.testlib.mk
602a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
612a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
622a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# lib v1 - this one used during static linking but never used at runtime
632a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# which forces libtest_versioned_uselibv1 to use function v1 from
642a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# libtest_versioned_lib.so
652a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
662a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_libv1_src_files := \
672a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    versioned_lib_v1.cpp
682a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
692a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_libv1_ldflags := \
702a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    -Wl,--version-script,$(LOCAL_PATH)/versioned_lib_v1.map \
712a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    -Wl,-soname,libtest_versioned_lib.so
722a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
732a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovmodule := libtest_versioned_libv1
742a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build.testlib.mk
752a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
762a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
772a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# lib v2 - to make libtest_versioned_uselibv2.so use version 2 of versioned_function()
782a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
792a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_libv2_src_files := \
802a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    versioned_lib_v2.cpp
812a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
822a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_libv2_ldflags := \
832a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    -Wl,--version-script,$(LOCAL_PATH)/versioned_lib_v2.map \
842a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    -Wl,-soname,libtest_versioned_lib.so
852a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
862a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovmodule := libtest_versioned_libv2
872a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build.testlib.mk
882a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
892a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
902a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
912a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# last version - this one is used at the runtime and exports 3 versions
922a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# of versioned_symbol().
932a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
942a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_lib_src_files := \
952a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    versioned_lib_v3.cpp
962a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
972a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_lib_ldflags := \
982a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    -Wl,--version-script,$(LOCAL_PATH)/versioned_lib_v3.map
992a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
1002a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovmodule := libtest_versioned_lib
1012a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build.testlib.mk
1022a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
1032a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
1042a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# This library is empty, the actual implementation will provide an unversioned
1052a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# symbol for versioned_function().
1062a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
1072a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_otherlib_empty_src_files := empty.cpp
1082a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
1092a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_otherlib_empty_ldflags := -Wl,-soname,libtest_versioned_otherlib.so
1102a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovmodule := libtest_versioned_otherlib_empty
1112a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build.testlib.mk
1122a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
1132a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov# -----------------------------------------------------------------------------
1142a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_otherlib_src_files := versioned_lib_other.cpp
1152a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
1162a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovlibtest_versioned_otherlib_ldflags := \
1172a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov    -Wl,--version-script,$(LOCAL_PATH)/versioned_lib_other.map
1182a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanov
1192a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovmodule := libtest_versioned_otherlib
1202a815361448d01b0f4e575f507ce31913214c536Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build.testlib.mk
121