Reorder more powerpc64 sections again for -z relro
.toc1 is the second level TOC section used by gcc's -mminimal-toc. It too should be read-only after relocation. Also, the last patch description mentioned .sbss moving but didn't actually do that, so fix that problem. .tocbss (whatever that is) was before .sbss previously, so move that one too. * emulparams/elf64ppc.sh (OTHER_SDATA_SECTIONS): Use in place of.. (OTHER_BSS_SYMBOLS): ..this. (OTHER_PLT_RELOC_SECTIONS): Don't define. (OTHER_GOT_RELOC_SECTIONS): Add rela.toc1 and rela.tocbss. (OTHER_READWRITE_SECTIONS): Don't define. Move .toc1 to.. (OTHER_RELRO_SECTIONS_2): ..here. * scripttempl/elf.sc: Move SBSS too when DATA_SDATA.
This commit is contained in:
parent
c05b575a8d
commit
5ad18f16ab
3 changed files with 16 additions and 6 deletions
10
ld/ChangeLog
10
ld/ChangeLog
|
@ -5,6 +5,16 @@
|
|||
Display a special message for PROVIDE'd symbols that are not being
|
||||
provided.
|
||||
|
||||
2015-01-20 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* emulparams/elf64ppc.sh (OTHER_SDATA_SECTIONS): Use in place of..
|
||||
(OTHER_BSS_SYMBOLS): ..this.
|
||||
(OTHER_PLT_RELOC_SECTIONS): Don't define.
|
||||
(OTHER_GOT_RELOC_SECTIONS): Add rela.toc1 and rela.tocbss.
|
||||
(OTHER_READWRITE_SECTIONS): Don't define. Move .toc1 to..
|
||||
(OTHER_RELRO_SECTIONS_2): ..here.
|
||||
* scripttempl/elf.sc: Move SBSS too when DATA_SDATA.
|
||||
|
||||
2015-01-20 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* emulparams/elf64ppc.sh (BSS_PLT): Don't define.
|
||||
|
|
|
@ -15,10 +15,8 @@ unset SBSS_END_SYMBOLS
|
|||
unset OTHER_END_SYMBOLS
|
||||
unset OTHER_RELRO_SECTIONS
|
||||
OTHER_TEXT_SECTIONS="*(.sfpr .glink)"
|
||||
OTHER_BSS_SYMBOLS="
|
||||
OTHER_SDATA_SECTIONS="
|
||||
.tocbss ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.tocbss)}"
|
||||
OTHER_PLT_RELOC_SECTIONS="
|
||||
.rela.tocbss ${RELOCATING-0} : { *(.rela.tocbss) }"
|
||||
|
||||
if test x${RELOCATING+set} = xset; then
|
||||
GOT="
|
||||
|
@ -33,11 +31,12 @@ INITIAL_RELOC_SECTIONS="
|
|||
.rela.opd ${RELOCATING-0} : { *(.rela.opd) }"
|
||||
OTHER_GOT_RELOC_SECTIONS="
|
||||
.rela.toc ${RELOCATING-0} : { *(.rela.toc) }
|
||||
.rela.toc1 ${RELOCATING-0} : { *(.rela.toc1) }
|
||||
.rela.tocbss ${RELOCATING-0} : { *(.rela.tocbss) }
|
||||
.rela.branch_lt ${RELOCATING-0} : { *(.rela.branch_lt) }"
|
||||
OTHER_READWRITE_SECTIONS="
|
||||
.toc1 ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.toc1) }"
|
||||
OTHER_RELRO_SECTIONS_2="
|
||||
.opd ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { KEEP (*(.opd)) }
|
||||
.toc1 ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.toc1) }
|
||||
.branch_lt ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.branch_lt) }"
|
||||
# Put .got before .data
|
||||
DATA_GOT=" "
|
||||
|
|
|
@ -582,6 +582,7 @@ cat <<EOF
|
|||
${INITIAL_READWRITE_SECTIONS}
|
||||
${DATA_SDATA+${SDATA}}
|
||||
${DATA_SDATA+${OTHER_SDATA_SECTIONS}}
|
||||
${DATA_SDATA+${SBSS}}
|
||||
${DATA_GOT+${RELRO_NOW-${DATA_PLT+${PLT_BEFORE_GOT+${PLT}}}}}
|
||||
${DATA_GOT+${RELRO_NOW-${SEPARATE_GOTPLT-${GOT}}}}
|
||||
${DATA_GOT+${RELRO_NOW-${GOTPLT}}}
|
||||
|
@ -609,7 +610,7 @@ cat <<EOF
|
|||
${RELOCATING+. = .;}
|
||||
${RELOCATING+${USER_LABEL_PREFIX}__bss_start = .;}
|
||||
${RELOCATING+${OTHER_BSS_SYMBOLS}}
|
||||
${SBSS}
|
||||
${DATA_SDATA-${SBSS}}
|
||||
${BSS_PLT+${PLT}}
|
||||
.${BSS_NAME} ${RELOCATING-0} :
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue