diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2013-06-19 14:30:55 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-07-12 09:28:26 -0500 |
commit | 3699cdda9adeabf550b3e875b35218620e93f186 (patch) | |
tree | 75870ea4a2c604ec6a352e1069ad3710f922e93c /src/kernel.ld | |
parent | cc3da0a999d8d37cfbb53d8386a6c0b9e3fa3992 (diff) | |
download | talos-hostboot-3699cdda9adeabf550b3e875b35218620e93f186.tar.gz talos-hostboot-3699cdda9adeabf550b3e875b35218620e93f186.zip |
Make libs smaller by overlapping text and rodata sections.
Change-Id: I0f3b9a941c19040635752b2648ef51c50dba849b
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/5135
Tested-by: Jenkins Server
Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/kernel.ld')
-rw-r--r-- | src/kernel.ld | 71 |
1 files changed, 39 insertions, 32 deletions
diff --git a/src/kernel.ld b/src/kernel.ld index d1f2cef42..c2bcc2304 100644 --- a/src/kernel.ld +++ b/src/kernel.ld @@ -28,52 +28,59 @@ SECTIONS . = base_load_address; .text ALIGN(0x1000): { - *(.text.intvects) - . = text_load_address; + *(.text.intvects) + . = text_load_address; *(.text.kernelasm) - *(.text) - *(.text._*) + *(.text) + *(.text._*) *(.text.*) - *(.rodata) - *(.rodata.*) - . = ALIGN(0x8); - ctor_start_address = .; - *(.ctors) - ctor_end_address = .; } - - .data ALIGN(0x1000): { - data_load_address = .; - *(.data) - *(.data.*) - *(.branch_lt) - toc_load_address = .; - *(.toc) - *(.opd) - *(.got) + .rodata ALIGN(0x8): { + __minimum_data_start_addr = ALIGN(0x1000); + ctor_start_address = .; + *(.ctors) + ctor_end_address = .; + *(.rodata) + *(.rodata.*) + toc_load_address = .; + *(.toc) + *(.opd) + *(.got) + *(.plt) + *(.data.rel.ro.*) + *(.data.*traceData_codeInfo*) + + . = __minimum_data_start_addr > . ? __minimum_data_start_addr : .; + } + + .data ALIGN(0x8): { + data_load_address = .; + *(.data) + *(.data.*) - *(.bss) - *(.bss.*) + *(.bss) + *(.bss.*) } end_load_address = .; - .dynstr : { - *(.dynstr) - } - .rela : { - *(.rela.*) + *(.rela.*) } - + + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .hash : { *(.hash) } + .gnu.hash : { *(.gnu.hash) } + .eh_frame : { *(.eh_frame) } /DISCARD/ : { - *(.comment) - *(.gnu.attributes) - *(.dtors) - *(.interp) + *(.comment) + *(.gnu.attributes) + *(.dtors) + *(.interp) } } |