Make .whitelisted property "append"-able
.whitelisted is a list of sonames seperated by ":" just like
.shared_libs and .paths properties. It makes sense to make it appendable
using += as well ass .shared_libs and .paths.
Bug: n/a
Test: atest linker-unit-tests
Change-Id: If61cc553c8080e8a58de8a3a6051c1853f7bfe5f
diff --git a/linker/linker_config.cpp b/linker/linker_config.cpp
index ada25a5..aaa3a03 100644
--- a/linker/linker_config.cpp
+++ b/linker/linker_config.cpp
@@ -325,7 +325,8 @@
value = "," + value;
(*properties)[name].append_value(std::move(value));
} else if (android::base::EndsWith(name, ".paths") ||
- android::base::EndsWith(name, ".shared_libs")) {
+ android::base::EndsWith(name, ".shared_libs") ||
+ android::base::EndsWith(name, ".whitelisted")) {
value = ":" + value;
(*properties)[name].append_value(std::move(value));
} else {
diff --git a/linker/linker_config_test.cpp b/linker/linker_config_test.cpp
index 4937056..3caa4d4 100644
--- a/linker/linker_config_test.cpp
+++ b/linker/linker_config_test.cpp
@@ -47,6 +47,7 @@
#define ARCH_SUFFIX ""
#endif
+// clang-format off
static const char* config_str =
"# comment \n"
"dir.test = /data/local/tmp\n"
@@ -88,8 +89,10 @@
"namespace.vndk_in_system.visible = true\n"
"namespace.vndk_in_system.search.paths = /system/${LIB}\n"
"namespace.vndk_in_system.permitted.paths = /system/${LIB}\n"
- "namespace.vndk_in_system.whitelisted = libz.so:libyuv.so:libtinyxml2.so\n"
+ "namespace.vndk_in_system.whitelisted = libz.so:libyuv.so\n"
+ "namespace.vndk_in_system.whitelisted += libtinyxml2.so\n"
"\n";
+// clang-format on
static bool write_version(const std::string& path, uint32_t version) {
std::string content = android::base::StringPrintf("%d", version);