[android-building] Soong and cc_prebuilt_library_static?
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 android-building@googlegroups.com To unsubscribe from this group, send email to android-building+unsubscr...@googlegroups.com 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 android-building+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[android-building] soong: cc_prebuilt_library_static
It fails to link when using cc_prebuilt_library_static. cc_prebuilt_library_static { name: "libteststatic", defaults: ["test-defaults"], compile_multilib: "both", multilib: { lib32: { srcs: ["prebuilts/static-lib/lib/libteststatic.a"], }, lib64: { srcs: ["prebuilts/static-lib/lib64/libteststatic.a"], }, }, export_include_dirs: ["include"], } cc_library_static { name: "libtest2", defaults: ["libtest2_defaults"], srcs: ["src/test.cpp"], whole_static_libs: [ "libc_logging", "libteststatic", ], include_dirs: ["vendor/test/test/include"], export_include_dirs: ["include"], } The prebuilt static libs are copied to %OUT/obj/STATIC_LIBRARIES/libteststatic_intermediates/libteststatic.a and %OUT/obj_arm/STATIC_LIBRARIES/libteststatic_intermediates/libteststatic.a but not to out/soong/.intermediates/ BR /Michael -- -- You received this message because you are subscribed to the "Android Building" mailing list. To post to this group, send email to android-building@googlegroups.com To unsubscribe from this group, send email to android-building+unsubscr...@googlegroups.com 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 android-building+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[android-building] soong: init_rc doesn't copy to target when used in cc_prebuilt_binary
Hello. init_rc tag for cc_prebuilt_binary doesn't copy the file to /system/etc/init/. Ex: cc_prebuilt_binary { name: "foobin", srcs: ["prebuilts/system/bin/foobin"], init_rc: ["init/foobin.rc"], shared_libs: [ "liblog", ], } BR /Michael -- -- You received this message because you are subscribed to the "Android Building" mailing list. To post to this group, send email to android-building@googlegroups.com To unsubscribe from this group, send email to android-building+unsubscr...@googlegroups.com 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 android-building+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [android-building] Soong convert Android.mk file for shared lib that uses LOCAL_AIDL_INCLUDES
I found it. aidl export flag was missing: aidl: { local_include_dirs: ["api"], export_aidl_headers: true, } On Friday, 15 September 2017 16:15:31 UTC+2, Michael Lekman wrote: > > follow up question about aidl code generation: I have added this to my > Android.bp file > > cc_library_shared { > name: "libtest", > srcs: [ > "api/corp/proj/IGreatService.aidl", > ], > cppflags: [ > "-std=gnu++11", > "-Wall", > ], > include_dirs: ["external/rapidjson/include"], > local_include_dirs: ["."], > export_include_dirs: ["."], > compile_multilib: "both", > shared_libs: [ > "liblog", > "libbinder", > "libutils", > ], > > static_libs: ["libcutils"], > aidl: { > local_include_dirs: ["api"], > } > } > > > Unfortunately it doesn't generated the header file from aidl. > > vendor/proj/proprietary/system/test/MyState.h:4:10: fatal error: > 'corp/proj/IGreatService.h' file not found > > BR > /Michael > > On Tuesday, 12 September 2017 23:38:16 UTC+2, Colin Cross wrote: >> >> Java support for soong is still a work in progress and not ready for wide >> use yet. >> >> On Tue, Sep 12, 2017 at 10:37 AM, Michael Lekman <michael...@gmail.com> >> wrote: >> >>> Thanks. >>> >>> It didn't translate LOCAL_RESOURCE_DIR and LOCAL_MANIFEST_FILE. Are they >>> not supported anymore? >>> >>> >>> On Tuesday, 12 September 2017 19:12:16 UTC+2, Colin Cross wrote: >>>> >>>> That's a mistake in the androidmk tool, it should have produced: >>>> aidl: { >>>> local_include_dirs: ["api"], >>>> } >>>> >>>> On Tue, Sep 12, 2017 at 6:10 AM, Michael Lekman <michael...@gmail.com> >>>> wrote: >>>> >>>>> Hello, >>>>> >>>>> I am trying to convert my Android.mk file to Android.bp. >>>>> But it fails when I use aidl_includes. ANdroid.mk was converted using >>>>> androidmk. >>>>> >>>>> >>>>> include $(CLEAR_VARS) >>>>> LOCAL_MODULE := libmysharedlib >>>>> LOCAL_SRC_FILES := \ >>>>> file.cpp \ >>>>> $(call all-Iaidl-files-under, api) >>>>> LOCAL_CPPFLAGS := -std=gnu++11 -Wall >>>>> LOCAL_C_INCLUDES += \ >>>>> $(LOCAL_PATH) \ >>>>> external/rapidjson/include >>>>> LOCAL_LDFLAGS := -llog >>>>> LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) >>>>> LOCAL_MULTILIB := both >>>>> LOCAL_SHARED_LIBRARIES := \ >>>>> liblog \ >>>>> libbinder \ >>>>> libutils \ >>>>> libpowermanager \ >>>>> >>>>> LOCAL_STATIC_LIBRARIES := libcutils >>>>> LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/api >>>>> >>>>> include $(BUILD_SHARED_LIBRARY) >>>>> >>>>> FAILED: out/soong/build.ninja >>>>> out/soong/.bootstrap/bin/soong_build -t -b out/soong -d >>>>> out/soong/build.ninja.d -o out/soong/build.ninja Android.bp >>>>> Clang SA is not enabled >>>>> error: vendor/my-shared-lib/Android.bp:38:18: unrecognized property >>>>> "aidl_includes" >>>>> error: vendor/my-shared-lib/Android.bp:74:18: unrecognized property >>>>> "aidl_includes" >>>>> ninja: build stopped: subcommand failed. >>>>> 13:59:19 soong bootstrap failed with: exit status 1 >>>>> make: *** [run_soong_ui] Error 1 >>>>> >>>>> BR >>>>> /Michael >>>>> >>>>> -- >>>>> -- >>>>> You received this message because you are subscribed to the "Android >>>>> Building" mailing list. >>>>> To post to this group, send email to android-...@googlegroups.com >>>>> To unsubscribe from this group, send email to >>>>> android-buildi...@googlegroups.com >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/android-building?hl=en >>>>> >>>>> --- >>>>> You received this message because you are
Re: [android-building] Soong convert Android.mk file for shared lib that uses LOCAL_AIDL_INCLUDES
follow up question about aidl code generation: I have added this to my Android.bp file cc_library_shared { name: "libtest", srcs: [ "api/corp/proj/IGreatService.aidl", ], cppflags: [ "-std=gnu++11", "-Wall", ], include_dirs: ["external/rapidjson/include"], local_include_dirs: ["."], export_include_dirs: ["."], compile_multilib: "both", shared_libs: [ "liblog", "libbinder", "libutils", ], static_libs: ["libcutils"], aidl: { local_include_dirs: ["api"], } } Unfortunately it doesn't generated the header file from aidl. vendor/proj/proprietary/system/test/MyState.h:4:10: fatal error: 'corp/proj/IGreatService.h' file not found BR /Michael On Tuesday, 12 September 2017 23:38:16 UTC+2, Colin Cross wrote: > > Java support for soong is still a work in progress and not ready for wide > use yet. > > On Tue, Sep 12, 2017 at 10:37 AM, Michael Lekman <michael...@gmail.com > > wrote: > >> Thanks. >> >> It didn't translate LOCAL_RESOURCE_DIR and LOCAL_MANIFEST_FILE. Are they >> not supported anymore? >> >> >> On Tuesday, 12 September 2017 19:12:16 UTC+2, Colin Cross wrote: >>> >>> That's a mistake in the androidmk tool, it should have produced: >>> aidl: { >>> local_include_dirs: ["api"], >>> } >>> >>> On Tue, Sep 12, 2017 at 6:10 AM, Michael Lekman <michael...@gmail.com> >>> wrote: >>> >>>> Hello, >>>> >>>> I am trying to convert my Android.mk file to Android.bp. >>>> But it fails when I use aidl_includes. ANdroid.mk was converted using >>>> androidmk. >>>> >>>> >>>> include $(CLEAR_VARS) >>>> LOCAL_MODULE := libmysharedlib >>>> LOCAL_SRC_FILES := \ >>>> file.cpp \ >>>> $(call all-Iaidl-files-under, api) >>>> LOCAL_CPPFLAGS := -std=gnu++11 -Wall >>>> LOCAL_C_INCLUDES += \ >>>> $(LOCAL_PATH) \ >>>> external/rapidjson/include >>>> LOCAL_LDFLAGS := -llog >>>> LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) >>>> LOCAL_MULTILIB := both >>>> LOCAL_SHARED_LIBRARIES := \ >>>> liblog \ >>>> libbinder \ >>>> libutils \ >>>> libpowermanager \ >>>> >>>> LOCAL_STATIC_LIBRARIES := libcutils >>>> LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/api >>>> >>>> include $(BUILD_SHARED_LIBRARY) >>>> >>>> FAILED: out/soong/build.ninja >>>> out/soong/.bootstrap/bin/soong_build -t -b out/soong -d >>>> out/soong/build.ninja.d -o out/soong/build.ninja Android.bp >>>> Clang SA is not enabled >>>> error: vendor/my-shared-lib/Android.bp:38:18: unrecognized property >>>> "aidl_includes" >>>> error: vendor/my-shared-lib/Android.bp:74:18: unrecognized property >>>> "aidl_includes" >>>> ninja: build stopped: subcommand failed. >>>> 13:59:19 soong bootstrap failed with: exit status 1 >>>> make: *** [run_soong_ui] Error 1 >>>> >>>> BR >>>> /Michael >>>> >>>> -- >>>> -- >>>> You received this message because you are subscribed to the "Android >>>> Building" mailing list. >>>> To post to this group, send email to android-...@googlegroups.com >>>> To unsubscribe from this group, send email to >>>> android-buildi...@googlegroups.com >>>> 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 android-buildi...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> -- >> You received this message because you are subscribed to the "Android >> Building" mailing list. >> To post to this group, send email to android-...@googlegroups.com >> >> To unsubscribe from this group, send email to >> android-buildi...@googlegroups.com >> 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 android-buildi...@googlegroups.com . >> For more options, visit https://groups.google.com/d/optout. >> > > -- -- You received this message because you are subscribed to the "Android Building" mailing list. To post to this group, send email to android-building@googlegroups.com To unsubscribe from this group, send email to android-building+unsubscr...@googlegroups.com 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 android-building+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[android-building] Soong: Is it possible to read a conditional variable/feature flag defined in a device.mk file?
Hello, Is it possible to access a feature flag set in a device setup mk file. For example: https://android.googlesource.com/device/lge/bullhead/+/master/device.mk#297 TARGET_USES_NANOHUB_SENSORHAL Can we access it in a go file? if ctx.AConfig().IsEnvTrue("TARGET_USES_NANOHUB_SENSORHAL") { cflags = append(cflags, "-DTARGET_USES_NANOHUB_SENSORHAL") } I am trying to add a define and add a shared lib in my Android.bp file that are dependent on a conditional feature flag. BR /Michael -- -- You received this message because you are subscribed to the "Android Building" mailing list. To post to this group, send email to android-building@googlegroups.com To unsubscribe from this group, send email to android-building+unsubscr...@googlegroups.com 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 android-building+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[android-building] SOONG - cc_prebuilt_library_shared
What is the recommended way to set src file path to prebuilt libs? There are different libs for target variants. Android.mk file: LOCAL_PATH := $(call my-dir) PREBUILT_PATH := prebuilts/$(TARGET_BUILD_VARIANT) PREBUILT_SYSTEM_PATH := $(PREBUILT_PATH)/system PREBUILT_SYSTEM_BIN_PATH := = $(PREBUILT_SYSTEM_PATH)/lib PREBUILT_SYSTEM_LIB64_PATH := $(PREBUILT_SYSTEM_PATH)/lib64 include $(CLEAR_VARS) LOCAL_MODULE := libmytest LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := SHARED_LIBRARIES LOCAL_MODULE_SUFFIX := .so LOCAL_MULTILIB := both LOCAL_SRC_FILES_32 := $(PREBUILT_SYSTEM_LIB32_PATH)/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX) LOCAL_SRC_FILES_64 := $(PREBUILT_SYSTEM_LIB64_PATH)/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX) LOCAL_SHARED_LIBRARIES := liblog libutils libcutils libbase libpcrecpp include $(BUILD_PREBUILT) -- -- You received this message because you are subscribed to the "Android Building" mailing list. To post to this group, send email to android-building@googlegroups.com To unsubscribe from this group, send email to android-building+unsubscr...@googlegroups.com 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 android-building+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [android-building] Soong convert Android.mk file for shared lib that uses LOCAL_AIDL_INCLUDES
Thanks. It didn't translate LOCAL_RESOURCE_DIR and LOCAL_MANIFEST_FILE. Are they not supported anymore? On Tuesday, 12 September 2017 19:12:16 UTC+2, Colin Cross wrote: > > That's a mistake in the androidmk tool, it should have produced: > aidl: { > local_include_dirs: ["api"], > } > > On Tue, Sep 12, 2017 at 6:10 AM, Michael Lekman <michael...@gmail.com > > wrote: > >> Hello, >> >> I am trying to convert my Android.mk file to Android.bp. >> But it fails when I use aidl_includes. ANdroid.mk was converted using >> androidmk. >> >> >> include $(CLEAR_VARS) >> LOCAL_MODULE := libmysharedlib >> LOCAL_SRC_FILES := \ >> file.cpp \ >> $(call all-Iaidl-files-under, api) >> LOCAL_CPPFLAGS := -std=gnu++11 -Wall >> LOCAL_C_INCLUDES += \ >> $(LOCAL_PATH) \ >> external/rapidjson/include >> LOCAL_LDFLAGS := -llog >> LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) >> LOCAL_MULTILIB := both >> LOCAL_SHARED_LIBRARIES := \ >> liblog \ >> libbinder \ >> libutils \ >> libpowermanager \ >> >> LOCAL_STATIC_LIBRARIES := libcutils >> LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/api >> >> include $(BUILD_SHARED_LIBRARY) >> >> FAILED: out/soong/build.ninja >> out/soong/.bootstrap/bin/soong_build -t -b out/soong -d >> out/soong/build.ninja.d -o out/soong/build.ninja Android.bp >> Clang SA is not enabled >> error: vendor/my-shared-lib/Android.bp:38:18: unrecognized property >> "aidl_includes" >> error: vendor/my-shared-lib/Android.bp:74:18: unrecognized property >> "aidl_includes" >> ninja: build stopped: subcommand failed. >> 13:59:19 soong bootstrap failed with: exit status 1 >> make: *** [run_soong_ui] Error 1 >> >> BR >> /Michael >> >> -- >> -- >> You received this message because you are subscribed to the "Android >> Building" mailing list. >> To post to this group, send email to android-...@googlegroups.com >> >> To unsubscribe from this group, send email to >> android-buildi...@googlegroups.com >> 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 android-buildi...@googlegroups.com . >> For more options, visit https://groups.google.com/d/optout. >> > > -- -- You received this message because you are subscribed to the "Android Building" mailing list. To post to this group, send email to android-building@googlegroups.com To unsubscribe from this group, send email to android-building+unsubscr...@googlegroups.com 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 android-building+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[android-building] Soong convert Android.mk file for shared lib that uses LOCAL_AIDL_INCLUDES
Hello, I am trying to convert my Android.mk file to Android.bp. But it fails when I use aidl_includes. ANdroid.mk was converted using androidmk. include $(CLEAR_VARS) LOCAL_MODULE := libmysharedlib LOCAL_SRC_FILES := \ file.cpp \ $(call all-Iaidl-files-under, api) LOCAL_CPPFLAGS := -std=gnu++11 -Wall LOCAL_C_INCLUDES += \ $(LOCAL_PATH) \ external/rapidjson/include LOCAL_LDFLAGS := -llog LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) LOCAL_MULTILIB := both LOCAL_SHARED_LIBRARIES := \ liblog \ libbinder \ libutils \ libpowermanager \ LOCAL_STATIC_LIBRARIES := libcutils LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/api include $(BUILD_SHARED_LIBRARY) FAILED: out/soong/build.ninja out/soong/.bootstrap/bin/soong_build -t -b out/soong -d out/soong/build.ninja.d -o out/soong/build.ninja Android.bp Clang SA is not enabled error: vendor/my-shared-lib/Android.bp:38:18: unrecognized property "aidl_includes" error: vendor/my-shared-lib/Android.bp:74:18: unrecognized property "aidl_includes" ninja: build stopped: subcommand failed. 13:59:19 soong bootstrap failed with: exit status 1 make: *** [run_soong_ui] Error 1 BR /Michael -- -- You received this message because you are subscribed to the "Android Building" mailing list. To post to this group, send email to android-building@googlegroups.com To unsubscribe from this group, send email to android-building+unsubscr...@googlegroups.com 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 android-building+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.