X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Farch%2Farmv7%2Flink.ld;fp=KernelLand%2FKernel%2Farch%2Farmv7%2Flink.ld;h=fbd358207d5116c616c24ea2a5da512628fb511d;hb=32c93b6a866e881d37704e9c2f8bd89bb121746e;hp=e45101bf71f3b4b88d6b93f9e211c3e501b7ff5f;hpb=8d52238daeb2bbbdf384f9d36721ef4ac8e9d36e;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/arch/armv7/link.ld b/KernelLand/Kernel/arch/armv7/link.ld index e45101bf..fbd35820 100644 --- a/KernelLand/Kernel/arch/armv7/link.ld +++ b/KernelLand/Kernel/arch/armv7/link.ld @@ -29,13 +29,27 @@ SECTIONS . += gUsertextPhysStart + _kernel_base - _usertext_vbase; /DISCARD/ : { *(.ARM.extab.init .ARM.exidx.init) } - .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } + .ARM.extab : AT( ADDR(.ARM.extab) - _kernel_base) + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } PROVIDE_HIDDEN ( __exidx_start = . ); - .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } + .ARM.exidx : AT( ADDR(.ARM.exidx) - _kernel_base) + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } PROVIDE_HIDDEN ( __exidx_end = . ); - .eh_frame_hdr : { *(.eh_frame_hdr) } - .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } - .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } + .eh_frame_hdr : AT( ADDR(.eh_frame_hdr) - _kernel_base) { + *(.eh_frame_hdr) + } + .eh_frame : AT( ADDR(.eh_frame) - _kernel_base) ONLY_IF_RO + { + KEEP (*(.eh_frame)) + } + .gcc_except_table : AT( ADDR(.gcc_except_table) - _kernel_base) ONLY_IF_RO + { + *(.gcc_except_table .gcc_except_table.*) + } /* 0x4000 (4 pages) alignment needed for root table */ . = ALIGN(0x4000);