This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] AROS: update supported targets for the AROS operating system.


Patch updates binutils to support all AROS targets.

2018-05-30  Nick Andrews  <kalamatee@gmail.com>
 * bfd/config.bfd: Add the aarch64, arm, x86_64, powerpc and m68k AROS
targets.
* binutils/configure: Don't try to include <wchar.h> on AROS (doesn't
exist).
* binutils/sysdeps.h: Include <sys/stat.h>. * config.guess: Correctly
recognize the AROS operating system.
* intl/configure: Skip SIGFPE check for AROS.
* ld/configure.tgt: Add the aarch64, arm, x86_64, powerpc and m68k AROS
targets.
    * ld/emulparams/aarch64elf_aros.sh: New file.
    * ld/emulparams/aarch64elfb_aros.sh: New file.
    * ld/emulparams/armelf_aros.sh: New file.
    * ld/emulparams/armelfb_aros.sh: New file.
    * ld/Makefile.in: Add required AROS files, and suitable recipes.

--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -244,7 +244,7 @@
     targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
     want64=true
     ;;
-  aarch64-*-elf | aarch64-*-rtems*)
+  aarch64-*-elf | aarch64-*-aros | aarch64-*-rtems*)
     targ_defvec=aarch64_elf64_le_vec
     targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec
aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec"
     want64=true
@@ -444,7 +444,7 @@
     ;;
   arm-*-elf | arm*-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
   arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
-  arm*-*-eabi* | arm-*-rtems*)
+  arm*-*-eabi* | arm-*-aros | arm-*-rtems*)
     targ_defvec=arm_elf32_le_vec
     targ_selvecs=arm_elf32_be_vec
     ;;
@@ -659,7 +659,7 @@
     ;;
   i[3-7]86-*-aros*)
     targ_defvec=i386_elf32_vec
-    targ_selvecs=iamcu_elf32_vec
+    targ_selvecs="iamcu_elf32_vec x86_64_elf64_vec"
     ;;
   i[3-7]86-*-chorus*)
     targ_defvec=i386_elf32_vec
@@ -819,6 +819,11 @@
     targ_selvecs=i386_elf32_vec
     want64=true
     ;;
+  x86_64-*-aros*)
+    targ_defvec=x86_64_elf64_vec
+    targ_selvecs=i386_elf32_vec
+    want64=true
+    ;;
 #endif
   i[3-7]86-*-lynxos*)
     targ_defvec=i386_elf32_vec
@@ -982,7 +987,7 @@
     targ_selvecs="core_cisco_be_vec ieee_vec"
     targ_underscore=yes
     ;;
-  m68*-*-elf* | m68*-*-sysv4* | m68*-*-rtems* | m68*-*-uclinux*)
+  m68*-*-elf* | m68*-*-sysv4* | m68*-*-rtems* | m68*-*-uclinux* |
m68*-*-aros)
     targ_defvec=m68k_elf32_vec
     targ_selvecs="m68k_coff_vec ieee_vec"
     ;;
@@ -1367,6 +1372,11 @@
     targ_selvecs=rs6000_xcoff_vec
     want64=true
     ;;
+  powerpc64-*-aros*)
+    targ_defvec=powerpc_elf64_vec
+    targ_selvecs="powerpc_elf64_le_vec powerpc_elf32_vec
powerpc_elf32_le_vec"
+    want64=true
+    ;;
   powerpc64-*-freebsd*)
     targ_defvec=powerpc_elf64_fbsd_vec
     targ_selvecs="powerpc_elf64_vec powerpc_elf32_vec
powerpc_elf32_fbsd_vec powerpc_elf32_le_vec rs6000_xcoff_vec
rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
@@ -1385,6 +1395,11 @@
     want64=true
     ;;
 #endif
