tool_chain: update GCC to version 8.3.0

Issue #3307
This commit is contained in:
Christian Prochaska 2019-03-19 14:01:17 +01:00 committed by Christian Helmuth
parent 96ed3c8db0
commit 1720d2d86d
22 changed files with 150 additions and 11251 deletions

View File

@ -1 +1 @@
bb5f453eb95cd3b402b7da4c577a44d40901d9b4
8c08fffc2bffe76384cab49019d889ff4d3e086c

View File

@ -1,9 +1,9 @@
LICENSE := GPLv3
VERSION := 6.3.0
VERSION := 8.3.0
DOWNLOADS := gcc.archive
URL(gcc) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.bz2
SHA(gcc) := f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f
URL(gcc) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.xz
SHA(gcc) := 64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c
SIG(gcc) := ${URL(gcc)}.sig
KEY(gcc) := GNU
DIR(gcc) := src/noux-pkg/gcc
@ -12,6 +12,8 @@ PATCHES := $(addprefix ${DIR(gcc)}/patches/, \
$(shell cat $(REP_DIR)/${DIR(gcc)}/patches/series))
PATCH_OPT := -p1 -d ${DIR(gcc)}
HASH_INPUT += $(REP_DIR)/${DIR(gcc)}/patches/series
AUTOCONF := autoconf2.64
$(call check_tool,$(AUTOCONF))

View File

