Search code examples
buildandroid-source

How can I make Android Q sources build shared libraries?


I lunch 1 which is aosp_arm-eng. Then I do make -j 1. It seems Android.pb's are always reporting missing variant. Is there a way I can force a build of shared libraries. I dont think this is a problem with system/core this error pops up in other custom Android.bp in my own device tree. And as I have shown even lunch aosp_arm-eng fails

Here is a build log

[100% 1/1] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b 
out/soong -n out -d out/soong/build.ninja.d -globFile out/soong/.bootstrap/build
-globs.ninja -o out/soong/build.ninja Android.bp
error: system/core/init/Android.bp:164:1: dependency "libbootloader_message" of 
"init_second_stage" missing variant:
  arch:android_arm_armv7-a-neon, image:core, link:shared, version:
available variants:
  arch:android_arm_armv7-a-neon, image:core, link:static, version:
error: system/core/init/Android.bp:95:1: dependency "libbootloader_message" of "
libinit" missing variant:
  arch:android_arm_armv7-a-neon, image:core, link:shared, version:
available variants:
  arch:android_arm_armv7-a-neon, image:core, link:static, version:
error: system/core/init/Android.bp:214:1: dependency "libbootloader_message" of 
"init_benchmarks" missing variant:
  arch:android_arm_armv7-a-neon, image:core, link:shared, version:
available variants:
  arch:android_arm_armv7-a-neon, image:core, link:static, version:
error: system/core/init/Android.bp:190:1: dependency "libbootloader_message" of 
"init_tests" missing variant:
  arch:android_arm_armv7-a-neon, image:core, link:shared, version:
available variants:
  arch:android_arm_armv7-a-neon, image:core, link:static, version:
09:53:04 soong bootstrap failed with: exit status 1

#### failed to build some targets (36 seconds) ####

Solution

  • My problem was I had removed bootable/recovery because it was clashing with recovery-twrp. It seems the missing libraries were in bootable/recovery. I deleted bootable/recovery-twrp and brought back bootable/recovery. Problem solved