Hi,
I have tried to use prebuilt static library with the new Soong build
system, but the module that uses the prebuilt static lib fails to compile.
cc_prebuilt_library_static {
name: "my_static_lib",
defaults: ["my-static-lib-defaults"],
compile_multilib: "both",
multilib: {
lib32: {
srcs: ["prebuilts/static-lib/lib/my_static_lib.a"],
},
lib64: {
srcs: ["prebuilts/static-lib/lib64/my_static_lib.a"],
},
},
}
For example use it from system.core/debuggerd.
// Core implementation, linked into libdebuggerd_handler and the dynamic
linker.
cc_library_static {
name: "libdebuggerd_handler_core",
defaults: ["debuggerd_defaults"],
srcs: ["handler/debuggerd_handler.cpp"],
whole_static_libs: [
"libc_logging",
"libdebuggerd",
"my_static_lib",
],
include_dirs: ["vendor/lepe/my_static_lib/include"],
export_include_dirs: ["include"],
}
Build log:
FAILED:
out/soong/.intermediates/system/core/debuggerd/crasher/static_crasher/android_arm64_armv8-a_core/static_crasher64
prebuilts/clang/host/linux-x86/clang-3859424/bin/clang++
out/soong/.intermediates/bionic/libc/crtbegin_static/android_arm64_armv8-a_core/crtbegin_static.o
@out/soong/.intermediates/system/core/debuggerd/crasher/static_crasher/android_arm64_armv8-a_core/static_crasher64.rsp
out/soong/.intermediates/system/core/debuggerd/libdebuggerd_handler/android_arm64_armv8-a_static_core/libdebuggerd_handler.a
out/soong/.intermediates/system/core/base/libbase/android_arm64_armv8-a_static_core/libbase.a
out/soong/.intermediates/system/core/liblog/liblog/android_arm64_armv8-a_static_core/liblog.a
out/soong/.intermediates/bionic/libc/seccomp/libseccomp_policy/android_arm64_armv8-a_static_core/libseccomp_policy.a
out/soong/.intermediates/external/libcxx/libc++_static/android_arm64_armv8-a_static_core/libc++_static.a
out/soong/.intermediates/bionic/libm/libm/android_arm64_armv8-a_static_core/libm.a
out/soong/.intermediates/bionic/libc/libc/android_arm64_armv8-a_static_core/libc.a
out/soong/.intermediates/bionic/libdl/libdl/android_arm64_armv8-a_static_core/libdl.a
-Wl,--start-group
out/soong/.intermediates/bionic/libc/libc/android_arm64_armv8-a_static_core/libc.a
out/soong/.intermediates/external/compiler-rt/libcompiler_rt-extras/android_arm64_armv8-a_static_core/libcompiler_rt-extras.a
out/soong/.intermediates/build/soong/libatomic/android_arm64_armv8-a_static_core/libatomic.a
out/soong/.intermediates/build/soong/libgcc/android_arm64_armv8-a_static_core/libgcc.a
-Wl,--end-group
out/soong/.intermediates/bionic/libc/crtend_android/android_arm64_armv8-a_core/obj/bionic/libc/arch-common/bionic/crtend.o
-o
out/soong/.intermediates/system/core/debuggerd/crasher/static_crasher/android_arm64_armv8-a_core/static_crasher64
-target aarch64-linux-android
-Bprebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/aarch64-linux-android/bin
-Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
-Wl,--build-id=md5 -Wl,--warn-shared-textrel -Wl,--fatal-warnings
-Wl,-maarch64linux -Wl,--hash-style=gnu -Wl,--fix-cortex-a53-843419
-fuse-ld=gold -Wl,--icf=safe -Wl,--no-undefined-version -static -nostdlib
-Bstatic -Wl,--gc-sections
system/core/debuggerd/handler/debuggerd_handler.cpp:376: error: undefined
reference to 'MY_STATIC_LIB::do_something(void)'
clang.real: error: linker command failed with exit code 1 (use -v to see
invocation)
my_static_lib.a is not included when compiling. I had to replace it with
cc_library_static
and add the source files.
Is not cc_prebuilt_library_static supported?
/Michael
--
--
You received this message because you are subscribed to the "Android Building"
mailing list.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-building?hl=en
---
You received this message because you are subscribed to the Google Groups
"Android Building" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.