arm-elf-ld generate arm interworking stub at bad address ?
Sylvere TEISSIER
st_remove_this_@invia.fr
Thu Oct 16 15:55:00 GMT 2008
Hi,
when I link mixed thumb and arm code with interworking, the linker
insert a .stub section at the beginning of the memory.
But, like expressed in my linker script present bellow, I want my
exceptions vectors assembled with ".section .startup" at the origin of
the memory.
Why ld doesn't place this stub at other place ?
Is there something wrong with my linker script ? Or is it a bug ?
I have this problem with both binutils-2.18.50 and binutils-2.19.50
bellow:the linker script and map output
---------------LINKER SCRIPT-----------------------
ENTRY(_vec_reset)
MEMORY
{
ram: ORIGIN = 0x67000, LENGTH = 92K
}
_stack_end = 0x7E9FC;
SECTIONS
{
. = 0;
.text :
{
*(.startup)
*(.text*)
*(.rodata)
*(.rodata*)
*(.glue_7)
*(.glue_7t)
_etext = .;
} >ram
.data :
{
_data = .;
*(.data*)
_edata = .;
} >ram
.bss :
{
_bss_start = .;
*(.bss*)
} >ram
. = ALIGN(4);
_bss_end = . ;
}
_end = .;
----------------------MAP OUTPUT EXTRACT---------------------------
Name Origin Length Attributes
ram 0x00067000 0x00017000
*default* 0x00000000 0xffffffff
Linker script and memory map
0x0007e9fc _stack_end = 0x7e9fc
0x00000000 . = 0x0
.text 0x00067000 0x3414
*(.startup)
.startup.stub 0x00067000 0x20 linker stubs
.startup 0x00067020 0x20 obj/crt.o
0x00067024 _vec_undef
0x0006702c _vec_pabt
0x00067038 _vec_irq
0x00067034 _vec_rsv
0x00067028 _vec_swi
0x00067030 _vec_dabt
0x00067020 _vec_reset
0x0006703c _vec_fiq
*(.text*)
[... all others functions and datas...]
More information about the Binutils
mailing list