lib/program.ld: Account for large code model sections
Starting with version 18 LLVM puts code and data generated with -ffunction-section -mcmodel=large inside sections with an 'l' prefix. Change-Id: Ib755673dfa9e71172bbef0a5aec075154c89a97b Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/81675 Reviewed-by: Elyes Haouas <ehaouas@noos.fr> Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Reviewed-by: Julius Werner <jwerner@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
@@ -72,6 +72,8 @@
|
||||
/* Allow global uninitialized variables for stages without CAR teardown. */
|
||||
*(.bss)
|
||||
*(.bss.*)
|
||||
*(.lbss)
|
||||
*(.lbss.*)
|
||||
*(.sbss)
|
||||
*(.sbss.*)
|
||||
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
|
||||
@@ -97,6 +99,8 @@ _bogus = ASSERT(_etext == ALIGN(_etext, ARCH_POINTER_ALIGN_SIZE), "Cache-As-RAM
|
||||
_data = .;
|
||||
*(.data);
|
||||
*(.data.*);
|
||||
*(.ldata);
|
||||
*(.ldata.*);
|
||||
*(.sdata);
|
||||
*(.sdata.*);
|
||||
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
|
||||
|
@@ -10,6 +10,11 @@
|
||||
* SoC's entry points due to artificial alignment restrictions, see
|
||||
* https://sourceware.org/binutils/docs/ld/Output-Section-Address.html
|
||||
*/
|
||||
|
||||
/* Starting with version 18 LLVM the combination -ffunction-section -mcmodel=large
|
||||
* puts code and data in '.ltext, '.lrodata', '.ldata' and '.lbss'
|
||||
*/
|
||||
|
||||
.text . : {
|
||||
_program = .;
|
||||
_text = .;
|
||||
@@ -23,6 +28,8 @@
|
||||
KEEP(*(.metadata_hash_anchor));
|
||||
*(.text);
|
||||
*(.text.*);
|
||||
*(.ltext);
|
||||
*(.ltext.*);
|
||||
|
||||
#if ENV_HAS_CBMEM
|
||||
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
|
||||
@@ -55,6 +62,8 @@
|
||||
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
|
||||
*(.rodata);
|
||||
*(.rodata.*);
|
||||
*(.lrodata);
|
||||
*(.lrodata.*);
|
||||
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
|
||||
_etext = .;
|
||||
RECORD_SIZE(text)
|
||||
@@ -93,6 +102,8 @@
|
||||
|
||||
*(.data);
|
||||
*(.data.*);
|
||||
*(.ldata);
|
||||
*(.ldata.*);
|
||||
*(.sdata);
|
||||
*(.sdata.*);
|
||||
|
||||
@@ -122,6 +133,8 @@
|
||||
_bss = .;
|
||||
*(.bss)
|
||||
*(.bss.*)
|
||||
*(.lbss)
|
||||
*(.lbss.*)
|
||||
*(.sbss)
|
||||
*(.sbss.*)
|
||||
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
|
||||
|
Reference in New Issue
Block a user