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]

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


On Wed, 30 May 2018 at 11:48, Kalamatee <kalamatee@gmail.com> wrote:

> 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}
>
>

It would be nice if someone could respond. Currently binutils only supports
AROS for x86, however AROS also uses binutils for arm, ppc, m68k and x86_64
- and it would be nice to not have to rely on patches for those other
targets.


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