diff options
author | Dimitry Ivanov <dimitry@google.com> | 2017-06-26 18:13:56 -0700 |
---|---|---|
committer | Dimitry Ivanov <dimitry@google.com> | 2017-06-27 16:08:03 -0700 |
commit | ba6b55240b30a4fa933bea3e57fc817d8c8b29ae (patch) | |
tree | 1dabaf0a4e58a16234db003a8e2132d87ff9850c /cc/linker.go | |
parent | 06382991e00459d2f8dfab8acb72edc69f90cd33 (diff) | |
download | build_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.go | 17 |
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") } } |