Thanks for the fast response!
Executing objdump -x on the service:

Dynamic Section:
  ...
  NEEDED               [email protected]
  NEEDED               libhidlbase.so
  NEEDED               libhidltransport.so
  NEEDED               libbase.so
  NEEDED               liblog.so
  NEEDED               libutils.so
  NEEDED               out/target/product/xxx/obj/lib/libTest.so
  NEEDED               libc++.so
  NEEDED               libc.so
  NEEDED               libm.so
  NEEDED               libdl.so
  PREINIT_ARRAY        0x00008ba0
  PREINIT_ARRAYSZ      0x00000008
  INIT_ARRAY           0x00008ba8
  INIT_ARRAYSZ         0x00000008
  FINI_ARRAY           0x00008bb0
  FINI_ARRAYSZ         0x00000008
  FLAGS                0x00000008
  FLAGS_1              0x00000001
  VERSYM               0x00004f34
  VERNEED              0x0000511c
  VERNEEDNUM           0x00000002

The libTest.so built with clang in own build environment does not have a 
SONAME.
Dynamic Section:
  PLTGOT               0x00003f84
  PLTRELSZ             0x000000e0
  JMPREL               0x00000b08
  PLTREL               0x00000011
  REL                  0x00000a40
  RELSZ                0x000000c8
  RELENT               0x00000008
  RELCOUNT             0x00000014
  SYMTAB               0x000001cc
  SYMENT               0x00000010
  STRTAB               0x000004dc
  STRSZ                0x00000398
  GNU_HASH             0x00000874
  NEEDED               libdl.so
  NEEDED               libc.so
  FINI_ARRAY           0x00003e28
  FINI_ARRAYSZ         0x00000008
  FLAGS                0x00000008
  FLAGS_1              0x00000001
  VERSYM               0x00000970
  VERDEF               0x000009d4
  VERDEFNUM            0x00000001
  VERNEED              0x000009f0
  VERNEEDNUM           0x00000002Cod
  ... 

If the test library is built via the android make system the SONAME is set.
Do you think adding the soname via compiler flag like could solve the 
problem?
e,g,;
-Wl,-soname,libTest.so

Am Donnerstag, 8. August 2019 19:47:47 UTC+2 schrieb Colin Cross:
>
> Likely libTest.so is built incorrectly and [email protected] 
> is ending up with an incorrect DT_NEEDED entry.  Can you show the output of 
> objdump -x lib/libTest.so and objdump -x 
> $OUT/vendor/bin/hw/[email protected]?  My guess is that SONAME 
> in libTest.so is "out/target/product/xxx/obj/lib/libTest.so" and that gets 
> copied into NEEDED in [email protected].
>
> On Thu, Aug 8, 2019 at 9:50 AM Tore Offermann <[email protected] 
> <javascript:>> wrote:
>
>> Hello everyone,
>>
>> I am currently fighting adding a vendor HIDL service with prebuilt 
>> libraries on Android Pie.
>>
>> The HIDL service is created in vendor/...
>> It depends on some prebuilt libraries.
>>
>> The prebuilt libraries are added to the Makefile for the service as 
>> follows:
>>
>> include $(CLEAR_VARS)
>> LOCAL_PROPRIETARY_MODULE := true
>> LOCAL_MODULE_SUFFIX := .so
>> LOCAL_MODULE_CLASS := SHARED_LIBRARIES
>> LOCAL_MODULE := libTest
>> LOCAL_SRC_FILES := lib/libTest.so
>> #include $(BUILD_PREBUILT)
>>
>> During android make the library is correctly copied to /vendor/lib and 
>> after I flash the device the lib is also available in that folder.
>>
>> I added the lib to the HIDL service makefile:
>>
>> include $(CLEAR_VARS)
>>
>> LOCAL_MODULE := [email protected]
>> LOCAL_PROPRIETARY_MODULE := true
>> LOCAL_MODULE_CLASS := EXECUTABLES
>> LOCAL_MODULE_RELATIVE_PATH := hw
>> LOCAL_INIT_RC := [email protected]
>> LOCAL_CFLAGS := -Werror
>>
>> LOCAL_SRC_FILES := service.cpp
>>
>> LOCAL_C_INCLUDES := $(subst ${ANDROID}/,,$(LOCAL_C_INCLUDES))
>>
>>
>> LOCAL_SHARED_LIBRARIES := \
>>     [email protected] \
>>     libhidlbase \
>>     libhidltransport \
>>     libbase \
>>     liblog \
>>     libutils \
>>     libTest
>>
>> include $(BUILD_EXECUTABLE)
>>
>> No issues during make, but after I start the device the linker complains 
>> with:
>>
>> 08-08 10:13:34.014  6814  6814 F linker  : CANNOT LINK EXECUTABLE 
>> "/vendor/bin/hw/[email protected]": library 
>> "out/target/product/xxx/obj/lib/libTest.so" not found
>>
>> Not sure how this can happen? 
>> I would suppose that the linker should check for the lib in /vendor/lib.
>>
>> Could it have something to do with:
>>
>> LOCAL_PRELINK_MODULE := false
>>
>> Thanks in advance!
>>
>> BR,
>> Tore
>>
>> -- 
>> -- 
>> You received this message because you are subscribed to the "Android 
>> Building" mailing list.
>> To post to this group, send email to [email protected] 
>> <javascript:>
>> To unsubscribe from this group, send email to
>> [email protected] <javascript:>
>> 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] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/android-building/d6699eb8-3c08-4ac1-8e74-fb8634b1bd1f%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/android-building/d6699eb8-3c08-4ac1-8e74-fb8634b1bd1f%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-building/19f84a48-97b5-44fc-aa6e-25e78de20da6%40googlegroups.com.

Reply via email to