1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-15 07:56:36 +00:00

Revert update to binutils 2.25.1 and bump portepoch to reflect that revert

binutils has build issues on 10.x i386 and is full of regressions on 9.x:
unexpected build failures on nss and others

Reported by:	antoine
Pointyhat to:	bapt
This commit is contained in:
Baptiste Daroussin 2016-01-27 07:49:45 +00:00
parent 76c76694fa
commit e164a344f1
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=407342
21 changed files with 565 additions and 46 deletions

View File

@ -6,7 +6,6 @@ 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

View File

@ -6,7 +6,6 @@ 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

View File

@ -41,7 +41,6 @@ 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
@ -70,19 +69,6 @@ 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

View File

@ -6,7 +6,6 @@ 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

View File

@ -6,7 +6,6 @@ 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

View File

@ -2,7 +2,8 @@
# $FreeBSD$
PORTNAME= binutils
PORTVERSION= 2.26
PORTVERSION= 2.25.1
PORTEPOCH= 1
PORTREVISION?= 0
CATEGORIES= devel
MASTER_SITES= SOURCEWARE/binutils/releases
@ -77,9 +78,8 @@ post-install:
${REINPLACE_CMD} '/#include "ansidecl.h"/d' ${STAGEDIR}${PREFIX}/include/bfd.h
.else
.if ${PKGNAMEPREFIX:S/-$//} != ${BUTARGET}
if [ -d ${STAGEDIR}${PREFIX}/${PKGNAMEPREFIX:S/-$//} ]; then rm -rf ${STAGEDIR}${PREFIX}/${PKGNAMEPREFIX:S/-$//} ; fi
${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

View File

@ -1,2 +1,2 @@
SHA256 (binutils-2.26.tar.bz2) = c2ace41809542f5237afc7e3b8f32bb92bc7bc53c6232a84463c423b0714ecd9
SIZE (binutils-2.26.tar.bz2) = 25543552
SHA256 (binutils-2.25.1.tar.bz2) = b5b14added7d78a8d1ca70b5cb75fef57ce2197264f4f5835326b0df22ac9f22
SIZE (binutils-2.25.1.tar.bz2) = 24163561

View File

@ -0,0 +1,198 @@
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"

View File

@ -0,0 +1,17 @@
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. */

View File

@ -42,17 +42,9 @@ man/man1/strings.1.gz
man/man1/strip.1.gz
man/man1/windmc.1.gz
man/man1/windres.1.gz
%%NLS%%%%GOLD%%share/locale/es/LC_MESSAGES/gold.mo
%%NLS%%%%GOLD%%share/locale/fi/LC_MESSAGES/gold.mo
%%NLS%%%%GOLD%%share/locale/fr/LC_MESSAGES/gold.mo
%%NLS%%%%GOLD%%share/locale/id/LC_MESSAGES/gold.mo
%%NLS%%%%GOLD%%share/locale/it/LC_MESSAGES/gold.mo
%%NLS%%%%GOLD%%share/locale/vi/LC_MESSAGES/gold.mo
%%NLS%%%%GOLD%%share/locale/zh_CN/LC_MESSAGES/gold.mo
%%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
@ -67,6 +59,7 @@ man/man1/windres.1.gz
%%NLS%%share/locale/es/LC_MESSAGES/gprof.mo
%%NLS%%share/locale/es/LC_MESSAGES/ld.mo
%%NLS%%share/locale/es/LC_MESSAGES/opcodes.mo
%%NLS%%%%GOLD%%share/locale/es/LC_MESSAGES/gold.mo
%%NLS%%share/locale/fi/LC_MESSAGES/bfd.mo
%%NLS%%share/locale/fi/LC_MESSAGES/binutils.mo
%%NLS%%share/locale/fi/LC_MESSAGES/gas.mo
@ -79,21 +72,24 @@ man/man1/windres.1.gz
%%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%%share/locale/ga/LC_MESSAGES/gprof.mo
%%NLS%%share/locale/ga/LC_MESSAGES/ld.mo
%%NLS%%share/locale/ga/LC_MESSAGES/opcodes.mo
%%NLS%%share/locale/hr/LC_MESSAGES/binutils.mo
%%NLS%%share/locale/hu/LC_MESSAGES/gprof.mo
%%NLS%%share/locale/id/LC_MESSAGES/gprof.mo
%%NLS%%share/locale/id/LC_MESSAGES/opcodes.mo
%%NLS%%share/locale/id/LC_MESSAGES/bfd.mo
%%NLS%%share/locale/id/LC_MESSAGES/binutils.mo
%%NLS%%share/locale/id/LC_MESSAGES/gas.mo
%%NLS%%share/locale/id/LC_MESSAGES/gprof.mo
%%NLS%%share/locale/id/LC_MESSAGES/ld.mo
%%NLS%%share/locale/id/LC_MESSAGES/opcodes.mo
%%NLS%%%%GOLD%%share/locale/id/LC_MESSAGES/gold.mo
%%NLS%%share/locale/it/LC_MESSAGES/binutils.mo
%%NLS%%share/locale/it/LC_MESSAGES/gprof.mo
%%NLS%%share/locale/it/LC_MESSAGES/ld.mo
%%NLS%%share/locale/it/LC_MESSAGES/opcodes.mo
%%NLS%%%%GOLD%%share/locale/it/LC_MESSAGES/gold.mo
%%NLS%%share/locale/ja/LC_MESSAGES/bfd.mo
%%NLS%%share/locale/ja/LC_MESSAGES/binutils.mo
%%NLS%%share/locale/ja/LC_MESSAGES/gas.mo
@ -117,8 +113,8 @@ 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/binutils.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
%%NLS%%share/locale/sv/LC_MESSAGES/binutils.mo
%%NLS%%share/locale/sv/LC_MESSAGES/gprof.mo
@ -141,9 +137,9 @@ man/man1/windres.1.gz
%%NLS%%share/locale/vi/LC_MESSAGES/gprof.mo
%%NLS%%share/locale/vi/LC_MESSAGES/ld.mo
%%NLS%%share/locale/vi/LC_MESSAGES/opcodes.mo
%%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%%share/locale/zh_TW/LC_MESSAGES/binutils.mo

View File

@ -20,12 +20,11 @@ LIB_DEPENDS= libpng.so:${PORTSDIR}/graphics/png \
libfontconfig.so:${PORTSDIR}/x11-fonts/fontconfig \
libpcre.so:${PORTSDIR}/devel/pcre
USES= execinfo gmake jpeg libtool pathfix pkgconfig tar:tgz
USES= execinfo gmake jpeg libtool pathfix pkgconfig sqlite tar:tgz
USE_GCC= yes
USE_XORG= x11
USE_LDCONFIG= yes
USE_GL= yes
USE_SQLITE= yes
CPPFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib

View File

@ -20,11 +20,10 @@ LIB_DEPENDS= libpng.so:${PORTSDIR}/graphics/png \
libfontconfig.so:${PORTSDIR}/x11-fonts/fontconfig \
libpcre.so:${PORTSDIR}/devel/pcre
USES= gmake jpeg libtool pathfix pkgconfig tar:tgz
USES= gmake jpeg libtool pathfix pkgconfig sqlite tar:tgz
USE_XORG= x11
USE_LDCONFIG= yes
USE_GL= yes
USE_SQLITE= yes
CPPFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib

View File

@ -0,0 +1,175 @@
--- 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"

View File

@ -67,6 +67,5 @@ aarch64-unknown-cloudabi/bin/nm
aarch64-unknown-cloudabi/bin/objcopy
aarch64-unknown-cloudabi/bin/objdump
aarch64-unknown-cloudabi/bin/ranlib
aarch64-unknown-cloudabi/bin/readelf
aarch64-unknown-cloudabi/bin/size
aarch64-unknown-cloudabi/bin/strip

View File

@ -0,0 +1,160 @@
--- 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"

View File

@ -54,6 +54,5 @@ x86_64-unknown-cloudabi/bin/nm
x86_64-unknown-cloudabi/bin/objcopy
x86_64-unknown-cloudabi/bin/objdump
x86_64-unknown-cloudabi/bin/ranlib
x86_64-unknown-cloudabi/bin/readelf
x86_64-unknown-cloudabi/bin/size
x86_64-unknown-cloudabi/bin/strip

View File

@ -26,7 +26,6 @@ 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

View File

@ -41,7 +41,6 @@ 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

View File

@ -41,7 +41,6 @@ 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

View File

@ -41,7 +41,6 @@ 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

View File

@ -41,7 +41,6 @@ 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