[arm-gnu] Mixing code from RVCT / VFP attributes
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[arm-gnu] Mixing code from RVCT / VFP attributes



Hello,

I am trying to use the GNU linker (through Code Sourcery 2009q3's arm-non-eabi-gcc driver) to link object files produced with ARM's RVCT.

I compile with --wchar32 --library_interface=aeabi_clib --cpu=cortex-a9
and I link with -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp -Tgeneric-hosted.ld.

The linker complains on each object file because it "uses VFP register arguments" while the generated executable "does not".

I have tried -mfpu-vfp, but it changes nothing.

The only object files that get linked before the ones I compiled with RVCT are crti.o and crtbegin.o.

The attributes for one of my object files are as follows:
----------------------------
  Tag_conformance: "2.06"
  Tag_CPU_name: "Cortex-A9"
  Tag_CPU_arch: v7
  Tag_CPU_arch_profile: Application
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-2
  Tag_VFP_arch: VFPv3
  Tag_Advanced_SIMD_arch: NEONv1
  Tag_ABI_PCS_GOT_use: direct
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Sign only
  Tag_ABI_FP_number_model: Finite
  Tag_ABI_align8_needed: Yes
  Tag_ABI_align8_preserved: Yes, except leaf SP
  Tag_ABI_enum_size: small
  Tag_ABI_VFP_args: VFP registers
  Tag_ABI_optimization_goals: Prefer Size
  Tag_CPU_unaligned_access: v6
  Tag_VFP_HP_extension: Allowed
  Tag_T2EE_use: Allowed
  Tag_Virtualization_use: Allowed
  Tag_MPextension_use: Allowed
----------------------------
for crti.o:
  Tag_CPU_arch: v4
  Tag_ARM_ISA_use: Yes
(only)

for crtbegin.o:
  Tag_CPU_name: "ARM7TDMI"
  Tag_CPU_arch: v4T
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  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_align8_needed: Yes
  Tag_ABI_align8_preserved: Yes, except leaf SP
  Tag_ABI_enum_size: small
  Tag_ABI_optimization_goals: Aggressive Speed

What should I do?

Thanks.

Christophe.