This is the mail archive of the binutils-cvs@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]

[binutils-gdb] Add support for Nuxi CloudABI on x86-64


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6036f4862103dea22dcc1ee02cf31802872997b3

commit 6036f4862103dea22dcc1ee02cf31802872997b3
Author: Ed Schouten <ed@nuxi.nl>
Date:   Tue Mar 31 11:33:45 2015 +0200

    Add support for Nuxi CloudABI on x86-64
    
    bfd/
    
    	* config.bfd (targ_defvec): Set to x86_64_elf64_cloudabi_vec
    	for x86_64-*-cloudabi*.
    	* configure.ac: Handle x86_64_elf64_cloudabi_vec.
    	* configure: Regenerated.
    	* elf64-x86-64.c (TARGET_LITTLE_SYM): Support x86_64-*-cloudabi*.
    	(TARGET_LITTLE_NAME): Likewise.
    	(ELF_OSABI): Likewise.
    	(elf64_bed): Likewise.
    	* targets.c (x86_64_elf64_cloudabi_vec): New.
    	(_bfd_target_vector): Add x86_64_elf64_cloudabi_vec.
    
    gas/
    
    	* configure.tgt (fmt): Set to elf for *-*-cloudabi*.
    
    ld/
    
    	* Makefile.am (ALL_64_EMULATION_SOURCES): Add
    	eelf_x86_64_cloudabi.c.
    	(eelf_x86_64_cloudabi.c): New.
    	* configure.tgt (targ_emul): Set to elf_x86_64_cloudabi for
    	x86_64-*-cloudabi*.
    	* Makefile.in: Regenerated.
    	* emulparams/elf_x86_64_cloudabi.sh: New file.

Diff:
---
 bfd/ChangeLog                        | 13 +++++++++++++
 bfd/config.bfd                       |  4 ++++
 bfd/configure                        |  1 +
 bfd/configure.ac                     |  1 +
 bfd/elf64-x86-64.c                   | 15 +++++++++++++++
 bfd/targets.c                        |  2 ++
 gas/ChangeLog                        |  4 ++++
 gas/configure.tgt                    |  1 +
 ld/ChangeLog                         | 10 ++++++++++
 ld/Makefile.am                       |  5 +++++
 ld/Makefile.in                       |  6 ++++++
 ld/configure.tgt                     |  1 +
 ld/emulparams/elf_x86_64_cloudabi.sh |  2 ++
 13 files changed, 65 insertions(+)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 52ee750..10ea6fc 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,16 @@
+2015-03-31  Ed Schouten  <ed@nuxi.nl>
+
+	* config.bfd (targ_defvec): Set to x86_64_elf64_cloudabi_vec
+	for x86_64-*-cloudabi*.
+	* configure.ac: Handle x86_64_elf64_cloudabi_vec.
+	* configure: Regenerated.
+	* elf64-x86-64.c (TARGET_LITTLE_SYM): Support x86_64-*-cloudabi*.
+	(TARGET_LITTLE_NAME): Likewise.
+	(ELF_OSABI): Likewise.
+	(elf64_bed): Likewise.
+	* targets.c (x86_64_elf64_cloudabi_vec): New.
+	(_bfd_target_vector): Add x86_64_elf64_cloudabi_vec.
+
 2015-03-31  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* configure.ac: Revert the AM_ZLIB change.
diff --git a/bfd/config.bfd b/bfd/config.bfd
index b79c711..4799da8 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -645,6 +645,10 @@ case "${targ}" in
     targ_archs="$targ_archs bfd_arm_arch"
     ;;
 #ifdef BFD64
+  x86_64-*-cloudabi*)
+    targ_defvec=x86_64_elf64_cloudabi_vec
+    want64=true
+    ;;
   x86_64-*-darwin*)
     targ_defvec=x86_64_mach_o_vec
     targ_selvecs="i386_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
diff --git a/bfd/configure b/bfd/configure
index 2231e78..777d74a 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -15540,6 +15540,7 @@ do
     x86_64_elf32_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
     x86_64_elf32_nacl_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
     x86_64_elf64_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf64_cloudabi_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     x86_64_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     x86_64_elf64_nacl_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     x86_64_elf64_sol2_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
diff --git a/bfd/configure.ac b/bfd/configure.ac
index a1b2035..8ac36de 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
@@ -1008,6 +1008,7 @@ do
     x86_64_elf32_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
     x86_64_elf32_nacl_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
     x86_64_elf64_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf64_cloudabi_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     x86_64_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     x86_64_elf64_nacl_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     x86_64_elf64_sol2_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 74d1d06..ab72306 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -5927,6 +5927,21 @@ static const struct bfd_elf_special_section
 
 #include "elf64-target.h"
 
+/* CloudABI support.  */
+
+#undef  TARGET_LITTLE_SYM
+#define TARGET_LITTLE_SYM		    x86_64_elf64_cloudabi_vec
+#undef  TARGET_LITTLE_NAME
+#define TARGET_LITTLE_NAME		    "elf64-x86-64-cloudabi"
+
+#undef	ELF_OSABI
+#define	ELF_OSABI			    ELFOSABI_CLOUDABI
+
+#undef  elf64_bed
+#define elf64_bed elf64_x86_64_cloudabi_bed
+
+#include "elf64-target.h"
+
 /* FreeBSD support.  */
 
 #undef  TARGET_LITTLE_SYM
diff --git a/bfd/targets.c b/bfd/targets.c
index 9b5458e..2319d23 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -885,6 +885,7 @@ extern const bfd_target x86_64_coff_vec;
 extern const bfd_target x86_64_elf32_vec;
 extern const bfd_target x86_64_elf32_nacl_vec;
 extern const bfd_target x86_64_elf64_vec;
