Fix linker scripts
Remove PROVIDE_HIDDEN and ONLY_IF_{RO,RW} from linker scripts to make them work with older binutils versions. Fixes *-bsd-user build on OpenBSD 4.9 which ships binutils 2.15. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
0fc6b5828f
commit
8733f6093c
12
arm.ld
12
arm.ld
@ -71,23 +71,23 @@ SECTIONS
|
|||||||
.data1 : { *(.data1) }
|
.data1 : { *(.data1) }
|
||||||
.preinit_array :
|
.preinit_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
PROVIDE (__preinit_array_start = .);
|
||||||
KEEP (*(.preinit_array))
|
KEEP (*(.preinit_array))
|
||||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
PROVIDE (__preinit_array_end = .);
|
||||||
}
|
}
|
||||||
.init_array :
|
.init_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__init_array_start = .);
|
PROVIDE (__init_array_start = .);
|
||||||
KEEP (*(SORT(.init_array.*)))
|
KEEP (*(SORT(.init_array.*)))
|
||||||
KEEP (*(.init_array))
|
KEEP (*(.init_array))
|
||||||
PROVIDE_HIDDEN (__init_array_end = .);
|
PROVIDE (__init_array_end = .);
|
||||||
}
|
}
|
||||||
.fini_array :
|
.fini_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
PROVIDE (__fini_array_start = .);
|
||||||
KEEP (*(.fini_array))
|
KEEP (*(.fini_array))
|
||||||
KEEP (*(SORT(.fini_array.*)))
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
PROVIDE (__fini_array_end = .);
|
||||||
}
|
}
|
||||||
.ctors :
|
.ctors :
|
||||||
{
|
{
|
||||||
|
18
hppa.ld
18
hppa.ld
@ -75,36 +75,34 @@ SECTIONS
|
|||||||
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
|
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
|
||||||
.PARISC.unwind : { *(.PARISC.unwind) }
|
.PARISC.unwind : { *(.PARISC.unwind) }
|
||||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||||
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
|
|
||||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
|
|
||||||
/* Adjust the address for the data segment. We want to adjust up to
|
/* Adjust the address for the data segment. We want to adjust up to
|
||||||
the same address within the page on the next page up. */
|
the same address within the page on the next page up. */
|
||||||
. = ALIGN(0x10000) + (. & (0x10000 - 1));
|
. = ALIGN(0x10000) + (. & (0x10000 - 1));
|
||||||
/* Exception handling */
|
/* Exception handling */
|
||||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
.eh_frame : { KEEP (*(.eh_frame)) }
|
||||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
.gcc_except_table : { *(.gcc_except_table .gcc_except_table.*) }
|
||||||
/* Thread Local Storage sections */
|
/* Thread Local Storage sections */
|
||||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||||
.preinit_array :
|
.preinit_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
PROVIDE (__preinit_array_start = .);
|
||||||
KEEP (*(.preinit_array))
|
KEEP (*(.preinit_array))
|
||||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
PROVIDE (__preinit_array_end = .);
|
||||||
}
|
}
|
||||||
.init_array :
|
.init_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__init_array_start = .);
|
PROVIDE (__init_array_start = .);
|
||||||
KEEP (*(SORT(.init_array.*)))
|
KEEP (*(SORT(.init_array.*)))
|
||||||
KEEP (*(.init_array))
|
KEEP (*(.init_array))
|
||||||
PROVIDE_HIDDEN (__init_array_end = .);
|
PROVIDE (__init_array_end = .);
|
||||||
}
|
}
|
||||||
.fini_array :
|
.fini_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
PROVIDE (__fini_array_start = .);
|
||||||
KEEP (*(.fini_array))
|
KEEP (*(.fini_array))
|
||||||
KEEP (*(SORT(.fini_array.*)))
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
PROVIDE (__fini_array_end = .);
|
||||||
}
|
}
|
||||||
.ctors :
|
.ctors :
|
||||||
{
|
{
|
||||||
|
8
i386.ld
8
i386.ld
@ -42,16 +42,16 @@ SECTIONS
|
|||||||
.rel.plt :
|
.rel.plt :
|
||||||
{
|
{
|
||||||
*(.rel.plt)
|
*(.rel.plt)
|
||||||
PROVIDE_HIDDEN (__rel_iplt_start = .);
|
PROVIDE (__rel_iplt_start = .);
|
||||||
*(.rel.iplt)
|
*(.rel.iplt)
|
||||||
PROVIDE_HIDDEN (__rel_iplt_end = .);
|
PROVIDE (__rel_iplt_end = .);
|
||||||
}
|
}
|
||||||
.rela.plt :
|
.rela.plt :
|
||||||
{
|
{
|
||||||
*(.rela.plt)
|
*(.rela.plt)
|
||||||
PROVIDE_HIDDEN (__rela_iplt_start = .);
|
PROVIDE (__rela_iplt_start = .);
|
||||||
*(.rela.iplt)
|
*(.rela.iplt)
|
||||||
PROVIDE_HIDDEN (__rela_iplt_end = .);
|
PROVIDE (__rela_iplt_end = .);
|
||||||
}
|
}
|
||||||
.init : { *(.init) } =0x47ff041f
|
.init : { *(.init) } =0x47ff041f
|
||||||
.text :
|
.text :
|
||||||
|
18
mips.ld
18
mips.ld
@ -79,36 +79,34 @@ SECTIONS
|
|||||||
}
|
}
|
||||||
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
|
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
|
||||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||||
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
|
|
||||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
|
|
||||||
/* Adjust the address for the data segment. We want to adjust up to
|
/* Adjust the address for the data segment. We want to adjust up to
|
||||||
the same address within the page on the next page up. */
|
the same address within the page on the next page up. */
|
||||||
. = ALIGN (0x40000) - ((0x40000 - .) & (0x40000 - 1)); . = DATA_SEGMENT_ALIGN (0x40000, 0x1000);
|
. = ALIGN (0x40000) - ((0x40000 - .) & (0x40000 - 1)); . = DATA_SEGMENT_ALIGN (0x40000, 0x1000);
|
||||||
/* Exception handling */
|
/* Exception handling */
|
||||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
.eh_frame : { KEEP (*(.eh_frame)) }
|
||||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
.gcc_except_table : { *(.gcc_except_table .gcc_except_table.*) }
|
||||||
/* Thread Local Storage sections */
|
/* Thread Local Storage sections */
|
||||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||||
.preinit_array :
|
.preinit_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
PROVIDE (__preinit_array_start = .);
|
||||||
KEEP (*(.preinit_array))
|
KEEP (*(.preinit_array))
|
||||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
PROVIDE (__preinit_array_end = .);
|
||||||
}
|
}
|
||||||
.init_array :
|
.init_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__init_array_start = .);
|
PROVIDE (__init_array_start = .);
|
||||||
KEEP (*(SORT(.init_array.*)))
|
KEEP (*(SORT(.init_array.*)))
|
||||||
KEEP (*(.init_array))
|
KEEP (*(.init_array))
|
||||||
PROVIDE_HIDDEN (__init_array_end = .);
|
PROVIDE (__init_array_end = .);
|
||||||
}
|
}
|
||||||
.fini_array :
|
.fini_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
PROVIDE (__fini_array_start = .);
|
||||||
KEEP (*(.fini_array))
|
KEEP (*(.fini_array))
|
||||||
KEEP (*(SORT(.fini_array.*)))
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
PROVIDE (__fini_array_end = .);
|
||||||
}
|
}
|
||||||
.ctors :
|
.ctors :
|
||||||
{
|
{
|
||||||
|
18
ppc.ld
18
ppc.ld
@ -79,36 +79,34 @@ SECTIONS
|
|||||||
}
|
}
|
||||||
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
|
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
|
||||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||||
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
|
|
||||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
|
|
||||||
/* Adjust the address for the data segment. We want to adjust up to
|
/* Adjust the address for the data segment. We want to adjust up to
|
||||||
the same address within the page on the next page up. */
|
the same address within the page on the next page up. */
|
||||||
. = ALIGN (0x10000) - ((0x10000 - .) & (0x10000 - 1)); . = DATA_SEGMENT_ALIGN (0x10000, 0x1000);
|
. = ALIGN (0x10000) - ((0x10000 - .) & (0x10000 - 1)); . = DATA_SEGMENT_ALIGN (0x10000, 0x1000);
|
||||||
/* Exception handling */
|
/* Exception handling */
|
||||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
.eh_frame : { KEEP (*(.eh_frame)) }
|
||||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
.gcc_except_table : { *(.gcc_except_table .gcc_except_table.*) }
|
||||||
/* Thread Local Storage sections */
|
/* Thread Local Storage sections */
|
||||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||||
.preinit_array :
|
.preinit_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
PROVIDE (__preinit_array_start = .);
|
||||||
KEEP (*(.preinit_array))
|
KEEP (*(.preinit_array))
|
||||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
PROVIDE (__preinit_array_end = .);
|
||||||
}
|
}
|
||||||
.init_array :
|
.init_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__init_array_start = .);
|
PROVIDE (__init_array_start = .);
|
||||||
KEEP (*(SORT(.init_array.*)))
|
KEEP (*(SORT(.init_array.*)))
|
||||||
KEEP (*(.init_array))
|
KEEP (*(.init_array))
|
||||||
PROVIDE_HIDDEN (__init_array_end = .);
|
PROVIDE (__init_array_end = .);
|
||||||
}
|
}
|
||||||
.fini_array :
|
.fini_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
PROVIDE (__fini_array_start = .);
|
||||||
KEEP (*(.fini_array))
|
KEEP (*(.fini_array))
|
||||||
KEEP (*(SORT(.fini_array.*)))
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
PROVIDE (__fini_array_end = .);
|
||||||
}
|
}
|
||||||
.ctors :
|
.ctors :
|
||||||
{
|
{
|
||||||
|
6
ppc64.ld
6
ppc64.ld
@ -81,14 +81,12 @@ SECTIONS
|
|||||||
.sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }
|
.sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }
|
||||||
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
|
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
|
||||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||||
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
|
|
||||||
.gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table))
|
|
||||||
*(.gcc_except_table.*) } /* Adjust the address for the data segment. We want to
|
*(.gcc_except_table.*) } /* Adjust the address for the data segment. We want to
|
||||||
adjust up to + the same address within the page on the next page up. */
|
adjust up to + the same address within the page on the next page up. */
|
||||||
. = ALIGN (0x10000) - ((0x10000 - .) & (0x10000 - 1)); . = DATA_SEGMENT_ALIGN
|
. = ALIGN (0x10000) - ((0x10000 - .) & (0x10000 - 1)); . = DATA_SEGMENT_ALIGN
|
||||||
(0x10000, 0x1000); /* Exception handling */
|
(0x10000, 0x1000); /* Exception handling */
|
||||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
.eh_frame : { KEEP (*(.eh_frame)) }
|
||||||
.gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table))
|
.gcc_except_table : { KEEP (*(.gcc_except_table))
|
||||||
*(.gcc_except_table.*) } /* Thread Local Storage sections */
|
*(.gcc_except_table.*) } /* Thread Local Storage sections */
|
||||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||||
|
12
sparc.ld
12
sparc.ld
@ -67,23 +67,23 @@ SECTIONS
|
|||||||
.tbss : { *(.tbss) }
|
.tbss : { *(.tbss) }
|
||||||
.preinit_array :
|
.preinit_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
PROVIDE (__preinit_array_start = .);
|
||||||
KEEP (*(.preinit_array))
|
KEEP (*(.preinit_array))
|
||||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
PROVIDE (__preinit_array_end = .);
|
||||||
}
|
}
|
||||||
.init_array :
|
.init_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__init_array_start = .);
|
PROVIDE (__init_array_start = .);
|
||||||
KEEP (*(SORT(.init_array.*)))
|
KEEP (*(SORT(.init_array.*)))
|
||||||
KEEP (*(.init_array))
|
KEEP (*(.init_array))
|
||||||
PROVIDE_HIDDEN (__init_array_end = .);
|
PROVIDE (__init_array_end = .);
|
||||||
}
|
}
|
||||||
.fini_array :
|
.fini_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
PROVIDE (__fini_array_start = .);
|
||||||
KEEP (*(.fini_array))
|
KEEP (*(.fini_array))
|
||||||
KEEP (*(SORT(.fini_array.*)))
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
PROVIDE (__fini_array_end = .);
|
||||||
}
|
}
|
||||||
.ctors :
|
.ctors :
|
||||||
{
|
{
|
||||||
|
14
x86_64.ld
14
x86_64.ld
@ -38,16 +38,16 @@ SECTIONS
|
|||||||
.rel.plt :
|
.rel.plt :
|
||||||
{
|
{
|
||||||
*(.rel.plt)
|
*(.rel.plt)
|
||||||
PROVIDE_HIDDEN (__rel_iplt_start = .);
|
PROVIDE (__rel_iplt_start = .);
|
||||||
*(.rel.iplt)
|
*(.rel.iplt)
|
||||||
PROVIDE_HIDDEN (__rel_iplt_end = .);
|
PROVIDE (__rel_iplt_end = .);
|
||||||
}
|
}
|
||||||
.rela.plt :
|
.rela.plt :
|
||||||
{
|
{
|
||||||
*(.rela.plt)
|
*(.rela.plt)
|
||||||
PROVIDE_HIDDEN (__rela_iplt_start = .);
|
PROVIDE (__rela_iplt_start = .);
|
||||||
*(.rela.iplt)
|
*(.rela.iplt)
|
||||||
PROVIDE_HIDDEN (__rela_iplt_end = .);
|
PROVIDE (__rela_iplt_end = .);
|
||||||
}
|
}
|
||||||
.init :
|
.init :
|
||||||
{
|
{
|
||||||
@ -70,8 +70,6 @@ SECTIONS
|
|||||||
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
|
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
|
||||||
.rodata1 : { *(.rodata1) }
|
.rodata1 : { *(.rodata1) }
|
||||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||||
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
|
|
||||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table) }
|
|
||||||
/* Adjust the address for the data segment. We want to adjust up to
|
/* Adjust the address for the data segment. We want to adjust up to
|
||||||
the same address within the page on the next page up. */
|
the same address within the page on the next page up. */
|
||||||
. = ALIGN (0x100000) - ((0x100000 - .) & (0x100000 - 1)); . = DATA_SEGMENT_ALIGN (0x100000, 0x1000);
|
. = ALIGN (0x100000) - ((0x100000 - .) & (0x100000 - 1)); . = DATA_SEGMENT_ALIGN (0x100000, 0x1000);
|
||||||
@ -97,8 +95,8 @@ SECTIONS
|
|||||||
.data1 : { *(.data1) }
|
.data1 : { *(.data1) }
|
||||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
.eh_frame : { KEEP (*(.eh_frame)) }
|
||||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table) }
|
.gcc_except_table : { *(.gcc_except_table) }
|
||||||
.dynamic : { *(.dynamic) }
|
.dynamic : { *(.dynamic) }
|
||||||
.ctors :
|
.ctors :
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user