X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Farch%2Farmv7%2Flink.ld;h=fbd358207d5116c616c24ea2a5da512628fb511d;hb=479d0634670b58da044bc58149662adba0ad1d0b;hp=d10dcc4645f2a9824b93c764177830d06abde2c2;hpb=51ab5f489bc356940c95cc936fd0508e8f07ea97;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/arch/armv7/link.ld b/KernelLand/Kernel/arch/armv7/link.ld index d10dcc46..fbd35820 100644 --- a/KernelLand/Kernel/arch/armv7/link.ld +++ b/KernelLand/Kernel/arch/armv7/link.ld @@ -27,9 +27,33 @@ SECTIONS *(.usertext) } . += gUsertextPhysStart + _kernel_base - _usertext_vbase; - + + /DISCARD/ : { *(.ARM.extab.init .ARM.exidx.init) } + .ARM.extab : AT( ADDR(.ARM.extab) - _kernel_base) + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } + PROVIDE_HIDDEN ( __exidx_start = . ); + .ARM.exidx : AT( ADDR(.ARM.exidx) - _kernel_base) + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } + PROVIDE_HIDDEN ( __exidx_end = . ); + .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 */ - .data ALIGN(0x4000) : AT( ADDR(.data) - _kernel_base ) + . = ALIGN(0x4000); + .data : AT( ADDR(.data) - _kernel_base ) { *(.padata) *(.data*) @@ -42,7 +66,7 @@ SECTIONS *(KMODULES) gKernelModulesEnd = .; } - .bss : AT( ADDR(.bss) - _kernel_base ) + .bss ALIGN(0x1000) : AT( ADDR(.bss) - _kernel_base ) { bss_start = .; *(.bss*)