Remove arm-symbianelf

* configure.ac: Delete arm*-*-symbianelf* entry.
	* configure: Regenerate.
bfd/
	* config.bfd (arm*-*-symbianelf*): Move from obsolete to removed.
	* configure.ac: Delete symbian entries.
	* elf-bfd.h (enum elf_target_os): Delete is_symbian.
	* elf32-arm.c: Remove symbian support.  Formatting.
	* targets.c: Delete symbian entries.
	* configure: Regenerate.
binutils/
	* testsuite/lib/binutils-common.exp (supports_gnu_osabi): Remove
	symbianelf.
gas/
	* Makefile.am (TARG_ENV_HFILES): Remove config/te-symbian.h.
	* config/tc-arm.c (elf32_arm_target_format): Remove TE_SYMBIAN
	support.
	* config/te-symbian.h: Delete.
	* configure.tgt: Remove arm-*-symbianelf*.
	* testsuite/gas/arm/arch4t-eabi.d: Don't mention symbianelf in
	target selection.
	* testsuite/gas/arm/arch4t.d: Likewise.
	* testsuite/gas/arm/got_prel.d: Likewise.
	* testsuite/gas/arm/mapdir.d: Likewise.
	* testsuite/gas/arm/mapmisc.d: Likewise.
	* testsuite/gas/arm/mapsecs.d: Likewise.
	* testsuite/gas/arm/mapshort-eabi.d: Likewise.
	* testsuite/gas/arm/thumb-eabi.d: Likewise.
	* testsuite/gas/arm/thumb.d: Likewise.
	* testsuite/gas/arm/thumbrel.d: Likewise.
	* Makefile.in: Regenerate.
	* po/POTFILES.in: Regenerate.
ld/
	* Makefile.am (ALL_EMULATION_SOURCES): Remove earmsymbian.c.
	Don't include symbian dep file.
	* configure.tgt: Remove arm*-*-symbianelf* entry.
	* emulparams/armsymbian.sh: Delete.
	* ld.texi: Don't mention symbian.
	* scripttempl/armbpabi.sc: Delete.
	* testsuite/ld-arm/symbian-seg1.d: Delete.
	* testsuite/ld-arm/symbian-seg1.s: Delete.
	* testsuite/ld-arm/arm-elf.exp: Don't run symbian-seg1.
	* Makefile.in: Regenerate.
	* po/BLD-POTFILES.in: Regenerate.
This commit is contained in:
Alan Modra 2021-02-08 21:06:17 +10:30
parent 4a68fcd7f7
commit a57d17732e
40 changed files with 480 additions and 1266 deletions

View File

@ -1,3 +1,8 @@
2021-02-09 Alan Modra <amodra@gmail.com>
* configure.ac: Delete arm*-*-symbianelf* entry.
* configure: Regenerate.
2021-01-26 Nick Alcock <nick.alcock@oracle.com>
* Makefile.def: Add install-libctf dependency to install-ld.

View File

@ -1,3 +1,12 @@
2021-02-09 Alan Modra <amodra@gmail.com>
* config.bfd (arm*-*-symbianelf*): Move from obsolete to removed.
* configure.ac: Delete symbian entries.
* elf-bfd.h (enum elf_target_os): Delete is_symbian.
* elf32-arm.c: Remove symbian support. Formatting.
* targets.c: Delete symbian entries.
* configure: Regenerate.
2021-02-04 H.J. Lu <hongjiu.lu@intel.com>
PR ld/19609

View File

@ -53,7 +53,6 @@ case $targ in
echo "*** Use or1k-*-elf or or1k-*-linux as the target instead" >&2
exit 1
;;
arm*-*-symbianelf* | \
ia64*-*-* | \
null)
if test "x$enable_obsolete" != xyes; then
@ -85,6 +84,7 @@ case $targ in
arm-*-openbsd* | \
arm-*-oabi | \
arm-*-riscix* | \
arm*-*-symbianelf* | \
arm-epoc-pe* | \
c30-*-*aout* | tic30-*-*aout* | \
cr16c-*-* | \
@ -394,10 +394,6 @@ case "${targ}" in
targ_defvec=arm_elf32_vxworks_le_vec
targ_selvecs=arm_elf32_vxworks_be_vec
;;
arm*-*-symbianelf*)
targ_defvec=arm_elf32_symbian_le_vec
targ_selvecs=arm_elf32_symbian_be_vec
;;
arm9e-*-elf)
targ_defvec=arm_elf32_le_vec
targ_selvecs=arm_elf32_be_vec

2
bfd/configure vendored
View File

@ -14781,8 +14781,6 @@ do
arm_elf32_fdpic_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_nacl_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_nacl_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_symbian_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_symbian_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_vxworks_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_vxworks_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_pe_be_vec) tb="$tb pe-arm.lo peigen.lo $coff" ;;

View File

@ -466,8 +466,6 @@ do
arm_elf32_fdpic_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_nacl_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_nacl_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_symbian_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_symbian_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_vxworks_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_vxworks_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_pe_be_vec) tb="$tb pe-arm.lo peigen.lo $coff" ;;

