summaryrefslogtreecommitdiff
path: root/linker/linker_namespaces.cpp
AgeCommit message (Collapse)Author
2020-07-31linker: Cleanup for Android's inclusive language guidanceLuke Huang
1. Cleanup for #inclusivefixit. (whitelisted -> allowed_libs) 2. Support the old term for backwards compatibility. (Also update test.) 3. Fix the formatting errors found by clang-format. See https://source.android.com/setup/contribute/respectful-code for reference. Bug: 161896447 Test: atest linker-unit-tests linker-benchmarks Change-Id: I19dbed27a6d874ac0049cb7b67d2cb0f75369c1b
2020-02-03Ignore symbols of imported libs' dependenciesRyan Prichard
When a library is present in a namespace via the secondary_namespaces list (i.e. the executable, LD_PRELOAD, DF_1_GLOBAL, or android_create_namespace inheritance), then we want to search that library's symbols, but not the symbols of its dependencies. Otherwise, we want to search the dependencies to handle cross-NS dependency. Bug: http://b/148569846 Test: bionic unit tests Change-Id: If798d69de28ed5c0f1a155e4ff85c7e08934e531
2020-01-31Comment two linker namespace functionsRyan Prichard
Test: it builds Change-Id: I4dee0d4da230bd559319317b504e2c597f814f50
2019-03-20linker: Add support for "whitelisted" property in linker config filesVic Yang
In order to enable no-vendor-variant VNDK, we need a way to restrict a namespace to only a list of whitelisted libraries. We add a new "whitelisted" property for this. If the property is not set, all libraries in the search paths are available in a namespace. If the property is set, only the libraries named are available. Bug: 119423884 Test: Boot with no-vendor-variant VNDK enabled using the new property. Change-Id: Id808c1733c8e2c2c3462b04c72461f9698403571
2018-02-28Be clearer about linker warnings.Elliott Hughes
Explicitly say "warning" for warnings, explicitly say what action we're going to take (such as "(ignoring)"), always provide a link to our documentation when there is one, explicitly say what API level the behavior changes at, and explicitly say why we're allowing the misbehavior for now. Bug: http://b/71852862 Test: ran tests, looked at logcat Change-Id: I1795a5af45deb904332b866d7d666690dae4340b
2017-08-03linker: the global group is added to all built-in namespacesJiyong Park
With ld.config.txt, we now have multiple built-in namespaces other than the default namespace. Libs (and their dependents) listed in LD_PRELOAD must be visible to those additional namespaces as well. This also adds a debugging only feature: path to the linker config file can be customized via LD_CONFIG_FILE environment variable. This works only for debuggable builds. Bug: 38114603 Bug: 62815515 Test: 1. ./external/compiler-rt/lib/asan/scripts/asan_device_setup --lib prebuilts/clang/host/linux-x86/clang-stable/lib64/clang/5.0/lib/linux 2. enable talkback shortcut 3. in the home screen, hold vol-up/down together 4. device does not reboots and talkback shortcut is toggled Test: bionic-unit-tests and linker-unit-tests successful Change-Id: I9a03591053f4a9caea82f0dcb23e7a3d324bb9bd
2017-04-12The workaround for apps using older version of soinfosDimitry Ivanov
Skip the check for accessibility in the case soinfo does not have primary/secondary namespaces associated with them. Bug: http://b/37191433 Test: start an app from http://b/37191433 make sure it does not crash on lunch Change-Id: Id4c0bdab4dfc6bc8a33fc275d71e325518e0759f (cherry picked from commit 97b4c5f2649db06661e45147f21a2ab26340ad89)
2017-02-13Do not use std::vector in android_namespace_t::is_accessibleDimitry Ivanov
Avoid constructing vector and walking all the parents of a soinfo to check if it is accessible. The most likely scenario that the very first check returns true. Bug: http://b/35313368 Test: bionic-unit-tests --gtest_filter=dl*:Dl* Change-Id: I06c65cf61ed1c30e5e454a169de4c41038863587
2017-02-09Replace public library list with shared lib sonames (part 2/2)Dimitry Ivanov
This commit updates interface of libdl.c. 1. android_init_namespaces is replaces with android_init_anonymous_namespace 2. added 2 arguments to android_create_namespace to specify linked namespace and the list of shared libraries sonames. 3. symbol lookup does not get past boundary libraries (added check and test for it). Bug: http://b/26833548 Bug: http://b/21879602 Test: bionic-unit-tests --gtest_filter=dl*:Dl* Change-Id: I32921da487a02e5bd0d2fc528904d1228394bfb9
2016-08-08Move android_namespace_t to a separate file.Dimitry Ivanov
Breaking up huge linker.cpp into smaller peaces in order to make it easier to extract part of the code that belongs to libdl.so and remove parts of the code that do not belong to linker (refactoring part 1 of many) Change-Id: I57ac36677a815800dc127c8c45c3ea806c37e247 Test: bionic-unit-tests --gtest_filter=dl*:Dl*