diff options
author | 2024-04-16 20:34:49 -0700 | |
---|---|---|
committer | 2024-04-22 11:23:04 +0000 | |
commit | d229e50a7cf690dd6183efb4dad56ccb90349a71 (patch) | |
tree | 29f828cfcb797f27f6e62b848400c753727cd8e7 /libnativeloader/libnativeloader_test.map | |
parent | 4a79b17f374df876803e34edb60476fe33ab1671 (diff) |
ART standalone tests: use static STL and version scripts
Set "stl" to "libc++_static" in art_standalone_test_defaults.
By default, localize/hide all of a test binary's symbols. In
particular, symbols from libc++_static.a must not be exported from the
test executable, because only *some* libc++ symbols would be exported
(e.g. those that are also seen in other .dynsym sections at build
time), and exporting this subset of symbols can break libc++ (e.g.
inconsistent facet registration, b/331873741). It is also important to
hide libbase.a symbols, such as constructors/destructors for internal
classes like LogMessage.
Using a version script also hides vaguely-linked libc++ symbols that
could come from libc++'s headers, not libc++_static.a, such as vtables
and template functions. `--exclude-libs=libc++_static.a` wouldn't hide
these symbols.
Bug: 331873741
Bug: 333438055
Test: atest art_libnativebridge_cts_tests art_standalone_artd_tests art_standalone_cmdline_tests art_standalone_compiler_tests art_standalone_dex2oat_cts_tests art_standalone_dex2oat_tests art_standalone_dexdump_tests art_standalone_dexlist_tests art_standalone_dexopt_chroot_setup_tests art_standalone_dexoptanalyzer_tests art_standalone_dexpreopt_tests art_standalone_disassembler_tests art_standalone_libartbase_tests art_standalone_libartpalette_tests art_standalone_libartservice_tests art_standalone_libarttools_tests art_standalone_libdexfile_external_tests art_standalone_libdexfile_support_tests art_standalone_libdexfile_tests art_standalone_libprofile_tests art_standalone_oatdump_tests art_standalone_odrefresh_tests art_standalone_profman_tests art_standalone_runtime_tests art_standalone_sigchain_tests libnativeloader_lazy_test libnativeloader_test
Change-Id: Ibfe8de492c76c83c76b00c7124d5a94775579d03
Diffstat (limited to 'libnativeloader/libnativeloader_test.map')
-rw-r--r-- | libnativeloader/libnativeloader_test.map | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/libnativeloader/libnativeloader_test.map b/libnativeloader/libnativeloader_test.map new file mode 100644 index 0000000000..1f26f9ffc8 --- /dev/null +++ b/libnativeloader/libnativeloader_test.map @@ -0,0 +1,26 @@ +# +# Copyright (C) 2024 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +{ + global: + # The tests mock libdl_android and libnativebridge symbols, so export them + # to override the ones loaded from their libs. + android_*; + NativeBridge*; + + local: + *; +}; |