Library .so and .so.toc files missing from obj/lib

1,870 views
Skip to first unread message

Dimitrije Petrovic

unread,
Jan 16, 2019, 8:08:45 PM1/16/19
to android-porting
After migration to Android P many vendor libraries have missing dependencies because libraries they are missing from $OUT/obj/lib/.
These files can be found in $OUT/obj/SHARED_LIBRARIES/<libname>_intermediates/ folders and can be copied. But this isn't a convenient way of resolving dependencies and it's basically impossible to keep them up to date.

Anyone have an idea why this is happening?
On Android O these problems were not present and all .so and .so.toc files were present in $OUT/obj/lib/.

Dan Willemsen

unread,
Mar 7, 2019, 11:34:55 PM3/7/19
to android-porting
It is no longer safe to assume that there's only a single library built with a specific name now that we have a split between the system and vendor partition. I highly recommend using the Android build system to do your compilations so that you don't need to stay on top of changes like this -- these libraries moving is just one of the many things that changed in how to build a library to install into /vendor over the last several years. At some point they'll no longer exist in the obj/SHARED_LIBRARIES path you found below as we move away from Make and to Soong, which uses even less stable intermediate paths.

- Dan

Dimitrije Petrovic

unread,
Apr 5, 2019, 8:22:27 AM4/5/19
to dwill...@google.com, android-porting
Hello Dan,

Thanks for the reply, but I'm not sure how exactly is this related to the problem I described.
We are using the Android build system to build our applications. I referred to our applications as vendor libraries.
The problem is that when building some parts of our system there are crashes, as other parts that are set up to be available as prebuilts are missing from $OUT/obj/lib/, but can be found in $OUT/obj/SHARED_LIBRARIES/<libname>_intermediates/.

Do you have any idea what may be making the build system not put these prebuilts in $OUT/obj/lib/ where they are expected to be?

--
--
unsubscribe: android-porti...@googlegroups.com
website: http://groups.google.com/group/android-porting

---
You received this message because you are subscribed to the Google Groups "android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-porti...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Олег Лёвин

unread,
Apr 11, 2020, 2:20:48 PM4/11/20
to android-porting
Hi Dimitrije,

Have you fixed the problem?

I met the same issue and noticed the different behavior for the vendor libraries defined through Android.bp file with "vendor: true" property, and for the vendor libraries defined through Android.mk LOCAL_VENDOR_MODULE := true property.
When linking executable binary with the library defined by Android.bp, the issue is gone.

Unfortunately rewriting existing Android.mk files into Android.bp is not the case for me, so I am looking for a fix.

пятница, 5 апреля 2019 г., 15:22:27 UTC+3 пользователь Dimitrije Petrovic написал:
Hello Dan,

Thanks for the reply, but I'm not sure how exactly is this related to the problem I described.
We are using the Android build system to build our applications. I referred to our applications as vendor libraries.
The problem is that when building some parts of our system there are crashes, as other parts that are set up to be available as prebuilts are missing from $OUT/obj/lib/, but can be found in $OUT/obj/SHARED_LIBRARIES/<libname>_intermediates/.

Do you have any idea what may be making the build system not put these prebuilts in $OUT/obj/lib/ where they are expected to be?

On Fri, Mar 8, 2019 at 5:34 AM 'Dan Willemsen' via android-porting <android...@googlegroups.com> wrote:
It is no longer safe to assume that there's only a single library built with a specific name now that we have a split between the system and vendor partition. I highly recommend using the Android build system to do your compilations so that you don't need to stay on top of changes like this -- these libraries moving is just one of the many things that changed in how to build a library to install into /vendor over the last several years. At some point they'll no longer exist in the obj/SHARED_LIBRARIES path you found below as we move away from Make and to Soong, which uses even less stable intermediate paths.

- Dan

On Wednesday, January 16, 2019 at 5:08:45 PM UTC-8, Dimitrije Petrovic wrote:
After migration to Android P many vendor libraries have missing dependencies because libraries they are missing from $OUT/obj/lib/.
These files can be found in $OUT/obj/SHARED_LIBRARIES/<libname>_intermediates/ folders and can be copied. But this isn't a convenient way of resolving dependencies and it's basically impossible to keep them up to date.

Anyone have an idea why this is happening?
On Android O these problems were not present and all .so and .so.toc files were present in $OUT/obj/lib/.

--
--

website: http://groups.google.com/group/android-porting

---
You received this message because you are subscribed to the Google Groups "android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages