Hi,

while recompiling a binary using the 4.4.3 Android NDK toolchain and 
linking it to an ASOP JB build, I get the warnings "Unknown EABI object 
attribute 44", as below:

[...]
  CC       test/srvctl.c
test/srvctl.c: In function 'main':
test/srvctl.c:161: warning: ISO C90 forbids mixed declarations and code 
[-Wdeclaration-after-statement]
  LD       test/release/target/srvctl
/media/u01/android-ndk-r8b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld:
 
Warning: 
/media/u02/RenesasEV2/jb/out/target/product/emev/obj/lib/crtbegin_dynamic.o: 
Unknown EABI object attribute 44
/media/u01/android-ndk-r8b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld:
 
Warning: 
/media/u02/RenesasEV2/jb/out/target/product/emev/obj/lib/crtend_android.o: 
Unknown EABI object attribute 44

Then, pushing the binary onto device and executing it I get a crash:

root@android:/vendor/bin # ./srvctl                                         
Segmentation fault 

Note as the core happens even before tool "usage" message is shown. So, it 
is not a code, but a compile issue, I guess...

I'm not sure if that's the reason of the crash, but comparing the ELF 
attributes of the objects being linked above, they refer to the 

$ arm-none-linux-gnueabi-readelf -A ./test/srvctl.o
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "7-A"
  Tag_CPU_arch: v7
  Tag_CPU_arch_profile: Application
  Tag_ARM_ISA_use: Yes
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_align_preserved: 8-byte, except leaf SP
  Tag_ABI_enum_size: int
  Tag_ABI_optimization_goals: Aggressive Size

$ arm-none-linux-gnueabi-readelf -A 
/media/u02/RenesasEV2/jb/out/target/product/emev/obj/lib/crtbegin_dynamic.o
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "5TE"
  Tag_CPU_arch: v5TE
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_FP_arch: VFPv2
  Tag_DIV_use: Not allowed

Looks like the JB (AOSP build) object is of CPU type "v5", while I expected 
it all to be a "v7", as defined in my device target types:

 BoardConfig.mk:TARGET_CPU_ABI := armeabi-v7a
 BoardConfig.mk:TARGET_ARCH_VARIANT = armv7-a-neon

(device project discussed at 
https://groups.google.com/forum/?fromgroups=#!forum/renesas-emev-osp)

Actually, this file is found in a "prebuilt" directory, under JB AOSP:

 
prebuilts/ndk/android-ndk-r7/platforms/android-4/arch-arm/usr/lib/crtbegin_dynamic.o

Could the cpu type mismatch be an issue?

Any other suggestion, about what to check?

thanks in advance

-- 
-- 
unsubscribe: android-porting+unsubscr...@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-porting+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to