View File

@ -543,7 +543,6 @@ struct bfd_link_needed_list
enum elf_target_os
{
is_normal,
is_symbian, /* Symbian OS. */
is_solaris, /* Solaris. */
is_vxworks, /* VxWorks. */
is_nacl /* Native Client. */

File diff suppressed because it is too large Load Diff

View File

@ -697,8 +697,6 @@ extern const bfd_target arm_elf32_fdpic_be_vec;
extern const bfd_target arm_elf32_fdpic_le_vec;
extern const bfd_target arm_elf32_nacl_be_vec;
extern const bfd_target arm_elf32_nacl_le_vec;
extern const bfd_target arm_elf32_symbian_be_vec;
extern const bfd_target arm_elf32_symbian_le_vec;
extern const bfd_target arm_elf32_vxworks_be_vec;
extern const bfd_target arm_elf32_vxworks_le_vec;
extern const bfd_target arm_mach_o_vec;
@ -1021,8 +1019,6 @@ static const bfd_target * const _bfd_target_vector[] =
&arm_elf32_le_vec,
&arm_elf32_fdpic_be_vec,
&arm_elf32_fdpic_le_vec,
&arm_elf32_symbian_be_vec,
&arm_elf32_symbian_le_vec,
&arm_elf32_vxworks_be_vec,
&arm_elf32_vxworks_le_vec,
&arm_mach_o_vec,

View File

@ -1,3 +1,8 @@
2021-02-09 Alan Modra <amodra@gmail.com>
* testsuite/lib/binutils-common.exp (supports_gnu_osabi): Remove
symbianelf.
2021-02-07 Alan Modra <amodra@gmail.com>
* unwind-ia64.c (unw_print_xyreg): Don't leave output buffer

View File

@ -213,7 +213,6 @@ proc supports_gnu_osabi {} {
|| [istarget *-*-linux*]
|| [istarget *-*-nacl*]
|| ( [istarget *-*-*bsd*] && ![istarget arm*-*-netbsd*] )
|| [istarget *-*-symbianelf]
|| [istarget *-*-lynxos]
|| ( [istarget *-*-nto*] && ![istarget arm*-*-*] )
|| [istarget *-*-irix*]

3
configure vendored
View File

@ -3442,9 +3442,6 @@ case "${target}" in
arm-wince-pe)
noconfigdirs="$noconfigdirs target-libffi"
;;
arm*-*-symbianelf*)
noconfigdirs="$noconfigdirs target-libffi"
;;
cris-*-* | crisv32-*-*)
case "${target}" in
*-*-linux*)

View File

@ -728,9 +728,6 @@ case "${target}" in
arm-wince-pe)
noconfigdirs="$noconfigdirs target-libffi"
;;
arm*-*-symbianelf*)
noconfigdirs="$noconfigdirs target-libffi"
;;
cris-*-* | crisv32-*-*)
case "${target}" in
*-*-linux*)

View File

@ -1,3 +1,24 @@
2021-02-09 Alan Modra <amodra@gmail.com>
* Makefile.am (TARG_ENV_HFILES): Remove config/te-symbian.h.
* config/tc-arm.c (elf32_arm_target_format): Remove TE_SYMBIAN
support.
* config/te-symbian.h: Delete.
* configure.tgt: Remove arm-*-symbianelf*.
* testsuite/gas/arm/arch4t-eabi.d: Don't mention symbianelf in
target selection.
* testsuite/gas/arm/arch4t.d: Likewise.
* testsuite/gas/arm/got_prel.d: Likewise.
* testsuite/gas/arm/mapdir.d: Likewise.
* testsuite/gas/arm/mapmisc.d: Likewise.
* testsuite/gas/arm/mapsecs.d: Likewise.
* testsuite/gas/arm/mapshort-eabi.d: Likewise.
* testsuite/gas/arm/thumb-eabi.d: Likewise.
* testsuite/gas/arm/thumb.d: Likewise.
* testsuite/gas/arm/thumbrel.d: Likewise.
* Makefile.in: Regenerate.
* po/POTFILES.in: Regenerate.
2021-02-09 Nick Clifton <nickc@redhat.com>
PR 27384

View File

@ -332,7 +332,6 @@ TARG_ENV_HFILES = \
config/te-pe.h \
config/te-solaris.h \
config/te-svr4.h \
config/te-symbian.h \
config/te-tmips.h \
config/te-vxworks.h \
config/te-wince-pe.h

View File

@ -723,7 +723,6 @@ TARG_ENV_HFILES = \
config/te-pe.h \
config/te-solaris.h \
config/te-svr4.h \
config/te-symbian.h \
config/te-tmips.h \
config/te-vxworks.h \
config/te-wince-pe.h

View File

