mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-29 15:44:02 +00:00
parent
6639261126
commit
9c05cda6e7
@ -19,19 +19,19 @@
|
||||
# package build tool.
|
||||
#
|
||||
ifeq ($(filter-out $(SPECS),x86_32),)
|
||||
CROSS_DEV_PREFIX ?= /usr/local/genode/tool/19.05/bin/genode-x86-
|
||||
CROSS_DEV_PREFIX ?= /usr/local/genode/tool/21.05/bin/genode-x86-
|
||||
endif
|
||||
ifeq ($(filter-out $(SPECS),x86_64),)
|
||||
CROSS_DEV_PREFIX ?= /usr/local/genode/tool/19.05/bin/genode-x86-
|
||||
CROSS_DEV_PREFIX ?= /usr/local/genode/tool/21.05/bin/genode-x86-
|
||||
endif
|
||||
ifeq ($(filter-out $(SPECS),arm_64),)
|
||||
CROSS_DEV_PREFIX ?= /usr/local/genode/tool/19.05/bin/genode-aarch64-
|
||||
CROSS_DEV_PREFIX ?= /usr/local/genode/tool/21.05/bin/genode-aarch64-
|
||||
endif
|
||||
ifeq ($(filter-out $(SPECS),arm),)
|
||||
CROSS_DEV_PREFIX ?= /usr/local/genode/tool/19.05/bin/genode-arm-
|
||||
CROSS_DEV_PREFIX ?= /usr/local/genode/tool/21.05/bin/genode-arm-
|
||||
endif
|
||||
ifeq ($(filter-out $(SPECS),riscv),)
|
||||
CROSS_DEV_PREFIX ?= /usr/local/genode/tool/19.05/bin/genode-riscv-
|
||||
CROSS_DEV_PREFIX ?= /usr/local/genode/tool/21.05/bin/genode-riscv-
|
||||
endif
|
||||
|
||||
#
|
||||
|
@ -1 +1 @@
|
||||
57d18597369498f11d7081072ad146bc506211ba
|
||||
bc8a730adbf377de2c449d222a0df0ba7096a4b8
|
||||
|
@ -1,9 +1,9 @@
|
||||
LICENSE := GPLv3
|
||||
VERSION := 8.3.0
|
||||
VERSION := 10.3.0
|
||||
DOWNLOADS := gcc.archive
|
||||
|
||||
URL(gcc) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.xz
|
||||
SHA(gcc) := 64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c
|
||||
SHA(gcc) := 64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344
|
||||
SIG(gcc) := ${URL(gcc)}.sig
|
||||
KEY(gcc) := GNU
|
||||
DIR(gcc) := src/noux-pkg/gcc
|
||||
@ -14,7 +14,9 @@ PATCH_OPT := -p1 -d ${DIR(gcc)}
|
||||
|
||||
HASH_INPUT += $(REP_DIR)/${DIR(gcc)}/patches/series
|
||||
|
||||
AUTOCONF := autoconf2.64
|
||||
# Required version is 2.69, but there is no versioned binary name on
|
||||
# Ubuntu right now like there has been for version 2.64.
|
||||
AUTOCONF := autoconf
|
||||
|
||||
$(call check_tool,$(AUTOCONF))
|
||||
$(call check_tool,autogen)
|
||||
|
@ -1,7 +1,4 @@
|
||||
gmp
|
||||
libc
|
||||
mpc
|
||||
mpfr
|
||||
noux
|
||||
posix
|
||||
stdcxx
|
||||
|
@ -244,7 +244,7 @@ install_config {
|
||||
# Boot modules
|
||||
#
|
||||
|
||||
append boot_modules { bash_profile genode.tar gmp.lib.so mpfr.lib.so mpc.lib.so }
|
||||
append boot_modules { bash_profile genode.tar }
|
||||
lappend boot_modules "$binutils.tar" "$gcc.tar"
|
||||
lappend boot_modules libc.lib.so vfs.lib.so vfs_pipe.lib.so vfs
|
||||
|
||||
|
@ -1,5 +1,17 @@
|
||||
|
||||
|
||||
From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
|
||||
|
||||
---
|
||||
gcc/config.host | 2 +-
|
||||
gcc/config/aarch64/aarch64.h | 12 ++++++++++++
|
||||
gcc/config/aarch64/t-aarch64 | 2 +-
|
||||
libgcc/config.host | 3 ++-
|
||||
4 files changed, 16 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/gcc/config.host b/gcc/config.host
|
||||
index b5a4eb1..64a85dc 100644
|
||||
index a14d7086e..3f5a781e1 100644
|
||||
--- a/gcc/config.host
|
||||
+++ b/gcc/config.host
|
||||
@@ -99,7 +99,7 @@ case ${host} in
|
||||
@ -12,12 +24,12 @@ index b5a4eb1..64a85dc 100644
|
||||
aarch64*-*-*)
|
||||
host_extra_gcc_objs="driver-aarch64.o"
|
||||
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
|
||||
index 976f9af..3c150d1 100644
|
||||
index 1ce23c687..f9d1f5c89 100644
|
||||
--- a/gcc/config/aarch64/aarch64.h
|
||||
+++ b/gcc/config/aarch64/aarch64.h
|
||||
@@ -1061,4 +1061,20 @@ extern poly_uint16 aarch64_sve_vg;
|
||||
|
||||
#define REGMODE_NATURAL_SIZE(MODE) aarch64_regmode_natural_size (MODE)
|
||||
@@ -1257,4 +1257,16 @@ extern poly_uint16 aarch64_sve_vg;
|
||||
STACK_BOUNDARY / BITS_PER_UNIT) \
|
||||
: (crtl->outgoing_args_size + STACK_POINTER_OFFSET))
|
||||
|
||||
+/* genode.h */
|
||||
+
|
||||
@ -30,17 +42,26 @@ index 976f9af..3c150d1 100644
|
||||
+#define LINK_SPEC \
|
||||
+ "%(shared:-shared) \
|
||||
+ %{!static:--eh-frame-hdr}"
|
||||
+
|
||||
+/* Don't assume anything about the header files. */
|
||||
+/* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57699 */
|
||||
+#define NO_IMPLICIT_EXTERN_C
|
||||
+
|
||||
#endif /* GCC_AARCH64_H */
|
||||
diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64
|
||||
index 11d20b7be..2568aa887 100644
|
||||
--- a/gcc/config/aarch64/t-aarch64
|
||||
+++ b/gcc/config/aarch64/t-aarch64
|
||||
@@ -136,7 +136,7 @@ aarch64-speculation.o: $(srcdir)/config/aarch64/aarch64-speculation.cc \
|
||||
$(TARGET_H) \
|
||||
$(RTL_BASE_H) \
|
||||
$(TREE_PASS_H)
|
||||
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_SPPFLAGS) $(INCLUDES) \
|
||||
+ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
|
||||
$(srcdir)/config/aarch64/aarch64-speculation.cc
|
||||
|
||||
falkor-tag-collision-avoidance.o: \
|
||||
diff --git a/libgcc/config.host b/libgcc/config.host
|
||||
index 5e9cfa8..58af2f0 100644
|
||||
index 1907fb871..c2cfdb151 100644
|
||||
--- a/libgcc/config.host
|
||||
+++ b/libgcc/config.host
|
||||
@@ -334,8 +334,9 @@ esac
|
||||
@@ -360,8 +360,9 @@ esac
|
||||
|
||||
case ${host} in
|
||||
aarch64*-*-elf | aarch64*-*-rtems*)
|
||||
@ -49,5 +70,5 @@ index 5e9cfa8..58af2f0 100644
|
||||
extra_parts="$extra_parts crtfastmath.o"
|
||||
+ tmake_file="$tmake_file t-freebsd t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
|
||||
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
|
||||
tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
|
||||
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
|
||||
md_unwind_header=aarch64/aarch64-unwind.h
|
||||
|
@ -9,10 +9,10 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
2 files changed, 3 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
|
||||
index da8196f..c36b8ee 100644
|
||||
index 72503dcab..e5f23add3 100644
|
||||
--- a/gcc/config/arm/arm.h
|
||||
+++ b/gcc/config/arm/arm.h
|
||||
@@ -862,7 +862,7 @@ extern int arm_arch_cmse;
|
||||
@@ -945,7 +945,7 @@ extern const int arm_arch_cde_coproc_bits[];
|
||||
#define EH_RETURN_STACKADJ_RTX gen_rtx_REG (SImode, ARM_EH_STACKADJ_REGNUM)
|
||||
|
||||
#ifndef ARM_TARGET2_DWARF_FORMAT
|
||||
@ -21,7 +21,7 @@ index da8196f..c36b8ee 100644
|
||||
#endif
|
||||
|
||||
/* ttype entries (the only interesting data references used)
|
||||
@@ -2196,10 +2196,7 @@ extern const char *arm_target_thumb_only (int argc, const char **argv);
|
||||
@@ -2343,10 +2343,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__)
|
||||
@ -34,13 +34,13 @@ index da8196f..c36b8ee 100644
|
||||
" %{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 9f7d3f2..a576367 100644
|
||||
index e77b769d7..52d4a6448 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__) \
|
||||
@@ -74,7 +74,7 @@ static inline _Unwind_Ptr _Unwind_gnu_Find_got (_Unwind_Ptr ptr)
|
||||
tmp += _Unwind_gnu_Find_got (ptr);
|
||||
tmp = *(_Unwind_Word *) tmp;
|
||||
#elif (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__) \
|
||||
- || defined(__FreeBSD__) || defined(__fuchsia__)
|
||||
+ || defined(__FreeBSD__) || defined(__fuchsia__) || 1
|
||||
/* Pc-relative indirect. */
|
||||
|
@ -1,105 +0,0 @@
|
||||
commit c5d49cb71a778ce74b8265a075a9c3536c2989ad
|
||||
Author: Eric Botcazou <ebotcazou@adacore.com>
|
||||
Date: Sat Feb 23 10:04:23 2019 +0000
|
||||
|
||||
re PR ada/89349 (segfault when building GCC 7 & 8 branch with GCC master)
|
||||
|
||||
PR ada/89349
|
||||
Backport from mainline
|
||||
2018-05-25 Arnaud Charlet <charlet@adacore.com>
|
||||
|
||||
* osint.ads (Unknown_Attributes): No longer pretend this is a constant.
|
||||
(No_File_Info_Cache): Initialize separately.
|
||||
* osint.adb (No_File_Info_Cache): Update initializer.
|
||||
|
||||
From-SVN: r269153
|
||||
|
||||
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
|
||||
index e4127e472aa..626c590a6ab 100644
|
||||
--- a/gcc/ada/ChangeLog
|
||||
+++ b/gcc/ada/ChangeLog
|
||||
@@ -1,3 +1,13 @@
|
||||
+2019-02-23 Eric Botcazou <ebotcazou@adacore.com>
|
||||
+
|
||||
+ PR ada/89349
|
||||
+ Backport from mainline
|
||||
+ 2018-05-25 Arnaud Charlet <charlet@adacore.com>
|
||||
+
|
||||
+ * osint.ads (Unknown_Attributes): No longer pretend this is a constant.
|
||||
+ (No_File_Info_Cache): Initialize separately.
|
||||
+ * osint.adb (No_File_Info_Cache): Update initializer.
|
||||
+
|
||||
2019-02-22 Release Manager
|
||||
|
||||
* GCC 8.3.0 released.
|
||||
diff --git a/gcc/ada/osint.adb b/gcc/ada/osint.adb
|
||||
index 0c23761b6dc..896fbc7ee37 100644
|
||||
--- a/gcc/ada/osint.adb
|
||||
+++ b/gcc/ada/osint.adb
|
||||
@@ -250,8 +250,7 @@ package body Osint is
|
||||
Attr : aliased File_Attributes;
|
||||
end record;
|
||||
|
||||
- No_File_Info_Cache : constant File_Info_Cache :=
|
||||
- (No_File, Unknown_Attributes);
|
||||
+ No_File_Info_Cache : constant File_Info_Cache := (No_File, (others => 0));
|
||||
|
||||
package File_Name_Hash_Table is new GNAT.HTable.Simple_HTable (
|
||||
Header_Num => File_Hash_Num,
|
||||
diff --git a/gcc/ada/osint.ads b/gcc/ada/osint.ads
|
||||
index 65a87fe4ce3..6c75b521456 100644
|
||||
--- a/gcc/ada/osint.ads
|
||||
+++ b/gcc/ada/osint.ads
|
||||
@@ -255,10 +255,26 @@ package Osint is
|
||||
-- from the disk and then cached in the File_Attributes parameter (possibly
|
||||
-- along with other values).
|
||||
|
||||
- type File_Attributes is private;
|
||||
- Unknown_Attributes : constant File_Attributes;
|
||||
+ File_Attributes_Size : constant Natural := 32;
|
||||
+ -- This should be big enough to fit a "struct file_attributes" on any
|
||||
+ -- system. It doesn't cause any malfunction if it is too big (which avoids
|
||||
+ -- the need for either mapping the struct exactly or importing the sizeof
|
||||
+ -- from C, which would result in dynamic code). However, it does waste
|
||||
+ -- space (e.g. when a component of this type appears in a record, if it is
|
||||
+ -- unnecessarily large). Note: for runtime units, use System.OS_Constants.
|
||||
+ -- SIZEOF_struct_file_attributes instead, which has the exact value.
|
||||
+
|
||||
+ type File_Attributes is
|
||||
+ array (1 .. File_Attributes_Size)
|
||||
+ of System.Storage_Elements.Storage_Element;
|
||||
+ for File_Attributes'Alignment use Standard'Maximum_Alignment;
|
||||
+
|
||||
+ Unknown_Attributes : File_Attributes;
|
||||
-- A cache for various attributes for a file (length, accessibility,...)
|
||||
- -- This must be initialized to Unknown_Attributes prior to the first call.
|
||||
+ -- Will be initialized properly at elaboration (for efficiency later on,
|
||||
+ -- avoid function calls every time we want to reset the attributes) prior
|
||||
+ -- to the first usage. We cannot make it constant since the compiler may
|
||||
+ -- put it in a read-only section.
|
||||
|
||||
function Is_Directory
|
||||
(Name : C_File_Name;
|
||||
@@ -754,22 +770,4 @@ private
|
||||
-- detected, the file being written is deleted, and a fatal error is
|
||||
-- signalled.
|
||||
|
||||
- File_Attributes_Size : constant Natural := 32;
|
||||
- -- This should be big enough to fit a "struct file_attributes" on any
|
||||
- -- system. It doesn't cause any malfunction if it is too big (which avoids
|
||||
- -- the need for either mapping the struct exactly or importing the sizeof
|
||||
- -- from C, which would result in dynamic code). However, it does waste
|
||||
- -- space (e.g. when a component of this type appears in a record, if it is
|
||||
- -- unnecessarily large). Note: for runtime units, use System.OS_Constants.
|
||||
- -- SIZEOF_struct_file_attributes instead, which has the exact value.
|
||||
-
|
||||
- type File_Attributes is
|
||||
- array (1 .. File_Attributes_Size)
|
||||
- of System.Storage_Elements.Storage_Element;
|
||||
- for File_Attributes'Alignment use Standard'Maximum_Alignment;
|
||||
-
|
||||
- Unknown_Attributes : constant File_Attributes := (others => 0);
|
||||
- -- Will be initialized properly at elaboration (for efficiency later on,
|
||||
- -- avoid function calls every time we want to reset the attributes).
|
||||
-
|
||||
end Osint;
|
@ -1,12 +1,23 @@
|
||||
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 | 13 +++++++++++++
|
||||
gcc/config/i386/x86-64.h | 19 +++++++++++++++++--
|
||||
gcc/config/riscv/elf.h | 2 ++
|
||||
gcc/config/riscv/riscv.h | 17 +++++++++++++++--
|
||||
libgcc/config.host | 16 ++++++++++++----
|
||||
7 files changed, 62 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/gcc/config.gcc b/gcc/config.gcc
|
||||
index 7af8e028..3c87dfb0 100644
|
||||
index 6a349965c..d0e8646c0 100644
|
||||
--- a/gcc/config.gcc
|
||||
+++ b/gcc/config.gcc
|
||||
@@ -1184,7 +1184,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
|
||||
@@ -1310,7 +1310,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
|
||||
case ${target} in
|
||||
arm*-*-eabi*)
|
||||
tm_file="$tm_file newlib-stdint.h"
|
||||
@ -16,10 +27,10 @@ index 7af8e028..3c87dfb0 100644
|
||||
;;
|
||||
arm*-*-fuchsia*)
|
||||
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
|
||||
index 942bb4ca..c36b8eea 100644
|
||||
index 30e1d6dc9..de4e7b7d9 100644
|
||||
--- a/gcc/config/arm/arm.h
|
||||
+++ b/gcc/config/arm/arm.h
|
||||
@@ -668,11 +668,11 @@ extern int arm_arch_cmse;
|
||||
@@ -746,11 +746,11 @@ extern const int arm_arch_cde_coproc_bits[];
|
||||
#define MAX_FIXED_MODE_SIZE 64
|
||||
|
||||
#ifndef SIZE_TYPE
|
||||
@ -34,13 +45,15 @@ index 942bb4ca..c36b8eea 100644
|
||||
|
||||
/* AAPCS requires that structure alignment is affected by bitfields. */
|
||||
diff --git a/gcc/config/arm/unknown-elf.h b/gcc/config/arm/unknown-elf.h
|
||||
index 12dd0931..ec0a72e7 100644
|
||||
index 9ad294750..cb5575a75 100644
|
||||
--- a/gcc/config/arm/unknown-elf.h
|
||||
+++ b/gcc/config/arm/unknown-elf.h
|
||||
@@ -94,3 +94,19 @@
|
||||
@@ -93,4 +93,17 @@
|
||||
udivmoddi4, which will depend on the exception unwind routines,
|
||||
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"
|
||||
+
|
||||
#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %{!nolibc:%L} --end-group"
|
||||
+
|
||||
+/* genode.h */
|
||||
+
|
||||
@ -53,12 +66,8 @@ index 12dd0931..ec0a72e7 100644
|
||||
+#define LINK_SPEC \
|
||||
+ "%(shared:-shared) \
|
||||
+ %{!static:--eh-frame-hdr}"
|
||||
+
|
||||
+/* 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/i386/x86-64.h b/gcc/config/i386/x86-64.h
|
||||
index e2a8306c..1c5e2e15 100644
|
||||
index 88db428f5..2d2adc627 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
|
||||
@ -74,7 +83,7 @@ index e2a8306c..1c5e2e15 100644
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "int"
|
||||
@@ -106,3 +106,22 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
@@ -102,3 +102,18 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
|
||||
#undef TARGET_SECTION_TYPE_FLAGS
|
||||
#define TARGET_SECTION_TYPE_FLAGS x86_64_elf_section_type_flags
|
||||
@ -93,12 +102,8 @@ index e2a8306c..1c5e2e15 100644
|
||||
+ %{m32:-m elf_i386} \
|
||||
+ %{shared:-shared} \
|
||||
+ %{!static:--eh-frame-hdr}"
|
||||
+
|
||||
+/* 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 a8357bb6..cd33bb28 100644
|
||||
index 4e2d6464d..72399e5a8 100644
|
||||
--- a/gcc/config/riscv/elf.h
|
||||
+++ b/gcc/config/riscv/elf.h
|
||||
@@ -17,10 +17,12 @@ You should have received a copy of the GNU General Public License
|
||||
@ -115,10 +120,10 @@ index a8357bb6..cd33bb28 100644
|
||||
/* Link against Newlib libraries, because the ELF backend assumes Newlib.
|
||||
Handle the circular dependence between libc and libgloss. */
|
||||
diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h
|
||||
index 62279ff2..fdf77645 100644
|
||||
index 567c23380..1b75709b8 100644
|
||||
--- a/gcc/config/riscv/riscv.h
|
||||
+++ b/gcc/config/riscv/riscv.h
|
||||
@@ -819,10 +819,10 @@ while (0)
|
||||
@@ -851,10 +851,10 @@ while (0)
|
||||
#define ASM_COMMENT_START "#"
|
||||
|
||||
#undef SIZE_TYPE
|
||||
@ -129,11 +134,11 @@ index 62279ff2..fdf77645 100644
|
||||
-#define PTRDIFF_TYPE (POINTER_SIZE == 64 ? "long int" : "int")
|
||||
+#define PTRDIFF_TYPE (POINTER_SIZE == 64 ? "long int" : "long int")
|
||||
|
||||
/* The maximum number of bytes copied by one iteration of a movmemsi loop. */
|
||||
/* The maximum number of bytes copied by one iteration of a cpymemsi loop. */
|
||||
|
||||
@@ -902,4 +902,17 @@ extern unsigned riscv_stack_boundary;
|
||||
#define SWSP_REACH (4LL << C_SxSP_BITS)
|
||||
#define SDSP_REACH (8LL << C_SxSP_BITS)
|
||||
@@ -935,4 +935,17 @@ extern void riscv_remove_unneeded_save_restore_calls (void);
|
||||
|
||||
#define HARD_REGNO_RENAME_OK(FROM, TO) riscv_hard_regno_rename_ok (FROM, TO)
|
||||
|
||||
+ /* genode.h */
|
||||
+
|
||||
@ -150,10 +155,10 @@ index 62279ff2..fdf77645 100644
|
||||
+
|
||||
#endif /* ! GCC_RISCV_H */
|
||||
diff --git a/libgcc/config.host b/libgcc/config.host
|
||||
index 11b4acaf..5e9cfa86 100644
|
||||
index c529cc40f..1907fb871 100644
|
||||
--- a/libgcc/config.host
|
||||
+++ b/libgcc/config.host
|
||||
@@ -312,7 +312,7 @@ case ${host} in
|
||||
@@ -328,7 +328,7 @@ case ${host} in
|
||||
tmake_file=t-vxworks
|
||||
;;
|
||||
*-*-elf)
|
||||
@ -162,7 +167,7 @@ index 11b4acaf..5e9cfa86 100644
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -449,8 +449,12 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
|
||||
@@ -498,8 +498,12 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
|
||||
tm_file="$tm_file arm/bpabi-lib.h"
|
||||
case ${host} in
|
||||
arm*-*-eabi* | arm*-*-rtems*)
|
||||
@ -176,7 +181,7 @@ index 11b4acaf..5e9cfa86 100644
|
||||
;;
|
||||
arm*-*-symbianelf*)
|
||||
tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override"
|
||||
@@ -610,6 +614,10 @@ i[34567]86-*-elf*)
|
||||
@@ -701,6 +705,10 @@ i[34567]86-*-elf*)
|
||||
tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
|
||||
;;
|
||||
x86_64-*-elf* | x86_64-*-rtems*)
|
||||
@ -185,9 +190,9 @@ index 11b4acaf..5e9cfa86 100644
|
||||
+ # needed for the exception handling on Genode in the presence of shared libraries.
|
||||
+ 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"
|
||||
;;
|
||||
x86_64-*-fuchsia*)
|
||||
@@ -1133,8 +1141,8 @@ riscv*-*-freebsd*)
|
||||
case ${host} in
|
||||
x86_64-*-rtems*)
|
||||
@@ -1268,8 +1276,8 @@ riscv*-*-freebsd*)
|
||||
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
|
||||
;;
|
||||
riscv*-*-*)
|
||||
|
@ -9,10 +9,10 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
2 files changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
|
||||
index 8cae772c8..7e4cbd0ea 100644
|
||||
index 5417143b5..9dce2966c 100644
|
||||
--- a/libgcc/Makefile.in
|
||||
+++ b/libgcc/Makefile.in
|
||||
@@ -428,9 +428,12 @@ LIB2ADD += enable-execute-stack.c
|
||||
@@ -433,9 +433,12 @@ LIB2ADD += enable-execute-stack.c
|
||||
# While emutls.c has nothing to do with EH, it is in LIB2ADDEH*
|
||||
# instead of LIB2ADD because that's the way to be sure on some targets
|
||||
# (e.g. *-*-darwin*) only one copy of it is linked.
|
||||
@ -29,10 +29,10 @@ index 8cae772c8..7e4cbd0ea 100644
|
||||
# Library members defined in libgcc2.c.
|
||||
lib2funcs = _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _cmpdi2 _ucmpdi2 \
|
||||
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
|
||||
index 7d7279b06..84d8c6650 100644
|
||||
index 9217e7390..5bf179de9 100644
|
||||
--- a/libstdc++-v3/configure.ac
|
||||
+++ b/libstdc++-v3/configure.ac
|
||||
@@ -367,6 +367,9 @@ else
|
||||
@@ -385,6 +385,9 @@ else
|
||||
AC_DEFINE(HAVE_TANL)
|
||||
AC_DEFINE(HAVE_TANHL)
|
||||
fi
|
||||
|
22
repos/ports/src/noux-pkg/gcc/patches/frame_pointer.patch
Normal file
22
repos/ports/src/noux-pkg/gcc/patches/frame_pointer.patch
Normal file
@ -0,0 +1,22 @@
|
||||
frame_pointer.patch
|
||||
|
||||
From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
|
||||
|
||||
---
|
||||
gcc/configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/configure.ac b/gcc/configure.ac
|
||||
index 1d58d9c07..545a6367e 100644
|
||||
--- a/gcc/configure.ac
|
||||
+++ b/gcc/configure.ac
|
||||
@@ -2054,7 +2054,7 @@ linux* | gnu* | darwin[[8912]]* | cygwin* | mingw*)
|
||||
enable_frame_pointer=no
|
||||
;;
|
||||
*)
|
||||
- enable_frame_pointer=yes
|
||||
+ enable_frame_pointer=no
|
||||
;;
|
||||
esac
|
||||
])
|
@ -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 79ee2e2..22eed3f 100644
|
||||
index 4e8aabbd0..92ff23753 100644
|
||||
--- a/gcc/go/config-lang.in
|
||||
+++ b/gcc/go/config-lang.in
|
||||
@@ -28,7 +28,7 @@ language="go"
|
||||
|
@ -14,11 +14,11 @@ compiler as much as possible.
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4
|
||||
index cb6e3af..a1cc79a 100644
|
||||
index fe1828835..3c7bdb87d 100644
|
||||
--- a/libstdc++-v3/crossconfig.m4
|
||||
+++ b/libstdc++-v3/crossconfig.m4
|
||||
@@ -292,7 +292,6 @@ case "${host}" in
|
||||
AC_DEFINE(HAVE_TANHF)
|
||||
@@ -306,7 +306,6 @@ dnl # long_double_math_on_this_cpu in configure.ac, right after
|
||||
dnl # the expansion of the present macro.
|
||||
;;
|
||||
*)
|
||||
- AC_MSG_ERROR([No support for this host/target combination.])
|
||||
|
@ -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 dd8cee9..8cae772 100644
|
||||
index 851e7657d..5417143b5 100644
|
||||
--- a/libgcc/Makefile.in
|
||||
+++ b/libgcc/Makefile.in
|
||||
@@ -948,7 +948,11 @@ all: libunwind.a
|
||||
@@ -957,7 +957,11 @@ all: libunwind.a
|
||||
endif
|
||||
|
||||
ifeq ($(enable_shared),yes)
|
||||
@ -23,7 +23,7 @@ index dd8cee9..8cae772 100644
|
||||
ifneq ($(LIBUNWIND),)
|
||||
all: libunwind$(SHLIB_EXT)
|
||||
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
|
||||
@@ -1154,9 +1158,11 @@ install-shared:
|
||||
@@ -1163,9 +1167,11 @@ install-shared:
|
||||
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||
|
||||
|
@ -8,10 +8,10 @@ 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 60152a5..7d7279b 100644
|
||||
index 18659a216..9217e7390 100644
|
||||
--- a/libstdc++-v3/configure.ac
|
||||
+++ b/libstdc++-v3/configure.ac
|
||||
@@ -89,9 +89,11 @@ CXXFLAGS="$save_CXXFLAGS"
|
||||
@@ -90,9 +90,11 @@ AC_SYS_LARGEFILE
|
||||
GLIBCXX_CONFIGURE
|
||||
|
||||
# Libtool setup.
|
||||
@ -23,7 +23,7 @@ index 60152a5..7d7279b 100644
|
||||
AM_PROG_LIBTOOL
|
||||
ACX_LT_HOST_FLAGS
|
||||
AC_SUBST(enable_shared)
|
||||
@@ -209,7 +211,9 @@ AC_CHECK_HEADERS(fenv.h complex.h)
|
||||
@@ -211,7 +213,9 @@ AC_CHECK_HEADERS(fenv.h complex.h)
|
||||
GLIBCXX_CHECK_C99_TR1
|
||||
|
||||
# For the EOF, SEEK_CUR, and SEEK_END integer constants.
|
||||
@ -33,7 +33,7 @@ index 60152a5..7d7279b 100644
|
||||
|
||||
# For gettimeofday support.
|
||||
GLIBCXX_CHECK_GETTIMEOFDAY
|
||||
@@ -370,7 +374,9 @@ GCC_CHECK_UNWIND_GETIPINFO
|
||||
@@ -388,7 +392,9 @@ GCC_CHECK_UNWIND_GETIPINFO
|
||||
|
||||
GCC_LINUX_FUTEX([AC_DEFINE(HAVE_LINUX_FUTEX, 1, [Define if futex syscall is available.])])
|
||||
|
||||
|
@ -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 dc09e79..2726453 100644
|
||||
index 141cb886a..0a8b54db5 100644
|
||||
--- a/include/libiberty.h
|
||||
+++ b/include/libiberty.h
|
||||
@@ -46,7 +46,11 @@ extern "C" {
|
||||
@ -26,7 +26,7 @@ index dc09e79..2726453 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 3f2a097..0d4a83d 100644
|
||||
index cbfb2f937..a58820ae5 100644
|
||||
--- a/libiberty/cp-demangle.c
|
||||
+++ b/libiberty/cp-demangle.c
|
||||
@@ -106,7 +106,9 @@
|
||||
@ -39,7 +39,7 @@ index 3f2a097..0d4a83d 100644
|
||||
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
@@ -6309,7 +6311,7 @@ d_demangle (const char *mangled, int options, size_t *palc)
|
||||
@@ -6390,7 +6392,7 @@ d_demangle (const char *mangled, int options, size_t *palc)
|
||||
return dgs.buf;
|
||||
}
|
||||
|
||||
@ -49,10 +49,10 @@ index 3f2a097..0d4a83d 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 37644e8..1ec97bb 100644
|
||||
index a0a500eab..8c37ec251 100644
|
||||
--- a/libstdc++-v3/libsupc++/Makefile.in
|
||||
+++ b/libstdc++-v3/libsupc++/Makefile.in
|
||||
@@ -131,7 +131,11 @@ am__objects_1 = array_type_info.lo atexit_arm.lo atexit_thread.lo \
|
||||
@@ -168,7 +168,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
|
||||
@ -64,7 +64,7 @@ index 37644e8..1ec97bb 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) \
|
||||
@@ -404,8 +408,14 @@ bits_HEADERS = \
|
||||
@@ -491,8 +495,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 37644e8..1ec97bb 100644
|
||||
|
||||
sources = \
|
||||
array_type_info.cc \
|
||||
@@ -856,10 +866,17 @@ uninstall-am: uninstall-bitsHEADERS uninstall-stdHEADERS \
|
||||
@@ -951,10 +961,17 @@ uninstall-am: uninstall-bitsHEADERS uninstall-stdHEADERS \
|
||||
cp-demangle.c:
|
||||
rm -f $@
|
||||
$(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@
|
||||
|
@ -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 5172135..9fe9808 100644
|
||||
index e277ab93a..b9bb01781 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 5172135..9fe9808 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 7e60b62..0753b0b 100644
|
||||
index c99755344..d6abb8877 100644
|
||||
--- a/libgcc/config/t-slibgcc
|
||||
+++ b/libgcc/config/t-slibgcc
|
||||
@@ -26,7 +26,7 @@ SHLIB_MAP = @shlib_map_file@
|
||||
|
@ -8,7 +8,7 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
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
|
||||
index b935936e1..9efd29598 100644
|
||||
--- a/libstdc++-v3/libsupc++/new_opa.cc
|
||||
+++ b/libstdc++-v3/libsupc++/new_opa.cc
|
||||
@@ -25,7 +25,7 @@
|
||||
@ -18,9 +18,9 @@ index 68eac5b..5e647ff 100644
|
||||
-#include <stdint.h>
|
||||
+#include <stdint-gcc.h> /* stdint.h would call 'include_next' */
|
||||
#include <bits/exception_defines.h>
|
||||
#include <bit>
|
||||
#include "new"
|
||||
|
||||
@@ -39,6 +39,8 @@ extern "C" void *memalign(std::size_t boundary, std::size_t size);
|
||||
@@ -40,6 +40,8 @@ extern "C" void *memalign(std::size_t boundary, std::size_t size);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
@ -8,10 +8,10 @@ Ensure -fno-short-enums as default.
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
|
||||
index 2476cb3..da8196f 100644
|
||||
index de4e7b7d9..72503dcab 100644
|
||||
--- a/gcc/config/arm/arm.h
|
||||
+++ b/gcc/config/arm/arm.h
|
||||
@@ -361,7 +361,7 @@ extern int arm_fpu_attr;
|
||||
@@ -417,7 +417,7 @@ extern int arm_fpu_attr;
|
||||
/* AAPCS based ABIs use short enums by default. */
|
||||
#ifndef ARM_DEFAULT_SHORT_ENUMS
|
||||
#define ARM_DEFAULT_SHORT_ENUMS \
|
||||
|
@ -13,10 +13,10 @@ From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
6 files changed, 17 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/Makefile.def b/Makefile.def
|
||||
index 4b9f757..f67015f 100644
|
||||
index 36fd26b03..04797e3af 100644
|
||||
--- a/Makefile.def
|
||||
+++ b/Makefile.def
|
||||
@@ -284,6 +284,7 @@ flags_to_pass = { flag= GOCFLAGS_FOR_TARGET ; };
|
||||
@@ -292,6 +292,7 @@ flags_to_pass = { flag= GDCFLAGS_FOR_TARGET ; };
|
||||
flags_to_pass = { flag= LD_FOR_TARGET ; };
|
||||
flags_to_pass = { flag= LIPO_FOR_TARGET ; };
|
||||
flags_to_pass = { flag= LDFLAGS_FOR_TARGET ; };
|
||||
@ -25,7 +25,7 @@ index 4b9f757..f67015f 100644
|
||||
flags_to_pass = { flag= LIBCXXFLAGS_FOR_TARGET ; };
|
||||
flags_to_pass = { flag= NM_FOR_TARGET ; };
|
||||
diff --git a/Makefile.tpl b/Makefile.tpl
|
||||
index 1f23b79..0ed8b02 100644
|
||||
index efed15117..6ba0228c5 100644
|
||||
--- a/Makefile.tpl
|
||||
+++ b/Makefile.tpl
|
||||
@@ -156,6 +156,8 @@ BUILD_EXPORTS = \
|
||||
@ -37,7 +37,7 @@ index 1f23b79..0ed8b02 100644
|
||||
GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \
|
||||
GOC="$(GOC_FOR_BUILD)"; export GOC; \
|
||||
GOCFLAGS="$(GOCFLAGS_FOR_BUILD)"; export GOCFLAGS; \
|
||||
@@ -171,6 +173,7 @@ BUILD_EXPORTS = \
|
||||
@@ -173,6 +175,7 @@ BUILD_EXPORTS = \
|
||||
# built for the build system to override those in BASE_FLAGS_TO_PASS.
|
||||
EXTRA_BUILD_FLAGS = \
|
||||
CFLAGS="$(CFLAGS_FOR_BUILD)" \
|
||||
@ -45,7 +45,7 @@ index 1f23b79..0ed8b02 100644
|
||||
LDFLAGS="$(LDFLAGS_FOR_BUILD)"
|
||||
|
||||
# This is the list of directories to built for the host system.
|
||||
@@ -193,6 +196,8 @@ HOST_EXPORTS = \
|
||||
@@ -195,6 +198,8 @@ HOST_EXPORTS = \
|
||||
CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
|
||||
CXX="$(CXX)"; export CXX; \
|
||||
CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
|
||||
@ -53,8 +53,8 @@ index 1f23b79..0ed8b02 100644
|
||||
+ LIBS="$(LIBS)"; export LIBS; \
|
||||
GFORTRAN="$(GFORTRAN)"; export GFORTRAN; \
|
||||
GOC="$(GOC)"; export GOC; \
|
||||
AR="$(AR)"; export AR; \
|
||||
@@ -278,6 +283,7 @@ BASE_TARGET_EXPORTS = \
|
||||
GDC="$(GDC)"; export GDC; \
|
||||
@@ -292,6 +297,7 @@ BASE_TARGET_EXPORTS = \
|
||||
CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
|
||||
CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
|
||||
CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
|
||||
@ -62,7 +62,7 @@ index 1f23b79..0ed8b02 100644
|
||||
CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
|
||||
GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \
|
||||
GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \
|
||||
@@ -664,6 +670,7 @@ EXTRA_TARGET_FLAGS = \
|
||||
@@ -701,6 +707,7 @@ EXTRA_TARGET_FLAGS = \
|
||||
-B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \
|
||||
$$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
|
||||
'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
|
||||
@ -71,7 +71,7 @@ index 1f23b79..0ed8b02 100644
|
||||
'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 1937dca..60e2b27 100644
|
||||
index 1937dcaa3..60e2b2793 100644
|
||||
--- a/fixincludes/Makefile.in
|
||||
+++ b/fixincludes/Makefile.in
|
||||
@@ -28,6 +28,7 @@ STAMP = echo timestamp >
|
||||
@ -97,10 +97,10 @@ index 1937dca..60e2b27 100644
|
||||
|
||||
$(AF): $(FIXOBJ) $(LIBIBERTY)
|
||||
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
|
||||
index 20bee04..7df7092 100644
|
||||
index 5d05e8e0d..0919e579a 100644
|
||||
--- a/gcc/Makefile.in
|
||||
+++ b/gcc/Makefile.in
|
||||
@@ -800,7 +800,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@
|
||||
@@ -804,7 +804,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) \
|
||||
@ -109,7 +109,7 @@ index 20bee04..7df7092 100644
|
||||
|
||||
# Actual name to use when installing a native compiler.
|
||||
GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
|
||||
@@ -1056,8 +1056,8 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
|
||||
@@ -1061,8 +1061,8 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
|
||||
|
||||
# How to link with both our special library facilities
|
||||
# and the system's installed libraries.
|
||||
@ -118,26 +118,26 @@ index 20bee04..7df7092 100644
|
||||
+LIBS = libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \
|
||||
+ $(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS) @LIBS@
|
||||
BACKENDLIBS = $(ISLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
|
||||
$(ZLIB)
|
||||
$(ZLIB) $(ZSTD_LIB)
|
||||
# Any system libraries needed just for GNAT.
|
||||
diff --git a/gcc/config.host b/gcc/config.host
|
||||
index c65569d..b5a4eb1 100644
|
||||
index 84f0433e2..a14d7086e 100644
|
||||
--- a/gcc/config.host
|
||||
+++ b/gcc/config.host
|
||||
@@ -107,7 +107,7 @@ case ${host} in
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
- arm*-*-freebsd* | arm*-*-linux* | arm*-*-fuchsia*)
|
||||
- arm*-*-freebsd* | arm*-*-netbsd* | 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 b066cc6..fa1d2f0 100644
|
||||
index 715fcba04..d57e6aea1 100644
|
||||
--- a/gcc/configure.ac
|
||||
+++ b/gcc/configure.ac
|
||||
@@ -1707,8 +1707,8 @@ else
|
||||
@@ -1897,8 +1897,8 @@ else
|
||||
# system.h from including gmp.h.
|
||||
CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
|
||||
CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
|
||||
@ -147,4 +147,4 @@ index b066cc6..fa1d2f0 100644
|
||||
+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \
|
||||
${realsrcdir}/configure \
|
||||
--enable-languages=${enable_languages-all} \
|
||||
--target=$target_alias --host=$build_alias --build=$build_alias
|
||||
${enable_obsolete+--enable-obsolete="$enable_obsolete"} \
|
||||
|
@ -13,10 +13,10 @@ 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 0ef9627..60152a5 100644
|
||||
index 699e55fd8..18659a216 100644
|
||||
--- a/libstdc++-v3/configure.ac
|
||||
+++ b/libstdc++-v3/configure.ac
|
||||
@@ -115,16 +115,16 @@ fi
|
||||
@@ -116,16 +116,16 @@ fi
|
||||
# Use glibcxx_compiler_pic_flag to designate a compile-time flags for
|
||||
# creating position-independent objects. This varies with the target
|
||||
# hardware and operating system, but is often: -DPIC -fPIC.
|
||||
|
@ -0,0 +1,192 @@
|
||||
revert_gcov_name_mangling.patch
|
||||
|
||||
From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
||||
|
||||
|
||||
---
|
||||
gcc/coverage.c | 28 ++--------------------------
|
||||
gcc/gcov-io.c | 49 -------------------------------------------------
|
||||
gcc/gcov-io.h | 1 -
|
||||
gcc/gcov.c | 49 +++++++++++++++++++++++++++++++++++++++++--------
|
||||
4 files changed, 43 insertions(+), 84 deletions(-)
|
||||
|
||||
diff --git a/gcc/coverage.c b/gcc/coverage.c
|
||||
index 7d82e44c1..8bb46e8f0 100644
|
||||
--- a/gcc/coverage.c
|
||||
+++ b/gcc/coverage.c
|
||||
@@ -1215,32 +1215,8 @@ coverage_init (const char *filename)
|
||||
g->get_passes ()->get_pass_profile ()->static_pass_number;
|
||||
g->get_dumps ()->dump_start (profile_pass_num, NULL);
|
||||
|
||||
- if (!IS_ABSOLUTE_PATH (filename))
|
||||
- {
|
||||
- /* When a profile_data_prefix is provided, then mangle full path
|
||||
- of filename in order to prevent file path clashing. */
|
||||
- if (profile_data_prefix)
|
||||
- {
|
||||
- filename = concat (getpwd (), separator, filename, NULL);
|
||||
- if (profile_prefix_path)
|
||||
- {
|
||||
- if (!strncmp (filename, profile_prefix_path,
|
||||
- strlen (profile_prefix_path)))
|
||||
- {
|
||||
- filename += strlen (profile_prefix_path);
|
||||
- while (*filename == *separator)
|
||||
- filename++;
|
||||
- }
|
||||
- else
|
||||
- warning (0, "filename %qs does not start with profile "
|
||||
- "prefix %qs", filename, profile_prefix_path);
|
||||
- }
|
||||
- filename = mangle_path (filename);
|
||||
- len = strlen (filename);
|
||||
- }
|
||||
- else
|
||||
- profile_data_prefix = getpwd ();
|
||||
- }
|
||||
+ if (!profile_data_prefix && !IS_ABSOLUTE_PATH (filename))
|
||||
+ profile_data_prefix = getpwd ();
|
||||
|
||||
if (profile_data_prefix)
|
||||
prefix_len = strlen (profile_data_prefix);
|
||||
diff --git a/gcc/gcov-io.c b/gcc/gcov-io.c
|
||||
index ac60f9baf..4aefeac05 100644
|
||||
--- a/gcc/gcov-io.c
|
||||
+++ b/gcc/gcov-io.c
|
||||
@@ -538,55 +538,6 @@ gcov_read_counter (void)
|
||||
return value;
|
||||
}
|
||||
|
||||
-/* Mangle filename path of BASE and output new allocated pointer with
|
||||
- mangled path. */
|
||||
-
|
||||
-char *
|
||||
-mangle_path (char const *base)
|
||||
-{
|
||||
- /* Convert '/' to '#', convert '..' to '^',
|
||||
- convert ':' to '~' on DOS based file system. */
|
||||
- const char *probe;
|
||||
- char *buffer = (char *)xmalloc (strlen (base) + 1);
|
||||
- char *ptr = buffer;
|
||||
-
|
||||
-#if HAVE_DOS_BASED_FILE_SYSTEM
|
||||
- if (base[0] && base[1] == ':')
|
||||
- {
|
||||
- ptr[0] = base[0];
|
||||
- ptr[1] = '~';
|
||||
- ptr += 2;
|
||||
- base += 2;
|
||||
- }
|
||||
-#endif
|
||||
- for (; *base; base = probe)
|
||||
- {
|
||||
- size_t len;
|
||||
-
|
||||
- for (probe = base; *probe; probe++)
|
||||
- if (*probe == '/')
|
||||
- break;
|
||||
- len = probe - base;
|
||||
- if (len == 2 && base[0] == '.' && base[1] == '.')
|
||||
- *ptr++ = '^';
|
||||
- else
|
||||
- {
|
||||
- memcpy (ptr, base, len);
|
||||
- ptr += len;
|
||||
- }
|
||||
- if (*probe)
|
||||
- {
|
||||
- *ptr++ = '#';
|
||||
- probe++;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /* Terminate the string. */
|
||||
- *ptr = '\0';
|
||||
-
|
||||
- return buffer;
|
||||
-}
|
||||
-
|
||||
/* We need to expose the below function when compiling for gcov-tool. */
|
||||
|
||||
#if !IN_LIBGCOV || defined (IN_GCOV_TOOL)
|
||||
diff --git a/gcc/gcov-io.h b/gcc/gcov-io.h
|
||||
index 4391d6d50..552c90dcd 100644
|
||||
--- a/gcc/gcov-io.h
|
||||
+++ b/gcc/gcov-io.h
|
||||
@@ -340,7 +340,6 @@ GCOV_LINKAGE void gcov_read_summary (struct gcov_summary *) ATTRIBUTE_HIDDEN;
|
||||
GCOV_LINKAGE const char *gcov_read_string (void);
|
||||
GCOV_LINKAGE void gcov_sync (gcov_position_t /*base*/,
|
||||
gcov_unsigned_t /*length */);
|
||||
-char *mangle_path (char const *base);
|
||||
|
||||
#if !IN_GCOV
|
||||
/* Available outside gcov */
|
||||
diff --git a/gcc/gcov.c b/gcc/gcov.c
|
||||
index a291bac3e..9bf31d5e3 100644
|
||||
--- a/gcc/gcov.c
|
||||
+++ b/gcc/gcov.c
|
||||
@@ -2560,9 +2560,6 @@ make_gcov_file_name (const char *input_name, const char *src_name)
|
||||
return result;
|
||||
}
|
||||
|
||||
-/* Mangle BASE name, copy it at the beginning of PTR buffer and
|
||||
- return address of the \0 character of the buffer. */
|
||||
-
|
||||
static char *
|
||||
mangle_name (char const *base, char *ptr)
|
||||
{
|
||||
@@ -2570,13 +2567,49 @@ mangle_name (char const *base, char *ptr)
|
||||
|
||||
/* Generate the source filename part. */
|
||||
if (!flag_preserve_paths)
|
||||
- base = lbasename (base);
|
||||
+ {
|
||||
+ base = lbasename (base);
|
||||
+ len = strlen (base);
|
||||
+ memcpy (ptr, base, len);
|
||||
+ ptr += len;
|
||||
+ }
|
||||
else
|
||||
- base = mangle_path (base);
|
||||
+ {
|
||||
+ /* Convert '/' to '#', convert '..' to '^',
|
||||
+ convert ':' to '~' on DOS based file system. */
|
||||
+ const char *probe;
|
||||
|
||||
- len = strlen (base);
|
||||
- memcpy (ptr, base, len);
|
||||
- ptr += len;
|
||||
+#if HAVE_DOS_BASED_FILE_SYSTEM
|
||||
+ if (base[0] && base[1] == ':')
|
||||
+ {
|
||||
+ ptr[0] = base[0];
|
||||
+ ptr[1] = '~';
|
||||
+ ptr += 2;
|
||||
+ base += 2;
|
||||
+ }
|
||||
+#endif
|
||||
+ for (; *base; base = probe)
|
||||
+ {
|
||||
+ size_t len;
|
||||
+
|
||||
+ for (probe = base; *probe; probe++)
|
||||
+ if (*probe == '/')
|
||||
+ break;
|
||||
+ len = probe - base;
|
||||
+ if (len == 2 && base[0] == '.' && base[1] == '.')
|
||||
+ *ptr++ = '^';
|
||||
+ else
|
||||
+ {
|
||||
+ memcpy (ptr, base, len);
|
||||
+ ptr += len;
|
||||
+ }
|
||||
+ if (*probe)
|
||||
+ {
|
||||
+ *ptr++ = '#';
|
||||
+ probe++;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
|
||||
return ptr;
|
||||
}
|
@ -1,4 +1,3 @@
|
||||
bug89349.patch
|
||||
config.patch
|
||||
misc.patch
|
||||
no_short_enums.patch
|
||||
@ -14,3 +13,5 @@ arm.patch
|
||||
new_opa.patch
|
||||
aarch64.patch
|
||||
emutls.patch
|
||||
frame_pointer.patch
|
||||
revert_gcov_path_mangling.patch
|
||||
|
@ -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 c343333..87428a5 100644
|
||||
index c78d9cbea..2a25449de 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -146,7 +146,6 @@ host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb
|
||||
@@ -145,7 +145,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 \
|
||||
|
@ -148,7 +148,7 @@ check_tool = $(if $(shell which $(1)),,$(error Need to have '$(1)' installed.))
|
||||
# Empty DST_DIRS is interpreted as a tool-chain agnostic target, e.g., clean.
|
||||
#
|
||||
ifneq ($(DST_DIRS),)
|
||||
REQUIRED_GCC_VERSION ?= 8.3.0
|
||||
REQUIRED_GCC_VERSION ?= 10.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")
|
||||
|
@ -54,8 +54,8 @@ GENODE_DIR ?= $(realpath $(dir $(firstword $(MAKEFILE_LIST)))/..)
|
||||
# version numbers
|
||||
#
|
||||
|
||||
TOOL_CHAIN_VERSION = 19.05
|
||||
GCC_VERSION = 8.3.0
|
||||
TOOL_CHAIN_VERSION = 21.05
|
||||
GCC_VERSION = 10.3.0
|
||||
BINUTILS_VERSION = 2.32
|
||||
|
||||
#
|
||||
@ -93,7 +93,10 @@ SUDO ?= sudo
|
||||
#
|
||||
# Check if 'autoconf' is installed
|
||||
#
|
||||
AUTOCONF_VERSION = 2.64
|
||||
# Required version is 2.69, but there is no versioned binary name on Ubuntu
|
||||
# right now like there has been for version 2.64.
|
||||
#
|
||||
AUTOCONF_VERSION =
|
||||
|
||||
AUTOCONF_VERSION_STRING = "autoconf (GNU Autoconf) $(AUTOCONF_VERSION)"
|
||||
ifeq ($(shell autoconf -V | grep $(AUTOCONF_VERSION_STRING)),)
|
||||
@ -476,5 +479,5 @@ install: build_all
|
||||
$(VERBOSE)$(SUDO) cp -a --remove-destination --no-target-directory $(LOCAL_INSTALL_LOCATION) $(INSTALL_LOCATION)
|
||||
$(VERBOSE)$(LIB_GCC)
|
||||
ifeq ($(INSTALL_LOCATION),$(DEFAULT_INSTALL_LOCATION))
|
||||
$(VERBOSE)$(SUDO) ln -snf $(TOOL_CHAIN_VERSION) $(dir $(INSTALL_LOCATION))/current
|
||||
$(VERBOSE)$(SUDO) ln -snf $(TOOL_CHAIN_VERSION) $(dir $(INSTALL_LOCATION))current
|
||||
endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user