Upgrading to binutils-2.22
* Added --with-ld=default * Added --with-lto * Fixed ld script for ARM * Options are prepared for future activation of gold. Change-Id: Id9618904055e18d1b37f5e9585f775c367ff356e
This commit is contained in:
parent
64f10ee644
commit
4af66e563d
29 changed files with 1170 additions and 4749 deletions
|
@ -315,6 +315,7 @@
|
|||
./usr/bin/ifconfig minix-sys
|
||||
./usr/bin/ifdef minix-sys
|
||||
./usr/bin/indent minix-sys
|
||||
./usr/bin/in.fingerd minix-sys obsolete
|
||||
./usr/bin/infocmp minix-sys
|
||||
./usr/bin/in.rshd minix-sys
|
||||
./usr/bin/install minix-sys
|
||||
|
|
10
external/gpl3/binutils/fetch.sh
vendored
10
external/gpl3/binutils/fetch.sh
vendored
|
@ -5,8 +5,8 @@ echo $0
|
|||
cd `dirname $0`
|
||||
|
||||
# Configure fetch method
|
||||
URL="http://www.minix3.org/distfiles-minix/binutils-2.21.1.tar.bz2"
|
||||
BACKUP_URL="http://ftp.gnu.org/gnu/binutils/binutils-2.21.1.tar.bz2"
|
||||
URL="http://www.minix3.org/distfiles-minix/binutils-2.22.tar.bz2"
|
||||
BACKUP_URL="http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.bz2"
|
||||
FETCH=wget
|
||||
which curl >/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
|
@ -16,15 +16,15 @@ fi
|
|||
# Fetch sources if not available
|
||||
if [ ! -d dist ];
|
||||
then
|
||||
if [ ! -f binutils-2.21.1.tar.bz2 ]; then
|
||||
if [ ! -f binutils-2.22.tar.bz2 ]; then
|
||||
$FETCH $URL
|
||||
if [ $? -ne 0 ]; then
|
||||
$FETCH $BACKUP_URL
|
||||
fi
|
||||
fi
|
||||
|
||||
tar -oxjf binutils-2.21.1.tar.bz2 && \
|
||||
mv binutils-2.21.1 dist && \
|
||||
tar -oxjf binutils-2.22.tar.bz2 && \
|
||||
mv binutils-2.22 dist && \
|
||||
cd dist && \
|
||||
cat ../patches/* | patch -p1
|
||||
fi
|
||||
|
|
|
@ -69,7 +69,6 @@ SECTIONS
|
|||
.iplt : { *(.iplt) }
|
||||
.text :
|
||||
{
|
||||
PROVIDE_HIDDEN (__eprol = .);
|
||||
*(.text.unlikely .text.*_unlikely)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
|
@ -94,13 +93,18 @@ SECTIONS
|
|||
PROVIDE_HIDDEN (__exidx_end = .);
|
||||
.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.*) }
|
||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table
|
||||
.gcc_except_table.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
|
|
|
@ -69,7 +69,6 @@ SECTIONS
|
|||
.iplt : { *(.iplt) }
|
||||
.text :
|
||||
{
|
||||
PROVIDE_HIDDEN (__eprol = .);
|
||||
*(.text.unlikely .text.*_unlikely)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
|
@ -94,13 +93,18 @@ SECTIONS
|
|||
PROVIDE_HIDDEN (__exidx_end = .);
|
||||
.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.*) }
|
||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table
|
||||
.gcc_except_table.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = .;
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
|
|
|
@ -72,7 +72,6 @@ SECTIONS
|
|||
.iplt : { *(.iplt) }
|
||||
.text :
|
||||
{
|
||||
PROVIDE_HIDDEN (__eprol = .);
|
||||
*(.text.unlikely .text.*_unlikely)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
|
@ -97,13 +96,18 @@ SECTIONS
|
|||
PROVIDE_HIDDEN (__exidx_end = .);
|
||||
.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.*) }
|
||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table
|
||||
.gcc_except_table.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
|
|
237
external/gpl3/binutils/ldscripts/elf_earm_minix.xd
vendored
Normal file
237
external/gpl3/binutils/ldscripts/elf_earm_minix.xd
vendored
Normal file
|
@ -0,0 +1,237 @@
|
|||
/* Script for ld -pie: link position independent executable */
|
||||
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
|
||||
"elf32-littlearm")
|
||||
OUTPUT_ARCH(arm)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
. = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS;
|
||||
.interp : { *(.interp) }
|
||||
.note.gnu.build-id : { *(.note.gnu.build-id) }
|
||||
.hash : { *(.hash) }
|
||||
.gnu.hash : { *(.gnu.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.gnu.version : { *(.gnu.version) }
|
||||
.gnu.version_d : { *(.gnu.version_d) }
|
||||
.gnu.version_r : { *(.gnu.version_r) }
|
||||
.rel.init : { *(.rel.init) }
|
||||
.rela.init : { *(.rela.init) }
|
||||
.rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
|
||||
.rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
|
||||
.rel.fini : { *(.rel.fini) }
|
||||
.rela.fini : { *(.rela.fini) }
|
||||
.rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) }
|
||||
.rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
|
||||
.rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
|
||||
.rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
|
||||
.rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
|
||||
.rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
|
||||
.rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
|
||||
.rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
|
||||
.rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
|
||||
.rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
|
||||
.rel.ctors : { *(.rel.ctors) }
|
||||
.rela.ctors : { *(.rela.ctors) }
|
||||
.rel.dtors : { *(.rel.dtors) }
|
||||
.rela.dtors : { *(.rela.dtors) }
|
||||
.rel.got : { *(.rel.got) }
|
||||
.rela.got : { *(.rela.got) }
|
||||
.rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) }
|
||||
.rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
|
||||
.rel.iplt :
|
||||
{
|
||||
PROVIDE_HIDDEN (__rel_iplt_start = .);
|
||||
*(.rel.iplt)
|
||||
PROVIDE_HIDDEN (__rel_iplt_end = .);
|
||||
}
|
||||
.rela.iplt :
|
||||
{
|
||||
PROVIDE_HIDDEN (__rela_iplt_start = .);
|
||||
*(.rela.iplt)
|
||||
PROVIDE_HIDDEN (__rela_iplt_end = .);
|
||||
}
|
||||
.rel.plt :
|
||||
{
|
||||
*(.rel.plt)
|
||||
}
|
||||
.rela.plt :
|
||||
{
|
||||
*(.rela.plt)
|
||||
}
|
||||
.init :
|
||||
{
|
||||
KEEP (*(.init))
|
||||
} =0
|
||||
.plt : { *(.plt) }
|
||||
.iplt : { *(.iplt) }
|
||||
.text :
|
||||
{
|
||||
*(.text.unlikely .text.*_unlikely)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
*(.text.hot .text.hot.*)
|
||||
*(.text .stub .text.* .gnu.linkonce.t.*)
|
||||
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||
*(.gnu.warning)
|
||||
*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
|
||||
} =0
|
||||
.fini :
|
||||
{
|
||||
KEEP (*(.fini))
|
||||
} =0
|
||||
PROVIDE (__etext = .);
|
||||
PROVIDE (_etext = .);
|
||||
PROVIDE (etext = .);
|
||||
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
|
||||
PROVIDE_HIDDEN (__exidx_start = .);
|
||||
.ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
|
||||
PROVIDE_HIDDEN (__exidx_end = .);
|
||||
.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.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
.preinit_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
||||
KEEP (*(.preinit_array))
|
||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
||||
}
|
||||
.init_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (__init_array_start = .);
|
||||
KEEP (*(SORT(.init_array.*)))
|
||||
KEEP (*(.init_array))
|
||||
PROVIDE_HIDDEN (__init_array_end = .);
|
||||
}
|
||||
.fini_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
||||
KEEP (*(SORT(.fini_array.*)))
|
||||
KEEP (*(.fini_array))
|
||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
||||
}
|
||||
.ctors :
|
||||
{
|
||||
/* gcc uses crtbegin.o to find the start of
|
||||
the constructors, so we make sure it is
|
||||
first. Because this is a wildcard, it
|
||||
doesn't matter if the user does not
|
||||
actually link against crtbegin.o; the
|
||||
linker won't look for a file to match a
|
||||
wildcard. The wildcard also means that it
|
||||
doesn't matter which directory crtbegin.o
|
||||
is in. */
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*crtbegin?.o(.ctors))
|
||||
/* We don't want to include the .ctor section from
|
||||
the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last */
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
}
|
||||
.dtors :
|
||||
{
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*crtbegin?.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
}
|
||||
.jcr : { KEEP (*(.jcr)) }
|
||||
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
|
||||
.dynamic : { *(.dynamic) }
|
||||
. = DATA_SEGMENT_RELRO_END (0, .);
|
||||
.got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
|
||||
.data :
|
||||
{
|
||||
PROVIDE (__data_start = .);
|
||||
*(.data .data.* .gnu.linkonce.d.*)
|
||||
SORT(CONSTRUCTORS)
|
||||
}
|
||||
.data1 : { *(.data1) }
|
||||
_edata = .; PROVIDE (edata = .);
|
||||
__bss_start = .;
|
||||
__bss_start__ = .;
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss)
|
||||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
*(COMMON)
|
||||
/* Align here to ensure that the .bss section occupies space up to
|
||||
_end. Align after .bss to ensure correct alignment even if the
|
||||
.bss section disappears because there are no input sections.
|
||||
FIXME: Why do we need it? When there is no .bss section, we don't
|
||||
pad the .data section. */
|
||||
. = ALIGN(. != 0 ? 32 / 8 : 1);
|
||||
}
|
||||
_bss_end__ = . ; __bss_end__ = . ;
|
||||
. = ALIGN(32 / 8);
|
||||
. = ALIGN(32 / 8);
|
||||
__end__ = . ;
|
||||
_end = .; PROVIDE (end = .);
|
||||
. = DATA_SEGMENT_END (.);
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
/* DWARF 3 */
|
||||
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||
.debug_ranges 0 : { *(.debug_ranges) }
|
||||
.stack 0x80000 :
|
||||
{
|
||||
_stack = .;
|
||||
*(.stack)
|
||||
}
|
||||
.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
|
||||
.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
|
||||
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
|
||||
}
|
240
external/gpl3/binutils/ldscripts/elf_earm_minix.xdc
vendored
Normal file
240
external/gpl3/binutils/ldscripts/elf_earm_minix.xdc
vendored
Normal file
|
@ -0,0 +1,240 @@
|
|||
/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */
|
||||
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
|
||||
"elf32-littlearm")
|
||||
OUTPUT_ARCH(arm)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
. = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS;
|
||||
.interp : { *(.interp) }
|
||||
.note.gnu.build-id : { *(.note.gnu.build-id) }
|
||||
.hash : { *(.hash) }
|
||||
.gnu.hash : { *(.gnu.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.gnu.version : { *(.gnu.version) }
|
||||
.gnu.version_d : { *(.gnu.version_d) }
|
||||
.gnu.version_r : { *(.gnu.version_r) }
|
||||
.rel.dyn :
|
||||
{
|
||||
*(.rel.init)
|
||||
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
|
||||
*(.rel.fini)
|
||||
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
|
||||
*(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
|
||||
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
|
||||
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
|
||||
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
|
||||
*(.rel.ctors)
|
||||
*(.rel.dtors)
|
||||
*(.rel.got)
|
||||
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
|
||||
PROVIDE_HIDDEN (__rel_iplt_start = .);
|
||||
*(.rel.iplt)
|
||||
PROVIDE_HIDDEN (__rel_iplt_end = .);
|
||||
PROVIDE_HIDDEN (__rela_iplt_start = .);
|
||||
PROVIDE_HIDDEN (__rela_iplt_end = .);
|
||||
}
|
||||
.rela.dyn :
|
||||
{
|
||||
*(.rela.init)
|
||||
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
|
||||
*(.rela.fini)
|
||||
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
|
||||
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
|
||||
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
|
||||
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
|
||||
*(.rela.ctors)
|
||||
*(.rela.dtors)
|
||||
*(.rela.got)
|
||||
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
|
||||
PROVIDE_HIDDEN (__rel_iplt_start = .);
|
||||
PROVIDE_HIDDEN (__rel_iplt_end = .);
|
||||
PROVIDE_HIDDEN (__rela_iplt_start = .);
|
||||
*(.rela.iplt)
|
||||
PROVIDE_HIDDEN (__rela_iplt_end = .);
|
||||
}
|
||||
.rel.plt :
|
||||
{
|
||||
*(.rel.plt)
|
||||
}
|
||||
.rela.plt :
|
||||
{
|
||||
*(.rela.plt)
|
||||
}
|
||||
.init :
|
||||
{
|
||||
KEEP (*(.init))
|
||||
} =0
|
||||
.plt : { *(.plt) }
|
||||
.iplt : { *(.iplt) }
|
||||
.text :
|
||||
{
|
||||
*(.text.unlikely .text.*_unlikely)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
*(.text.hot .text.hot.*)
|
||||
*(.text .stub .text.* .gnu.linkonce.t.*)
|
||||
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||
*(.gnu.warning)
|
||||
*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
|
||||
} =0
|
||||
.fini :
|
||||
{
|
||||
KEEP (*(.fini))
|
||||
} =0
|
||||
PROVIDE (__etext = .);
|
||||
PROVIDE (_etext = .);
|
||||
PROVIDE (etext = .);
|
||||
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
|
||||
PROVIDE_HIDDEN (__exidx_start = .);
|
||||
.ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
|
||||
PROVIDE_HIDDEN (__exidx_end = .);
|
||||
.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.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
.preinit_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
||||
KEEP (*(.preinit_array))
|
||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
||||
}
|
||||
.init_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (__init_array_start = .);
|
||||
KEEP (*(SORT(.init_array.*)))
|
||||
KEEP (*(.init_array))
|
||||
PROVIDE_HIDDEN (__init_array_end = .);
|
||||
}
|
||||
.fini_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
||||
KEEP (*(SORT(.fini_array.*)))
|
||||
KEEP (*(.fini_array))
|
||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
||||
}
|
||||
.ctors :
|
||||
{
|
||||
/* gcc uses crtbegin.o to find the start of
|
||||
the constructors, so we make sure it is
|
||||
first. Because this is a wildcard, it
|
||||
doesn't matter if the user does not
|
||||
actually link against crtbegin.o; the
|
||||
linker won't look for a file to match a
|
||||
wildcard. The wildcard also means that it
|
||||
doesn't matter which directory crtbegin.o
|
||||
is in. */
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*crtbegin?.o(.ctors))
|
||||
/* We don't want to include the .ctor section from
|
||||
the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last */
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
}
|
||||
.dtors :
|
||||
{
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*crtbegin?.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
}
|
||||
.jcr : { KEEP (*(.jcr)) }
|
||||
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
|
||||
.dynamic : { *(.dynamic) }
|
||||
. = DATA_SEGMENT_RELRO_END (0, .);
|
||||
.got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
|
||||
.data :
|
||||
{
|
||||
PROVIDE (__data_start = .);
|
||||
*(.data .data.* .gnu.linkonce.d.*)
|
||||
SORT(CONSTRUCTORS)
|
||||
}
|
||||
.data1 : { *(.data1) }
|
||||
_edata = .; PROVIDE (edata = .);
|
||||
__bss_start = .;
|
||||
__bss_start__ = .;
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss)
|
||||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
*(COMMON)
|
||||
/* Align here to ensure that the .bss section occupies space up to
|
||||
_end. Align after .bss to ensure correct alignment even if the
|
||||
.bss section disappears because there are no input sections.
|
||||
FIXME: Why do we need it? When there is no .bss section, we don't
|
||||
pad the .data section. */
|
||||
. = ALIGN(. != 0 ? 32 / 8 : 1);
|
||||
}
|
||||
_bss_end__ = . ; __bss_end__ = . ;
|
||||
. = ALIGN(32 / 8);
|
||||
. = ALIGN(32 / 8);
|
||||
__end__ = . ;
|
||||
_end = .; PROVIDE (end = .);
|
||||
. = DATA_SEGMENT_END (.);
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
/* DWARF 3 */
|
||||
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||
.debug_ranges 0 : { *(.debug_ranges) }
|
||||
.stack 0x80000 :
|
||||
{
|
||||
_stack = .;
|
||||
*(.stack)
|
||||
}
|
||||
.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
|
||||
.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
|
||||
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
|
||||
}
|
240
external/gpl3/binutils/ldscripts/elf_earm_minix.xdw
vendored
Normal file
240
external/gpl3/binutils/ldscripts/elf_earm_minix.xdw
vendored
Normal file
|
@ -0,0 +1,240 @@
|
|||
/* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */
|
||||
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
|
||||
"elf32-littlearm")
|
||||
OUTPUT_ARCH(arm)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
. = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS;
|
||||
.interp : { *(.interp) }
|
||||
.note.gnu.build-id : { *(.note.gnu.build-id) }
|
||||
.hash : { *(.hash) }
|
||||
.gnu.hash : { *(.gnu.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.gnu.version : { *(.gnu.version) }
|
||||
.gnu.version_d : { *(.gnu.version_d) }
|
||||
.gnu.version_r : { *(.gnu.version_r) }
|
||||
.rel.dyn :
|
||||
{
|
||||
*(.rel.init)
|
||||
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
|
||||
*(.rel.fini)
|
||||
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
|
||||
*(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
|
||||
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
|
||||
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
|
||||
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
|
||||
*(.rel.ctors)
|
||||
*(.rel.dtors)
|
||||
*(.rel.got)
|
||||
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
|
||||
PROVIDE_HIDDEN (__rel_iplt_start = .);
|
||||
*(.rel.iplt)
|
||||
PROVIDE_HIDDEN (__rel_iplt_end = .);
|
||||
PROVIDE_HIDDEN (__rela_iplt_start = .);
|
||||
PROVIDE_HIDDEN (__rela_iplt_end = .);
|
||||
}
|
||||
.rela.dyn :
|
||||
{
|
||||
*(.rela.init)
|
||||
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
|
||||
*(.rela.fini)
|
||||
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
|
||||
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
|
||||
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
|
||||
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
|
||||
*(.rela.ctors)
|
||||
*(.rela.dtors)
|
||||
*(.rela.got)
|
||||
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
|
||||
PROVIDE_HIDDEN (__rel_iplt_start = .);
|
||||
PROVIDE_HIDDEN (__rel_iplt_end = .);
|
||||
PROVIDE_HIDDEN (__rela_iplt_start = .);
|
||||
*(.rela.iplt)
|
||||
PROVIDE_HIDDEN (__rela_iplt_end = .);
|
||||
}
|
||||
.rel.plt :
|
||||
{
|
||||
*(.rel.plt)
|
||||
}
|
||||
.rela.plt :
|
||||
{
|
||||
*(.rela.plt)
|
||||
}
|
||||
.init :
|
||||
{
|
||||
KEEP (*(.init))
|
||||
} =0
|
||||
.plt : { *(.plt) }
|
||||
.iplt : { *(.iplt) }
|
||||
.text :
|
||||
{
|
||||
*(.text.unlikely .text.*_unlikely)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
*(.text.hot .text.hot.*)
|
||||
*(.text .stub .text.* .gnu.linkonce.t.*)
|
||||
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||
*(.gnu.warning)
|
||||
*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
|
||||
} =0
|
||||
.fini :
|
||||
{
|
||||
KEEP (*(.fini))
|
||||
} =0
|
||||
PROVIDE (__etext = .);
|
||||
PROVIDE (_etext = .);
|
||||
PROVIDE (etext = .);
|
||||
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
|
||||
PROVIDE_HIDDEN (__exidx_start = .);
|
||||
.ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
|
||||
PROVIDE_HIDDEN (__exidx_end = .);
|
||||
.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.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
.preinit_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
||||
KEEP (*(.preinit_array))
|
||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
||||
}
|
||||
.init_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (__init_array_start = .);
|
||||
KEEP (*(SORT(.init_array.*)))
|
||||
KEEP (*(.init_array))
|
||||
PROVIDE_HIDDEN (__init_array_end = .);
|
||||
}
|
||||
.fini_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
||||
KEEP (*(SORT(.fini_array.*)))
|
||||
KEEP (*(.fini_array))
|
||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
||||
}
|
||||
.ctors :
|
||||
{
|
||||
/* gcc uses crtbegin.o to find the start of
|
||||
the constructors, so we make sure it is
|
||||
first. Because this is a wildcard, it
|
||||
doesn't matter if the user does not
|
||||
actually link against crtbegin.o; the
|
||||
linker won't look for a file to match a
|
||||
wildcard. The wildcard also means that it
|
||||
doesn't matter which directory crtbegin.o
|
||||
is in. */
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*crtbegin?.o(.ctors))
|
||||
/* We don't want to include the .ctor section from
|
||||
the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last */
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
}
|
||||
.dtors :
|
||||
{
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*crtbegin?.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
}
|
||||
.jcr : { KEEP (*(.jcr)) }
|
||||
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
|
||||
.dynamic : { *(.dynamic) }
|
||||
.got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
|
||||
. = DATA_SEGMENT_RELRO_END (0, .);
|
||||
.data :
|
||||
{
|
||||
PROVIDE (__data_start = .);
|
||||
*(.data .data.* .gnu.linkonce.d.*)
|
||||
SORT(CONSTRUCTORS)
|
||||
}
|
||||
.data1 : { *(.data1) }
|
||||
_edata = .; PROVIDE (edata = .);
|
||||
__bss_start = .;
|
||||
__bss_start__ = .;
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss)
|
||||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
*(COMMON)
|
||||
/* Align here to ensure that the .bss section occupies space up to
|
||||
_end. Align after .bss to ensure correct alignment even if the
|
||||
.bss section disappears because there are no input sections.
|
||||
FIXME: Why do we need it? When there is no .bss section, we don't
|
||||
pad the .data section. */
|
||||
. = ALIGN(. != 0 ? 32 / 8 : 1);
|
||||
}
|
||||
_bss_end__ = . ; __bss_end__ = . ;
|
||||
. = ALIGN(32 / 8);
|
||||
. = ALIGN(32 / 8);
|
||||
__end__ = . ;
|
||||
_end = .; PROVIDE (end = .);
|
||||
. = DATA_SEGMENT_END (.);
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
/* DWARF 3 */
|
||||
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||
.debug_ranges 0 : { *(.debug_ranges) }
|
||||
.stack 0x80000 :
|
||||
{
|
||||
_stack = .;
|
||||
*(.stack)
|
||||
}
|
||||
.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
|
||||
.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
|
||||
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
|
||||
}
|
|
@ -69,7 +69,6 @@ SECTIONS
|
|||
.iplt : { *(.iplt) }
|
||||
.text :
|
||||
{
|
||||
PROVIDE_HIDDEN (__eprol = .);
|
||||
*(.text.unlikely .text.*_unlikely)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
|
@ -94,13 +93,18 @@ SECTIONS
|
|||
PROVIDE_HIDDEN (__exidx_end = .);
|
||||
.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.*) }
|
||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table
|
||||
.gcc_except_table.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
|
|
|
@ -80,12 +80,17 @@ SECTIONS
|
|||
.ARM.exidx 0 : { *(.ARM.exidx) }
|
||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||
.eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table
|
||||
.gcc_except_table.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
/* Exception handling */
|
||||
.eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata 0 : { *(.tdata) }
|
||||
.tbss 0 : { *(.tbss) }
|
||||
|
|
|
@ -64,7 +64,6 @@ SECTIONS
|
|||
.iplt : { *(.iplt) }
|
||||
.text :
|
||||
{
|
||||
PROVIDE_HIDDEN (__eprol = .);
|
||||
*(.text.unlikely .text.*_unlikely)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
|
@ -89,13 +88,18 @@ SECTIONS
|
|||
PROVIDE_HIDDEN (__exidx_end = .);
|
||||
.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.*) }
|
||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table
|
||||
.gcc_except_table.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
|
|
|
@ -63,7 +63,6 @@ SECTIONS
|
|||
.iplt : { *(.iplt) }
|
||||
.text :
|
||||
{
|
||||
PROVIDE_HIDDEN (__eprol = .);
|
||||
*(.text.unlikely .text.*_unlikely)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
|
@ -88,13 +87,18 @@ SECTIONS
|
|||
PROVIDE_HIDDEN (__exidx_end = .);
|
||||
.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.*) }
|
||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table
|
||||
.gcc_except_table.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
|
|
|
@ -63,7 +63,6 @@ SECTIONS
|
|||
.iplt : { *(.iplt) }
|
||||
.text :
|
||||
{
|
||||
PROVIDE_HIDDEN (__eprol = .);
|
||||
*(.text.unlikely .text.*_unlikely)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
|
@ -88,13 +87,18 @@ SECTIONS
|
|||
PROVIDE_HIDDEN (__exidx_end = .);
|
||||
.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.*) }
|
||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table
|
||||
.gcc_except_table.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
|
|
|
@ -80,12 +80,17 @@ SECTIONS
|
|||
.ARM.exidx 0 : { *(.ARM.exidx) }
|
||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||
.eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table
|
||||
.gcc_except_table.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
/* Exception handling */
|
||||
.eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata 0 : { *(.tdata) }
|
||||
.tbss 0 : { *(.tbss) }
|
||||
|
|
|
@ -72,7 +72,6 @@ SECTIONS
|
|||
.iplt : { *(.iplt) }
|
||||
.text :
|
||||
{
|
||||
PROVIDE_HIDDEN (__eprol = .);
|
||||
*(.text.unlikely .text.*_unlikely)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
|
@ -97,13 +96,18 @@ SECTIONS
|
|||
PROVIDE_HIDDEN (__exidx_end = .);
|
||||
.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.*) }
|
||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table
|
||||
.gcc_except_table.*) }
|
||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
|
||||
.exception_ranges*) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
|
||||
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386-minix", "elf32-i386-minix",
|
|||
"elf32-i386-minix")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386-minix", "elf32-i386-minix",
|
|||
"elf32-i386-minix")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386-minix", "elf32-i386-minix",
|
|||
"elf32-i386-minix")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386-minix", "elf32-i386-minix",
|
|||
"elf32-i386-minix")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386-minix", "elf32-i386-minix",
|
|||
"elf32-i386-minix")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386-minix", "elf32-i386-minix",
|
|||
"elf32-i386-minix")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386-minix", "elf32-i386-minix",
|
|||
"elf32-i386-minix")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386-minix", "elf32-i386-minix",
|
|||
"elf32-i386-minix")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386-minix", "elf32-i386-minix",
|
|||
"elf32-i386-minix")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386-minix", "elf32-i386-minix",
|
|||
"elf32-i386-minix")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386-minix", "elf32-i386-minix",
|
|||
"elf32-i386-minix")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
4891
external/gpl3/binutils/patches/0000-binutils_nbsd.patch
vendored
4891
external/gpl3/binutils/patches/0000-binutils_nbsd.patch
vendored
File diff suppressed because it is too large
Load diff
190
external/gpl3/binutils/patches/0001-minix.patch
vendored
190
external/gpl3/binutils/patches/0001-minix.patch
vendored
|
@ -1,6 +1,6 @@
|
|||
diff -r -x CVS -N -U 3 dist.orig/bfd/config.bfd dist/bfd/config.bfd
|
||||
--- dist.orig/bfd/config.bfd 2012-10-31 17:08:07.757323090 +0100
|
||||
+++ dist/bfd/config.bfd 2012-10-31 17:47:37.039900295 +0100
|
||||
diff -rNU3 dist.nbsd/bfd/config.bfd dist/bfd/config.bfd
|
||||
--- dist.nbsd/bfd/config.bfd 2013-04-08 23:50:35.000000000 +0200
|
||||
+++ dist/bfd/config.bfd 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -281,7 +281,7 @@
|
||||
;;
|
||||
arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
|
||||
|
@ -10,7 +10,7 @@ diff -r -x CVS -N -U 3 dist.orig/bfd/config.bfd dist/bfd/config.bfd
|
|||
targ_defvec=bfd_elf32_littlearm_vec
|
||||
targ_selvecs=bfd_elf32_bigarm_vec
|
||||
;;
|
||||
@@ -697,6 +697,9 @@
|
||||
@@ -663,6 +663,9 @@
|
||||
i[3-7]86-none-*)
|
||||
targ_defvec=i386coff_vec
|
||||
;;
|
||||
|
@ -20,32 +20,32 @@ diff -r -x CVS -N -U 3 dist.orig/bfd/config.bfd dist/bfd/config.bfd
|
|||
i[3-7]86-*-aout* | i[3-7]86*-*-vsta*)
|
||||
targ_defvec=i386aout_vec
|
||||
;;
|
||||
diff -r -x CVS -N -U 3 dist.orig/bfd/configure dist/bfd/configure
|
||||
--- dist.orig/bfd/configure 2012-10-31 17:08:07.763989894 +0100
|
||||
+++ dist/bfd/configure 2012-10-31 18:01:20.947045411 +0100
|
||||
@@ -15219,6 +15219,7 @@
|
||||
diff -rNU3 dist.nbsd/bfd/configure dist/bfd/configure
|
||||
--- dist.nbsd/bfd/configure 2013-04-08 23:52:18.000000000 +0200
|
||||
+++ dist/bfd/configure 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -15210,6 +15210,7 @@
|
||||
bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i386_sol2_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
+ bfd_elf32_i386_minix_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i386_dragonfly_vec) tb="$tb elf32-i386.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i386_nacl_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i386_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
|
||||
diff -r -x CVS -N -U 3 dist.orig/bfd/configure.in dist/bfd/configure.in
|
||||
--- dist.orig/bfd/configure.in 2012-10-31 17:08:07.743989476 +0100
|
||||
+++ dist/bfd/configure.in 2012-10-31 17:47:37.039900295 +0100
|
||||
@@ -710,6 +710,7 @@
|
||||
diff -rNU3 dist.nbsd/bfd/configure.in dist/bfd/configure.in
|
||||
--- dist.nbsd/bfd/configure.in 2013-04-08 23:50:41.000000000 +0200
|
||||
+++ dist/bfd/configure.in 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -709,6 +709,7 @@
|
||||
bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i386_sol2_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
+ bfd_elf32_i386_minix_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i386_nacl_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i386_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
|
||||
diff -r -x CVS -N -U 3 dist.orig/bfd/elf32-i386.c dist/bfd/elf32-i386.c
|
||||
--- dist.orig/bfd/elf32-i386.c 2012-10-31 17:08:07.743989476 +0100
|
||||
+++ dist/bfd/elf32-i386.c 2012-10-31 17:47:37.039900295 +0100
|
||||
@@ -4761,6 +4761,18 @@
|
||||
diff -rNU3 dist.nbsd/bfd/elf32-i386.c dist/bfd/elf32-i386.c
|
||||
--- dist.nbsd/bfd/elf32-i386.c 2013-04-09 00:27:33.000000000 +0200
|
||||
+++ dist/bfd/elf32-i386.c 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -4962,6 +4962,18 @@
|
||||
|
||||
#include "elf32-target.h"
|
||||
|
||||
|
@ -64,21 +64,21 @@ diff -r -x CVS -N -U 3 dist.orig/bfd/elf32-i386.c dist/bfd/elf32-i386.c
|
|||
/* FreeBSD support. */
|
||||
|
||||
#undef TARGET_LITTLE_SYM
|
||||
diff -r -x CVS -N -U 3 dist.orig/bfd/targets.c dist/bfd/targets.c
|
||||
--- dist.orig/bfd/targets.c 2012-10-31 17:08:07.767323296 +0100
|
||||
+++ dist/bfd/targets.c 2012-10-31 17:47:37.039900295 +0100
|
||||
@@ -605,6 +605,7 @@
|
||||
diff -rNU3 dist.nbsd/bfd/targets.c dist/bfd/targets.c
|
||||
--- dist.nbsd/bfd/targets.c 2013-04-08 23:50:47.000000000 +0200
|
||||
+++ dist/bfd/targets.c 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -617,6 +617,7 @@
|
||||
extern const bfd_target bfd_elf32_hppa_vec;
|
||||
extern const bfd_target bfd_elf32_i370_vec;
|
||||
extern const bfd_target bfd_elf32_i386_freebsd_vec;
|
||||
+extern const bfd_target bfd_elf32_i386_minix_vec;
|
||||
extern const bfd_target bfd_elf32_i386_nacl_vec;
|
||||
extern const bfd_target bfd_elf32_i386_sol2_vec;
|
||||
extern const bfd_target bfd_elf32_i386_vxworks_vec;
|
||||
extern const bfd_target bfd_elf32_i386_vec;
|
||||
diff -r -x CVS -N -U 3 dist.orig/config.guess dist/config.guess
|
||||
--- dist.orig/config.guess 2012-10-31 17:08:07.770656699 +0100
|
||||
+++ dist/config.guess 2012-10-31 17:47:37.039900295 +0100
|
||||
@@ -855,8 +855,8 @@
|
||||
diff -rNU3 dist.nbsd/config.guess dist/config.guess
|
||||
--- dist.nbsd/config.guess 2013-04-08 23:50:48.000000000 +0200
|
||||
+++ dist/config.guess 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -858,8 +858,8 @@
|
||||
# other systems with GNU libc and userland
|
||||
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
|
||||
exit ;;
|
||||
|
@ -89,9 +89,9 @@ diff -r -x CVS -N -U 3 dist.orig/config.guess dist/config.guess
|
|||
exit ;;
|
||||
alpha:Linux:*:*)
|
||||
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
||||
diff -r -x CVS -N -U 3 dist.orig/gas/config/tc-i386.h dist/gas/config/tc-i386.h
|
||||
--- dist.orig/gas/config/tc-i386.h 2012-10-31 17:08:07.493984261 +0100
|
||||
+++ dist/gas/config/tc-i386.h 2012-10-31 17:47:37.086567936 +0100
|
||||
diff -rNU3 dist.nbsd/gas/config/tc-i386.h dist/gas/config/tc-i386.h
|
||||
--- dist.nbsd/gas/config/tc-i386.h 2013-04-08 23:50:49.000000000 +0200
|
||||
+++ dist/gas/config/tc-i386.h 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -68,6 +68,10 @@
|
||||
#define ELF_TARGET_FORMAT64 "elf64-x86-64-sol2"
|
||||
#endif
|
||||
|
@ -103,9 +103,9 @@ diff -r -x CVS -N -U 3 dist.orig/gas/config/tc-i386.h dist/gas/config/tc-i386.h
|
|||
#ifndef ELF_TARGET_FORMAT
|
||||
#define ELF_TARGET_FORMAT "elf32-i386"
|
||||
#endif
|
||||
diff -r -x CVS -N -U 3 dist.orig/gas/config/te-minix.h dist/gas/config/te-minix.h
|
||||
--- dist.orig/gas/config/te-minix.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ dist/gas/config/te-minix.h 2012-10-31 17:47:37.086567936 +0100
|
||||
diff -rNU3 dist.nbsd/gas/config/te-minix.h dist/gas/config/te-minix.h
|
||||
--- dist.nbsd/gas/config/te-minix.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ dist/gas/config/te-minix.h 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -0,0 +1,9 @@
|
||||
+#define TE_MINIX 1
|
||||
+
|
||||
|
@ -116,9 +116,9 @@ diff -r -x CVS -N -U 3 dist.orig/gas/config/te-minix.h dist/gas/config/te-minix.
|
|||
+#define LOCAL_LABELS_FB 1
|
||||
+
|
||||
+#include "obj-format.h"
|
||||
diff -r -x CVS -N -U 3 dist.orig/gas/configure dist/gas/configure
|
||||
--- dist.orig/gas/configure 2012-10-31 17:08:07.507317870 +0100
|
||||
+++ dist/gas/configure 2012-10-31 17:47:37.089901339 +0100
|
||||
diff -rNU3 dist.nbsd/gas/configure dist/gas/configure
|
||||
--- dist.nbsd/gas/configure 2013-04-08 23:50:57.000000000 +0200
|
||||
+++ dist/gas/configure 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -6127,6 +6127,10 @@
|
||||
fi
|
||||
;;
|
||||
|
@ -130,10 +130,10 @@ diff -r -x CVS -N -U 3 dist.orig/gas/configure dist/gas/configure
|
|||
gnu*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
diff -r -x CVS -N -U 3 dist.orig/gas/configure.tgt dist/gas/configure.tgt
|
||||
--- dist.orig/gas/configure.tgt 2012-10-31 17:08:07.507317870 +0100
|
||||
+++ dist/gas/configure.tgt 2012-10-31 17:47:37.683247033 +0100
|
||||
@@ -428,6 +428,7 @@
|
||||
diff -rNU3 dist.nbsd/gas/configure.tgt dist/gas/configure.tgt
|
||||
--- dist.nbsd/gas/configure.tgt 2013-04-08 23:50:58.000000000 +0200
|
||||
+++ dist/gas/configure.tgt 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -426,6 +426,7 @@
|
||||
*-*-elf | *-*-sysv4*) fmt=elf ;;
|
||||
*-*-solaris*) fmt=elf em=solaris ;;
|
||||
*-*-aros*) fmt=elf em=linux ;;
|
||||
|
@ -141,58 +141,18 @@ diff -r -x CVS -N -U 3 dist.orig/gas/configure.tgt dist/gas/configure.tgt
|
|||
*-*-vxworks* | *-*-windiss) fmt=elf em=vxworks ;;
|
||||
*-*-netware) fmt=elf em=netware ;;
|
||||
esac
|
||||
diff -r -x CVS -N -U 3 dist.orig/ld/configure.tgt dist/ld/configure.tgt
|
||||
--- dist.orig/ld/configure.tgt 2012-10-31 17:08:07.663987808 +0100
|
||||
+++ dist/ld/configure.tgt 2012-10-31 17:47:37.869917589 +0100
|
||||
@@ -73,6 +73,8 @@
|
||||
armeb-*-elf) targ_emul=armelfb ;;
|
||||
arm-*-elf | arm*-*-eabi*)
|
||||
targ_emul=armelf ;;
|
||||
+arm*-*-minix*) targ_emul=armelf_minix
|
||||
+ targ_extra_emuls="armelf" ;;
|
||||
arm*-*-symbianelf*) targ_emul=armsymbian;;
|
||||
arm-*-kaos*) targ_emul=armelf ;;
|
||||
arm9e-*-elf) targ_emul=armelf ;;
|
||||
@@ -198,6 +200,8 @@
|
||||
i[3-7]86-*-bsd386) targ_emul=i386bsd ;;
|
||||
i[3-7]86-*-bsdi*) targ_emul=i386bsd ;;
|
||||
i[3-7]86-*-aout) targ_emul=i386aout ;;
|
||||
+i[3-7]86-*-minix) targ_emul=elf_i386_minix
|
||||
+ targ_extra_emuls="elf_i386" ;;
|
||||
i[3-7]86-*-linux*aout*) targ_emul=i386linux
|
||||
targ_extra_emuls=elf_i386
|
||||
tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` ;;
|
||||
diff -r -x CVS -N -U 3 dist.orig/ld/emulparams/armelf_minix.sh dist/ld/emulparams/armelf_minix.sh
|
||||
--- dist.orig/ld/emulparams/armelf_minix.sh 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ dist/ld/emulparams/armelf_minix.sh 2012-10-31 17:47:37.869917589 +0100
|
||||
@@ -0,0 +1,3 @@
|
||||
+. ${srcdir}/emulparams/armelf.sh
|
||||
+. ${srcdir}/emulparams/elf_minix.sh
|
||||
+OUTPUT_FORMAT="elf32-littlearm"
|
||||
diff -r -x CVS -N -U 3 dist.orig/ld/emulparams/elf_i386_minix.sh dist/ld/emulparams/elf_i386_minix.sh
|
||||
--- dist.orig/ld/emulparams/elf_i386_minix.sh 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ dist/ld/emulparams/elf_i386_minix.sh 2012-10-31 17:47:37.869917589 +0100
|
||||
@@ -0,0 +1,3 @@
|
||||
+. ${srcdir}/emulparams/elf_i386.sh
|
||||
+. ${srcdir}/emulparams/elf_minix.sh
|
||||
+OUTPUT_FORMAT="elf32-i386-minix"
|
||||
diff -r -x CVS -N -U 3 dist.orig/ld/emulparams/elf_minix.sh dist/ld/emulparams/elf_minix.sh
|
||||
--- dist.orig/ld/emulparams/elf_minix.sh 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ dist/ld/emulparams/elf_minix.sh 2012-10-31 17:47:37.869917589 +0100
|
||||
@@ -0,0 +1 @@
|
||||
+ELF_INTERPRETER_NAME=\"/libexec/ld-elf.so.1\"
|
||||
diff -r -x CVS -N -U 3 dist.orig/ld/Makefile.in dist/ld/Makefile.in
|
||||
--- dist.orig/ld/Makefile.in 2012-10-31 17:08:07.663987808 +0100
|
||||
+++ dist/ld/Makefile.in 2012-10-31 17:47:37.869917589 +0100
|
||||
@@ -448,6 +448,7 @@
|
||||
diff -rNU3 dist.nbsd/ld/Makefile.in dist/ld/Makefile.in
|
||||
--- dist.nbsd/ld/Makefile.in 2013-04-08 23:50:59.000000000 +0200
|
||||
+++ dist/ld/Makefile.in 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -449,6 +449,7 @@
|
||||
earmelf_fbsd.c \
|
||||
earmelf_linux.c \
|
||||
earmelf_linux_eabi.c \
|
||||
+ earmelf_minix.c \
|
||||
earmelf_nbsd.c \
|
||||
earmelf_nbsd_eabi.c \
|
||||
earmelf_vxworks.c \
|
||||
@@ -549,6 +550,7 @@
|
||||
earmelfb.c \
|
||||
@@ -566,6 +567,7 @@
|
||||
eelf_i386_chaos.c \
|
||||
eelf_i386_fbsd.c \
|
||||
eelf_i386_ldso.c \
|
||||
|
@ -200,7 +160,7 @@ diff -r -x CVS -N -U 3 dist.orig/ld/Makefile.in dist/ld/Makefile.in
|
|||
eelf_i386_sol2.c \
|
||||
eelf_i386_vxworks.c \
|
||||
eelf_s390.c \
|
||||
@@ -2120,6 +2122,10 @@
|
||||
@@ -2156,6 +2158,10 @@
|
||||
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} armelf_linux_eabi "$(tdir_armelf_linux_abi)"
|
||||
|
@ -211,7 +171,7 @@ diff -r -x CVS -N -U 3 dist.orig/ld/Makefile.in dist/ld/Makefile.in
|
|||
earmelf_nbsd.c: $(srcdir)/emulparams/armelf_nbsd.sh \
|
||||
$(srcdir)/emulparams/armelf.sh \
|
||||
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
|
||||
@@ -2538,6 +2544,10 @@
|
||||
@@ -2640,6 +2646,10 @@
|
||||
eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)"
|
||||
|
@ -222,3 +182,55 @@ diff -r -x CVS -N -U 3 dist.orig/ld/Makefile.in dist/ld/Makefile.in
|
|||
eelf_i386_sol2.c: $(srcdir)/emulparams/elf_i386_sol2.sh \
|
||||
$(srcdir)/emulparams/solaris2.sh \
|
||||
$(srcdir)/emultempl/solaris2.em \
|
||||
diff -rNU3 dist.nbsd/ld/configure.tgt dist/ld/configure.tgt
|
||||
--- dist.nbsd/ld/configure.tgt 2013-04-08 23:51:00.000000000 +0200
|
||||
+++ dist/ld/configure.tgt 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -68,6 +68,8 @@
|
||||
armeb-*-elf) targ_emul=armelfb ;;
|
||||
arm-*-elf | arm*-*-eabi*)
|
||||
targ_emul=armelf ;;
|
||||
+arm*-*-minix*) targ_emul=armelf_minix
|
||||
+ targ_extra_emuls="armelf" ;;
|
||||
arm*-*-symbianelf*) targ_emul=armsymbian;;
|
||||
arm-*-kaos*) targ_emul=armelf ;;
|
||||
arm9e-*-elf) targ_emul=armelf ;;
|
||||
@@ -180,6 +182,8 @@
|
||||
i[3-7]86-*-bsd386) targ_emul=i386bsd ;;
|
||||
i[3-7]86-*-bsdi*) targ_emul=i386bsd ;;
|
||||
i[3-7]86-*-aout) targ_emul=i386aout ;;
|
||||
+i[3-7]86-*-minix) targ_emul=elf_i386_minix
|
||||
+ targ_extra_emuls="elf_i386" ;;
|
||||
i[3-7]86-*-linux*aout*) targ_emul=i386linux
|
||||
targ_extra_emuls=elf_i386
|
||||
tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` ;;
|
||||
diff -rNU3 dist.nbsd/ld/emulparams/armelf_minix.sh dist/ld/emulparams/armelf_minix.sh
|
||||
--- dist.nbsd/ld/emulparams/armelf_minix.sh 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ dist/ld/emulparams/armelf_minix.sh 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -0,0 +1,15 @@
|
||||
+. ${srcdir}/emulparams/armelf.sh
|
||||
+. ${srcdir}/emulparams/elf_minix.sh
|
||||
+OUTPUT_FORMAT="elf32-littlearm"
|
||||
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
||||
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
|
||||
+
|
||||
+DATA_START_SYMBOLS='PROVIDE (__data_start = .);';
|
||||
+
|
||||
+# Dynamic libraries support
|
||||
+GENERATE_SHLIB_SCRIPT=yes
|
||||
+TARGET2_TYPE=got-rel
|
||||
+
|
||||
+GENERATE_PIE_SCRIPT=yes
|
||||
+
|
||||
+unset EMBEDDED
|
||||
diff -rNU3 dist.nbsd/ld/emulparams/elf_i386_minix.sh dist/ld/emulparams/elf_i386_minix.sh
|
||||
--- dist.nbsd/ld/emulparams/elf_i386_minix.sh 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ dist/ld/emulparams/elf_i386_minix.sh 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -0,0 +1,3 @@
|
||||
+. ${srcdir}/emulparams/elf_i386.sh
|
||||
+. ${srcdir}/emulparams/elf_minix.sh
|
||||
+OUTPUT_FORMAT="elf32-i386-minix"
|
||||
diff -rNU3 dist.nbsd/ld/emulparams/elf_minix.sh dist/ld/emulparams/elf_minix.sh
|
||||
--- dist.nbsd/ld/emulparams/elf_minix.sh 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ dist/ld/emulparams/elf_minix.sh 2013-04-09 00:31:05.000000000 +0200
|
||||
@@ -0,0 +1 @@
|
||||
+ELF_INTERPRETER_NAME=\"/libexec/ld-elf.so.1\"
|
||||
|
|
|
@ -25,6 +25,16 @@ ALL_TARGET+= all-gprof
|
|||
INSTALL_TARGET+=install-gprof
|
||||
.endif
|
||||
|
||||
.if defined(__MINIX)
|
||||
CONFIGURE_ARGS+= \
|
||||
--with-ld=default \
|
||||
--with-lto
|
||||
#LSC: FIXME Not yet gold, need to create
|
||||
# external/gpl3/binutils/usr.bin/gold directory & needed Makefiles
|
||||
# --with-gold=yes
|
||||
#ALL_TARGET+= all-gold
|
||||
#INSTALL_TARGET+= install-gold
|
||||
.endif # defined(__MINIX)
|
||||
.include "${.CURDIR}/../Makefile.gnuhost"
|
||||
|
||||
CCADDFLAGS= -I${DESTDIR}/usr/include -L${DESTDIR}/lib -L${DESTDIR}/usr/lib -B${DESTDIR}/usr/lib/
|
||||
|
|
Loading…
Reference in a new issue