@ -4,15 +4,15 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
---
gcc/config/arm/arm.h | 3 +--
gcc/config/arm/arm.h | 7 ++-----
libgcc/config/arm/unwind-arm.h | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index ad123dd..31ccb95 100644
index da8196f..c36b8ee 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -865,7 +865,7 @@ extern int arm_arch_crc;
@@ -862,7 +862,7 @@ extern int arm_arch_cmse;
#define EH_RETURN_STACKADJ_RTX gen_rtx_REG (SImode, ARM_EH_STACKADJ_REGNUM)
#ifndef ARM_TARGET2_DWARF_FORMAT
@ -21,24 +21,28 @@ index ad123dd..31ccb95 100644
#endif
/* ttype entries (the only interesting data references used)
@@ -2250,7 +2250,6 @@ extern const char *arm_rewrite_mcpu (int argc, const char **argv);
@@ -2196,10 +2196,7 @@ extern const char *arm_target_thumb_only (int argc, const char **argv);
/* -mcpu=native handling only makes sense with compiler running on
an ARM chip. */
#if defined(__arm__)
extern const char *host_detect_local_cpu (int argc, const char **argv);
# define EXTRA_SPEC_FUNCTIONS \
- { "local_cpu_detect", host_detect_local_cpu }, \
BIG_LITTLE_CPU_SPEC_FUNCTIONS
# define MCPU_MTUNE_NATIVE_SPECS \
-extern const char *host_detect_local_cpu (int argc, const char **argv);
-#define HAVE_LOCAL_CPU_DETECT
-# define MCPU_MTUNE_NATIVE_FUNCTIONS \
- { "local_cpu_detect", host_detect_local_cpu },
+# define MCPU_MTUNE_NATIVE_FUNCTIONS
# define MCPU_MTUNE_NATIVE_SPECS \
" %{march=native:%<march=native %:local_cpu_detect(arch)}" \
" %{mcpu=native:%<mcpu=native %:local_cpu_detect(cpu)}" \
diff --git a/libgcc/config/arm/unwind-arm.h b/libgcc/config/arm/unwind-arm.h
index d67383f..9812a47 100644
index 9f7d3f2..a576367 100644
--- a/libgcc/config/arm/unwind-arm.h
+++ b/libgcc/config/arm/unwind-arm.h
@@ -49,7 +49,7 @@ extern "C" {
return 0;
#if (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__) \
- || defined(__FreeBSD__)
+ || defined(__FreeBSD__) || 1
- || defined(__FreeBSD__) || defined(__fuchsia__)
+ || defined(__FreeBSD__) || defined(__fuchsia__) || 1
/* Pc-relative indirect. */
#define _GLIBCXX_OVERRIDE_TTYPE_ENCODING (DW_EH_PE_pcrel | DW_EH_PE_indirect)
tmp += ptr;

View File

@ -1,12 +1,21 @@
commit 3f0b1ef2e5aebf896033ee5f78635d349807fc08
Author: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
Date: Wed May 3 14:15:07 2017 +0200
config.patch
From: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
---
gcc/config.gcc | 2 +-
gcc/config/arm/arm.h | 4 ++--
gcc/config/arm/unknown-elf.h | 16 ++++++++++++++++
gcc/config/i386/x86-64.h | 23 +++++++++++++++++++++--
libgcc/config.host | 16 ++++++++++++----
5 files changed, 52 insertions(+), 9 deletions(-)
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 263739c..2bc831e 100644
index 7af8e02..3c87dfb 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1123,7 +1123,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
@@ -1184,7 +1184,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
case ${target} in
arm*-*-eabi*)
tm_file="$tm_file newlib-stdint.h"
@ -14,11 +23,12 @@ index 263739c..2bc831e 100644
+ tmake_file="${tmake_file} arm/t-bpabi t-slibgcc"
use_gcc_stdint=wrap
;;
arm*-*-rtems*)
arm*-*-fuchsia*)
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 2809112..2476cb3 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -671,11 +671,11 @@
@@ -668,11 +668,11 @@ extern int arm_arch_cmse;
#define MAX_FIXED_MODE_SIZE 64
#ifndef SIZE_TYPE
@ -32,22 +42,11 @@ index 263739c..2bc831e 100644
#endif
/* AAPCS requires that structure alignment is affected by bitfields. */
@@ -2064,7 +2064,7 @@ riscv*-*-elf*)
xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
*) echo "Unknown value for enable_multilib"; exit 1
esac
- tmake_file="${tmake_file} riscv/t-riscv"
+ tmake_file="${tmake_file} riscv/t-riscv t-slibgcc"
gnu_ld=yes
gas=yes
# Force .init_array support. The configure script cannot always
diff --git a/gcc/config/arm/unknown-elf.h b/gcc/config/arm/unknown-elf.h
index fafe057..8bd23e0 100644
index 12dd093..ec0a72e 100644
--- a/gcc/config/arm/unknown-elf.h
+++ b/gcc/config/arm/unknown-elf.h
@@ -98,3 +98,19 @@
@@ -94,3 +94,19 @@
which will depend on abort, which is defined in libc. */
#undef LINK_GCC_C_SEQUENCE_SPEC
#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L --end-group"
@ -68,7 +67,7 @@ index fafe057..8bd23e0 100644
+/* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57699 */
+#define NO_IMPLICIT_EXTERN_C
diff --git a/gcc/config/i386/x86-64.h b/gcc/config/i386/x86-64.h
index 204f128..8f590fe 100644
index e2a8306..1c5e2e1 100644
--- a/gcc/config/i386/x86-64.h
+++ b/gcc/config/i386/x86-64.h
@@ -37,10 +37,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@ -107,22 +106,8 @@ index 204f128..8f590fe 100644
+/* Don't assume anything about the header files. */
+/* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57699 */
+#define NO_IMPLICIT_EXTERN_C
diff --git a/gcc/config/riscv/elf.h b/gcc/config/riscv/elf.h
index 391e59f..9271e17 100644
--- a/gcc/config/riscv/elf.h
+++ b/gcc/config/riscv/elf.h
@@ -19,7 +19,8 @@ along with GCC; see the file COPYING3. If not see
#define LINK_SPEC "\
-melf" XLEN_SPEC "lriscv \
-%{shared}"
+%{shared:-shared} \
+%{!static:--eh-frame-hdr}"
/* Link against Newlib libraries, because the ELF backend assumes Newlib.
Handle the circular dependence between libc and libgloss. */
diff --git a/libgcc/config.host b/libgcc/config.host
index 40e3038..fd206a4 100644
index 11b4aca..5e9cfa8 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -312,7 +312,7 @@ case ${host} in
@ -134,7 +119,7 @@ index 40e3038..fd206a4 100644
;;
esac
@@ -417,8 +417,12 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
@@ -449,8 +449,12 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
tm_file="$tm_file arm/bpabi-lib.h"
case ${host} in
arm*-*-eabi* | arm*-*-rtems*)
@ -148,7 +133,7 @@ index 40e3038..fd206a4 100644
;;
arm*-*-symbianelf*)
tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override"
@@ -588,6 +592,10 @@ i[34567]86-*-elf*)
@@ -610,6 +614,10 @@ i[34567]86-*-elf*)
tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
;;
x86_64-*-elf* | x86_64-*-rtems*)
@ -158,9 +143,9 @@ index 40e3038..fd206a4 100644
+ tmake_file="$tmake_file t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
;;
i[34567]86-*-dragonfly*)
@@ -1104,8 +1112,8 @@ riscv*-*-linux*)
md_unwind_header=riscv/linux-unwind.h
x86_64-*-fuchsia*)
@@ -1133,8 +1141,8 @@ riscv*-*-freebsd*)
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
;;
riscv*-*-*)
- tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"

View File

@ -8,7 +8,7 @@ Remove the dependency on libbacktrace, which needs a libc.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/go/config-lang.in b/gcc/go/config-lang.in
index 8e27ade..b326557 100644
index 79ee2e2..22eed3f 100644
--- a/gcc/go/config-lang.in
+++ b/gcc/go/config-lang.in
@@ -28,7 +28,7 @@ language="go"
@ -19,4 +19,4 @@ index 8e27ade..b326557 100644
+target_libs="target-libgo target-libffi"
lang_dirs="gotools"
# The Go frontend is written in C++, so we need to build the C++
gtfiles="\$(srcdir)/go/go-lang.c \$(srcdir)/go/go-c.h"

View File

@ -14,10 +14,10 @@ compiler as much as possible.
1 file changed, 1 deletion(-)
diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4
index ece1256..a73ce57 100644
index cb6e3af..a1cc79a 100644
--- a/libstdc++-v3/crossconfig.m4
+++ b/libstdc++-v3/crossconfig.m4
@@ -271,7 +271,6 @@ case "${host}" in
@@ -292,7 +292,6 @@ case "${host}" in
AC_DEFINE(HAVE_TANHF)
;;
*)

View File

@ -8,10 +8,10 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
1 file changed, 6 insertions(+)
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
index f09b39b..cabc562 100644
index dd8cee9..8cae772 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -913,7 +913,11 @@ all: libunwind.a
@@ -948,7 +948,11 @@ all: libunwind.a
endif
ifeq ($(enable_shared),yes)
@ -23,7 +23,7 @@ index f09b39b..cabc562 100644
ifneq ($(LIBUNWIND),)
all: libunwind$(SHLIB_EXT)
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
@@ -1115,9 +1119,11 @@ install-shared:
@@ -1154,9 +1158,11 @@ install-shared:
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a

View File

@ -8,7 +8,7 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
1 file changed, 6 insertions(+)
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
index fdc4622..ed8a338 100644
index 60152a5..7d7279b 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -89,9 +89,11 @@ CXXFLAGS="$save_CXXFLAGS"
@ -33,7 +33,7 @@ index fdc4622..ed8a338 100644
# For gettimeofday support.
GLIBCXX_CHECK_GETTIMEOFDAY
@@ -362,7 +366,9 @@ GCC_CHECK_UNWIND_GETIPINFO
@@ -370,7 +374,9 @@ GCC_CHECK_UNWIND_GETIPINFO
GCC_LINUX_FUTEX([AC_DEFINE(HAVE_LINUX_FUTEX, 1, [Define if futex syscall is available.])])

View File

