Part Number: CC2564C
I have met such issue when cross compile TI Bluetooth add-on for Linux version v4.2.1.1.1.0
Compile error as below
LN BTPMSRVR_S.o libBTPM_S.a libBTPM_HAL_S.a libSS1BTAUD.a libSS1BTGAV.a libSS1BTAVC.a libSS1BTAVR.a libSS1SBC.a libSS1BTFTP.a libSS1BTHDP.a libSS1BTHDS.a libSS1BTHIDH.a libSS1BTHID.a libSS1BTPAN.a libBTPS_VNET.a libSS1BTPBA.a libSS1BTHFR.a libSS1BTMAP.a libSS1BTOPP.a libSS1BTCTS.a libSS1BTNDCS.a libSS1BTRTUS.a libSS1BTDIS.a libSS1BTGAT.a libSS1BTGAPS.a libSS1BTCSCS.a libSS1BTHIDS.a libSS1BTNDC.a libSS1BTRTU.a libSS1BTIAS.a libSS1BTHRS.a libSS1BTSCP.a libSS1BTLLS.a libSS1BTBAS.a libSS1BTTPS.a libBTPS.a libBTPS_PLA.a libBTPS_OSA.a -o SS1BTPM
/nshao_repo/tmo/HB_Tools/32/toolchain/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/5.2.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: error: obj/BTPMSRVR_S.o uses VFP register arguments, ../BluetopiaPM/bin/SS1BTPM does not
/nshao_repo/tmo/HB_Tools/32/toolchain/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/5.2.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: failed to merge target specific data of file obj/BTPMSRVR_S.o
/nshao_repo/tmo/HB_Tools/32/toolchain/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/5.2.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: error: ../BluetopiaPM/lib/libBTPM_S.a(BTPMMAIN_S.o) uses VFP register arguments, ../BluetopiaPM/bin/SS1BTPM does not
/nshao_repo/tmo/HB_Tools/32/toolchain/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/5.2.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: failed to merge target specific data of file ../BluetopiaPM/lib/libBTPM_S.a(BTPMMAIN_S.o)
It seems trying to link BTPMSRVR_S.o with libBTPM_S.a and other static library
I checked BTPMMAIN_S.o(inside libBTPM_S.a) with readelf -A
nshao@TMO_Env:/nshao_repo/tmo/AM335xBluetopiaLinuxProduction-4.2.1.1.1.0/build$ readelf -A BTPMMAIN_S.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_THUMB_ISA_use: Thumb-2
Tag_FP_arch: VFPv3
Tag_Advanced_SIMD_arch: NEONv1
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_VFP_args: VFP registers
Tag_ABI_optimization_goals: Aggressive Speed
Tag_CPU_unaligned_access: v6
Then I update compile parameter with -mfpu=neon and -mfloat-abi = hard to recompile BTPMSRVR_S.o, after compile success, I also check BTPMSRVR_S.o with readelf -A, result as below
nshao@TMO_Env:/nshao_repo/tmo/AM335xBluetopiaLinuxProduction-4.2.1.1.1.0/build$ readelf -A obj/BTPMSRVR_S.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_THUMB_ISA_use: Thumb-2
Tag_FP_arch: VFPv3
Tag_Advanced_SIMD_arch: NEONv1
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_VFP_args: VFP registers
Tag_ABI_optimization_goals: Aggressive Size
Tag_CPU_unaligned_access: v6
It seems both these files use VFPv3 and VPF registers. So I don’t know why I still get link failed?
Could you please help?