@ -30495,11 +30495,7 @@ arm_fix_adjustable (fixS * fixP)
const char *
elf32_arm_target_format (void)
{
#ifdef TE_SYMBIAN
return (target_big_endian
? "elf32-bigarm-symbian"
: "elf32-littlearm-symbian");
#elif defined (TE_VXWORKS)
#if defined (TE_VXWORKS)
return (target_big_endian
? "elf32-bigarm-vxworks"
: "elf32-littlearm-vxworks");

View File

@ -1,22 +0,0 @@
/* Copyright (C) 2004-2021 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3,
or (at your option) any later version.
GAS is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GAS; see the file COPYING. If not, write to the Free
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
#define TE_SYMBIAN 1
#include "te-armeabi.h"

View File

@ -144,7 +144,6 @@ case ${generic_target} in
arm-*-phoenix*) fmt=elf ;;
arm-*-elf) fmt=elf ;;
arm-*-eabi* | arm-*-rtems* | arm-*-genode*) fmt=elf em=armeabi ;;
arm-*-symbianelf*) fmt=elf em=symbian ;;
arm-*-kaos*) fmt=elf ;;
arm-*-conix*) fmt=elf ;;
arm-*-freebsd[89].* | armeb-*-freebsd[89].*)

View File

@ -208,7 +208,6 @@ config/te-pc532mach.h
config/te-pe.h
config/te-solaris.h
config/te-svr4.h
config/te-symbian.h
config/te-tmips.h
config/te-vms.c
config/te-vxworks.h

View File

@ -2,7 +2,7 @@
# as: -march=armv4t
# objdump: -dr --prefix-addresses --show-raw-insn
# source: arch4t.s
# target: *-*-*eabi* *-*-symbianelf *-*-nacl*
# target: *-*-*eabi* *-*-nacl*
.*: +file format .*arm.*

View File

@ -2,7 +2,7 @@
# as: -march=armv4t
# objdump: -dr --prefix-addresses --show-raw-insn
# EABI targets have their own variant.
# notarget: *-*-*eabi* *-*-symbianelf *-*-nacl*
# notarget: *-*-*eabi* *-*-nacl*
.*: +file format .*arm.*

View File

@ -2,7 +2,7 @@
# source: got_prel.s
# as: -march=armv5te -meabi=5 --generate-missing-build-notes=no
# readelf: -x 4 -r
# target: *-*-*eabi* *-*-symbianelf *-*-linux-* *-*-elf *-*-nacl*
# target: *-*-*eabi* *-*-linux-* *-*-elf *-*-nacl*
Relocation section '.rel.text.foo' at offset .* contains 1 entry:
Offset Info Type Sym.Value Sym. Name

View File

@ -2,7 +2,7 @@
#objdump: --syms --special-syms -d
#name: ARM Mapping Symbols for .arm/.thumb
# This test is only valid on EABI based ports.
#target: *-*-*eabi* *-*-symbianelf *-*-linux-* *-*-elf *-*-nacl*
#target: *-*-*eabi* *-*-linux-* *-*-elf *-*-nacl*
#source: mapdir.s

View File

@ -2,7 +2,7 @@
#objdump: --syms --special-syms -d
#name: ARM Mapping Symbols for miscellaneous directives
# This test is only valid on EABI based ports.
#target: *-*-*eabi* *-*-symbianelf *-*-linux-* *-*-elf *-*-nacl*
#target: *-*-*eabi* *-*-linux-* *-*-elf *-*-nacl*
#source: mapmisc.s

View File

@ -2,7 +2,7 @@
#objdump: --syms --special-syms -d
#name: ARM Mapping Symbols with multiple sections
# This test is only valid on EABI based ports.
#target: *-*-*eabi* *-*-symbianelf *-*-linux-* *-*-elf *-*-nacl*
#target: *-*-*eabi* *-*-linux-* *-*-elf *-*-nacl*
#source: mapsecs.s

View File

@ -2,7 +2,7 @@
#as: --generate-missing-build-notes=no
#name: ARM Mapping Symbols for .short (EABI version)
# This test is only valid on EABI based ports.
#target: *-*-*eabi* *-*-symbianelf *-*-linux-* *-*-elf *-*-nacl*
#target: *-*-*eabi* *-*-linux-* *-*-elf *-*-nacl*
#source: mapshort.s
# Test the generation and use of ARM ELF Mapping Symbols

View File

@ -2,7 +2,7 @@
# as: -mcpu=arm7t
# objdump: -dr --prefix-addresses --show-raw-insn
# source: thumb.s
# target: *-*-*eabi* *-*-symbianelf *-*-nacl*
# target: *-*-*eabi* *-*-nacl*
.*: +file format .*arm.*

View File

@ -3,7 +3,7 @@
# objdump: -dr --prefix-addresses --show-raw-insn
# The arm-aout and arm-pe ports do not support Thumb branch relocations.
# EABI targets have their own variant.
# notarget: *-*-pe *-*-*eabi* *-*-symbianelf *-*-nacl*
# notarget: *-*-pe *-*-*eabi* *-*-nacl*
.*: +file format .*arm.*

View File

@ -1,7 +1,7 @@
#objdump: -sr
#as: --generate-missing-build-notes=no
# This test is only valid on EABI based ports.
#target: *-*-*eabi* *-*-symbianelf *-*-nacl*
#target: *-*-*eabi* *-*-nacl*
.*: file format.*

View File

@ -1,3 +1,17 @@
2021-02-09 Alan Modra <amodra@gmail.com>
* Makefile.am (ALL_EMULATION_SOURCES): Remove earmsymbian.c.
Don't include symbian dep file.
* configure.tgt: Remove arm*-*-symbianelf* entry.
* emulparams/armsymbian.sh: Delete.
* ld.texi: Don't mention symbian.
* scripttempl/armbpabi.sc: Delete.
* testsuite/ld-arm/symbian-seg1.d: Delete.
* testsuite/ld-arm/symbian-seg1.s: Delete.
* testsuite/ld-arm/arm-elf.exp: Don't run symbian-seg1.
* Makefile.in: Regenerate.
* po/BLD-POTFILES.in: Regenerate.
2021-02-07 H.J. Lu <hongjiu.lu@intel.com>
PR ld/27358

View File

@ -184,7 +184,6 @@ ALL_EMULATION_SOURCES = \
earmelfb_nbsd.c \
earmnto.c \
earmpe.c \
earmsymbian.c \
eavr1.c \
eavr2.c \
eavr25.c \
@ -675,7 +674,6 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nbsd.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmnto.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmpe.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmsymbian.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr1.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr2.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr25.Pc@am__quote@

View File

@ -674,7 +674,6 @@ ALL_EMULATION_SOURCES = \
earmelfb_nbsd.c \
earmnto.c \
earmpe.c \
earmsymbian.c \
eavr1.c \
eavr2.c \
eavr25.c \
@ -1279,7 +1278,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmnto.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmpe.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmsymbian.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr25.Po@am__quote@
@ -2334,7 +2332,6 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nbsd.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmnto.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmpe.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmsymbian.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr1.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr2.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr25.Pc@am__quote@

View File

@ -151,7 +151,6 @@ armeb-*-elf | armeb-*-eabi*)
arm-*-elf | arm*-*-eabi* | arm-*-rtems* | arm-*-genode*)
targ_emul=armelf
;;
arm*-*-symbianelf*) targ_emul=armsymbian;;
arm-*-kaos*) targ_emul=armelf
;;
arm9e-*-elf) targ_emul=armelf

View File

@ -1,25 +0,0 @@
source_sh ${srcdir}/emulparams/armelf.sh
SCRIPT_NAME="armbpabi"
GENERATE_COMBRELOC_SCRIPT=1
OUTPUT_FORMAT="elf32-littlearm-symbian"
BIG_OUTPUT_FORMAT="elf32-bigarm-symbian"
LITTLE_OUTPUT_FORMAT="$OUTPUT_FORMAT"
TARGET1_IS_REL=1
TARGET2_TYPE=abs
# On BPABI systems, program headers should not be mapped.
EMBEDDED=yes
# As for armelf.sh, but add the SymbianOS-specific
# .ARM.exidx$${Base,Limit} symbols.
OTHER_READONLY_SECTIONS="
.ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) }
.ARM.exidx ${RELOCATING-0} :
{
${RELOCATING+PROVIDE_HIDDEN (.ARM.exidx\$\$Base = .);}
${RELOCATING+PROVIDE_HIDDEN (__exidx_start = .);}
*(.ARM.exidx${RELOCATING+* .gnu.linkonce.armexidx.*})
${RELOCATING+PROVIDE_HIDDEN (__exidx_end = .);}
${RELOCATING+PROVIDE_HIDDEN (.ARM.exidx\$\$Limit = .);}
}"
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"

View File

@ -7316,7 +7316,7 @@ meanings, and target defaults are as follows:
@item rel
@samp{R_ARM_REL32} (arm*-*-elf, arm*-*-eabi)
@item abs
@samp{R_ARM_ABS32} (arm*-*-symbianelf)
@samp{R_ARM_ABS32}
@item got-rel
@samp{R_ARM_GOT_PREL} (arm*-*-linux, arm*-*-*bsd)
@end table
@ -7358,9 +7358,6 @@ situations. Currently it is used to perform calls via the PLT from Thumb
code using BLX rather than using BX and a mode-switching stub before
each PLT entry. This should lead to such calls executing slightly faster.
This option is enabled implicitly for SymbianOS, so there is no need to
specify it if you are using that target.
@cindex VFP11_DENORM_FIX
@kindex --vfp11-denorm-fix
The @samp{--vfp11-denorm-fix} switch enables a link-time workaround for a

View File

@ -42,7 +42,6 @@ earmelfb_nacl.c
earmelfb_nbsd.c
earmnto.c
earmpe.c
earmsymbian.c
eavr1.c
eavr2.c
eavr25.c

View File

@ -1,417 +0,0 @@
# This variant of elf.sc is used for ARM BPABI platforms, like Symbian
# OS, where a separate postlinker will operated on the generated
# executable or shared object. See elf.sc for configuration variables
# that apply; only BPABI-specific variables will be noted here.
#
# Copyright (C) 2014-2021 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.
test -z "$ENTRY" && ENTRY=_start
test -z "${BIG_OUTPUT_FORMAT}" && BIG_OUTPUT_FORMAT=${OUTPUT_FORMAT}
test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH}; else OUTPUT_ARCH=${ARCH}:${MACHINE}; fi
test -z "${ELFSIZE}" && ELFSIZE=32
test -z "${ALIGNMENT}" && ALIGNMENT="${ELFSIZE} / 8"
test "$LD_FLAG" = "N" && DATA_ADDR=.
test -n "$CREATE_SHLIB$CREATE_PIE" && test -n "$SHLIB_DATA_ADDR" && COMMONPAGESIZE=""
test -z "$CREATE_SHLIB$CREATE_PIE" && test -n "$DATA_ADDR" && COMMONPAGESIZE=""
test -n "$RELRO_NOW" && unset SEPARATE_GOTPLT
DATA_SEGMENT_ALIGN="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))"
DATA_SEGMENT_RELRO_END=""
DATA_SEGMENT_RELRO_GOTPLT_END=""
DATA_SEGMENT_END=""
if test -n "${COMMONPAGESIZE}"; then
DATA_SEGMENT_ALIGN="ALIGN (${SEGMENT_SIZE}) - ((${MAXPAGESIZE} - .) & (${MAXPAGESIZE} - 1)); . = DATA_SEGMENT_ALIGN (${MAXPAGESIZE}, ${COMMONPAGESIZE})"
DATA_SEGMENT_END=". = DATA_SEGMENT_END (.);"
if test -n "${SEPARATE_GOTPLT}"; then
DATA_SEGMENT_RELRO_GOTPLT_END=". = DATA_SEGMENT_RELRO_END (. + ${SEPARATE_GOTPLT});"
else
DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (.);"
fi
fi
INTERP=".interp 0 : { *(.interp) }"
PLT=".plt ${RELOCATING-0} : { *(.plt) }"
RODATA=".rodata ${RELOCATING-0} : { *(.rodata${RELOCATING+ .rodata.* .gnu.linkonce.r.*}) }"
DATARELRO=".data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro .data.rel.ro.*) }"
DISCARDED="/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }"
if test -z "${NO_SMALL_DATA}"; then
SBSS=".sbss ${RELOCATING-0} :
{
${RELOCATING+PROVIDE (__sbss_start = .);}
${RELOCATING+PROVIDE (___sbss_start = .);}
${RELOCATING+*(.dynsbss)}
*(.sbss${RELOCATING+ .sbss.* .gnu.linkonce.sb.*})
${RELOCATING+*(.scommon)}
${RELOCATING+PROVIDE (__sbss_end = .);}
${RELOCATING+PROVIDE (___sbss_end = .);}
}"
SBSS2=".sbss2 ${RELOCATING-0} : { *(.sbss2${RELOCATING+ .sbss2.* .gnu.linkonce.sb2.*}) }"
SDATA="/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata ${RELOCATING-0} :
{
${RELOCATING+${SDATA_START_SYMBOLS}}
*(.sdata${RELOCATING+ .sdata.* .gnu.linkonce.s.*})
}"
SDATA2=".sdata2 ${RELOCATING-0} : { *(.sdata2${RELOCATING+ .sdata2.* .gnu.linkonce.s2.*}) }"
REL_SDATA=".rel.sdata ${RELOCATING-0} : { *(.rel.sdata${RELOCATING+ .rel.sdata.* .rel.gnu.linkonce.s.*}) }
.rela.sdata ${RELOCATING-0} : { *(.rela.sdata${RELOCATING+ .rela.sdata.* .rela.gnu.linkonce.s.*}) }"
REL_SBSS=".rel.sbss ${RELOCATING-0} : { *(.rel.sbss${RELOCATING+ .rel.sbss.* .rel.gnu.linkonce.sb.*}) }
.rela.sbss ${RELOCATING-0} : { *(.rela.sbss${RELOCATING+ .rela.sbss.* .rela.gnu.linkonce.sb.*}) }"
REL_SDATA2=".rel.sdata2 ${RELOCATING-0} : { *(.rel.sdata2${RELOCATING+ .rel.sdata2.* .rel.gnu.linkonce.s2.*}) }
.rela.sdata2 ${RELOCATING-0} : { *(.rela.sdata2${RELOCATING+ .rela.sdata2.* .rela.gnu.linkonce.s2.*}) }"
REL_SBSS2=".rel.sbss2 ${RELOCATING-0} : { *(.rel.sbss2${RELOCATING+ .rel.sbss2.* .rel.gnu.linkonce.sb2.*}) }
.rela.sbss2 ${RELOCATING-0} : { *(.rela.sbss2${RELOCATING+ .rela.sbss2.* .rela.gnu.linkonce.sb2.*}) }"
else
NO_SMALL_DATA=" "
fi
test -n "$SEPARATE_GOTPLT" && SEPARATE_GOTPLT=" "
INIT_ARRAY=".init_array ${RELOCATING-0} :
{
/* SymbianOS uses this symbol. */
${RELOCATING+PROVIDE (SHT\$\$INIT_ARRAY\$\$Base = .);}
${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (__init_array_start = .);}}
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))
${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (__init_array_end = .);}}
/* SymbianOS uses this symbol. */
${RELOCATING+PROVIDE (SHT\$\$INIT_ARRAY\$\$Limit = .);}
}"
FINI_ARRAY=".fini_array ${RELOCATING-0} :
{
${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (__fini_array_start = .);}}
KEEP (*(SORT(.fini_array.*)))
KEEP (*(.fini_array))
${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (__fini_array_end = .);}}
}"
CTOR=".ctors ${CONSTRUCTING-0} :
{
${CONSTRUCTING+${CTOR_START}}
/* 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 $OTHER_EXCLUDE_FILES) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
${CONSTRUCTING+${CTOR_END}}
}"
DTOR=".dtors ${CONSTRUCTING-0} :
{
${CONSTRUCTING+${DTOR_START}}
KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
${CONSTRUCTING+${DTOR_END}}
}"
STACK=" .stack ${RELOCATING-0}${RELOCATING+${STACK_ADDR}} :
{
${RELOCATING+_stack = .;}
*(.stack)
}"
TEXT_START_ADDR="SEGMENT_START(\"text\", ${TEXT_START_ADDR})"
SHLIB_TEXT_START_ADDR="SEGMENT_START(\"text\", ${SHLIB_TEXT_START_ADDR:-0})"
DATA_ADDR="SEGMENT_START(\"data\", ${DATA_ADDR-${DATA_SEGMENT_ALIGN}})"
SHLIB_DATA_ADDR="SEGMENT_START(\"data\", ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}})"
# If this is for an embedded system, don't add SIZEOF_HEADERS.
if [ -z "$EMBEDDED" ]; then
test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR} + SIZEOF_HEADERS"
SHLIB_BASE_ADDRESS="${SHLIB_TEXT_START_ADDR} + SIZEOF_HEADERS"
else
test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR}"
SHLIB_BASE_ADDRESS="${SHLIB_TEXT_START_ADDR}"
fi
cat <<EOF
/* Copyright (C) 2014-2021 Free Software Foundation, Inc.
Copying and distribution of this script, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. */
OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
"${LITTLE_OUTPUT_FORMAT}")
OUTPUT_ARCH(${OUTPUT_ARCH})
EOF
test -n "${RELOCATING}" && cat <<EOF
ENTRY(${ENTRY})
${LIB_SEARCH_DIRS}
/* Do we need any of these for elf?
__DYNAMIC = 0; ${STACKZERO+${STACKZERO}} ${SHLIB_PATH+${SHLIB_PATH}} */
${EXECUTABLE_SYMBOLS}
${INPUT_FILES}
/* ARM's proprietary toolchain generate these symbols to match the start
and end of particular sections of the image. SymbianOS uses these
symbols. We provide them for compatibility with ARM's toolchains.
These symbols should be bound locally; each shared object may define
its own version of these symbols. */
VERSION
{
/* Give these a dummy version to work around linker lameness.
The name used shouldn't matter as these are all local symbols. */
__GNU {
local:
Image\$\$ER_RO\$\$Base;
Image\$\$ER_RO\$\$Limit;
SHT\$\$INIT_ARRAY\$\$Base;
SHT\$\$INIT_ARRAY\$\$Limit;
.ARM.exidx\$\$Base;
.ARM.exidx\$\$Limit;
};
}
EOF
cat <<EOF
SECTIONS
{
/* Read-only sections, merged into text segment: */
${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+PROVIDE (__executable_start = ${TEXT_START_ADDR});}}}
${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+ . = ${TEXT_BASE_ADDRESS};}}}
${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_BASE_ADDRESS};}}
${CREATE_PIE+${RELOCATING+. = ${SHLIB_BASE_ADDRESS};}}
/* Define Image\$\$ER_RO\$\$Base. */
${RELOCATING+PROVIDE (Image\$\$ER_RO\$\$Base = .);}
${INITIAL_READONLY_SECTIONS}
EOF
cat <<EOF
.init ${RELOCATING-0} :
{
${RELOCATING+${INIT_START}}
KEEP (*(SORT_NONE(.init)))
${RELOCATING+${INIT_END}}
} =${NOP-0}
.text ${RELOCATING-0} :
{
${RELOCATING+${TEXT_START_SYMBOLS}}
*(.text .stub${RELOCATING+ .text.* .gnu.linkonce.t.*})
/* .gnu.warning sections are handled specially by elf.em. */
*(.gnu.warning)
${RELOCATING+${OTHER_TEXT_SECTIONS}}
} =${NOP-0}
.fini ${RELOCATING-0} :
{
${RELOCATING+${FINI_START}}
KEEP (*(SORT_NONE(.fini)))
${RELOCATING+${FINI_END}}
} =${NOP-0}
/* The SymbianOS kernel requires that the PLT go at the end of the
text section. */
${DATA_PLT-${BSS_PLT-${PLT}}}
${RELOCATING+PROVIDE (__etext = .);}
${RELOCATING+PROVIDE (_etext = .);}
${RELOCATING+PROVIDE (etext = .);}
/* Define Image\$\$ER_RO\$\$Limit. */
${RELOCATING+PROVIDE (Image\$\$ER_RO\$\$Limit = .);}
${WRITABLE_RODATA-${RODATA}}
.rodata1 ${RELOCATING-0} : { *(.rodata1) }
${CREATE_SHLIB-${SDATA2}}
${CREATE_SHLIB-${SBSS2}}
/* On SymbianOS, put .init_array and friends in the read-only
segment; there is no runtime relocation applied to these
arrays. */
.preinit_array ${RELOCATING-0} :
{
${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (__preinit_array_start = .);}}
KEEP (*(.preinit_array))
${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (__preinit_array_end = .);}}
}
${RELOCATING+${INIT_ARRAY}}
${RELOCATING+${FINI_ARRAY}}
${OTHER_READONLY_SECTIONS}
.eh_frame_hdr ${RELOCATING-0} : { *(.eh_frame_hdr) }
.eh_frame ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.eh_frame)) }
.gcc_except_table ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.gcc_except_table${RELOCATING+ .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. */
${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+. = ${DATA_ADDR};}}}
${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_DATA_ADDR};}}
${CREATE_PIE+${RELOCATING+. = ${SHLIB_DATA_ADDR};}}
/* Exception handling */
.eh_frame ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.eh_frame)) }
.gcc_except_table ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.gcc_except_table${RELOCATING+ .gcc_except_table.*})) }
/* Thread Local Storage sections */
.tdata ${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }
.tbss ${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }
${RELOCATING+${CTOR}}
${RELOCATING+${DTOR}}
.jcr ${RELOCATING-0} : { KEEP (*(.jcr)) }
${RELOCATING+${DATARELRO}}
${OTHER_RELRO_SECTIONS}
${RELOCATING+${DATA_SEGMENT_RELRO_END}}
${DATA_PLT+${PLT_BEFORE_GOT-${PLT}}}
.data ${RELOCATING-0} :
{
${RELOCATING+${DATA_START_SYMBOLS}}
*(.data${RELOCATING+ .data.* .gnu.linkonce.d.*})
${CONSTRUCTING+SORT(CONSTRUCTORS)}
}
.data1 ${RELOCATING-0} : { *(.data1) }
${WRITABLE_RODATA+${RODATA}}
${OTHER_READWRITE_SECTIONS}
${DATA_PLT+${PLT_BEFORE_GOT+${PLT}}}
${CREATE_SHLIB+${SDATA2}}
${CREATE_SHLIB+${SBSS2}}
${SDATA}
${OTHER_SDATA_SECTIONS}
${RELOCATING+_edata = .;}
${RELOCATING+PROVIDE (edata = .);}
${RELOCATING+. = DEFINED(__bss_segment_start) ? __bss_segment_start : .;}
${RELOCATING+__bss_start = .;}
${RELOCATING+${OTHER_BSS_SYMBOLS}}
${SBSS}
${BSS_PLT+${PLT}}
.bss ${RELOCATING-0} :
{
${RELOCATING+*(.dynbss)}
*(.bss${RELOCATING+ .bss.* .gnu.linkonce.b.*})
${RELOCATING+*(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. */
. = ALIGN(${ALIGNMENT});}
}
${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
${RELOCATING+. = ALIGN(${ALIGNMENT});}
${RELOCATING+${OTHER_END_SYMBOLS}}
${RELOCATING+_end = .;}
${RELOCATING+PROVIDE (end = .);}
${RELOCATING+${DATA_SEGMENT_END}}
${STACK_ADDR+${STACK}}
/* These sections are not mapped under the BPABI. */
.dynamic 0 : { *(.dynamic) }
.hash 0 : { *(.hash) }
.dynsym 0 : { *(.dynsym) }
.dynstr 0 : { *(.dynstr) }
.gnu.version 0 : { *(.gnu.version) }
.gnu.version_d 0: { *(.gnu.version_d) }
.gnu.version_r 0: { *(.gnu.version_r) }
${CREATE_SHLIB-${INTERP}}
/* 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) }
EOF
. $srcdir/scripttempl/DWARF.sc
cat <<EOF
${OTHER_SECTIONS}
${RELOCATING+${OTHER_SYMBOLS}}
${RELOCATING+${DISCARDED}}
EOF
# These relocations sections are part of the read-only segment in SVR4
# executables, but are not mapped in BPABI executables.
if [ "x$COMBRELOC" = x ]; then
COMBRELOCCAT=cat
else
COMBRELOCCAT="cat > $COMBRELOC"
fi
eval $COMBRELOCCAT <<EOF
.rel.init 0 : { *(.rel.init) }
.rela.init 0 : { *(.rela.init) }
.rel.text 0 : { *(.rel.text${RELOCATING+ .rel.text.* .rel.gnu.linkonce.t.*}) }
.rela.text 0 : { *(.rela.text${RELOCATING+ .rela.text.* .rela.gnu.linkonce.t.*}) }
.rel.fini 0 : { *(.rel.fini) }
.rela.fini 0 : { *(.rela.fini) }
.rel.rodata 0 : { *(.rel.rodata${RELOCATING+ .rel.rodata.* .rel.gnu.linkonce.r.*}) }
.rela.rodata 0 : { *(.rela.rodata${RELOCATING+ .rela.rodata.* .rela.gnu.linkonce.r.*}) }
${OTHER_READONLY_RELOC_SECTIONS}
.rel.data.rel.ro 0 : { *(.rel.data.rel.ro${RELOCATING+ .rel.data.rel.ro.*}) }
.rela.data.rel.ro 0 : { *(.rela.data.rel.ro${RELOCATING+ .rela.data.rel.ro.*}) }
.rel.data 0 : { *(.rel.data${RELOCATING+ .rel.data.* .rel.gnu.linkonce.d.*}) }
.rela.data 0 : { *(.rela.data${RELOCATING+ .rela.data.* .rela.gnu.linkonce.d.*}) }
.rel.tdata 0 : { *(.rel.tdata${RELOCATING+ .rel.tdata.* .rel.gnu.linkonce.td.*}) }
.rela.tdata 0 : { *(.rela.tdata${RELOCATING+ .rela.tdata.* .rela.gnu.linkonce.td.*}) }
.rel.tbss 0 : { *(.rel.tbss${RELOCATING+ .rel.tbss.* .rel.gnu.linkonce.tb.*}) }
.rela.tbss 0 : { *(.rela.tbss${RELOCATING+ .rela.tbss.* .rela.gnu.linkonce.tb.*}) }
.rel.ctors 0 : { *(.rel.ctors) }
.rela.ctors 0 : { *(.rela.ctors) }
.rel.dtors 0 : { *(.rel.dtors) }
.rela.dtors 0 : { *(.rela.dtors) }
${REL_SDATA}
${REL_SBSS}
${REL_SDATA2}
${REL_SBSS2}
.rel.bss 0 : { *(.rel.bss${RELOCATING+ .rel.bss.* .rel.gnu.linkonce.b.*}) }
.rela.bss 0 : { *(.rela.bss${RELOCATING+ .rela.bss.* .rela.gnu.linkonce.b.*}) }
.rel.init_array 0 : { *(.rel.init_array) }
.rela.init_array 0 : { *(.rela.init_array) }
.rel.fini_array 0 : { *(.rel.fini_array) }
.rela.fini_array 0 : { *(.rela.fini_array) }
EOF
if [ -n "$COMBRELOC" ]; then
cat <<EOF
.rel.dyn 0 :
{
EOF
sed -e '/^[ ]*[{}][ ]*$/d;/:[ ]*$/d;/\.rela\./d;s/^.*: { *\(.*\)}$/ \1/' $COMBRELOC
cat <<EOF
}
.rela.dyn 0 :
{
EOF
sed -e '/^[ ]*[{}][ ]*$/d;/:[ ]*$/d;/\.rel\./d;s/^.*: { *\(.*\)}/ \1/' $COMBRELOC
cat <<EOF
}
EOF
fi
cat <<EOF
.rel.plt 0 : { *(.rel.plt) }
.rela.plt 0 : { *(.rela.plt) }
${OTHER_PLT_RELOC_SECTIONS}
.rel.other 0 : { *(.rel.*) }
.rela.other 0 : { *(.rela.*) }
.reli.other 0 : { *(.reli.*) }
}
EOF

View File

@ -53,10 +53,6 @@ if {[istarget "arm-*-vxworks"]} {
run_dump_test "emit-relocs1-vxworks"
}
if { [istarget "arm*-*-symbianelf*"] } {
run_dump_test "symbian-seg1"
}
# Exclude non-ARM-ELF targets.
if { ![is_elf_format] || ![istarget "arm*-*-*"] } {

View File

@ -1,8 +0,0 @@
#source: symbian-seg1.s
#ld: -Ttext 0x10000 -Tdata 0x400000
#objdump: -dR
#...
+10000: 00400000 .word 0x00400000
+10000: R_ARM_RELATIVE .data
+10004: 00010008 .word 0x00010008
+10004: R_ARM_RELATIVE .text

View File

@ -1,13 +0,0 @@
.text
.globl _start
_start:
.word datavar
.word rodatavar
.section ".rodata", "a"
rodatavar:
.word 0
.section ".data", "aw"
datavar:
.word 0