@ -10,7 +10,7 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
3 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/include/libiberty.h b/include/libiberty.h
index a9c885f..a1479af 100644
index dc09e79..2726453 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -46,7 +46,11 @@ extern "C" {
@ -26,10 +26,10 @@ index a9c885f..a1479af 100644
/* If the OS supports it, ensure that the supplied stream is setup to
avoid any multi-threaded locking. Otherwise leave the FILE pointer
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index 78e5978..d9da7a4 100644
index 3f2a097..0d4a83d 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -107,7 +107,9 @@
@@ -106,7 +106,9 @@
#include "config.h"
#endif
@ -39,7 +39,7 @@ index 78e5978..d9da7a4 100644
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
@@ -6187,7 +6189,7 @@ d_demangle (const char *mangled, int options, size_t *palc)
@@ -6309,7 +6311,7 @@ d_demangle (const char *mangled, int options, size_t *palc)
return dgs.buf;
}
@ -49,13 +49,13 @@ index 78e5978..d9da7a4 100644
extern char *__cxa_demangle (const char *, char *, size_t *, int *);
diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in
index f3648ac..169b927 100644
index 37644e8..1ec97bb 100644
--- a/libstdc++-v3/libsupc++/Makefile.in
+++ b/libstdc++-v3/libsupc++/Makefile.in
@@ -128,7 +128,11 @@ am__objects_1 = array_type_info.lo atexit_arm.lo atexit_thread.lo \
pbase_type_info.lo pmem_type_info.lo pointer_type_info.lo \
pure.lo si_class_type_info.lo tinfo.lo tinfo2.lo vec.lo \
vmi_class_type_info.lo vterminate.lo
@@ -131,7 +131,11 @@ am__objects_1 = array_type_info.lo atexit_arm.lo atexit_thread.lo \
del_opvsa.lo pbase_type_info.lo pmem_type_info.lo \
pointer_type_info.lo pure.lo si_class_type_info.lo tinfo.lo \
tinfo2.lo vec.lo vmi_class_type_info.lo vterminate.lo
+ifeq ($(GENODE),yes)
+am__objects_2 = cp-demangle.lo
+else
@ -64,8 +64,8 @@ index f3648ac..169b927 100644
@ENABLE_VTABLE_VERIFY_TRUE@@VTV_CYGMIN_FALSE@am__objects_3 = \
@ENABLE_VTABLE_VERIFY_TRUE@@VTV_CYGMIN_FALSE@ vtv_stubs.lo
am_libsupc___la_OBJECTS = $(am__objects_1) $(am__objects_2) \
@@ -398,8 +402,14 @@ bits_HEADERS = \
exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h
@@ -404,8 +408,14 @@ bits_HEADERS = \
exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h exception.h cxxabi_init_exception.h
headers = $(std_HEADERS) $(bits_HEADERS)
+
@ -80,7 +80,7 @@ index f3648ac..169b927 100644
sources = \
array_type_info.cc \
@@ -840,10 +850,17 @@ uninstall-am: uninstall-bitsHEADERS uninstall-stdHEADERS \
@@ -856,10 +866,17 @@ uninstall-am: uninstall-bitsHEADERS uninstall-stdHEADERS \
cp-demangle.c:
rm -f $@
$(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@
@ -96,5 +96,5 @@ index f3648ac..169b927 100644
$(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
+endif
# Use special rules for the C++11 sources so that the proper flags are passed.
bad_array_length.lo: bad_array_length.cc
# Use special rules for the C++17 sources so that the proper flags are passed.
new_opa.lo: new_opa.cc

View File

@ -9,7 +9,7 @@ Changes lacking documentation
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgcc/config/t-libunwind-elf b/libgcc/config/t-libunwind-elf
index cfde66e..aacf57c 100644
index 5172135..9fe9808 100644
--- a/libgcc/config/t-libunwind-elf
+++ b/libgcc/config/t-libunwind-elf
@@ -32,7 +32,7 @@ SHLIBUNWIND_SONAME = @shlib_base_name@.so.$(SHLIBUNWIND_SOVERSION)
@ -22,7 +22,7 @@ index cfde66e..aacf57c 100644
if [ -f $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) ]; then \
mv -f $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) \
diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc
index 8c5f890..f2285a3 100644
index 7e60b62..0753b0b 100644
--- a/libgcc/config/t-slibgcc
+++ b/libgcc/config/t-slibgcc
@@ -26,7 +26,7 @@ SHLIB_MAP = @shlib_map_file@

View File

@ -0,0 +1,31 @@
new_opa.patch
From: Christian Prochaska <christian.prochaska@genode-labs.com>
---
libstdc++-v3/libsupc++/new_opa.cc | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libstdc++-v3/libsupc++/new_opa.cc b/libstdc++-v3/libsupc++/new_opa.cc
index 68eac5b..5e647ff 100644
--- a/libstdc++-v3/libsupc++/new_opa.cc
+++ b/libstdc++-v3/libsupc++/new_opa.cc
@@ -25,7 +25,7 @@
#include <bits/c++config.h>
#include <stdlib.h>
-#include <stdint.h>
+#include <stdint-gcc.h> /* stdint.h would call 'include_next' */
#include <bits/exception_defines.h>
#include "new"
@@ -39,6 +39,8 @@ extern "C" void *memalign(std::size_t boundary, std::size_t size);
# endif
#endif
+extern "C" void *malloc (std::size_t);
+
using std::new_handler;
using std::bad_alloc;

View File

@ -4,19 +4,19 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
Ensure -fno-short-enums as default.
---
gcc/config/arm/arm.c | 2 +-
gcc/config/arm/arm.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index f0fde72..4442c66 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -26418,7 +26418,7 @@ arm_promote_function_mode (const_tree type ATTRIBUTE_UNUSED,
static bool
arm_default_short_enums (void)
{
- return TARGET_AAPCS_BASED && arm_abi != ARM_ABI_AAPCS_LINUX;
+ return false;
}
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 2476cb3..da8196f 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -361,7 +361,7 @@ extern int arm_fpu_attr;
/* AAPCS based ABIs use short enums by default. */
#ifndef ARM_DEFAULT_SHORT_ENUMS
#define ARM_DEFAULT_SHORT_ENUMS \
- (TARGET_AAPCS_BASED && arm_abi != ARM_ABI_AAPCS_LINUX)
+ (TARGET_AAPCS_BASED && arm_abi != ARM_ABI_AAPCS_LINUX && 0)
#endif
/* Map each of the micro-architecture variants to their corresponding

View File

@ -10,14 +10,13 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
gcc/Makefile.in | 6 +++---
gcc/config.host | 2 +-
gcc/configure.ac | 4 ++--
gcc/gengtype-lex.c | 1 -
7 files changed, 17 insertions(+), 9 deletions(-)
6 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/Makefile.def b/Makefile.def
index ea8453e..201480f 100644
index 4b9f757..f67015f 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -288,6 +288,7 @@ flags_to_pass = { flag= GOCFLAGS_FOR_TARGET ; };
@@ -284,6 +284,7 @@ flags_to_pass = { flag= GOCFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= LD_FOR_TARGET ; };
flags_to_pass = { flag= LIPO_FOR_TARGET ; };
flags_to_pass = { flag= LDFLAGS_FOR_TARGET ; };
@ -26,7 +25,7 @@ index ea8453e..201480f 100644
flags_to_pass = { flag= LIBCXXFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= NM_FOR_TARGET ; };
diff --git a/Makefile.tpl b/Makefile.tpl
index 6b2eb6a..a89f815 100644
index 1f23b79..0ed8b02 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -156,6 +156,8 @@ BUILD_EXPORTS = \
@ -35,10 +34,10 @@ index 6b2eb6a..a89f815 100644
CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \
+ LIBS="$(LIBS_FOR_BUILD)"; export LIBS; \
GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \
GOC="$(GOC_FOR_BUILD)"; export GOC; \
@@ -172,6 +174,7 @@ BUILD_EXPORTS = \
GOCFLAGS="$(GOCFLAGS_FOR_BUILD)"; export GOCFLAGS; \
@@ -171,6 +173,7 @@ BUILD_EXPORTS = \
# built for the build system to override those in BASE_FLAGS_TO_PASS.
EXTRA_BUILD_FLAGS = \
CFLAGS="$(CFLAGS_FOR_BUILD)" \
@ -46,33 +45,33 @@ index 6b2eb6a..a89f815 100644
LDFLAGS="$(LDFLAGS_FOR_BUILD)"
# This is the list of directories to built for the host system.
@@ -194,6 +197,8 @@ HOST_EXPORTS = \
@@ -193,6 +196,8 @@ HOST_EXPORTS = \
CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
CXX="$(CXX)"; export CXX; \
CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+ CPPFLAGS="$(CPPFLAGS)"; export CPPFLAGS; \
+ LIBS="$(LIBS)"; export LIBS; \
GCJ="$(GCJ)"; export GCJ; \
GFORTRAN="$(GFORTRAN)"; export GFORTRAN; \
GOC="$(GOC)"; export GOC; \
@@ -281,6 +286,7 @@ BASE_TARGET_EXPORTS = \
AR="$(AR)"; export AR; \
@@ -278,6 +283,7 @@ BASE_TARGET_EXPORTS = \
CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+ LIBS="$(LIBS_FOR_TARGET)"; export LIBS; \
CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
GCJ="$(GCJ_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GCJ; \
GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \
@@ -660,6 +666,7 @@ EXTRA_TARGET_FLAGS = \
GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \
@@ -664,6 +670,7 @@ EXTRA_TARGET_FLAGS = \
-B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \
$$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
+ 'CPPFLAGS=$$(CPPFLAGS_FOR_TARGET)' \
'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
'GCJ=$$(GCJ_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
diff --git a/fixincludes/Makefile.in b/fixincludes/Makefile.in
index 5dc1b23..57e6afa 100644
index 1937dca..60e2b27 100644
--- a/fixincludes/Makefile.in
+++ b/fixincludes/Makefile.in
@@ -28,6 +28,7 @@ STAMP = echo timestamp >
@ -98,10 +97,10 @@ index 5dc1b23..57e6afa 100644
$(AF): $(FIXOBJ) $(LIBIBERTY)
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 13d0d1b..88f3ef5 100644
index 20bee04..7df7092 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -779,7 +779,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@
@@ -800,7 +800,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@
BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@
BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG)
BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
@ -110,7 +109,7 @@ index 13d0d1b..88f3ef5 100644
# Actual name to use when installing a native compiler.
GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
@@ -1031,8 +1031,8 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
@@ -1056,8 +1056,8 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
# How to link with both our special library facilities
# and the system's installed libraries.
@ -122,23 +121,23 @@ index 13d0d1b..88f3ef5 100644
$(ZLIB)
# Any system libraries needed just for GNAT.
diff --git a/gcc/config.host b/gcc/config.host
index 44f2f56..961dc0f 100644
index c65569d..b5a4eb1 100644
--- a/gcc/config.host
+++ b/gcc/config.host
@@ -107,7 +107,7 @@ case ${host} in
;;
esac
;;
- arm*-*-freebsd* | arm*-*-linux*)
- arm*-*-freebsd* | arm*-*-linux* | arm*-*-fuchsia*)
+ arm*-*-*)
case ${target} in
arm*-*-*)
host_extra_gcc_objs="driver-arm.o"
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 4c65d44..8a9a93c 100644
index b066cc6..fa1d2f0 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1688,8 +1688,8 @@ else
@@ -1707,8 +1707,8 @@ else
# system.h from including gmp.h.
CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
@ -149,12 +148,3 @@ index 4c65d44..8a9a93c 100644
${realsrcdir}/configure \
--enable-languages=${enable_languages-all} \
--target=$target_alias --host=$build_alias --build=$build_alias
diff --git a/gcc/gengtype-lex.c b/gcc/gengtype-lex.c
index dcf6983..7a96f93 100644
--- a/gcc/gengtype-lex.c
+++ b/gcc/gengtype-lex.c
@@ -1,4 +1,3 @@
-#include "bconfig.h"
#line 2 "gengtype-lex.c"
#line 4 "gengtype-lex.c"

View File

@ -13,7 +13,7 @@ nothing rather than '-prefer-pic'.
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
index 9e19e99..fdc4622 100644
index 0ef9627..60152a5 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -115,16 +115,16 @@ fi

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,3 @@
riscv.patch
config.patch
misc.patch
no_short_enums.patch
@ -11,5 +10,4 @@ go_libbacktrace.patch
target_libbacktrace.patch
noux_build.patch
arm.patch
ubsan.patch
ucontext_t.patch
new_opa.patch

View File

@ -8,10 +8,10 @@ Don't build libbacktrace, which needs a libc.
1 file changed, 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 74bf58a..dbfaf4d 100644
index c343333..87428a5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -151,7 +151,6 @@ libgcj="target-libffi \
@@ -146,7 +146,6 @@ host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb
# the host libraries and the host tools (which may be a cross compiler)
# Note that libiberty is not a target library.
target_libraries="target-libgcc \

View File

@ -1,32 +0,0 @@
From c0c52589c6a7265e8fc6b77706a83d22aa1ef0ce Mon Sep 17 00:00:00 2001
From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 26 Jan 2017 10:46:01 +0000
Subject: [PATCH] 2017-01-26 Richard Biener <rguenther@suse.de>
Backport from mainline
2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
* ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@244923 138bc75d-0d04-0410-961f-82ee72b054a4
cproc: removed ChangeLog part (didn't apply)
---
gcc/ChangeLog | 7 +++++++
gcc/ubsan.c | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index 56637d8f0a9e..109382498fda 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -1471,7 +1471,7 @@ ubsan_use_new_style_p (location_t loc)
expanded_location xloc = expand_location (loc);
if (xloc.file == NULL || strncmp (xloc.file, "\1", 2) == 0
- || xloc.file == '\0' || xloc.file[0] == '\xff'
+ || xloc.file[0] == '\0' || xloc.file[0] == '\xff'
|| xloc.file[1] == '\xff')
return false;

View File

@ -1,192 +0,0 @@
From b685411208e0aaa79190d54faf945763514706b8 Mon Sep 17 00:00:00 2001
From: jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 4 Jul 2017 10:23:57 +0000
Subject: [PATCH] Use ucontext_t not struct ucontext in linux-unwind.h files.
Current glibc no longer gives the ucontext_t type the tag struct
ucontext, to conform with POSIX namespace rules. This requires
various linux-unwind.h files in libgcc, that were previously using
struct ucontext, to be fixed to use ucontext_t instead. This is
similar to the removal of the struct siginfo tag from siginfo_t some
years ago.
This patch changes those files to use ucontext_t instead. As the
standard name that should be unconditionally safe, so this is not
restricted to architectures supported by glibc, or conditioned on the
glibc version.
Tested compilation together with current glibc with glibc's
build-many-glibcs.py.
* config/aarch64/linux-unwind.h (aarch64_fallback_frame_state),
config/alpha/linux-unwind.h (alpha_fallback_frame_state),
config/bfin/linux-unwind.h (bfin_fallback_frame_state),
config/i386/linux-unwind.h (x86_64_fallback_frame_state,
x86_fallback_frame_state), config/m68k/linux-unwind.h (struct
uw_ucontext), config/nios2/linux-unwind.h (struct nios2_ucontext),
config/pa/linux-unwind.h (pa32_fallback_frame_state),
config/sh/linux-unwind.h (sh_fallback_frame_state),
config/tilepro/linux-unwind.h (tile_fallback_frame_state),
config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Use
ucontext_t instead of struct ucontext.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@249957 138bc75d-0d04-0410-961f-82ee72b054a4
cproc: removed ChangeLog part (didn't apply)
---
libgcc/ChangeLog | 14 ++++++++++++++
libgcc/config/aarch64/linux-unwind.h | 2 +-
libgcc/config/alpha/linux-unwind.h | 2 +-
libgcc/config/bfin/linux-unwind.h | 2 +-
libgcc/config/i386/linux-unwind.h | 4 ++--
libgcc/config/m68k/linux-unwind.h | 2 +-
libgcc/config/nios2/linux-unwind.h | 2 +-
libgcc/config/pa/linux-unwind.h | 2 +-
libgcc/config/sh/linux-unwind.h | 2 +-
libgcc/config/tilepro/linux-unwind.h | 2 +-
libgcc/config/xtensa/linux-unwind.h | 2 +-
11 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/libgcc/config/aarch64/linux-unwind.h b/libgcc/config/aarch64/linux-unwind.h
index 4512efb..06de45a 100644
--- a/libgcc/config/aarch64/linux-unwind.h
+++ b/libgcc/config/aarch64/linux-unwind.h
@@ -52,7 +52,7 @@ aarch64_fallback_frame_state (struct _Unwind_Context *context,
struct rt_sigframe
{
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
};
struct rt_sigframe *rt_;
diff --git a/libgcc/config/alpha/linux-unwind.h b/libgcc/config/alpha/linux-unwind.h
index bdbba4a..e84812e 100644
--- a/libgcc/config/alpha/linux-unwind.h
+++ b/libgcc/config/alpha/linux-unwind.h
@@ -51,7 +51,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
{
struct rt_sigframe {
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_ = context->cfa;
sc = &rt_->uc.uc_mcontext;
}
diff --git a/libgcc/config/bfin/linux-unwind.h b/libgcc/config/bfin/linux-unwind.h
index 77b7c23..8bf5e82 100644
--- a/libgcc/config/bfin/linux-unwind.h
+++ b/libgcc/config/bfin/linux-unwind.h
@@ -52,7 +52,7 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
void *puc;
char retcode[8];
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
diff --git a/libgcc/config/i386/linux-unwind.h b/libgcc/config/i386/linux-unwind.h
index 540a0a2..29efbe3 100644
--- a/libgcc/config/i386/linux-unwind.h
+++ b/libgcc/config/i386/linux-unwind.h
@@ -58,7 +58,7 @@ x86_64_fallback_frame_state (struct _Unwind_Context *context,
if (*(unsigned char *)(pc+0) == 0x48
&& *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
{
- struct ucontext *uc_ = context->cfa;
+ ucontext_t *uc_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
The aliasing warning is correct, but should not be a problem
because it does not alias anything. */
@@ -138,7 +138,7 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
siginfo_t *pinfo;
void *puc;
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
The aliasing warning is correct, but should not be a problem
diff --git a/libgcc/config/m68k/linux-unwind.h b/libgcc/config/m68k/linux-unwind.h
index 75b7cf7..f964e24 100644
--- a/libgcc/config/m68k/linux-unwind.h
+++ b/libgcc/config/m68k/linux-unwind.h
@@ -33,7 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
/* <sys/ucontext.h> is unfortunately broken right now. */
struct uw_ucontext {
unsigned long uc_flags;
- struct ucontext *uc_link;
+ ucontext_t *uc_link;
stack_t uc_stack;
mcontext_t uc_mcontext;
unsigned long uc_filler[80];
diff --git a/libgcc/config/nios2/linux-unwind.h b/libgcc/config/nios2/linux-unwind.h
index 2304142..30f25ea 100644
--- a/libgcc/config/nios2/linux-unwind.h
+++ b/libgcc/config/nios2/linux-unwind.h
@@ -38,7 +38,7 @@ struct nios2_mcontext {
struct nios2_ucontext {
unsigned long uc_flags;
- struct ucontext *uc_link;
+ ucontext_t *uc_link;
stack_t uc_stack;
struct nios2_mcontext uc_mcontext;
sigset_t uc_sigmask; /* mask last for extensibility */
diff --git a/libgcc/config/pa/linux-unwind.h b/libgcc/config/pa/linux-unwind.h
index 9a2657f..e47493d 100644
--- a/libgcc/config/pa/linux-unwind.h
+++ b/libgcc/config/pa/linux-unwind.h
@@ -80,7 +80,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
struct sigcontext *sc;
struct rt_sigframe {
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *frame;
/* rt_sigreturn trampoline:
diff --git a/libgcc/config/sh/linux-unwind.h b/libgcc/config/sh/linux-unwind.h
index e389cac..0bf43ba 100644
--- a/libgcc/config/sh/linux-unwind.h
+++ b/libgcc/config/sh/linux-unwind.h
@@ -180,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
{
struct rt_sigframe {
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
The aliasing warning is correct, but should not be a problem
diff --git a/libgcc/config/tilepro/linux-unwind.h b/libgcc/config/tilepro/linux-unwind.h
index 796e976..75f8890 100644
--- a/libgcc/config/tilepro/linux-unwind.h
+++ b/libgcc/config/tilepro/linux-unwind.h
@@ -61,7 +61,7 @@ tile_fallback_frame_state (struct _Unwind_Context *context,
struct rt_sigframe {
unsigned char save_area[C_ABI_SAVE_AREA_SIZE];
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_;
/* Return if this is not a signal handler. */
diff --git a/libgcc/config/xtensa/linux-unwind.h b/libgcc/config/xtensa/linux-unwind.h
index 9872492..586a9d4 100644
--- a/libgcc/config/xtensa/linux-unwind.h
+++ b/libgcc/config/xtensa/linux-unwind.h
@@ -67,7 +67,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
struct rt_sigframe {
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_;
/* movi a2, __NR_rt_sigreturn; syscall */
--
2.9.3

View File

@ -6,9 +6,11 @@ CONFIGURE_ARGS = --program-prefix=$(PROGRAM_PREFIX) \
--target=$(GCC_TARGET) \
--enable-languages=c,c++ \
--disable-libgo \
--disable-gotools \
--disable-libssp \
--disable-libquadmath \
--disable-libffi \
--disable-libada \
--enable-targets=all \
--with-gnu-as \
--with-gnu-ld \
@ -17,7 +19,8 @@ CONFIGURE_ARGS = --program-prefix=$(PROGRAM_PREFIX) \
--disable-hosted-libstdcxx \
--enable-shared \
--enable-multiarch \
--disable-sjlj-exceptions
--disable-sjlj-exceptions \
--disable-nls
ENV += host_configargs="$(HOST_CONFIG_ARGS)" \
target_configargs="$(TARGET_CONFIG_ARGS)"

View File

@ -129,7 +129,7 @@ endif
# Empty DST_DIRS is interpreted as a tool-chain agnostic target, e.g., clean.
#
ifneq ($(DST_DIRS),)
REQUIRED_GCC_VERSION ?= 6.3.0
REQUIRED_GCC_VERSION ?= 8.3.0
GCC_VERSION := $(filter $(REQUIRED_GCC_VERSION) ,$(shell $(CUSTOM_CXX) --version))
ifneq ($(GCC_VERSION), $(REQUIRED_GCC_VERSION))
$(error "$(CUSTOM_CXX) version $(REQUIRED_GCC_VERSION) is required")

View File

@ -54,7 +54,7 @@ GENODE_DIR ?= $(realpath $(dir $(firstword $(MAKEFILE_LIST)))/..)
#
TOOL_CHAIN_VERSION = 19.05
GCC_VERSION = 6.3.0
GCC_VERSION = 8.3.0
BINUTILS_VERSION = 2.32
#