1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-15 03:14:23 +00:00

lang/gcc6-aux: Upgrade version 20161221 => 20170202 (gcc 6.3 snapshot)

The gcc6-aux compiler is being prepared to support aarch63.  The last
release, 6.3.0, is missing backported support for aarch64 in general
and aarch64-*-freebsd* in particularly.  Do a rare update the latest
snapshot in order to capture aarch64 support.
This commit is contained in:
John Marino 2017-02-04 17:25:59 +00:00
parent a2a40c8989
commit a6b8e36be9
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=433328
5 changed files with 26 additions and 241 deletions

View File

@ -6,8 +6,6 @@ LIB_DEPENDS= libgmp.so:math/gmp
LIB_DEPENDS+= libmpfr.so:math/mpfr
LIB_DEPENDS+= libmpc.so:math/mpc
ONLY_FOR_ARCHS= i386 amd64
GNU_CONFIGURE= yes
USES= gmake libtool perl5 tar:bzip2
USE_PERL5= build

View File

@ -3,13 +3,13 @@
GCC_BRANCH= 6
GCC_POINT= 3.0
GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT}
SNAPSHOT= 20161221
BUILD_RELEASE= yes
SNAPSHOT= 20170202
BUILD_RELEASE= no
MAIN_PR= 0
UTIL_PR= 0
ARMV7_PR= 1
ARM64_PR= 1
X86_PR= 1
ARMV7_PR= 0
ARM64_PR= 0
X86_PR= 0
.if ${BUILD_RELEASE:Mno}
# Snapshot naming pattern

View File

@ -1,6 +1,6 @@
TIMESTAMP = 1482513153
SHA256 (gcc-6.3.0.tar.bz2) = f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f
SIZE (gcc-6.3.0.tar.bz2) = 99903185
TIMESTAMP = 1486228092
SHA256 (gcc-6-20170202.tar.bz2) = 339411f9ec780ba1f779417ea2a3206b69ee11de293aea27fff4658d7e56d0c5
SIZE (gcc-6-20170202.tar.bz2) = 95743873
SHA256 (ada-bootstrap.i386.freebsd.100B.tar.bz2) = 7231209f2600275f554f788ad1d036cf633c4339ebd25bd479a5bb1ddcddedf3
SIZE (ada-bootstrap.i386.freebsd.100B.tar.bz2) = 41229192
SHA256 (ada-bootstrap.x86_64.dragonfly.41.tar.bz2) = eb7785d8b842aee2bb04b43adfb1346b178ee4e83d8775b4e6705fd23f1586f0

View File

@ -9,150 +9,30 @@
%{symbolic:-Bsymbolic}"
#undef LINK_SPEC
--- /dev/null
--- gcc/config/aarch64/aarch64-freebsd.h.orig
+++ gcc/config/aarch64/aarch64-freebsd.h
@@ -0,0 +1,97 @@
+/* Definitions for AArch64 running FreeBSD
+ Copyright (C) 2016 Free Software Foundation, Inc.
+
+ This file is part of GCC.
+
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ GCC is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_AARCH64_FREEBSD_H
+#define GCC_AARCH64_FREEBSD_H
+
+#undef SUBTARGET_CPP_SPEC
+#define SUBTARGET_CPP_SPEC FBSD_CPP_SPEC
+
+#if TARGET_BIG_ENDIAN_DEFAULT
+#define TARGET_LINKER_EMULATION "aarch64fbsdb"
+#else
+#define TARGET_LINKER_EMULATION "aarch64fbsd"
+#endif
+
+#undef SUBTARGET_EXTRA_LINK_SPEC
+#define SUBTARGET_EXTRA_LINK_SPEC " -m" TARGET_LINKER_EMULATION
+
+#undef FBSD_TARGET_LINK_SPEC
+#define FBSD_TARGET_LINK_SPEC " \
+ %{p:%nconsider using `-pg' instead of `-p' with gprof (1) } \
+ %{v:-V} \
+ %{assert*} %{R*} %{rpath*} %{defsym*} \
+ %{shared:-Bshareable %{h*} %{soname*}} \
+ %{symbolic:-Bsymbolic} \
+ %{static:-Bstatic} \
+ %{!static: \
+ %{!static: --hash-style=gnu -rpath @PREFIX@/@GCCAUX@/lib} \
+ %{rdynamic:-export-dynamic} \
+ %{!shared:-dynamic-linker " FBSD_DYNAMIC_LINKER " }} \
+ -X" SUBTARGET_EXTRA_LINK_SPEC " \
+ %{mbig-endian:-EB} %{mlittle-endian:-EL}"
+
+#if TARGET_FIX_ERR_A53_835769_DEFAULT
+#define CA53_ERR_835769_SPEC \
+ " %{!mno-fix-cortex-a53-835769:--fix-cortex-a53-835769}"
+#else
+#define CA53_ERR_835769_SPEC \
+ " %{mfix-cortex-a53-835769:--fix-cortex-a53-835769}"
+#endif
+
+#ifdef TARGET_FIX_ERR_A53_843419_DEFAULT
+#define CA53_ERR_843419_SPEC \
+ " %{!mno-fix-cortex-a53-843419:--fix-cortex-a53-843419}"
+#else
+#define CA53_ERR_843419_SPEC \
+ " %{mfix-cortex-a53-843419:--fix-cortex-a53-843419}"
+#endif
+
+#undef LINK_SPEC
+#define LINK_SPEC FBSD_TARGET_LINK_SPEC \
+ CA53_ERR_835769_SPEC \
+ CA53_ERR_843419_SPEC
+
+#define GNU_USER_TARGET_MATHFILE_SPEC \
+ "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}"
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC \
+ GNU_USER_TARGET_MATHFILE_SPEC " " \
+ FBSD_ENDFILE_SPEC
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ FBSD_TARGET_OS_CPP_BUILTINS (); \
+ } \
+ while (false)
+
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+
+/* Uninitialized common symbols in non-PIE executables, even with
+ strong definitions in dependent shared libraries, will resolve
+ to COPY relocated symbol in the executable. See PR65780. */
+#undef TARGET_BINDS_LOCAL_P
+#define TARGET_BINDS_LOCAL_P default_binds_local_p_2
+
@@ -41,6 +41,7 @@
%{symbolic:-Bsymbolic} \
%{static:-Bstatic} \
%{!static: \
+ %{!static:--hash-style=gnu -rpath @PREFIX@/@GCCAUX@/lib} \
%{rdynamic:-export-dynamic} \
%{!shared:-dynamic-linker " FBSD_DYNAMIC_LINKER " }} \
-X" SUBTARGET_EXTRA_LINK_SPEC " \
@@ -91,4 +92,6 @@
#undef TARGET_BINDS_LOCAL_P
#define TARGET_BINDS_LOCAL_P default_binds_local_p_2
+/* Static stack checking is supported by means of probes. */
+#define STACK_CHECK_STATIC_BUILTIN 1
+#endif /* GCC_AARCH64_FREEBSD_H */
--- /dev/null
+++ gcc/config/aarch64/t-aarch64-freebsd
@@ -0,0 +1,21 @@
+# Machine description for AArch64 architecture.
+# Copyright (C) 2016 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+LIB1ASMSRC = aarch64/lib1funcs.asm
+LIB1ASMFUNCS = _aarch64_sync_cache_range
#endif /* GCC_AARCH64_FREEBSD_H */
--- gcc/config/i386/freebsd.h.orig
+++ gcc/config/i386/freebsd.h
@@ -77,6 +77,12 @@
When the -shared link option is used a final link is not being
done. */
+#if FBSD_MAJOR < 10
+#define ELF_HASH_STYLE "--hash-style=both "
+#else
+#define ELF_HASH_STYLE "--hash-style=gnu "
+#endif
+
#undef LINK_SPEC
#define LINK_SPEC "\
%{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \
@@ -88,6 +94,7 @@
@@ -88,6 +88,7 @@
%{rdynamic:-export-dynamic} \
-dynamic-linker %(fbsd_dynamic_linker) } \
%{static:-Bstatic}} \
+ %{!static:" ELF_HASH_STYLE "-rpath @PREFIX@/@GCCAUX@/lib} \
+ %{!static:--hash-style=gnu -rpath @PREFIX@/@GCCAUX@/lib} \
%{symbolic:-Bsymbolic}"
/* A C statement to output to the stdio stream FILE an assembler
@ -162,20 +42,8 @@
%{rdynamic:-export-dynamic} \
-dynamic-linker %(fbsd_dynamic_linker) } \
%{static:-Bstatic}} \
+ %{!static:" ELF_HASH_STYLE "-rpath @PREFIX@/@GCCAUX@/lib} \
+ %{!static:--hash-style=gnu -rpath @PREFIX@/@GCCAUX@/lib} \
%{symbolic:-Bsymbolic}"
--- configure.orig
+++ configure
@@ -3483,6 +3483,9 @@
*-*-vxworks*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
+ aarch64*-*-freebsd*)
+ noconfigdirs="$noconfigdirs target-libffi"
+ ;;
alpha*-*-*vms*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
--- gcc/Makefile.in.orig
+++ gcc/Makefile.in
@@ -1185,7 +1185,6 @@
@ -237,84 +105,3 @@
if [ ! -f gcc-cross$(exeext) ] \
&& [ "$(GCC_INSTALL_NAME)" != "$(GCC_TARGET_INSTALL_NAME)" ]; then \
rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-tmp$(exeext); \
--- gcc/config.gcc.orig
+++ gcc/config.gcc
@@ -941,6 +941,11 @@
done
TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
;;
+aarch64*-*-freebsd*)
+ tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
+ tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h"
+ tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
+ ;;
aarch64*-*-linux*)
tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
@@ -1445,12 +1450,16 @@
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
;;
i[34567]86-*-netbsdelf*)
- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h freebsd-stdint.h"
extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+ tmake_file="${tmake_file} i386/t-crtstuff"
+ use_gcc_stdint=wrap
;;
x86_64-*-netbsd*)
- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h freebsd-stdint.h"
extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+ tmake_file="${tmake_file} i386/t-crtstuff"
+ use_gcc_stdint=wrap
;;
i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h"
--- gcc/config.host.orig
+++ gcc/config.host
@@ -99,7 +99,7 @@
esac
case ${host} in
- aarch64*-*-linux*)
+ aarch64*-*-freebsd* | aarch64*-*-linux*)
case ${target} in
aarch64*-*-*)
host_extra_gcc_objs="driver-aarch64.o"
--- libgcc/config.host.orig
+++ libgcc/config.host
@@ -242,7 +242,8 @@
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
;;
*-*-netbsd*)
- tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
+ tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
+ tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
# NetBSD 1.7 and later are set up to use GCC's crtstuff for
# ELF configurations. We will clear extra_parts in the
# a.out configurations.
@@ -333,6 +334,11 @@
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
;;
+aarch64*-*-freebsd*)
+ extra_parts="$extra_parts crtfastmath.o"
+ tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
+ ;;
aarch64*-*-linux*)
extra_parts="$extra_parts crtfastmath.o"
md_unwind_header=aarch64/linux-unwind.h
@@ -597,9 +603,12 @@
md_unwind_header=i386/freebsd-unwind.h
;;
i[34567]86-*-netbsdelf*)
+ tmake_file="${tmake_file} i386/t-crtstuff"
+ #md_unwind_header=i386/netbsd-unwind.h
;;
x86_64-*-netbsd*)
tmake_file="${tmake_file} i386/t-crtstuff"
+ #md_unwind_header=i386/netbsd-unwind.h
;;
i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
;;

View File

@ -47,7 +47,7 @@
#include <errno.h>
--- libstdc++-v3/src/filesystem/dir.cc.orig
+++ libstdc++-v3/src/filesystem/dir.cc
@@ -147,7 +147,13 @@
@@ -146,7 +146,13 @@
int err = std::exchange(errno, 0);
const auto entp = readdir(dirp);