summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Schouten <ed@nuxi.nl>2015-03-31 11:33:45 +0200
committerH.J. Lu <hjl.tools@gmail.com>2015-03-31 08:11:08 -0700
commit6036f4862103dea22dcc1ee02cf31802872997b3 (patch)
tree6dbe5d2dc35825c5fb4f5cd301b12d221d0cd88c
parent6ef37366be4c2445b3efdba8520e0a4e7450581f (diff)
downloadbinutils-gdb-6036f4862103dea22dcc1ee02cf31802872997b3.tar.gz
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.
-rw-r--r--bfd/ChangeLog13
-rw-r--r--bfd/config.bfd4
-rwxr-xr-xbfd/configure1
-rw-r--r--bfd/configure.ac1
-rw-r--r--bfd/elf64-x86-64.c15
-rw-r--r--bfd/targets.c2
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/configure.tgt1
-rw-r--r--ld/ChangeLog10
-rw-r--r--ld/Makefile.am5
-rw-r--r--ld/Makefile.in6
-rw-r--r--ld/configure.tgt1
-rw-r--r--ld/emulparams/elf_x86_64_cloudabi.sh2
13 files changed, 65 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 52ee750fdf8..10ea6fc5fa1 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 b79c7115f30..4799da86287 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 2231e780bae..777d74abdef 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 a1b20358dbf..8ac36de4c2f 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 74d1d0668f1..ab72306bca5 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 9b5458efb8e..2319d23a0aa 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 e5b1cd5b2ec..7052c62ed36 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 bfff2d7e8ab..79699704cee 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 7b280142c7b..5d120f1dec7 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 22b04195350..474fc07e834 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 97fc3fa320f..9c969eef289 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 a46fbca4f7f..4b967febfe7 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 00000000000..4d5f7452b7b
--- /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"