diff options
author | Jerome Forissier <jerome.forissier@linaro.org> | 2018-03-07 13:04:17 +0100 |
---|---|---|
committer | Jérôme Forissier <jerome.forissier@linaro.org> | 2018-05-04 15:58:52 +0200 |
commit | bc8fc882f344e6aa6b205c1859cb4537fa81a306 (patch) | |
tree | a20ef1995116c013b0d1ca64f58fbb639551adf0 /ta | |
parent | f8896d1301fc1fbb4eef751c4c9de1d2969c1190 (diff) |
ta.ld.S: make .plt section of user TAs executable
This patch is preparatory work for the support of dynamically linked
user mode TAs.
The Procedure Linkage Table (.plt) section should be executable,
because it contains special code used to redirect function calls to
the proper destination in external (shared) libraries. Therefore, move
it into the executable segment.
A couple of blank lines are removed in the hope that it will make it
easier to see which sections are grouped together in the same segment.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Joakim Bech <joakim.bech@linaro.org>
Diffstat (limited to 'ta')
-rw-r--r-- | ta/arch/arm/ta.ld.S | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/ta/arch/arm/ta.ld.S b/ta/arch/arm/ta.ld.S index b80abc34..0176c4bc 100644 --- a/ta/arch/arm/ta.ld.S +++ b/ta/arch/arm/ta.ld.S @@ -30,7 +30,6 @@ PHDRS { SECTIONS { .ta_head : {*(.ta_head)} :exec - .text : { __text_start = .; *(.text .text.*) @@ -43,6 +42,8 @@ SECTIONS { PROVIDE(MCOUNT_SYM = __utee_mcount); __text_end = .; } + .plt : { *(.plt) } + .eh_frame : { *(.eh_frame) } :rodata .rodata : { *(.gnu.linkonce.r.*) @@ -50,12 +51,9 @@ SECTIONS { } /* .ARM.exidx is sorted, so has to go in its own output section. */ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } - .ctors : { *(.ctors) } .dtors : { *(.dtors) } - .plt : { *(.plt) } .got : { *(.got.plt) *(.got) } - .rel.text : { *(.rel.text) *(.rel.gnu.linkonce.t*) } .rela.text : { *(.rela.text) *(.rela.gnu.linkonce.t*) } .rel.data : { *(.rel.data) *(.rel.gnu.linkonce.d*) } @@ -77,7 +75,6 @@ SECTIONS { .rela.bss : { *(.rela.bss) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } - .dynamic : { *(.dynamic) } :dyn :rodata .dynsym : { *(.dynsym) } :rodata .dynstr : { *(.dynstr) } @@ -87,7 +84,6 @@ SECTIONS { . = ALIGN(4096); .data : { *(.data .data.* .gnu.linkonce.d.*) } :rwdata - .bss : { *(.bss .bss.* .gnu.linkonce.b.* COMMON) |