This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] AROS: update supported targets for the AROS operating system.
- From: Kalamatee <kalamatee at gmail dot com>
- To: binutils at sourceware dot org
- Date: Tue, 12 Jun 2018 19:21:52 +0100
- Subject: Re: [PATCH] AROS: update supported targets for the AROS operating system.
- References: <CAJWNc-6a66fSp9mK3C9fmpRZk9ij6ty3PER+pGzxkgw_MvFY3Q@mail.gmail.com>
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.