aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorJosh Conner <joshconner@google.com>2016-12-02 10:44:29 +0000
committerNick Clifton <nickc@redhat.com>2016-12-02 10:44:29 +0000
commitd5451cd45325d12b2cc3d10ffe67f09b0e26b967 (patch)
treeef28edcd6c7312ad15bced09bafff05085fd1ae2 /ld
parent432ec0814b01a93b88eddf13092ea6abef34652d (diff)
downloadgdb-d5451cd45325d12b2cc3d10ffe67f09b0e26b967.zip
gdb-d5451cd45325d12b2cc3d10ffe67f09b0e26b967.tar.gz
gdb-d5451cd45325d12b2cc3d10ffe67f09b0e26b967.tar.bz2
Add support for Fushia OS.
* configure.ac: Add fuchsia to targets that use ELF. * configure: Regenerated. bfd * configure.tgt: Add support for fuchsia (OS). gas * configure.tgt: Add support for fuchsia (OS). ld * Makefile.am: Add dependency information for earmelf_fuchsia.c. * Makefile.in: Regenerate. * configure.tgt: Add support for aarch64-*-fuchsia, arm*-*-fuchsia*, and x86_64-*-fuchsia* targets. * emulparams/armelf_fuchsia.sh: New file. * emulparams/armelfb_fuchsia.sh: New file.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/Makefile.am10
-rw-r--r--ld/Makefile.in12
-rw-r--r--ld/configure.tgt7
-rw-r--r--ld/emulparams/armelf_fuchsia.sh32
-rw-r--r--ld/emulparams/armelfb_fuchsia.sh2
6 files changed, 71 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 65c2854..c4bbe55 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+2016-12-02 Josh Conner <joshconner@google.com>
+
+ * Makefile.am: Add dependency information for earmelf_fuchsia.c.
+ * Makefile.in: Regenerate.
+ * configure.tgt: Add support for aarch64-*-fuchsia, arm*-*-fuchsia*, and
+ x86_64-*-fuchsia* targets.
+ * emulparams/armelf_fuchsia.sh: New file.
+ * emulparams/armelfb_fuchsia.sh: New file.
+
2016-12-01 Rudy Y <rudyy.id@gmail.com>
PR ld/20880
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 9b3de72..ac908bc 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -179,6 +179,7 @@ ALL_EMULATION_SOURCES = \
earmcoff.c \
earmelf.c \
earmelf_fbsd.c \
+ earmelf_fuchsia.c \
earmelf_linux.c \
earmelf_linux_eabi.c \
earmelf_nacl.c \
@@ -187,6 +188,7 @@ ALL_EMULATION_SOURCES = \
earmelf_vxworks.c \
earmelfb.c \
earmelfb_fbsd.c \
+ earmelfb_fuchsia.c \
earmelfb_linux.c \
earmelfb_linux_eabi.c \
earmelfb_nacl.c \
@@ -763,6 +765,10 @@ earmelf_fbsd.c: $(srcdir)/emulparams/armelf_fbsd.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+earmelf_fuchsia.c: $(srcdir)/emulparams/armelf_fuchsia.sh \
+ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
@@ -803,6 +809,10 @@ earmelfb_fbsd.c: $(srcdir)/emulparams/armelfb_fbsd.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+earmelf_fuchsia.c: $(srcdir)/emulparams/armelfb_fuchsia.sh \
+ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \
$(srcdir)/emulparams/armelf_linux.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
diff --git a/ld/Makefile.in b/ld/Makefile.in
index f87408e..46c0302 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -548,6 +548,7 @@ ALL_EMULATION_SOURCES = \
earmcoff.c \
earmelf.c \
earmelf_fbsd.c \
+ earmelf_fuchsia.c \
earmelf_linux.c \
earmelf_linux_eabi.c \
earmelf_nacl.c \
@@ -556,6 +557,7 @@ ALL_EMULATION_SOURCES = \
earmelf_vxworks.c \
earmelfb.c \
earmelfb_fbsd.c \
+ earmelfb_fuchsia.c \
earmelfb_linux.c \
earmelfb_linux_eabi.c \
earmelfb_nacl.c \
@@ -1187,6 +1189,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmcoff.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fbsd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fuchsia.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux_eabi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nacl.Po@am__quote@
@@ -1195,6 +1198,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_vxworks.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_fbsd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_fuchsia.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux_eabi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nacl.Po@am__quote@
@@ -2354,6 +2358,10 @@ earmelf_fbsd.c: $(srcdir)/emulparams/armelf_fbsd.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+earmelf_fuchsia.c: $(srcdir)/emulparams/armelf_fuchsia.sh \
+ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
@@ -2394,6 +2402,10 @@ earmelfb_fbsd.c: $(srcdir)/emulparams/armelfb_fbsd.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+earmelf_fuchsia.c: $(srcdir)/emulparams/armelfb_fuchsia.sh \
+ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \
$(srcdir)/emulparams/armelf_linux.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
diff --git a/ld/configure.tgt b/ld/configure.tgt
index c196e68..b9f4782 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -54,6 +54,8 @@ aarch64-*-cloudabi*) targ_emul=aarch64cloudabi
targ_extra_emuls=aarch64cloudabib ;;
aarch64-*-freebsd*) targ_emul=aarch64fbsd
targ_extra_emuls="aarch64fbsdb aarch64elf" ;;
+aarch64-*-fuchsia*) targ_emul=aarch64elf
+ targ_extra_emuls="aarch64elfb armelf armelfb" ;;
aarch64_be-*-linux*) targ_emul=aarch64linuxb
targ_extra_libpath="aarch64linux aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;;
@@ -150,6 +152,9 @@ arm*-*-uclinux*) targ_emul=armelf_linux
;;
arm-*-vxworks) targ_emul=armelf_vxworks ;;
arm*-*-conix*) targ_emul=armelf ;;
+arm*-*-fuchsia*) targ_emul=armelf_fuchsia
+ targ_extra_emuls="armelfb_fuchsia armelf armelfb"
+ ;;
avr-*-*) targ_emul=avr2
targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny"
;;
@@ -316,7 +321,7 @@ i[3-7]86-*-elfiamcu) targ_emul=elf_iamcu
targ_extra_emuls=elf_i386 ;;
i[3-7]86-*-elf*) targ_emul=elf_i386
targ_extra_emuls=elf_iamcu ;;
-x86_64-*-elf* | x86_64-*-rtems*)
+x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia*)
targ_emul=elf_x86_64
targ_extra_emuls="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
diff --git a/ld/emulparams/armelf_fuchsia.sh b/ld/emulparams/armelf_fuchsia.sh
new file mode 100644
index 0000000..8626b0e
--- /dev/null
+++ b/ld/emulparams/armelf_fuchsia.sh
@@ -0,0 +1,32 @@
+ARCH=arm
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-littlearm"
+BIG_OUTPUT_FORMAT="elf32-bigarm"
+LITTLE_OUTPUT_FORMAT="elf32-littlearm"
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
+TEMPLATE_NAME=elf32
+EXTRA_EM_FILE=armelf
+GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
+
+DATA_START_SYMBOLS='PROVIDE (__data_start = .);';
+OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)'
+OTHER_BSS_SYMBOLS='__bss_start__ = .;'
+OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;'
+OTHER_END_SYMBOLS='__end__ = . ;'
+OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
+
+TEXT_START_ADDR=0x00001000
+TARGET2_TYPE=got-rel
+
+# ARM does not support .s* sections.
+NO_SMALL_DATA=yes
+
+# Use the ARM ABI-compliant exception-handling sections.
+OTHER_READONLY_SECTIONS="
+ .ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) }
+ ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); }
+ .ARM.exidx ${RELOCATING-0} : { *(.ARM.exidx${RELOCATING+* .gnu.linkonce.armexidx.*}) }
+ ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }"
+
diff --git a/ld/emulparams/armelfb_fuchsia.sh b/ld/emulparams/armelfb_fuchsia.sh
new file mode 100644
index 0000000..7e6f34a
--- /dev/null
+++ b/ld/emulparams/armelfb_fuchsia.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/armelf_fuchsia.sh
+OUTPUT_FORMAT="$BIG_OUTPUT_FORMAT"