+extern const bfd_target x86_64_elf64_cloudabi_vec;
 extern const bfd_target x86_64_elf64_fbsd_vec;
 extern const bfd_target x86_64_elf64_nacl_vec;
 extern const bfd_target x86_64_elf64_sol2_vec;
@@ -1402,6 +1403,7 @@ static const bfd_target * const _bfd_target_vector[] =
 	&x86_64_elf32_vec,
 	&x86_64_elf32_nacl_vec,
 	&x86_64_elf64_vec,
+	&x86_64_elf64_cloudabi_vec,
 	&x86_64_elf64_fbsd_vec,
 	&x86_64_elf64_nacl_vec,
 	&x86_64_elf64_sol2_vec,
diff --git a/gas/ChangeLog b/gas/ChangeLog
index e5b1cd5..7052c62 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-31  Ed Schouten  <ed@nuxi.nl>
+
+	* configure.tgt (fmt): Set to elf for *-*-cloudabi*.
+
 2015-03-31  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* configure.ac: Revert the AM_ZLIB change.
diff --git a/gas/configure.tgt b/gas/configure.tgt
index bfff2d7..7969970 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -470,6 +470,7 @@ case ${generic_target} in
   z8k-*-coff | z8k-*-sim)		fmt=coff ;;
 
   *-*-aout | *-*-scout)			fmt=aout ;;
+  *-*-cloudabi*)			fmt=elf ;;
   *-*-dragonfly*)			fmt=elf em=dragonfly ;;
   *-*-freebsd* | *-*-kfreebsd*-gnu)	fmt=elf em=freebsd ;;
   *-*-bsd*)				fmt=aout em=sun3 ;;
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 7b28014..5d120f1 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,13 @@
+2015-03-31  Ed Schouten  <ed@nuxi.nl>
+
+	* Makefile.am (ALL_64_EMULATION_SOURCES): Add
+	eelf_x86_64_cloudabi.c.
+	(eelf_x86_64_cloudabi.c): New.
+	* configure.tgt (targ_emul): Set to elf_x86_64_cloudabi for
+	x86_64-*-cloudabi*.
+	* Makefile.in: Regenerated.
+	* emulparams/elf_x86_64_cloudabi.sh: New file.
+
 2015-03-31  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* configure.ac (AM_ZLIB): Removed.
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 22b0419..474fc07 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -483,6 +483,7 @@ ALL_64_EMULATION_SOURCES = \
 	eelf_k1om.c \
 	eelf_k1om_fbsd.c \
 	eelf_x86_64.c \
+	eelf_x86_64_cloudabi.c \
 	eelf_x86_64_fbsd.c \
 	eelf_x86_64_nacl.c \
 	eelf_x86_64_sol2.c \
@@ -1938,6 +1939,10 @@ eelf_k1om_fbsd.c: $(srcdir)/emulparams/elf_k1om_fbsd.sh \
 eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \
   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
+eelf_x86_64_cloudabi.c: $(srcdir)/emulparams/elf_x86_64_cloudabi.sh \
+  $(srcdir)/emulparams/elf_x86_64.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
 eelf_x86_64_fbsd.c: $(srcdir)/emulparams/elf_x86_64_fbsd.sh \
   $(srcdir)/emulparams/elf_x86_64.sh \
   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 97fc3fa..9c969ee 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -808,6 +808,7 @@ ALL_64_EMULATION_SOURCES = \
 	eelf_k1om.c \
 	eelf_k1om_fbsd.c \
 	eelf_x86_64.c \
+	eelf_x86_64_cloudabi.c \
 	eelf_x86_64_fbsd.c \
 	eelf_x86_64_nacl.c \
 	eelf_x86_64_sol2.c \
@@ -1269,6 +1270,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_l1om_fbsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_s390.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_cloudabi.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fbsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_nacl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_sol2.Po@am__quote@
@@ -3429,6 +3431,10 @@ eelf_k1om_fbsd.c: $(srcdir)/emulparams/elf_k1om_fbsd.sh \
 eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \
   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
+eelf_x86_64_cloudabi.c: $(srcdir)/emulparams/elf_x86_64_cloudabi.sh \
+  $(srcdir)/emulparams/elf_x86_64.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
 eelf_x86_64_fbsd.c: $(srcdir)/emulparams/elf_x86_64_fbsd.sh \
   $(srcdir)/emulparams/elf_x86_64.sh \
   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
diff --git a/ld/configure.tgt b/ld/configure.tgt
index a46fbca..4b967fe 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -228,6 +228,7 @@ i[3-7]86-*-rtems*)	targ_emul=elf_i386 ;;
 i[3-7]86-*-aros*)	targ_emul=elf_i386 ;;
 i[3-7]86-*-rdos*)	targ_emul=elf_i386 ;;
 x86_64-*-rdos*)		targ_emul=elf64rdos ;;
+x86_64-*-cloudabi*)	targ_emul=elf_x86_64_cloudabi ;;
 i[3-7]86-*-bsd)		targ_emul=i386bsd ;;
 i[3-7]86-*-bsd386)	targ_emul=i386bsd ;;
 i[3-7]86-*-bsdi*)	targ_emul=i386bsd ;;
diff --git a/ld/emulparams/elf_x86_64_cloudabi.sh b/ld/emulparams/elf_x86_64_cloudabi.sh
new file mode 100644
index 0000000..4d5f745
--- /dev/null
+++ b/ld/emulparams/elf_x86_64_cloudabi.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/elf_x86_64.sh
+OUTPUT_FORMAT="elf64-x86-64-cloudabi"


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