mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-30 15:49:34 +00:00
linker_script: move .rela.dyn section to bl_common.ld.h
The .rela.dyn section is the same for BL2-AT-EL3, BL31, TSP. Move it to the common header file. I slightly changed the definition so that we can do "RELA_SECTION >RAM". It still produced equivalent elf images. Please note I got rid of '.' from the VMA field. Otherwise, if the end of previous .data section is not 8-byte aligned, it fails to link. aarch64-linux-gnu-ld.bfd: warning: changing start of section .rela.dyn by 4 bytes aarch64-linux-gnu-ld.bfd: warning: changing start of section .rela.dyn by 4 bytes aarch64-linux-gnu-ld.bfd: warning: changing start of section .rela.dyn by 4 bytes make: *** [Makefile:1071: build/qemu/release/bl31/bl31.elf] Error 1 Change-Id: Iba7422d99c0374d4d9e97e6fd47bae129dba5cc9 Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
edd8188d32
commit
e8ad6168b0
4 changed files with 14 additions and 33 deletions
|
@ -105,17 +105,7 @@ SECTIONS
|
||||||
__DATA_RAM_START__ = __DATA_START__;
|
__DATA_RAM_START__ = __DATA_START__;
|
||||||
__DATA_RAM_END__ = __DATA_END__;
|
__DATA_RAM_END__ = __DATA_END__;
|
||||||
|
|
||||||
/*
|
RELA_SECTION >RAM
|
||||||
* .rela.dyn needs to come after .data for the read-elf utility to parse
|
|
||||||
* this section correctly. Ensure 8-byte alignment so that the fields of
|
|
||||||
* RELA data structure are aligned.
|
|
||||||
*/
|
|
||||||
. = ALIGN(8);
|
|
||||||
__RELA_START__ = .;
|
|
||||||
.rela.dyn . : {
|
|
||||||
} >RAM
|
|
||||||
__RELA_END__ = .;
|
|
||||||
|
|
||||||
STACK_SECTION >RAM
|
STACK_SECTION >RAM
|
||||||
BSS_SECTION >RAM
|
BSS_SECTION >RAM
|
||||||
XLAT_TABLE_SECTION >RAM
|
XLAT_TABLE_SECTION >RAM
|
||||||
|
|
|
@ -115,17 +115,7 @@ SECTIONS
|
||||||
__RW_START__ = . ;
|
__RW_START__ = . ;
|
||||||
|
|
||||||
DATA_SECTION >RAM
|
DATA_SECTION >RAM
|
||||||
|
RELA_SECTION >RAM
|
||||||
/*
|
|
||||||
* .rela.dyn needs to come after .data for the read-elf utility to parse
|
|
||||||
* this section correctly. Ensure 8-byte alignment so that the fields of
|
|
||||||
* RELA data structure are aligned.
|
|
||||||
*/
|
|
||||||
. = ALIGN(8);
|
|
||||||
__RELA_START__ = .;
|
|
||||||
.rela.dyn . : {
|
|
||||||
} >RAM
|
|
||||||
__RELA_END__ = .;
|
|
||||||
|
|
||||||
#ifdef BL31_PROGBITS_LIMIT
|
#ifdef BL31_PROGBITS_LIMIT
|
||||||
ASSERT(. <= BL31_PROGBITS_LIMIT, "BL31 progbits has exceeded its limit.")
|
ASSERT(. <= BL31_PROGBITS_LIMIT, "BL31 progbits has exceeded its limit.")
|
||||||
|
|
|
@ -71,17 +71,7 @@ SECTIONS
|
||||||
__RW_START__ = . ;
|
__RW_START__ = . ;
|
||||||
|
|
||||||
DATA_SECTION >RAM
|
DATA_SECTION >RAM
|
||||||
|
RELA_SECTION >RAM
|
||||||
/*
|
|
||||||
* .rela.dyn needs to come after .data for the read-elf utility to parse
|
|
||||||
* this section correctly. Ensure 8-byte alignment so that the fields of
|
|
||||||
* RELA data structure are aligned.
|
|
||||||
*/
|
|
||||||
. = ALIGN(8);
|
|
||||||
__RELA_START__ = .;
|
|
||||||
.rela.dyn . : {
|
|
||||||
} >RAM
|
|
||||||
__RELA_END__ = .;
|
|
||||||
|
|
||||||
#ifdef TSP_PROGBITS_LIMIT
|
#ifdef TSP_PROGBITS_LIMIT
|
||||||
ASSERT(. <= TSP_PROGBITS_LIMIT, "TSP progbits has exceeded its limit.")
|
ASSERT(. <= TSP_PROGBITS_LIMIT, "TSP progbits has exceeded its limit.")
|
||||||
|
|
|
@ -101,6 +101,17 @@
|
||||||
__DATA_END__ = .; \
|
__DATA_END__ = .; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* .rela.dyn needs to come after .data for the read-elf utility to parse
|
||||||
|
* this section correctly.
|
||||||
|
*/
|
||||||
|
#define RELA_SECTION \
|
||||||
|
.rela.dyn : ALIGN(STRUCT_ALIGN) { \
|
||||||
|
__RELA_START__ = .; \
|
||||||
|
*(.rela*) \
|
||||||
|
__RELA_END__ = .; \
|
||||||
|
}
|
||||||
|
|
||||||
#if !(defined(IMAGE_BL31) && RECLAIM_INIT_CODE)
|
#if !(defined(IMAGE_BL31) && RECLAIM_INIT_CODE)
|
||||||
#define STACK_SECTION \
|
#define STACK_SECTION \
|
||||||
stacks (NOLOAD) : { \
|
stacks (NOLOAD) : { \
|
||||||
|
|
Loading…
Add table
Reference in a new issue