mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-13 10:02:38 +00:00
Add the .opd section, this is helps booting a profiled kernel.
Adjust the OUTPUT_ARCH and use the builtin ALIGN() to adjust the data segment.
This commit is contained in:
parent
4e7a7ba0b7
commit
618abe8ba1
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=230391
@ -1,7 +1,7 @@
|
||||
/* $FreeBSD$ */
|
||||
|
||||
OUTPUT_FORMAT("elf64-powerpc", "elf64-powerpc", "elf64-powerpc")
|
||||
OUTPUT_ARCH(powerpc)
|
||||
OUTPUT_ARCH(powerpc:common64)
|
||||
ENTRY(__start)
|
||||
SEARCH_DIR(/usr/lib);
|
||||
PROVIDE (__stack = 0);
|
||||
@ -56,15 +56,19 @@ SECTIONS
|
||||
.sdata2 : { *(.sdata2) }
|
||||
.sbss2 : { *(.sbss2) }
|
||||
/* Adjust the address for the data segment to the next page up. */
|
||||
. = ((. + 0x1000) & ~(0x1000 - 1));
|
||||
. = ALIGN(4096);
|
||||
.data :
|
||||
{
|
||||
*(.data)
|
||||
*(.gnu.linkonce.d*)
|
||||
CONSTRUCTORS
|
||||
}
|
||||
.data1 : { *(.data1) }
|
||||
.got1 : { *(.got1) }
|
||||
.data1 : { *(.data1) }
|
||||
.toc1 : ALIGN(8) { *(.toc1) }
|
||||
.opd : ALIGN(8) { KEEP (*(.opd)) }
|
||||
.branch_lt : ALIGN(8) { *(.branch_lt) }
|
||||
.got : ALIGN(8) { *(.got .toc) }
|
||||
|
||||
.dynamic : { *(.dynamic) }
|
||||
/* Put .ctors and .dtors next to the .got2 section, so that the pointers
|
||||
get relocated with -mrelocatable. Also put in the .fixup pointers.
|
||||
@ -81,10 +85,6 @@ SECTIONS
|
||||
.fixup : { *(.fixup) }
|
||||
PROVIDE (_FIXUP_END_ = .);
|
||||
PROVIDE (_GOT2_END_ = .);
|
||||
PROVIDE (_GOT_START_ = .);
|
||||
.got : { *(.got) }
|
||||
.got.plt : { *(.got.plt) }
|
||||
PROVIDE (_GOT_END_ = .);
|
||||
/* We want the small data sections together, so single-instruction offsets
|
||||
can access them all, and initialized data all before uninitialized, so
|
||||
we can shorten the on-disk segment size. */
|
||||
|
Loading…
Reference in New Issue
Block a user