why using arm-none-eabi-gcc (7.2.1 version) build, link address in map is 64 bits?

Asked by XuXiaodong

hi,
I use arm-none-eabi-gcc (7.2.1 version) in Ubuntu 14.04(x86_64) to build some C file, and the link option is: -Os -Wall -mlittle-endian -mthumb -mcpu=cortex-m4 -fsingle-precision-constant -Wdouble-promotion -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-builtin -gdwarf-2 -Os -fno-strict-aliasing -fno-common -Wimplicit-function-declaration -Wall -Werror=uninitialized -Wno-error=maybe-uninitialized -Werror=return-type -std=gnu99 -Wno-switch.

In map, the address as follows:

 .text 0x00000000040036a8 0x21c ../../gcc/linux/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/7.2.1/thumb/v7e-m/fpv4-sp/hard/libgcc.a(_arm_addsubsf3.o)
                0x00000000040036a8 __aeabi_frsub
                0x00000000040036b0 __subsf3
                0x00000000040036b0 __aeabi_fsub
                0x00000000040036b4 __aeabi_fadd
                0x00000000040036b4 __addsf3
                0x0000000004003814 __aeabi_ui2f
                0x0000000004003814 __floatunsisf
                0x000000000400381c __aeabi_i2f
                0x000000000400381c __floatsisf
                0x0000000004003838 __floatundisf
                0x0000000004003838 __aeabi_ul2f
                0x0000000004003848 __floatdisf
                0x0000000004003848 __aeabi_l2f

 In 64 bits address, some symbols cannot link correctly! so, why the link address is 64 bits?

Question information

Language:
English Edit question
Status:
Expired
For:
GNU Arm Embedded Toolchain Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Launchpad Janitor (janitor) said :
#1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

Revision history for this message
Thomas Preud'homme (thomas-preudhomme) said :
#2

Hi Xiaodong,

The size of the addresses here are just a print formatting issue. Internally the addresses are 32-bit as you would expect. You can see it with arm-none-eabi-readelf -s or arm-none-eabi-objdump -d for instance. The issue you are facing is thus likely coming from something else entirely.

Best regards.