aboutsummaryrefslogtreecommitdiff
path: root/ta
diff options
context:
space:
mode:
authorJerome Forissier <jerome.forissier@linaro.org>2018-03-07 13:04:17 +0100
committerJérôme Forissier <jerome.forissier@linaro.org>2018-05-04 15:58:52 +0200
commitbc8fc882f344e6aa6b205c1859cb4537fa81a306 (patch)
treea20ef1995116c013b0d1ca64f58fbb639551adf0 /ta
parentf8896d1301fc1fbb4eef751c4c9de1d2969c1190 (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.S8
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)