Skip to content

Commit 41dba30

Browse files
fix: correctly link against libraries with no lib prefix
Change-Id: I00896ab98c8e47f35ecd1ee411c281e7c3d2de6c
1 parent 94a70ac commit 41dba30

2 files changed

Lines changed: 9 additions & 5 deletions

File tree

core/androidninja_backend.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,17 @@ func pathToLibFlagAndroid(path string) string {
2525
// "lib". This is required for build 'system' Android libraries like AIDLs
2626
// ourselves.
2727
_, base := filepath.Split(path)
28-
ext := filepath.Ext(base)
29-
base = strings.TrimSuffix(base, ext)
3028
if base == "" {
3129
utils.Die("Shared library name is empty")
3230
}
33-
base = strings.TrimPrefix(base, "lib")
34-
return "-l" + base
31+
if strings.HasPrefix(base, "lib") {
32+
base = strings.TrimPrefix(base, "lib")
33+
ext := filepath.Ext(base)
34+
base = strings.TrimSuffix(base, ext)
35+
return "-l" + base
36+
} else {
37+
return "-l:" + base + ".so"
38+
}
3539
}
3640

3741
// aliasActions implements generatorBackend.

gendiffer/tests/shared_library/no_prefix/out/android_oot/build.ninja.out

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ build ${g.bob.BuildDir}/target/shared/sharedtest_depends.so: $
103103
ldlibs =
104104
linker = prebuilts/clang/host/linux-x86/clang-r522817/bin/clang++
105105
shared_libs_dir = ${g.bob.BuildDir}/target/shared
106-
shared_libs_flags = -lsharedtest -Wl,-soname,sharedtest_depends.so -Wl,-rpath-link,${g.bob.BuildDir}/target/shared
106+
shared_libs_flags = -l:sharedtest.so -Wl,-soname,sharedtest_depends.so -Wl,-rpath-link,${g.bob.BuildDir}/target/shared
107107
static_libs =
108108

109109
build ${g.bob.BuildDir}/target/shared/sharedtest_depends.so.toc: $

0 commit comments

Comments
 (0)