+  powerpc-*-aros*)
+    targ_defvec=powerpc_elf32_vec
+    targ_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec
powerpc_elf32_le_vec"
+    want64=true
+    ;;
   powerpc-*-*freebsd*)
     targ_defvec=powerpc_elf32_fbsd_vec
     targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_elf32_le_vec
powerpc_boot_vec"
--- a/binutils/configure
+++ b/binutils/configure
@@ -13269,7 +13269,9 @@
 $as_echo_n "checking for mbstate_t... " >&6; }
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#if !defined(__AROS__)
 #include <wchar.h>
+#endif
 int
 main ()
 {
--- a/binutils/sysdep.h
+++ b/binutils/sysdep.h
@@ -24,6 +24,7 @@
 #include "ansidecl.h"
 #include <stdio.h>
 #include <sys/types.h>
+#include <sys/stat.h>

 #include "bfdver.h"

--- a/config.guess
+++ b/config.guess
@@ -333,6 +333,9 @@
     *:[Mm]orph[Oo][Ss]:*:*)
  echo ${UNAME_MACHINE}-unknown-morphos
  exit ;;
+    *:AROS:*:*)
+ echo ${UNAME_MACHINE}-unknown-aros
+ exit ;;
     *:OS/390:*:*)
  echo i370-ibm-openedition
  exit ;;
--- a/intl/configure
+++ b/intl/configure
@@ -4606,6 +4606,9 @@

 int main ()
 {
+#if defined(__AROS__)
+  exit (1);
+#endif
   signal (SIGFPE, sigfpe_handler);
 /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
 #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -45,6 +45,10 @@
 # architecture variants should be kept together even if their names
 # break the alpha sorting.
 case "${targ}" in
+aarch64-*-aros*)  targ_emul=aarch64elf_aros
+   targ_extra_emuls=aarch64elfb_aros
+   targ_extra_libpath=$targ_extra_emuls
+   ;;
 aarch64_be-*-elf) targ_emul=aarch64elfb
    targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf"
;;
 aarch64-*-elf | aarch64-*-rtems*)
@@ -136,6 +140,10 @@
    targ_extra_emuls="armelfb armelf armelf_linux"
    targ_extra_libpath="armelf_linux"
    ;;
+arm*-*-aros*)  targ_emul=armelf_aros
+   targ_extra_emuls=armelfb_aros
+   targ_extra_libpath=$targ_extra_emuls
+   ;;
 arm*-*-linux-*eabi*) targ_emul=armelf_linux_eabi
    targ_extra_emuls=armelfb_linux_eabi
    targ_extra_libpath=$targ_extra_emuls
@@ -340,6 +348,9 @@
    targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
    tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
    ;;
+x86_64-*-aros*)  targ_emul=elf_x86_64
+   targ_extra_emuls=elf_i386
+   ;;
 i[3-7]86-*-kaos*) targ_emul=elf_i386 ;;
 i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* |
i[3-7]86-*-freebsd[12])
    targ_emul=i386bsd ;;
@@ -453,6 +464,7 @@
 m68k-hp-bsd*)  targ_emul=hp300bsd ;;
 m68*-motorola-sysv*) targ_emul=delta68 ;;
 m68*-*-aout)  targ_emul=m68kaout ;;
+m68*-*-aros)  targ_emul=m68kelf ;;
 m68*-*-coff)  targ_emul=m68kcoff ;;
 m68*-*-elf | m68*-*-rtems*)
    targ_emul=m68kelf ;;
@@ -700,6 +712,7 @@
 powerpc-*-beos*) targ_emul=aixppc ;;
 powerpc-*-windiss*) targ_emul=elf32ppcwindiss ;;
 powerpc-*-lynxos*) targ_emul=ppclynx ;;
+powerpc-*-aros*) targ_emul=elf32ppc ;;
 pru*-*-*)  targ_emul=pruelf ;;
 riscv32*-*-*)  targ_emul=elf32lriscv
    targ_extra_emuls="elf64lriscv"
