Skip to content

Commit

Permalink
Add support for Fushia OS.
Browse files Browse the repository at this point in the history
        * 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.
  • Loading branch information
josh-conner authored and nickclifton committed Dec 2, 2016
1 parent 432ec08 commit d5451cd
Show file tree
Hide file tree
Showing 13 changed files with 99 additions and 4 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
@@ -1,3 +1,8 @@
2016-12-02 Josh Conner <joshconner@google.com>

* configure.ac: Add fuchsia to targets that use ELF.
* configure: Regenerated.

2016-11-07 Doug Evans <dje@google.com>

* config.sub: Sync with upstream version 2016-11-03.
Expand Down
4 changes: 4 additions & 0 deletions bfd/ChangeLog
@@ -1,3 +1,7 @@
2016-12-02 Josh Conner <joshconner@google.com>

* configure.tgt: Add support for fuchsia (OS).

2016-12-01 Yury Norov <ynorov@caviumnetworks.com>

PR ld/20868
Expand Down
11 changes: 10 additions & 1 deletion bfd/config.bfd
Expand Up @@ -260,6 +260,11 @@ case "${targ}" in
targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
want64=true
;;
aarch64-*-fuchsia*)
targ_defvec=aarch64_elf64_le_vec
targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
want64=true
;;
aarch64-*-cloudabi*)
targ_defvec=aarch64_elf64_le_cloudabi_vec
targ_selvecs=aarch64_elf64_be_cloudabi_vec
Expand Down Expand Up @@ -359,6 +364,10 @@ case "${targ}" in
targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
;;
arm-*-fuchsia*)
targ_defvec=arm_elf32_le_vec
targ_selvecs="arm_elf32_be_vec"
;;
arm-*-nacl*)
targ_defvec=arm_elf32_nacl_le_vec
targ_selvecs="arm_elf32_nacl_be_vec i386_elf32_nacl_vec"
Expand Down Expand Up @@ -766,7 +775,7 @@ case "${targ}" in
targ_selvecs="i386_elf32_vec iamcu_elf32_vec l1om_elf64_vec k1om_elf64_vec"
want64=true
;;
x86_64-*-elf* | x86_64-*-rtems*)
x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia)
targ_defvec=x86_64_elf64_vec
targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec l1om_elf64_vec k1om_elf64_vec"
want64=true
Expand Down
2 changes: 1 addition & 1 deletion configure
Expand Up @@ -2959,7 +2959,7 @@ case "${ENABLE_GOLD}" in
*-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
| *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
| *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
| *-*-solaris2* | *-*-nto* | *-*-nacl*)
| *-*-solaris2* | *-*-nto* | *-*-nacl* | *-*-fuchsia*)
case "${target}" in
*-*-linux*aout* | *-*-linux*oldld*)
;;
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Expand Up @@ -337,7 +337,7 @@ case "${ENABLE_GOLD}" in
*-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
| *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
| *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
| *-*-solaris2* | *-*-nto* | *-*-nacl*)
| *-*-solaris2* | *-*-nto* | *-*-nacl* | *-*-fuchsia*)
case "${target}" in
*-*-linux*aout* | *-*-linux*oldld*)
;;
Expand Down
4 changes: 4 additions & 0 deletions gas/ChangeLog
@@ -1,3 +1,7 @@
2016-12-02 Josh Conner <joshconner@google.com>

* configure.tgt: Add support for fuchsia (OS).

2016-12-01 Nick Clifton <nickc@redhat.com>

PR gas/20898
Expand Down
3 changes: 3 additions & 0 deletions gas/configure.tgt
Expand Up @@ -123,6 +123,7 @@ generic_target=${cpu_type}-$vendor-$os
# Note: This table is alpha-sorted, please try to keep it that way.
case ${generic_target} in
aarch64*-*-elf | aarch64*-*-rtems*) fmt=elf;;
aarch64*-*-fuchsia*) fmt=elf;;
aarch64*-*-linux*) fmt=elf em=linux ;;

alpha-*-*vms*) fmt=evax ;;
Expand Down Expand Up @@ -161,6 +162,7 @@ case ${generic_target} in
fmt=coff em=wince-pe ;;
arm-*-pe) fmt=coff em=pe ;;
arm-*-riscix*) fmt=aout em=riscix ;;
arm-*-fuchsia*) fmt=elf ;;

avr-*-*) fmt=elf bfd_gas=yes ;;

Expand Down Expand Up @@ -221,6 +223,7 @@ case ${generic_target} in
i386-*-coff) fmt=coff ;;
i386-*-elfiamcu) fmt=elf arch=iamcu ;;
i386-*-elf*) fmt=elf ;;
i386-*-fuchsia*) fmt=elf ;;
i386-*-kaos*) fmt=elf ;;
i386-*-bsd*) fmt=aout em=386bsd ;;
i386-*-nacl*) fmt=elf em=nacl
Expand Down
9 changes: 9 additions & 0 deletions 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
Expand Down
10 changes: 10 additions & 0 deletions ld/Makefile.am
Expand Up @@ -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 \
Expand All @@ -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 \
Expand Down Expand Up @@ -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}
Expand Down Expand Up @@ -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 \
Expand Down
12 changes: 12 additions & 0 deletions ld/Makefile.in
Expand Up @@ -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 \
Expand All @@ -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 \
Expand Down Expand Up @@ -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@
Expand All @@ -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@
Expand Down Expand Up @@ -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}
Expand Down Expand Up @@ -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 \
Expand Down
7 changes: 6 additions & 1 deletion ld/configure.tgt
Expand Up @@ -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" ;;
Expand Down Expand Up @@ -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"
;;
Expand Down Expand Up @@ -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"
Expand Down
32 changes: 32 additions & 0 deletions 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 = .); }"

2 changes: 2 additions & 0 deletions ld/emulparams/armelfb_fuchsia.sh
@@ -0,0 +1,2 @@
. ${srcdir}/emulparams/armelf_fuchsia.sh
OUTPUT_FORMAT="$BIG_OUTPUT_FORMAT"

0 comments on commit d5451cd

Please sign in to comment.