diff options
author | Ed Schouten <ed@nuxi.nl> | 2015-03-31 11:33:45 +0200 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-03-31 08:11:08 -0700 |
commit | 6036f4862103dea22dcc1ee02cf31802872997b3 (patch) | |
tree | 6dbe5d2dc35825c5fb4f5cd301b12d221d0cd88c | |
parent | 6ef37366be4c2445b3efdba8520e0a4e7450581f (diff) | |
download | binutils-6036f4862103dea22dcc1ee02cf31802872997b3.zip binutils-6036f4862103dea22dcc1ee02cf31802872997b3.tar.gz binutils-6036f4862103dea22dcc1ee02cf31802872997b3.tar.bz2 |
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/ChangeLog | 13 | ||||
-rw-r--r-- | bfd/config.bfd | 4 | ||||
-rwxr-xr-x | bfd/configure | 1 | ||||
-rw-r--r-- | bfd/configure.ac | 1 | ||||
-rw-r--r-- | bfd/elf64-x86-64.c | 15 | ||||
-rw-r--r-- | bfd/targets.c | 2 | ||||
-rw-r--r-- | gas/ChangeLog | 4 | ||||
-rw-r--r-- | gas/configure.tgt | 1 | ||||
-rw-r--r-- | ld/ChangeLog | 10 | ||||
-rw-r--r-- | ld/Makefile.am | 5 | ||||
-rw-r--r-- | ld/Makefile.in | 6 | ||||
-rw-r--r-- | ld/configure.tgt | 1 | ||||
-rw-r--r-- | ld/emulparams/elf_x86_64_cloudabi.sh | 2 |
13 files changed, 65 insertions, 0 deletions
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" |