--- a/ld/emulparams/aarch64elf_aros.sh
+++ b/ld/emulparams/aarch64elf_aros.sh
@@ -0,0 +1 @@
+. ${srcdir}/emulparams/aarch64elf.sh
--- a/ld/emulparams/aarch64elfb_aros.sh
+++ b/ld/emulparams/aarch64elfb_aros.sh
@@ -0,0 +1 @@
+. ${srcdir}/emulparams/aarch64elfb.sh
--- a/ld/emulparams/armelf_aros.sh
+++ b/ld/emulparams/armelf_aros.sh
@@ -0,0 +1 @@
+. ${srcdir}/emulparams/armelf_linux_eabi.sh
--- a/ld/emulparams/armelfb_aros.sh
+++ b/ld/emulparams/armelfb_aros.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/armelf_aros.sh
+OUTPUT_FORMAT="elf32-bigarm"
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -541,6 +541,7 @@
  earmaoutl.c \
  earmcoff.c \
  earmelf.c \
+ earmelf_aros.c \
  earmelf_fbsd.c \
  earmelf_fuchsia.c \
  earmelf_linux.c \
@@ -550,6 +551,7 @@
  earmelf_phoenix.c \
  earmelf_vxworks.c \
  earmelfb.c \
+ earmelfb_aros.c \
  earmelfb_fbsd.c \
  earmelfb_fuchsia.c \
  earmelfb_linux.c \
@@ -812,6 +814,8 @@
  eaarch64elf32.c \
  eaarch64elfb.c \
  eaarch64elf32b.c \
+ eaarch64elf_aros.c \
+ eaarch64elfb_aros.c \
  eaarch64cloudabi.c \
  eaarch64cloudabib.c \
  eaarch64fbsd.c \
@@ -1129,6 +1133,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32.Po@am__quote
@
 @AMDEP_TRUE@@am__include@ @am__quote@
./$(DEPDIR)/eaarch64elf32b.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elfb.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@
./$(DEPDIR)/eaarch64elf_aros.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@
./$(DEPDIR)/eaarch64elfb_aros.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsdb.Po@am__quote
@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux.Po@am__quote
@
@@ -1154,6 +1160,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmaoutl.Po@am__quote@
 @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_aros.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
@
@@ -1163,6 +1170,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@
./$(DEPDIR)/earmelf_phoenix.Po@am__quote@
 @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_aros.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@
@@ -2343,6 +2351,12 @@
   $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}

+earmelf_aros.c: $(srcdir)/emulparams/armelf_aros.sh \
+  $(srcdir)/emulparams/armelf_linux_eabi.sh \
+  $(srcdir)/emulparams/armelf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
 earmelf_nacl.c: $(srcdir)/emulparams/armelf_nacl.sh \
   $(srcdir)/emulparams/armelf_linux_eabi.sh \
   $(srcdir)/emulparams/armelf_linux.sh \
@@ -2389,6 +2403,13 @@
   $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}

+earmelfb_aros.c: $(srcdir)/emulparams/armelfb_aros.sh \
+  $(srcdir)/emulparams/armelf_aros.sh \
+  $(srcdir)/emulparams/armelf_linux_eabi.sh \
+  $(srcdir)/emulparams/armelf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
 earmelfb_nacl.c: $(srcdir)/emulparams/armelfb_nacl.sh \
   $(srcdir)/emulparams/armelf_nacl.sh \
   $(srcdir)/emulparams/armelf_linux_eabi.sh \
@@ -3249,6 +3270,14 @@
   $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}

+eaarch64elf_aros.c: $(srcdir)/emulparams/aarch64elf_aros.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64elfb_aros.c: $(srcdir)/emulparams/aarch64elfb_aros.sh
$(srcdir)/emulparams/aarch64elf_aros.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
 eaarch64linux.c: $(srcdir)/emulparams/aarch64linux.sh \
   $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]