aboutsummaryrefslogtreecommitdiffstats
path: root/cc/linker.go
diff options
context:
space:
mode:
authorDimitry Ivanov <dimitry@google.com>2017-06-26 18:13:56 -0700
committerDimitry Ivanov <dimitry@google.com>2017-06-27 16:08:03 -0700
commitba6b55240b30a4fa933bea3e57fc817d8c8b29ae (patch)
tree1dabaf0a4e58a16234db003a8e2132d87ff9850c /cc/linker.go
parent06382991e00459d2f8dfab8acb72edc69f90cd33 (diff)
downloadbuild_soong-ba6b55240b30a4fa933bea3e57fc817d8c8b29ae.tar.gz
build_soong-ba6b55240b30a4fa933bea3e57fc817d8c8b29ae.tar.bz2
build_soong-ba6b55240b30a4fa933bea3e57fc817d8c8b29ae.zip
Add libdl.so to the list of system shared libs
Note that libdl is already (always) implicitly loaded because libc.so has a dependency on it. This change also makes sure that libc.so always goes before libdl.so in DT_NEEDED list. Bug: http://b/62815515 Test: make Change-Id: Idb231f8a8443ee859828bac6462236a1b7199d05
Diffstat (limited to 'cc/linker.go')
-rw-r--r--cc/linker.go17
1 files changed, 15 insertions, 2 deletions
diff --git a/cc/linker.go b/cc/linker.go
index 2c391320..1a842ae2 100644
--- a/cc/linker.go
+++ b/cc/linker.go
@@ -152,11 +152,23 @@ func (linker *baseLinker) linkerDeps(ctx BaseModuleContext, deps Deps) Deps {
}
if !ctx.static() {
+ // libdl should always appear after libc in dt_needed list - see below
+ // the only exception is when libc is not in linker.Properties.System_shared_libs
+ // such as for libc module itself
+ if inList("libc", linker.Properties.System_shared_libs) {
+ _, deps.SharedLibs = removeFromList("libdl", deps.SharedLibs)
+ }
+
if linker.Properties.System_shared_libs != nil {
+ if !inList("libdl", linker.Properties.System_shared_libs) &&
+ inList("libc", linker.Properties.System_shared_libs) {
+ linker.Properties.System_shared_libs = append(linker.Properties.System_shared_libs,
+ "libdl")
+ }
deps.LateSharedLibs = append(deps.LateSharedLibs,
linker.Properties.System_shared_libs...)
} else if !ctx.sdk() && !ctx.vndk() {
- deps.LateSharedLibs = append(deps.LateSharedLibs, "libc", "libm")
+ deps.LateSharedLibs = append(deps.LateSharedLibs, "libc", "libm", "libdl")
}
}
@@ -164,10 +176,11 @@ func (linker *baseLinker) linkerDeps(ctx BaseModuleContext, deps Deps) Deps {
deps.SharedLibs = append(deps.SharedLibs,
"libc",
"libm",
+ "libdl",
)
}
if ctx.vndk() {
- deps.LateSharedLibs = append(deps.LateSharedLibs, "libc", "libm")
+ deps.LateSharedLibs = append(deps.LateSharedLibs, "libc", "libm", "libdl")
}
}