Update to 2.27
Remove aarch64 patches which are now upstream Disable new x86 relocation to avoid incompatibilities with the old base binutils Activate all targets on the default binutils (requested by royger@) Add a RELRO option (default off) to be able to define the default behaviour of ld(1) on passing or not -z relro
This commit is contained in:
parent
9c9536deee
commit
a03e26e477
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=420922
21 changed files with 71 additions and 562 deletions
|
@ -6,11 +6,15 @@ aarch64-freebsd/bin/nm
|
|||
aarch64-freebsd/bin/objcopy
|
||||
aarch64-freebsd/bin/objdump
|
||||
aarch64-freebsd/bin/ranlib
|
||||
aarch64-freebsd/bin/readelf
|
||||
aarch64-freebsd/bin/size
|
||||
aarch64-freebsd/bin/strip
|
||||
aarch64-freebsd/lib/ldscripts/aarch64elf.x
|
||||
aarch64-freebsd/lib/ldscripts/aarch64elf.xbn
|
||||
aarch64-freebsd/lib/ldscripts/aarch64elf.xc
|
||||
aarch64-freebsd/lib/ldscripts/aarch64elf.xd
|
||||
aarch64-freebsd/lib/ldscripts/aarch64elf.xdc
|
||||
aarch64-freebsd/lib/ldscripts/aarch64elf.xdw
|
||||
aarch64-freebsd/lib/ldscripts/aarch64elf.xn
|
||||
aarch64-freebsd/lib/ldscripts/aarch64elf.xr
|
||||
aarch64-freebsd/lib/ldscripts/aarch64elf.xs
|
||||
|
|
|
@ -6,11 +6,15 @@ aarch64-none-elf/bin/nm
|
|||
aarch64-none-elf/bin/objcopy
|
||||
aarch64-none-elf/bin/objdump
|
||||
aarch64-none-elf/bin/ranlib
|
||||
aarch64-none-elf/bin/readelf
|
||||
aarch64-none-elf/bin/size
|
||||
aarch64-none-elf/bin/strip
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf.x
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf.xbn
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf.xc
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf.xd
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf.xdc
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf.xdw
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf.xn
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf.xr
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf.xs
|
||||
|
@ -21,6 +25,9 @@ aarch64-none-elf/lib/ldscripts/aarch64elf.xw
|
|||
aarch64-none-elf/lib/ldscripts/aarch64elf32.x
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32.xbn
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32.xc
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32.xd
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32.xdc
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32.xdw
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32.xn
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32.xr
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32.xs
|
||||
|
@ -31,6 +38,9 @@ aarch64-none-elf/lib/ldscripts/aarch64elf32.xw
|
|||
aarch64-none-elf/lib/ldscripts/aarch64elf32b.x
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32b.xbn
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32b.xc
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32b.xd
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32b.xdc
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32b.xdw
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32b.xn
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32b.xr
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elf32b.xs
|
||||
|
@ -41,6 +51,9 @@ aarch64-none-elf/lib/ldscripts/aarch64elf32b.xw
|
|||
aarch64-none-elf/lib/ldscripts/aarch64elfb.x
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elfb.xbn
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elfb.xc
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elfb.xd
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elfb.xdc
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elfb.xdw
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elfb.xn
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elfb.xr
|
||||
aarch64-none-elf/lib/ldscripts/aarch64elfb.xs
|
||||
|
|
|
@ -41,6 +41,7 @@ x86_64-freebsd/bin/nm
|
|||
x86_64-freebsd/bin/objcopy
|
||||
x86_64-freebsd/bin/objdump
|
||||
x86_64-freebsd/bin/ranlib
|
||||
x86_64-freebsd/bin/readelf
|
||||
x86_64-freebsd/bin/size
|
||||
x86_64-freebsd/bin/strip
|
||||
x86_64-freebsd/lib/ldscripts/elf_i386.x
|
||||
|
@ -69,6 +70,19 @@ x86_64-freebsd/lib/ldscripts/elf_i386_fbsd.xsc
|
|||
x86_64-freebsd/lib/ldscripts/elf_i386_fbsd.xsw
|
||||
x86_64-freebsd/lib/ldscripts/elf_i386_fbsd.xu
|
||||
x86_64-freebsd/lib/ldscripts/elf_i386_fbsd.xw
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.x
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xbn
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xc
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xd
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xdc
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xdw
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xn
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xr
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xs
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xsc
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xsw
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xu
|
||||
x86_64-freebsd/lib/ldscripts/elf_iamcu.xw
|
||||
x86_64-freebsd/lib/ldscripts/elf_k1om.x
|
||||
x86_64-freebsd/lib/ldscripts/elf_k1om.xbn
|
||||
x86_64-freebsd/lib/ldscripts/elf_k1om.xc
|
||||
|
|
|
@ -6,6 +6,7 @@ arm-gnueabi-freebsd/bin/nm
|
|||
arm-gnueabi-freebsd/bin/objcopy
|
||||
arm-gnueabi-freebsd/bin/objdump
|
||||
arm-gnueabi-freebsd/bin/ranlib
|
||||
arm-gnueabi-freebsd/bin/readelf
|
||||
arm-gnueabi-freebsd/bin/strip
|
||||
arm-gnueabi-freebsd/bin/size
|
||||
arm-gnueabi-freebsd/lib/ldscripts/armelf.x
|
||||
|
|
|
@ -6,6 +6,7 @@ arm-none-eabi/bin/nm
|
|||
arm-none-eabi/bin/objcopy
|
||||
arm-none-eabi/bin/objdump
|
||||
arm-none-eabi/bin/ranlib
|
||||
arm-none-eabi/bin/readelf
|
||||
arm-none-eabi/bin/strip
|
||||
arm-none-eabi/bin/size
|
||||
arm-none-eabi/lib/ldscripts/armelf.x
|
||||
|
|
|
@ -6,6 +6,7 @@ avr/bin/nm
|
|||
avr/bin/objcopy
|
||||
avr/bin/objdump
|
||||
avr/bin/ranlib
|
||||
avr/bin/readelf
|
||||
avr/bin/size
|
||||
avr/bin/strip
|
||||
avr/lib/ldscripts/avr1.x
|
||||
|
|
|
@ -2,9 +2,8 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= binutils
|
||||
PORTVERSION= 2.25.1
|
||||
PORTVERSION= 2.27
|
||||
PORTEPOCH= 1
|
||||
PORTREVISION?= 3
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= SOURCEWARE/binutils/releases
|
||||
|
||||
|
@ -19,7 +18,9 @@ BUILD_DEPENDS= ${LOCALBASE}/lib/libgmp.so:math/gmp \
|
|||
|
||||
CONFLICTS= libbfd-[0-9]*
|
||||
|
||||
OPTIONS_DEFINE= NLS
|
||||
OPTIONS_DEFINE= NLS RELRO
|
||||
|
||||
RELRO_DESC= enable -z relro in ELF linker by default
|
||||
|
||||
LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING3
|
||||
LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING3.LIB
|
||||
|
@ -38,7 +39,8 @@ CFLAGS+= -I${LOCALBASE}/include
|
|||
LDFLAGS+= -L${LOCALBASE}/lib
|
||||
CONFIGURE_ARGS+= --with-system-zlib \
|
||||
--with-gmp=${LOCALBASE} \
|
||||
--with-mpfr=${LOCALBASE}
|
||||
--with-mpfr=${LOCALBASE} \
|
||||
--enable-targets=all
|
||||
INFO= as \
|
||||
binutils \
|
||||
gprof \
|
||||
|
@ -48,7 +50,10 @@ INFO= as \
|
|||
|
||||
CONFIGURE_ARGS+= --disable-werror \
|
||||
--enable-deterministic-archives \
|
||||
--with-sysroot=/
|
||||
--with-sysroot=/ \
|
||||
--enable-x86-relax-relocations=no
|
||||
RELRO_CONFIGURE_ON= --enable-relro
|
||||
RELRO_CONFIGURE_OFF= --enable-relro=no
|
||||
|
||||
MAKE_ENV+= ac_cv_func_sbrk=0
|
||||
|
||||
|
@ -59,7 +64,7 @@ NLS_CONFIGURE_ENABLE= nls
|
|||
.include <bsd.port.pre.mk>
|
||||
|
||||
# Actual earliest version may differ slightly
|
||||
.if ${ARCH} != ia64 && ${ARCH} != mips && ${ARCH} != mips64 && !defined(PKGNAMEPREFIX) && (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 34 || ${COMPILER_TYPE} == gcc)
|
||||
.if ${ARCH} != ia64 && ${ARCH} != i386 && ${ARCH} != mips && ${ARCH} != mips64 && !defined(PKGNAMEPREFIX) && (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 34 || ${COMPILER_TYPE} == gcc)
|
||||
CONFIGURE_ARGS+= --enable-gold --enable-plugins
|
||||
PLIST_SUB+= GOLD=""
|
||||
.else
|
||||
|
@ -83,6 +88,7 @@ post-install:
|
|||
.if ${PKGNAMEPREFIX:S/-$//} != ${BUTARGET}
|
||||
${RM} -rf ${STAGEDIR}${PREFIX}/${PKGNAMEPREFIX:S/-$//}
|
||||
.endif
|
||||
@if [ -d ${STAGEDIR}${PREFIX}/${INFO_PATH} ] ; then rm -rf ${STAGEDIR}${PREFIX}/${INFO_PATH}; fi
|
||||
${LN} -fs ../../bin/${BUTARGET}-size ${STAGEDIR}${PREFIX}/${BUTARGET}/bin/size
|
||||
.endif
|
||||
.for tool in ${BUREMOVE}
|
||||
|
@ -92,6 +98,7 @@ post-install:
|
|||
.endfor
|
||||
.if defined(BUREMOVE) && ${BUREMOVE:Mld}
|
||||
@${RM} -rf ${STAGEDIR}${PREFIX}/${BUTARGET}/lib/ldscripts
|
||||
@${FIND} ${STAGEDIR}${PREFIX}/${BUTARGET}/lib -empty -delete
|
||||
.endif
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
SHA256 (binutils-2.25.1.tar.bz2) = b5b14added7d78a8d1ca70b5cb75fef57ce2197264f4f5835326b0df22ac9f22
|
||||
SIZE (binutils-2.25.1.tar.bz2) = 24163561
|
||||
TIMESTAMP = 1470493107
|
||||
SHA256 (binutils-2.27.tar.bz2) = 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88
|
||||
SIZE (binutils-2.27.tar.bz2) = 26099568
|
||||
|
|
|
@ -1,198 +0,0 @@
|
|||
diff --git bfd/config.bfd bfd/config.bfd
|
||||
index 4edcc6a..4c94f69 100644
|
||||
--- bfd/config.bfd
|
||||
+++ bfd/config.bfd
|
||||
@@ -173,6 +173,11 @@ case "${targ}" in
|
||||
targ_selvecs="bfd_elf64_littleaarch64_vec bfd_elf32_littleaarch64_vec bfd_elf32_bigaarch64_vec bfd_elf32_bigarm_vec bfd_elf32_littlearm_vec"
|
||||
want64=true
|
||||
;;
|
||||
+ aarch64-*-freebsd*)
|
||||
+ targ_defvec=aarch64_elf64_le_vec
|
||||
+ targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
|
||||
+ want64=true
|
||||
+ ;;
|
||||
aarch64-*-linux*)
|
||||
targ_defvec=bfd_elf64_littleaarch64_vec
|
||||
targ_selvecs="bfd_elf64_bigaarch64_vec bfd_elf32_littleaarch64_vec bfd_elf32_bigaarch64_vec bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec"
|
||||
diff --git bfd/configure bfd/configure
|
||||
index bef7295..91156fd 100755
|
||||
--- bfd/configure
|
||||
+++ bfd/configure
|
||||
@@ -12158,7 +12158,7 @@ fi
|
||||
|
||||
|
||||
|
||||
-GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
|
||||
+GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-unused-function"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
__GNUC__
|
||||
diff --git gas/config/tc-aarch64.c gas/config/tc-aarch64.c
|
||||
index 4b243ce..83e4bb9 100644
|
||||
--- gas/config/tc-aarch64.c
|
||||
+++ gas/config/tc-aarch64.c
|
||||
@@ -54,9 +54,6 @@ static const aarch64_feature_set *march_cpu_opt = NULL;
|
||||
/* Constants for known architecture features. */
|
||||
static const aarch64_feature_set cpu_default = CPU_DEFAULT;
|
||||
|
||||
-static const aarch64_feature_set aarch64_arch_any = AARCH64_ANY;
|
||||
-static const aarch64_feature_set aarch64_arch_none = AARCH64_ARCH_NONE;
|
||||
-
|
||||
#ifdef OBJ_ELF
|
||||
/* Pre-defined "_GLOBAL_OFFSET_TABLE_" */
|
||||
static symbolS *GOT_symbol;
|
||||
diff --git gas/configure gas/configure
|
||||
index 8a89e4f..a83138e 100755
|
||||
--- gas/configure
|
||||
+++ gas/configure
|
||||
@@ -11575,7 +11575,7 @@ fi
|
||||
using_cgen=no
|
||||
|
||||
|
||||
-GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
|
||||
+GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-unused-function"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
__GNUC__
|
||||
diff --git ld/Makefile.am ld/Makefile.am
|
||||
index 5968668..5ffb2a4 100644
|
||||
--- ld/Makefile.am
|
||||
+++ ld/Makefile.am
|
||||
@@ -415,6 +415,8 @@ ALL_64_EMULATION_SOURCES = \
|
||||
eaarch64elf32.c \
|
||||
eaarch64elfb.c \
|
||||
eaarch64elf32b.c \
|
||||
+ eaarch64fbsd.c \
|
||||
+ eaarch64fbsdb.c \
|
||||
eaarch64linux.c \
|
||||
eaarch64linuxb.c \
|
||||
eaarch64linux32.c \
|
||||
@@ -1524,6 +1526,14 @@ eaarch64elf32b.c: $(srcdir)/emulparams/aarch64elf32b.sh $(srcdir)/emulparams/aar
|
||||
$(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
|
||||
+eaarch64fbsd.c: $(srcdir)/emulparams/aarch64fbsd.sh \
|
||||
+ $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
|
||||
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
+
|
||||
+eaarch64fbsdb.c: $(srcdir)/emulparams/aarch64fbsdb.sh $(srcdir)/emulparams/aarch64fbsd.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}
|
||||
diff --git ld/Makefile.in ld/Makefile.in
|
||||
index 59cba73..0ed674f 100644
|
||||
--- ld/Makefile.in
|
||||
+++ ld/Makefile.in
|
||||
@@ -722,6 +722,8 @@ ALL_64_EMULATION_SOURCES = \
|
||||
eaarch64elf32.c \
|
||||
eaarch64elfb.c \
|
||||
eaarch64elf32b.c \
|
||||
+ eaarch64fbsd.c \
|
||||
+ eaarch64fbsdb.c \
|
||||
eaarch64linux.c \
|
||||
eaarch64linuxb.c \
|
||||
eaarch64linux32.c \
|
||||
@@ -1034,6 +1036,8 @@ distclean-compile:
|
||||
@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)/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@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32b.Po@am__quote@
|
||||
@@ -2956,6 +2960,14 @@ eaarch64elf32b.c: $(srcdir)/emulparams/aarch64elf32b.sh $(srcdir)/emulparams/aar
|
||||
$(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
|
||||
+eaarch64fbsd.c: $(srcdir)/emulparams/aarch64fbsd.sh \
|
||||
+ $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
|
||||
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
+
|
||||
+eaarch64fbsdb.c: $(srcdir)/emulparams/aarch64fbsdb.sh $(srcdir)/emulparams/aarch64fbsd.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}
|
||||
diff --git ld/configure ld/configure
|
||||
index 8452a13..9ef7a54 100755
|
||||
--- ld/configure
|
||||
+++ ld/configure
|
||||
@@ -4642,7 +4642,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
|
||||
|
||||
|
||||
|
||||
-GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
|
||||
+GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-uninitialized"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
__GNUC__
|
||||
diff --git ld/configure.tgt ld/configure.tgt
|
||||
index c2c3eab..36416e3 100644
|
||||
--- ld/configure.tgt
|
||||
+++ ld/configure.tgt
|
||||
@@ -49,6 +49,8 @@ aarch64_be-*-elf) targ_emul=aarch64elfb
|
||||
targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" ;;
|
||||
aarch64-*-elf) targ_emul=aarch64elf
|
||||
targ_extra_emuls="aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb" ;;
|
||||
+aarch64-*-freebsd*) targ_emul=aarch64fbsd
|
||||
+ targ_extra_emuls="aarch64fbsdb aarch64elf" ;;
|
||||
aarch64_be-*-linux*) targ_emul=aarch64linuxb
|
||||
targ_extra_libpath="aarch64linux aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
|
||||
targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;;
|
||||
diff --git ld/emulparams/aarch64fbsd.sh ld/emulparams/aarch64fbsd.sh
|
||||
new file mode 100644
|
||||
index 0000000..b92bde9
|
||||
--- /dev/null
|
||||
+++ ld/emulparams/aarch64fbsd.sh
|
||||
@@ -0,0 +1,37 @@
|
||||
+ARCH=aarch64
|
||||
+MACHINE=
|
||||
+NOP=0
|
||||
+
|
||||
+SCRIPT_NAME=elf
|
||||
+ELFSIZE=64
|
||||
+OUTPUT_FORMAT="elf64-littleaarch64"
|
||||
+BIG_OUTPUT_FORMAT="elf64-bigaarch64"
|
||||
+LITTLE_OUTPUT_FORMAT="elf64-littleaarch64"
|
||||
+NO_REL_RELOCS=yes
|
||||
+
|
||||
+TEMPLATE_NAME=elf32
|
||||
+EXTRA_EM_FILE=aarch64elf
|
||||
+
|
||||
+GENERATE_SHLIB_SCRIPT=yes
|
||||
+GENERATE_PIE_SCRIPT=yes
|
||||
+
|
||||
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
||||
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
|
||||
+SEPARATE_GOTPLT=24
|
||||
+IREL_IN_PLT=
|
||||
+
|
||||
+TEXT_START_ADDR=0x400000
|
||||
+
|
||||
+DATA_START_SYMBOLS='PROVIDE (__data_start = .);';
|
||||
+
|
||||
+# AArch64 does not support .s* sections.
|
||||
+NO_SMALL_DATA=yes
|
||||
+
|
||||
+OTHER_BSS_SYMBOLS='__bss_start__ = .;'
|
||||
+OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;'
|
||||
+OTHER_END_SYMBOLS='__end__ = . ;'
|
||||
+
|
||||
+OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
|
||||
+ATTRS_SECTIONS='.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }'
|
||||
+# Ensure each PLT entry is aligned to a cache line.
|
||||
+PLT=".plt ${RELOCATING-0} : ALIGN(16) { *(.plt)${IREL_IN_PLT+ *(.iplt)} }"
|
||||
diff --git ld/emulparams/aarch64fbsdb.sh ld/emulparams/aarch64fbsdb.sh
|
||||
new file mode 100644
|
||||
index 0000000..2c55dde
|
||||
--- /dev/null
|
||||
+++ ld/emulparams/aarch64fbsdb.sh
|
||||
@@ -0,0 +1,2 @@
|
||||
+. ${srcdir}/emulparams/aarch64fbsd.sh
|
||||
+OUTPUT_FORMAT="elf64-bigaarch64"
|
|
@ -1,17 +0,0 @@
|
|||
From d840c081f8082e8b9e63fead5306643975a97bb3 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Earnshaw <Richard.Earnshaw@arm.com>
|
||||
Date: Thu, 20 Nov 2014 17:02:47 +0000
|
||||
Subject: [PATCH] * config/tc-arm.c (rotate_left): Avoid undefined behaviour
|
||||
when N = 0.
|
||||
|
||||
--- gas/config/tc-arm.c.orig 2014-10-14 09:32:03.000000000 +0200
|
||||
+++ gas/config/tc-arm.c 2015-02-18 21:13:40.720573000 +0100
|
||||
@@ -7251,7 +7251,7 @@
|
||||
|
||||
/* Functions for operand encoding. ARM, then Thumb. */
|
||||
|
||||
-#define rotate_left(v, n) (v << n | v >> (32 - n))
|
||||
+#define rotate_left(v, n) (v << (n & 31) | v >> ((32 - n) & 31))
|
||||
|
||||
/* If VAL can be encoded in the immediate field of an ARM instruction,
|
||||
return the encoded form. Otherwise, return FAIL. */
|
|
@ -2,20 +2,28 @@ bin/addr2line
|
|||
bin/ar
|
||||
bin/as
|
||||
bin/c++filt
|
||||
bin/coffdump
|
||||
bin/dlltool
|
||||
bin/dllwrap
|
||||
%%GOLD%%bin/dwp
|
||||
bin/elfedit
|
||||
bin/gprof
|
||||
bin/ld
|
||||
bin/ld.bfd
|
||||
%%GOLD%%bin/ld.gold
|
||||
bin/nlmconv
|
||||
bin/nm
|
||||
bin/objcopy
|
||||
bin/objdump
|
||||
bin/ranlib
|
||||
bin/readelf
|
||||
bin/size
|
||||
bin/srconv
|
||||
bin/strings
|
||||
bin/strip
|
||||
bin/sysdump
|
||||
bin/windmc
|
||||
bin/windres
|
||||
include/bfd.h
|
||||
include/bfdlink.h
|
||||
include/dis-asm.h
|
||||
|
@ -45,6 +53,7 @@ man/man1/windres.1.gz
|
|||
%%NLS%%share/locale/bg/LC_MESSAGES/binutils.mo
|
||||
%%NLS%%share/locale/bg/LC_MESSAGES/gprof.mo
|
||||
%%NLS%%share/locale/bg/LC_MESSAGES/ld.mo
|
||||
%%NLS%%share/locale/ca/LC_MESSAGES/binutils.mo
|
||||
%%NLS%%share/locale/da/LC_MESSAGES/bfd.mo
|
||||
%%NLS%%share/locale/da/LC_MESSAGES/binutils.mo
|
||||
%%NLS%%share/locale/da/LC_MESSAGES/gprof.mo
|
||||
|
@ -66,13 +75,14 @@ man/man1/windres.1.gz
|
|||
%%NLS%%share/locale/fi/LC_MESSAGES/gprof.mo
|
||||
%%NLS%%share/locale/fi/LC_MESSAGES/ld.mo
|
||||
%%NLS%%share/locale/fi/LC_MESSAGES/opcodes.mo
|
||||
%%NLS%%%%GOLD%%share/locale/fi/LC_MESSAGES/gold.mo
|
||||
%%NLS%%share/locale/fr/LC_MESSAGES/bfd.mo
|
||||
%%NLS%%share/locale/fr/LC_MESSAGES/binutils.mo
|
||||
%%NLS%%share/locale/fr/LC_MESSAGES/gas.mo
|
||||
%%NLS%%share/locale/fr/LC_MESSAGES/gprof.mo
|
||||
%%NLS%%share/locale/fr/LC_MESSAGES/ld.mo
|
||||
%%NLS%%share/locale/fr/LC_MESSAGES/opcodes.mo
|
||||
%%NLS%%%%GOLD%%share/locale/fi/LC_MESSAGES/gold.mo
|
||||
%%NLS%%%%GOLD%%share/locale/fr/LC_MESSAGES/gold.mo
|
||||
%%NLS%%share/locale/ga/LC_MESSAGES/gprof.mo
|
||||
%%NLS%%share/locale/ga/LC_MESSAGES/ld.mo
|
||||
%%NLS%%share/locale/ga/LC_MESSAGES/opcodes.mo
|
||||
|
@ -113,6 +123,7 @@ man/man1/windres.1.gz
|
|||
%%NLS%%share/locale/rw/LC_MESSAGES/gas.mo
|
||||
%%NLS%%share/locale/rw/LC_MESSAGES/gprof.mo
|
||||
%%NLS%%share/locale/sk/LC_MESSAGES/binutils.mo
|
||||
%%NLS%%share/locale/sr/LC_MESSAGES/bfd.mo
|
||||
%%NLS%%share/locale/sr/LC_MESSAGES/gprof.mo
|
||||
%%NLS%%share/locale/sr/LC_MESSAGES/binutils.mo
|
||||
%%NLS%%share/locale/sv/LC_MESSAGES/bfd.mo
|
||||
|
@ -140,7 +151,9 @@ man/man1/windres.1.gz
|
|||
%%NLS%%%%GOLD%%share/locale/vi/LC_MESSAGES/gold.mo
|
||||
%%NLS%%share/locale/zh_CN/LC_MESSAGES/bfd.mo
|
||||
%%NLS%%share/locale/zh_CN/LC_MESSAGES/binutils.mo
|
||||
%%NLS%%share/locale/zh_CN/LC_MESSAGES/gas.mo
|
||||
%%NLS%%share/locale/zh_CN/LC_MESSAGES/ld.mo
|
||||
%%NLS%%share/locale/zh_CN/LC_MESSAGES/opcodes.mo
|
||||
%%NLS%%%%GOLD%%share/locale/zh_CN/LC_MESSAGES/gold.mo
|
||||
%%NLS%%share/locale/zh_TW/LC_MESSAGES/binutils.mo
|
||||
%%NLS%%share/locale/zh_TW/LC_MESSAGES/ld.mo
|
||||
|
|
|
@ -1,175 +0,0 @@
|
|||
--- bfd/config.bfd
|
||||
+++ bfd/config.bfd
|
||||
@@ -177,6 +177,11 @@
|
||||
targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec"
|
||||
want64=true
|
||||
;;
|
||||
+ aarch64-*-cloudabi*)
|
||||
+ targ_defvec=aarch64_elf64_le_cloudabi_vec
|
||||
+ targ_selvecs=aarch64_elf64_be_cloudabi_vec
|
||||
+ want64=true
|
||||
+ ;;
|
||||
aarch64-*-linux*)
|
||||
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"
|
||||
--- bfd/configure
|
||||
+++ bfd/configure
|
||||
@@ -15288,7 +15288,9 @@
|
||||
aarch64_elf32_be_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
|
||||
aarch64_elf32_le_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
|
||||
aarch64_elf64_be_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
|
||||
+ aarch64_elf64_be_cloudabi_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
|
||||
aarch64_elf64_le_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
|
||||
+ aarch64_elf64_le_cloudabi_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
|
||||
alpha_ecoff_le_vec) tb="$tb coff-alpha.lo ecoff.lo ecofflink.lo"; target_size=64 ;;
|
||||
alpha_elf64_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
|
||||
alpha_elf64_fbsd_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
|
||||
--- bfd/elfnn-aarch64.c
|
||||
+++ bfd/elfnn-aarch64.c
|
||||
@@ -8061,3 +8061,22 @@
|
||||
#define elf_backend_obj_attrs_section ".ARM.attributes"
|
||||
|
||||
#include "elfNN-target.h"
|
||||
+
|
||||
+/* CloudABI support. */
|
||||
+
|
||||
+#undef TARGET_LITTLE_SYM
|
||||
+#define TARGET_LITTLE_SYM aarch64_elfNN_le_cloudabi_vec
|
||||
+#undef TARGET_LITTLE_NAME
|
||||
+#define TARGET_LITTLE_NAME "elfNN-littleaarch64-cloudabi"
|
||||
+#undef TARGET_BIG_SYM
|
||||
+#define TARGET_BIG_SYM aarch64_elfNN_be_cloudabi_vec
|
||||
+#undef TARGET_BIG_NAME
|
||||
+#define TARGET_BIG_NAME "elfNN-bigaarch64-cloudabi"
|
||||
+
|
||||
+#undef ELF_OSABI
|
||||
+#define ELF_OSABI ELFOSABI_CLOUDABI
|
||||
+
|
||||
+#undef elfNN_bed
|
||||
+#define elfNN_bed elfNN_aarch64_cloudabi_bed
|
||||
+
|
||||
+#include "elfNN-target.h"
|
||||
--- bfd/targets.c
|
||||
+++ bfd/targets.c
|
||||
@@ -563,7 +563,9 @@
|
||||
extern const bfd_target aarch64_elf32_be_vec;
|
||||
extern const bfd_target aarch64_elf32_le_vec;
|
||||
extern const bfd_target aarch64_elf64_be_vec;
|
||||
+extern const bfd_target aarch64_elf64_be_cloudabi_vec;
|
||||
extern const bfd_target aarch64_elf64_le_vec;
|
||||
+extern const bfd_target aarch64_elf64_le_cloudabi_vec;
|
||||
extern const bfd_target alpha_ecoff_le_vec;
|
||||
extern const bfd_target alpha_elf64_vec;
|
||||
extern const bfd_target alpha_elf64_fbsd_vec;
|
||||
@@ -938,7 +940,9 @@
|
||||
&aarch64_elf32_be_vec,
|
||||
&aarch64_elf32_le_vec,
|
||||
&aarch64_elf64_be_vec,
|
||||
+ &aarch64_elf64_be_cloudabi_vec,
|
||||
&aarch64_elf64_le_vec,
|
||||
+ &aarch64_elf64_le_cloudabi_vec,
|
||||
#endif
|
||||
|
||||
#ifdef BFD64
|
||||
--- gas/configure.tgt
|
||||
+++ 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 ;;
|
||||
--- include/elf/common.h
|
||||
+++ include/elf/common.h
|
||||
@@ -73,6 +73,7 @@
|
||||
#define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel */
|
||||
#define ELFOSABI_AROS 15 /* AROS */
|
||||
#define ELFOSABI_FENIXOS 16 /* FenixOS */
|
||||
+#define ELFOSABI_CLOUDABI 17 /* Nuxi CloudABI */
|
||||
#define ELFOSABI_C6000_ELFABI 64 /* Bare-metal TMS320C6000 */
|
||||
#define ELFOSABI_C6000_LINUX 65 /* Linux TMS320C6000 */
|
||||
#define ELFOSABI_ARM 97 /* ARM */
|
||||
--- ld/Makefile.in
|
||||
+++ ld/Makefile.in
|
||||
@@ -727,6 +727,8 @@
|
||||
eaarch64elf32.c \
|
||||
eaarch64elfb.c \
|
||||
eaarch64elf32b.c \
|
||||
+ eaarch64cloudabi.c \
|
||||
+ eaarch64cloudabib.c \
|
||||
eaarch64linux.c \
|
||||
eaarch64linuxb.c \
|
||||
eaarch64linux32.c \
|
||||
@@ -3001,6 +3003,14 @@
|
||||
$(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
|
||||
+eaarch64cloudabi.c: $(srcdir)/emulparams/aarch64cloudabi.sh \
|
||||
+ $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
|
||||
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
+
|
||||
+eaarch64cloudabib.c: $(srcdir)/emulparams/aarch64cloudabib.sh $(srcdir)/emulparams/aarch64cloudabi.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}
|
||||
--- ld/configure.tgt
|
||||
+++ ld/configure.tgt
|
||||
@@ -49,6 +49,8 @@
|
||||
targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" ;;
|
||||
aarch64-*-elf) targ_emul=aarch64elf
|
||||
targ_extra_emuls="aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb" ;;
|
||||
+aarch64-*-cloudabi*) targ_emul=aarch64cloudabi
|
||||
+ targ_extra_emuls=aarch64cloudabib ;;
|
||||
aarch64_be-*-linux*) targ_emul=aarch64linuxb
|
||||
targ_extra_libpath="aarch64linux aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
|
||||
targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;;
|
||||
--- ld/emulparams/aarch64cloudabi.sh
|
||||
+++ ld/emulparams/aarch64cloudabi.sh
|
||||
@@ -0,0 +1,37 @@
|
||||
+ARCH=aarch64
|
||||
+MACHINE=
|
||||
+NOP=0
|
||||
+
|
||||
+SCRIPT_NAME=elf
|
||||
+ELFSIZE=64
|
||||
+OUTPUT_FORMAT="elf64-littleaarch64-cloudabi"
|
||||
+BIG_OUTPUT_FORMAT="elf64-bigaarch64-cloudabi"
|
||||
+LITTLE_OUTPUT_FORMAT="elf64-littleaarch64-cloudabi"
|
||||
+NO_REL_RELOCS=yes
|
||||
+
|
||||
+TEMPLATE_NAME=elf32
|
||||
+EXTRA_EM_FILE=aarch64elf
|
||||
+
|
||||
+GENERATE_SHLIB_SCRIPT=yes
|
||||
+GENERATE_PIE_SCRIPT=yes
|
||||
+
|
||||
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
||||
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
|
||||
+SEPARATE_GOTPLT=24
|
||||
+IREL_IN_PLT=
|
||||
+
|
||||
+TEXT_START_ADDR=0x400000
|
||||
+
|
||||
+DATA_START_SYMBOLS='PROVIDE (__data_start = .);';
|
||||
+
|
||||
+# AArch64 does not support .s* sections.
|
||||
+NO_SMALL_DATA=yes
|
||||
+
|
||||
+OTHER_BSS_SYMBOLS='__bss_start__ = .;'
|
||||
+OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;'
|
||||
+OTHER_END_SYMBOLS='__end__ = . ;'
|
||||
+
|
||||
+OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
|
||||
+ATTRS_SECTIONS='.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }'
|
||||
+# Ensure each PLT entry is aligned to a cache line.
|
||||
+PLT=".plt ${RELOCATING-0} : ALIGN(16) { *(.plt)${IREL_IN_PLT+ *(.iplt)} }"
|
||||
--- ld/emulparams/aarch64cloudabib.sh
|
||||
+++ ld/emulparams/aarch64cloudabib.sh
|
||||
@@ -0,0 +1,2 @@
|
||||
+. ${srcdir}/emulparams/aarch64cloudabi.sh
|
||||
+OUTPUT_FORMAT="elf64-bigaarch64-cloudabi"
|
|
@ -18,4 +18,5 @@ man/man1/aarch64-unknown-cloudabi-strings.1.gz
|
|||
man/man1/aarch64-unknown-cloudabi-strip.1.gz
|
||||
aarch64-unknown-cloudabi/bin/as
|
||||
aarch64-unknown-cloudabi/bin/objcopy
|
||||
aarch64-unknown-cloudabi/bin/readelf
|
||||
aarch64-unknown-cloudabi/bin/strip
|
||||
|
|
|
@ -1,160 +0,0 @@
|
|||
--- bfd/config.bfd
|
||||
+++ 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"
|
||||
--- bfd/configure
|
||||
+++ 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 ;;
|
||||
--- bfd/configure.ac
|
||||
+++ 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 ;;
|
||||
--- bfd/elf64-x86-64.c
|
||||
+++ 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
|
||||
--- bfd/targets.c
|
||||
+++ 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,
|
||||
--- gas/configure.tgt
|
||||
+++ 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 ;;
|
||||
--- include/elf/common.h
|
||||
+++ include/elf/common.h
|
||||
@@ -73,6 +73,7 @@
|
||||
#define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel */
|
||||
#define ELFOSABI_AROS 15 /* AROS */
|
||||
#define ELFOSABI_FENIXOS 16 /* FenixOS */
|
||||
+#define ELFOSABI_CLOUDABI 17 /* Nuxi CloudABI */
|
||||
#define ELFOSABI_C6000_ELFABI 64 /* Bare-metal TMS320C6000 */
|
||||
#define ELFOSABI_C6000_LINUX 65 /* Linux TMS320C6000 */
|
||||
#define ELFOSABI_ARM 97 /* ARM */
|
||||
--- ld/Makefile.am
|
||||
+++ 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}
|
||||
--- ld/Makefile.in
|
||||
+++ 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}
|
||||
--- ld/configure.tgt
|
||||
+++ 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 ;;
|
||||
--- /dev/null
|
||||
+++ ld/emulparams/elf_x86_64_cloudabi.sh
|
||||
@@ -0,0 +1,2 @@
|
||||
+. ${srcdir}/emulparams/elf_x86_64.sh
|
||||
+OUTPUT_FORMAT="elf64-x86-64-cloudabi"
|
|
@ -18,4 +18,5 @@ man/man1/x86_64-unknown-cloudabi-strings.1.gz
|
|||
man/man1/x86_64-unknown-cloudabi-strip.1.gz
|
||||
x86_64-unknown-cloudabi/bin/as
|
||||
x86_64-unknown-cloudabi/bin/objcopy
|
||||
x86_64-unknown-cloudabi/bin/readelf
|
||||
x86_64-unknown-cloudabi/bin/strip
|
||||
|
|
|
@ -12,7 +12,4 @@ PLIST= ${.CURDIR}/pkg-plist
|
|||
|
||||
BUTARGET= ${PKGNAMEPREFIX:S/-$//}
|
||||
|
||||
INFO= as bfd binutils gprof ld
|
||||
INFO_PATH= ${BUTARGET}/info
|
||||
|
||||
.include "${MASTERDIR}/Makefile"
|
||||
|
|
|
@ -26,6 +26,7 @@ mingw32/bin/nm
|
|||
mingw32/bin/objcopy
|
||||
mingw32/bin/objdump
|
||||
mingw32/bin/ranlib
|
||||
mingw32/bin/readelf
|
||||
mingw32/bin/strip
|
||||
mingw32/bin/size
|
||||
mingw32/lib/ldscripts/i386pe.x
|
||||
|
|
|
@ -41,6 +41,7 @@ mips-freebsd/bin/nm
|
|||
mips-freebsd/bin/objcopy
|
||||
mips-freebsd/bin/objdump
|
||||
mips-freebsd/bin/ranlib
|
||||
mips-freebsd/bin/readelf
|
||||
mips-freebsd/bin/strip
|
||||
mips-freebsd/bin/size
|
||||
mips-freebsd/lib/ldscripts/elf32btsmip.x
|
||||
|
|
|
@ -41,6 +41,7 @@ mips64-freebsd/bin/nm
|
|||
mips64-freebsd/bin/objcopy
|
||||
mips64-freebsd/bin/objdump
|
||||
mips64-freebsd/bin/ranlib
|
||||
mips64-freebsd/bin/readelf
|
||||
mips64-freebsd/bin/strip
|
||||
mips64-freebsd/bin/size
|
||||
mips64-freebsd/lib/ldscripts/elf32btsmip.x
|
||||
|
|
|
@ -41,6 +41,7 @@ powerpc64-freebsd/bin/nm
|
|||
powerpc64-freebsd/bin/objcopy
|
||||
powerpc64-freebsd/bin/objdump
|
||||
powerpc64-freebsd/bin/ranlib
|
||||
powerpc64-freebsd/bin/readelf
|
||||
powerpc64-freebsd/bin/strip
|
||||
powerpc64-freebsd/bin/size
|
||||
powerpc64-freebsd/lib/ldscripts/elf32ppc.x
|
||||
|
|
|
@ -41,6 +41,7 @@ sparc64-freebsd/bin/nm
|
|||
sparc64-freebsd/bin/objcopy
|
||||
sparc64-freebsd/bin/objdump
|
||||
sparc64-freebsd/bin/ranlib
|
||||
sparc64-freebsd/bin/readelf
|
||||
sparc64-freebsd/bin/strip
|
||||
sparc64-freebsd/bin/size
|
||||
sparc64-freebsd/lib/ldscripts/elf32_sparc.x
|
||||
|
|
Loading…
Reference in a new issue