diff --git a/repos/ports/ports/gcc.hash b/repos/ports/ports/gcc.hash index 373400f650..8eb995e858 100644 --- a/repos/ports/ports/gcc.hash +++ b/repos/ports/ports/gcc.hash @@ -1 +1 @@ -1c4e056fb1955d8e2ad3a696a169deedae8c8f64 +4521e2d30fec0c6b5989b59a805c7f4d9ab41c14 diff --git a/repos/ports/ports/gcc.port b/repos/ports/ports/gcc.port index 6570ee6c08..48193609f4 100644 --- a/repos/ports/ports/gcc.port +++ b/repos/ports/ports/gcc.port @@ -1,9 +1,9 @@ LICENSE := GPLv3 -VERSION := 10.3.0 +VERSION := 12.2.0 DOWNLOADS := gcc.archive URL(gcc) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.xz -SHA(gcc) := 64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344 +SHA(gcc) := e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff SIG(gcc) := ${URL(gcc)}.sig KEY(gcc) := GNU DIR(gcc) := src/noux-pkg/gcc @@ -33,15 +33,21 @@ endif $(call check_tool,autogen) -default: _patch - @# - @# Download prerequisites - @# +# for 'aclocal' command +$(call check_tool,automake) + +download_prerequisites: _dirs $(VERBOSE)cd ${DIR(gcc)}; contrib/download_prerequisites + +# The 'isl' prerequisite needs a patch too +_patch: download_prerequisites + +default: _patch @# @# Re-generate configure scripts @# $(VERBOSE)cd ${DIR(gcc)}; autogen Makefile.def + $(VERBOSE)cd ${DIR(gcc)}/isl; aclocal; $(AUTOCONF) $(VERBOSE)cd ${DIR(gcc)}/libgcc; $(AUTOCONF) $(VERBOSE)cd ${DIR(gcc)}/libstdc++-v3; $(AUTOCONF) $(VERBOSE)cd ${DIR(gcc)}/gcc; $(AUTOCONF) diff --git a/repos/ports/src/noux-pkg/gcc/patches/aarch64.patch b/repos/ports/src/noux-pkg/gcc/patches/aarch64.patch index 24ad7387a6..6372eff9fc 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/aarch64.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/aarch64.patch @@ -1,4 +1,4 @@ - +aarch64.patch From: Christian Prochaska @@ -11,23 +11,23 @@ From: Christian Prochaska 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/gcc/config.host b/gcc/config.host -index a14d7086e..3f5a781e1 100644 +index 17dfcb984..19b340dfd 100644 --- a/gcc/config.host +++ b/gcc/config.host -@@ -99,7 +99,7 @@ case ${host} in - esac +@@ -100,7 +100,7 @@ esac case ${host} in -- aarch64*-*-freebsd* | aarch64*-*-linux* | aarch64*-*-fuchsia*) -+ aarch64*-*-* | aarch64*-*-linux* | aarch64*-*-fuchsia*) + aarch64*-*-freebsd* | aarch64*-*-linux* | aarch64*-*-fuchsia* |\ +- aarch64*-*-darwin*) ++ aarch64*-*-darwin* | aarch64*-*-*) case ${target} in aarch64*-*-*) host_extra_gcc_objs="driver-aarch64.o" diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h -index 1ce23c687..f9d1f5c89 100644 +index 359b6e856..9d6984fa1 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h -@@ -1257,4 +1257,16 @@ extern poly_uint16 aarch64_sve_vg; +@@ -1370,4 +1370,16 @@ extern poly_uint16 aarch64_sve_vg; STACK_BOUNDARY / BITS_PER_UNIT) \ : (crtl->outgoing_args_size + STACK_POINTER_OFFSET)) @@ -45,10 +45,10 @@ index 1ce23c687..f9d1f5c89 100644 + #endif /* GCC_AARCH64_H */ diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64 -index 11d20b7be..2568aa887 100644 +index ba74abc0a..31f38d13d 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 \ +@@ -148,7 +148,7 @@ aarch64-speculation.o: $(srcdir)/config/aarch64/aarch64-speculation.cc \ $(TARGET_H) \ $(RTL_BASE_H) \ $(TREE_PASS_H) @@ -58,10 +58,10 @@ index 11d20b7be..2568aa887 100644 falkor-tag-collision-avoidance.o: \ diff --git a/libgcc/config.host b/libgcc/config.host -index 1907fb871..c2cfdb151 100644 +index 574ef77bd..94e711cec 100644 --- a/libgcc/config.host +++ b/libgcc/config.host -@@ -360,8 +360,9 @@ esac +@@ -377,8 +377,9 @@ esac case ${host} in aarch64*-*-elf | aarch64*-*-rtems*) diff --git a/repos/ports/src/noux-pkg/gcc/patches/arm.patch b/repos/ports/src/noux-pkg/gcc/patches/arm.patch index 5024b9bdd8..b8c57d5d12 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/arm.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/arm.patch @@ -9,10 +9,10 @@ From: Christian Prochaska 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h -index 72503dcab..e5f23add3 100644 +index 649bd8520..e8cd7decd 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h -@@ -945,7 +945,7 @@ extern const int arm_arch_cde_coproc_bits[]; +@@ -952,7 +952,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 72503dcab..e5f23add3 100644 #endif /* ttype entries (the only interesting data references used) -@@ -2343,10 +2343,7 @@ extern const char *arm_target_thumb_only (int argc, const char **argv); +@@ -2440,10 +2440,7 @@ extern const char *arm_target_mode (int argc, const char **argv); /* -mcpu=native handling only makes sense with compiler running on an ARM chip. */ #if defined(__arm__) @@ -34,7 +34,7 @@ index 72503dcab..e5f23add3 100644 " %{march=native:% 7 files changed, 62 insertions(+), 11 deletions(-) diff --git a/gcc/config.gcc b/gcc/config.gcc -index 6a349965c..d0e8646c0 100644 +index c5064dd37..d98f66763 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc -@@ -1310,7 +1310,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*) +@@ -1364,7 +1364,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*) case ${target} in arm*-*-eabi*) tm_file="$tm_file newlib-stdint.h" @@ -27,10 +27,10 @@ index 6a349965c..d0e8646c0 100644 ;; arm*-*-fuchsia*) diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h -index 30e1d6dc9..de4e7b7d9 100644 +index f47954081..907281781 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h -@@ -746,11 +746,11 @@ extern const int arm_arch_cde_coproc_bits[]; +@@ -753,11 +753,11 @@ extern const int arm_arch_cde_coproc_bits[]; #define MAX_FIXED_MODE_SIZE 64 #ifndef SIZE_TYPE @@ -45,7 +45,7 @@ index 30e1d6dc9..de4e7b7d9 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 9ad294750..cb5575a75 100644 +index bfb294bea..f83897fb0 100644 --- a/gcc/config/arm/unknown-elf.h +++ b/gcc/config/arm/unknown-elf.h @@ -93,4 +93,17 @@ @@ -67,7 +67,7 @@ index 9ad294750..cb5575a75 100644 + "%(shared:-shared) \ + %{!static:--eh-frame-hdr}" diff --git a/gcc/config/i386/x86-64.h b/gcc/config/i386/x86-64.h -index 88db428f5..2d2adc627 100644 +index 065269908..f1c34d76e 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 @@ -83,7 +83,7 @@ index 88db428f5..2d2adc627 100644 #undef WCHAR_TYPE #define WCHAR_TYPE "int" -@@ -102,3 +102,18 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +@@ -89,3 +89,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 @@ -103,27 +103,29 @@ index 88db428f5..2d2adc627 100644 + %{shared:-shared} \ + %{!static:--eh-frame-hdr}" diff --git a/gcc/config/riscv/elf.h b/gcc/config/riscv/elf.h -index 4e2d6464d..72399e5a8 100644 +index f0e865d6e..30e976371 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 +@@ -17,12 +17,14 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#ifndef LINK_SPEC #define LINK_SPEC "\ - -melf" XLEN_SPEC "lriscv \ + -melf" XLEN_SPEC DEFAULT_ENDIAN_SPEC "riscv \ %{mno-relax:--no-relax} \ + %{mbig-endian:-EB} \ + %{mlittle-endian:-EL} \ %{shared}" +#endif /* 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 567c23380..1b75709b8 100644 +index b3eb6abc2..ccd718a3d 100644 --- a/gcc/config/riscv/riscv.h +++ b/gcc/config/riscv/riscv.h -@@ -851,10 +851,10 @@ while (0) +@@ -912,10 +912,10 @@ while (0) #define ASM_COMMENT_START "#" #undef SIZE_TYPE @@ -136,9 +138,9 @@ index 567c23380..1b75709b8 100644 /* The maximum number of bytes copied by one iteration of a cpymemsi loop. */ -@@ -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) +@@ -1006,4 +1006,17 @@ extern void riscv_remove_unneeded_save_restore_calls (void); + #define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \ + ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2) + /* genode.h */ + @@ -155,10 +157,10 @@ index 567c23380..1b75709b8 100644 + #endif /* ! GCC_RISCV_H */ diff --git a/libgcc/config.host b/libgcc/config.host -index c529cc40f..1907fb871 100644 +index 8c56fcae5..574ef77bd 100644 --- a/libgcc/config.host +++ b/libgcc/config.host -@@ -328,7 +328,7 @@ case ${host} in +@@ -348,7 +348,7 @@ case ${host} in tmake_file=t-vxworks ;; *-*-elf) @@ -167,7 +169,7 @@ index c529cc40f..1907fb871 100644 ;; esac -@@ -498,8 +498,12 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*) +@@ -516,8 +516,12 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*) tm_file="$tm_file arm/bpabi-lib.h" case ${host} in arm*-*-eabi* | arm*-*-rtems*) @@ -181,7 +183,7 @@ index c529cc40f..1907fb871 100644 ;; arm*-*-symbianelf*) tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override" -@@ -701,6 +705,10 @@ i[34567]86-*-elf*) +@@ -715,6 +719,10 @@ i[34567]86-*-elf*) tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" ;; x86_64-*-elf* | x86_64-*-rtems*) @@ -192,7 +194,7 @@ index c529cc40f..1907fb871 100644 tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" case ${host} in x86_64-*-rtems*) -@@ -1268,8 +1276,8 @@ riscv*-*-freebsd*) +@@ -1311,8 +1319,8 @@ riscv*-*-freebsd*) extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o" ;; riscv*-*-*) diff --git a/repos/ports/src/noux-pkg/gcc/patches/emutls.patch b/repos/ports/src/noux-pkg/gcc/patches/emutls.patch index 6bb8e54976..6186cb2800 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/emutls.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/emutls.patch @@ -9,7 +9,7 @@ From: Christian Prochaska 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in -index 5417143b5..9dce2966c 100644 +index e559cb8ac..863031b6a 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -433,9 +433,12 @@ LIB2ADD += enable-execute-stack.c @@ -29,10 +29,10 @@ index 5417143b5..9dce2966c 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 9217e7390..5bf179de9 100644 +index cd7ee3fac..08427e107 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac -@@ -385,6 +385,9 @@ else +@@ -389,6 +389,9 @@ else AC_DEFINE(HAVE_TANL) AC_DEFINE(HAVE_TANHL) fi diff --git a/repos/ports/src/noux-pkg/gcc/patches/frame_pointer.patch b/repos/ports/src/noux-pkg/gcc/patches/frame_pointer.patch index 766a76c764..8b31152a16 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/frame_pointer.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/frame_pointer.patch @@ -8,10 +8,10 @@ From: Christian Prochaska 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/configure.ac b/gcc/configure.ac -index 1d58d9c07..545a6367e 100644 +index 2fe9ed3f2..31e4373a0 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac -@@ -2054,7 +2054,7 @@ linux* | gnu* | darwin[[8912]]* | cygwin* | mingw*) +@@ -2243,7 +2243,7 @@ linux* | gnu* | darwin[[8912]]* | cygwin* | mingw*) enable_frame_pointer=no ;; *) diff --git a/repos/ports/src/noux-pkg/gcc/patches/gcov.patch b/repos/ports/src/noux-pkg/gcc/patches/gcov.patch new file mode 100644 index 0000000000..2b849f9a93 --- /dev/null +++ b/repos/ports/src/noux-pkg/gcc/patches/gcov.patch @@ -0,0 +1,29 @@ +gcov.patch + +From: Christian Prochaska + + +--- + gcc/coverage.cc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/gcc/coverage.cc b/gcc/coverage.cc +index 8ece5db68..5ce8f4e3d 100644 +--- a/gcc/coverage.cc ++++ b/gcc/coverage.cc +@@ -1275,6 +1275,7 @@ coverage_init (const char *filename) + of filename in order to prevent file path clashing. */ + if (profile_data_prefix) + { ++#if 0 + filename = concat (getpwd (), separator, filename, NULL); + if (profile_prefix_path) + { +@@ -1290,6 +1291,7 @@ coverage_init (const char *filename) + } + filename = mangle_path (filename); + len = strlen (filename); ++#endif + } + else + profile_data_prefix = getpwd (); diff --git a/repos/ports/src/noux-pkg/gcc/patches/go_libbacktrace.patch b/repos/ports/src/noux-pkg/gcc/patches/go_libbacktrace.patch index 3b58f99bf7..c893402a33 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/go_libbacktrace.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/go_libbacktrace.patch @@ -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 4e8aabbd0..92ff23753 100644 +index 19fdbc393..a6c33f2a7 100644 --- a/gcc/go/config-lang.in +++ b/gcc/go/config-lang.in @@ -28,7 +28,7 @@ language="go" @@ -19,4 +19,4 @@ index 4e8aabbd0..92ff23753 100644 +target_libs="target-libgo target-libffi" lang_dirs="gotools" - gtfiles="\$(srcdir)/go/go-lang.c \$(srcdir)/go/go-c.h" + gtfiles="\$(srcdir)/go/go-lang.cc \$(srcdir)/go/go-c.h" diff --git a/repos/ports/src/noux-pkg/gcc/patches/host_target_combination.patch b/repos/ports/src/noux-pkg/gcc/patches/host_target_combination.patch index 2d6f5b034b..bbd1e10ee0 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/host_target_combination.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/host_target_combination.patch @@ -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 fe1828835..3c7bdb87d 100644 +index ae5283b7a..0ba50b3d8 100644 --- a/libstdc++-v3/crossconfig.m4 +++ b/libstdc++-v3/crossconfig.m4 -@@ -306,7 +306,6 @@ dnl # long_double_math_on_this_cpu in configure.ac, right after +@@ -314,7 +314,6 @@ dnl # long_double_math_on_this_cpu in configure.ac, right after dnl # the expansion of the present macro. ;; *) diff --git a/repos/ports/src/noux-pkg/gcc/patches/isl.patch b/repos/ports/src/noux-pkg/gcc/patches/isl.patch new file mode 100644 index 0000000000..19b7dfee40 --- /dev/null +++ b/repos/ports/src/noux-pkg/gcc/patches/isl.patch @@ -0,0 +1,22 @@ +isl.patch + +From: Christian Prochaska + + +--- + isl-0.24/configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/isl-0.24/configure.ac b/isl-0.24/configure.ac +index 3f5c7b3df..bfd1664e3 100644 +--- a/isl-0.24/configure.ac ++++ b/isl-0.24/configure.ac +@@ -20,7 +20,7 @@ fi + + AC_PROG_CC + AC_PROG_CXX +-AX_PROG_CC_FOR_BUILD ++#AX_PROG_CC_FOR_BUILD + + AX_CC_MAXOPT + AX_GCC_WARN_UNUSED_RESULT diff --git a/repos/ports/src/noux-pkg/gcc/patches/libcody.patch b/repos/ports/src/noux-pkg/gcc/patches/libcody.patch new file mode 100644 index 0000000000..bddb71f5b4 --- /dev/null +++ b/repos/ports/src/noux-pkg/gcc/patches/libcody.patch @@ -0,0 +1,22 @@ +libcody.patch + +From: Christian Prochaska + + +--- + libcody/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libcody/Makefile.in b/libcody/Makefile.in +index 7eaf8ace8..1ed028f71 100644 +--- a/libcody/Makefile.in ++++ b/libcody/Makefile.in +@@ -20,7 +20,7 @@ INSTALL := $(srcdir)/build-aux/install-sh + + # C++ compiler options + CXXFLAGS := @CXXFLAGS@ +-CXXINC := $(filter -I%,@CXX@) ++CXXINC := $(filter -I%,@CPPFLAGS@) + CXXOPTS := $(CXXFLAGS) @PICFLAG@ + + ifneq (@EXCEPTIONS@,yes) diff --git a/repos/ports/src/noux-pkg/gcc/patches/libgcc_s.patch b/repos/ports/src/noux-pkg/gcc/patches/libgcc_s.patch index 9dffa7cf9d..abf4fe4d5d 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/libgcc_s.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/libgcc_s.patch @@ -8,10 +8,10 @@ From: Christian Prochaska 1 file changed, 6 insertions(+) diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in -index 851e7657d..5417143b5 100644 +index 09b3ec8bc..e559cb8ac 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in -@@ -957,7 +957,11 @@ all: libunwind.a +@@ -958,7 +958,11 @@ all: libunwind.a endif ifeq ($(enable_shared),yes) @@ -23,7 +23,7 @@ index 851e7657d..5417143b5 100644 ifneq ($(LIBUNWIND),) all: libunwind$(SHLIB_EXT) libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT) -@@ -1163,9 +1167,11 @@ install-shared: +@@ -1164,9 +1168,11 @@ install-shared: chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a diff --git a/repos/ports/src/noux-pkg/gcc/patches/libstdcxx_without_libc.patch b/repos/ports/src/noux-pkg/gcc/patches/libstdcxx_without_libc.patch index 78c741db87..83928170a5 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/libstdcxx_without_libc.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/libstdcxx_without_libc.patch @@ -4,26 +4,28 @@ From: Christian Prochaska --- - libstdc++-v3/configure.ac | 6 ++++++ - 1 file changed, 6 insertions(+) + libstdc++-v3/configure.ac | 4 ++++ + 1 file changed, 4 insertions(+) diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac -index 18659a216..9217e7390 100644 +index ff4e5f776..cd7ee3fac 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac -@@ -90,9 +90,11 @@ AC_SYS_LARGEFILE +@@ -90,11 +90,13 @@ AC_SYS_LARGEFILE GLIBCXX_CONFIGURE # Libtool setup. +if test "$is_hosted" = yes; then - if test "x${with_newlib}" != "xyes"; then + if test "x${with_newlib}" != "xyes" && + test "x${with_avrlibc}" != "xyes" && + test "x$with_headers" != "xno"; then AC_LIBTOOL_DLOPEN fi +fi AM_PROG_LIBTOOL ACX_LT_HOST_FLAGS AC_SUBST(enable_shared) -@@ -211,7 +213,9 @@ AC_CHECK_HEADERS(fenv.h complex.h) +@@ -209,7 +211,9 @@ AC_CHECK_HEADERS(fenv.h complex.h) GLIBCXX_CHECK_C99_TR1 # For the EOF, SEEK_CUR, and SEEK_END integer constants. @@ -33,13 +35,3 @@ index 18659a216..9217e7390 100644 # For gettimeofday support. GLIBCXX_CHECK_GETTIMEOFDAY -@@ -388,7 +392,9 @@ GCC_CHECK_UNWIND_GETIPINFO - - GCC_LINUX_FUTEX([AC_DEFINE(HAVE_LINUX_FUTEX, 1, [Define if futex syscall is available.])]) - -+if test "$is_hosted" = yes; then - GCC_HEADER_STDINT(include/gstdint.h) -+fi - - GLIBCXX_ENABLE_SYMVERS([yes]) - AC_SUBST(libtool_VERSION) diff --git a/repos/ports/src/noux-pkg/gcc/patches/libsupcxx_demangle.patch b/repos/ports/src/noux-pkg/gcc/patches/libsupcxx_demangle.patch index 81dd9c3688..1dd71c1fbb 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/libsupcxx_demangle.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/libsupcxx_demangle.patch @@ -10,7 +10,7 @@ From: Christian Prochaska 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/include/libiberty.h b/include/libiberty.h -index 141cb886a..0a8b54db5 100644 +index a65ced9c8..b9d7904f1 100644 --- a/include/libiberty.h +++ b/include/libiberty.h @@ -46,7 +46,11 @@ extern "C" { @@ -26,7 +26,7 @@ index 141cb886a..0a8b54db5 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 cbfb2f937..a58820ae5 100644 +index 6dff7d28f..a73684ff3 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -106,7 +106,9 @@ @@ -39,7 +39,7 @@ index cbfb2f937..a58820ae5 100644 #ifdef HAVE_STDLIB_H #include -@@ -6390,7 +6392,7 @@ d_demangle (const char *mangled, int options, size_t *palc) +@@ -6546,7 +6548,7 @@ d_demangle (const char *mangled, int options, size_t *palc) return dgs.buf; } @@ -49,7 +49,7 @@ index cbfb2f937..a58820ae5 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 a0a500eab..8c37ec251 100644 +index a4402009b..1e6ba69e7 100644 --- a/libstdc++-v3/libsupc++/Makefile.in +++ b/libstdc++-v3/libsupc++/Makefile.in @@ -168,7 +168,11 @@ am__objects_1 = array_type_info.lo atexit_arm.lo atexit_thread.lo \ @@ -64,7 +64,7 @@ index a0a500eab..8c37ec251 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) \ -@@ -491,8 +495,14 @@ bits_HEADERS = \ +@@ -504,8 +508,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 a0a500eab..8c37ec251 100644 sources = \ array_type_info.cc \ -@@ -951,10 +961,17 @@ uninstall-am: uninstall-bitsHEADERS uninstall-stdHEADERS \ +@@ -966,10 +976,17 @@ uninstall-am: uninstall-bitsHEADERS uninstall-stdHEADERS \ cp-demangle.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@ @@ -95,6 +95,6 @@ index a0a500eab..8c37ec251 100644 cp-demangle.o: cp-demangle.c $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< +endif + atomicity.cc: ${atomicity_file} + $(LN_S) ${atomicity_file} ./atomicity.cc || true - # Use special rules for the C++17 sources so that the proper flags are passed. - new_opa.lo: new_opa.cc diff --git a/repos/ports/src/noux-pkg/gcc/patches/misc.patch b/repos/ports/src/noux-pkg/gcc/patches/misc.patch index a7103d396d..3bf75aa332 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/misc.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/misc.patch @@ -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 e277ab93a..b9bb01781 100644 +index 09856b9d4..5dd89c532 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 e277ab93a..b9bb01781 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 c99755344..d6abb8877 100644 +index 4efd7b43d..7842d3e46 100644 --- a/libgcc/config/t-slibgcc +++ b/libgcc/config/t-slibgcc @@ -26,7 +26,7 @@ SHLIB_MAP = @shlib_map_file@ diff --git a/repos/ports/src/noux-pkg/gcc/patches/new_opa.patch b/repos/ports/src/noux-pkg/gcc/patches/new_opa.patch index 41c0998d24..173f30304f 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/new_opa.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/new_opa.patch @@ -8,7 +8,7 @@ From: Christian Prochaska 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/libsupc++/new_opa.cc b/libstdc++-v3/libsupc++/new_opa.cc -index b935936e1..9efd29598 100644 +index 411cd8d98..3267d9a51 100644 --- a/libstdc++-v3/libsupc++/new_opa.cc +++ b/libstdc++-v3/libsupc++/new_opa.cc @@ -25,7 +25,7 @@ @@ -17,10 +17,10 @@ index b935936e1..9efd29598 100644 #include -#include +#include /* stdint.h would call 'include_next' */ - #include #include #include "new" -@@ -40,6 +40,8 @@ extern "C" void *memalign(std::size_t boundary, std::size_t size); + +@@ -39,6 +39,8 @@ extern "C" void *memalign(std::size_t boundary, std::size_t size); # endif #endif diff --git a/repos/ports/src/noux-pkg/gcc/patches/no_short_enums.patch b/repos/ports/src/noux-pkg/gcc/patches/no_short_enums.patch index 0f80337f01..3b8f843bc1 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/no_short_enums.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/no_short_enums.patch @@ -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 de4e7b7d9..72503dcab 100644 +index 907281781..649bd8520 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h -@@ -417,7 +417,7 @@ extern int arm_fpu_attr; +@@ -420,7 +420,7 @@ extern int arm_fpu_attr; /* AAPCS based ABIs use short enums by default. */ #ifndef ARM_DEFAULT_SHORT_ENUMS #define ARM_DEFAULT_SHORT_ENUMS \ diff --git a/repos/ports/src/noux-pkg/gcc/patches/noux_build.patch b/repos/ports/src/noux-pkg/gcc/patches/noux_build.patch index 590df43b1e..3f0f8a47cd 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/noux_build.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/noux_build.patch @@ -9,14 +9,14 @@ From: Christian Prochaska fixincludes/Makefile.in | 5 +++-- gcc/Makefile.in | 6 +++--- gcc/config.host | 2 +- - gcc/configure.ac | 4 ++-- - 6 files changed, 17 insertions(+), 8 deletions(-) + gcc/configure.ac | 2 +- + 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Makefile.def b/Makefile.def -index 36fd26b03..04797e3af 100644 +index 72d585496..5aa53856c 100644 --- a/Makefile.def +++ b/Makefile.def -@@ -292,6 +292,7 @@ flags_to_pass = { flag= GDCFLAGS_FOR_TARGET ; }; +@@ -314,6 +314,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,11 +25,11 @@ index 36fd26b03..04797e3af 100644 flags_to_pass = { flag= LIBCXXFLAGS_FOR_TARGET ; }; flags_to_pass = { flag= NM_FOR_TARGET ; }; diff --git a/Makefile.tpl b/Makefile.tpl -index efed15117..6ba0228c5 100644 +index ef58fac2b..66c012371 100644 --- a/Makefile.tpl +++ b/Makefile.tpl -@@ -156,6 +156,8 @@ BUILD_EXPORTS = \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ +@@ -161,6 +161,8 @@ BUILD_EXPORTS = \ + CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ CXX="$(CXX_FOR_BUILD)"; export CXX; \ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ + CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ @@ -37,7 +37,7 @@ index efed15117..6ba0228c5 100644 GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ GOC="$(GOC_FOR_BUILD)"; export GOC; \ GOCFLAGS="$(GOCFLAGS_FOR_BUILD)"; export GOCFLAGS; \ -@@ -173,6 +175,7 @@ BUILD_EXPORTS = \ +@@ -179,6 +181,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 efed15117..6ba0228c5 100644 LDFLAGS="$(LDFLAGS_FOR_BUILD)" # This is the list of directories to built for the host system. -@@ -195,6 +198,8 @@ HOST_EXPORTS = \ +@@ -201,6 +204,8 @@ HOST_EXPORTS = \ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ @@ -54,7 +54,7 @@ index efed15117..6ba0228c5 100644 GFORTRAN="$(GFORTRAN)"; export GFORTRAN; \ GOC="$(GOC)"; export GOC; \ GDC="$(GDC)"; export GDC; \ -@@ -292,6 +297,7 @@ BASE_TARGET_EXPORTS = \ +@@ -305,6 +310,7 @@ BASE_TARGET_EXPORTS = \ CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ @@ -62,14 +62,14 @@ index efed15117..6ba0228c5 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; \ -@@ -701,6 +707,7 @@ EXTRA_TARGET_FLAGS = \ +@@ -769,6 +775,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)' \ + 'DSYMUTIL=$$(DSYMUTIL_FOR_TARGET)' \ '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 1937dcaa3..60e2b2793 100644 --- a/fixincludes/Makefile.in @@ -97,19 +97,19 @@ index 1937dcaa3..60e2b2793 100644 $(AF): $(FIXOBJ) $(LIBIBERTY) diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 5d05e8e0d..0919e579a 100644 +index 31ff95500..33c2e4521 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in -@@ -804,7 +804,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@ - BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@ - BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG) +@@ -816,7 +816,7 @@ BUILD_LINKERFLAGS = $(BUILD_CXXFLAGS) + # Native linker and preprocessor flags. For x-fragment overrides. + BUILD_LDFLAGS=@BUILD_LDFLAGS@ BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \ - -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS) + -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(INCLUDES) $(CPPFLAGS_FOR_BUILD) # Actual name to use when installing a native compiler. GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)') -@@ -1061,8 +1061,8 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY) +@@ -1082,8 +1082,8 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY) # How to link with both our special library facilities # and the system's installed libraries. @@ -121,10 +121,10 @@ index 5d05e8e0d..0919e579a 100644 $(ZLIB) $(ZSTD_LIB) # Any system libraries needed just for GNAT. diff --git a/gcc/config.host b/gcc/config.host -index 84f0433e2..a14d7086e 100644 +index 4ca300f11..17dfcb984 100644 --- a/gcc/config.host +++ b/gcc/config.host -@@ -107,7 +107,7 @@ case ${host} in +@@ -108,7 +108,7 @@ case ${host} in ;; esac ;; @@ -134,17 +134,15 @@ index 84f0433e2..a14d7086e 100644 arm*-*-*) host_extra_gcc_objs="driver-arm.o" diff --git a/gcc/configure.ac b/gcc/configure.ac -index 715fcba04..d57e6aea1 100644 +index 23bee7010..2fe9ed3f2 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac -@@ -1897,8 +1897,8 @@ else +@@ -2091,7 +2091,7 @@ else # system.h from including gmp.h. CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ - LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ -- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ + LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" LIBS="${LIBS_FOR_BUILD}" \ -+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ + GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ ${realsrcdir}/configure \ --enable-languages=${enable_languages-all} \ - ${enable_obsolete+--enable-obsolete="$enable_obsolete"} \ diff --git a/repos/ports/src/noux-pkg/gcc/patches/prefer_pic.patch b/repos/ports/src/noux-pkg/gcc/patches/prefer_pic.patch index bf994402b4..b86ac59960 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/prefer_pic.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/prefer_pic.patch @@ -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 699e55fd8..18659a216 100644 +index e59bcdb29..ff4e5f776 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac -@@ -116,16 +116,16 @@ fi +@@ -118,16 +118,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. diff --git a/repos/ports/src/noux-pkg/gcc/patches/revert_gcov_path_mangling.patch b/repos/ports/src/noux-pkg/gcc/patches/revert_gcov_path_mangling.patch deleted file mode 100644 index 7e254326da..0000000000 --- a/repos/ports/src/noux-pkg/gcc/patches/revert_gcov_path_mangling.patch +++ /dev/null @@ -1,192 +0,0 @@ -revert_gcov_name_mangling.patch - -From: Christian Prochaska - - ---- - 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; - } diff --git a/repos/ports/src/noux-pkg/gcc/patches/series b/repos/ports/src/noux-pkg/gcc/patches/series index 1d4030889d..c2e3c2294e 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/series +++ b/repos/ports/src/noux-pkg/gcc/patches/series @@ -1,3 +1,4 @@ +isl.patch config.patch misc.patch no_short_enums.patch @@ -14,4 +15,5 @@ new_opa.patch aarch64.patch emutls.patch frame_pointer.patch -revert_gcov_path_mangling.patch +gcov.patch +libcody.patch diff --git a/repos/ports/src/noux-pkg/gcc/patches/target_libbacktrace.patch b/repos/ports/src/noux-pkg/gcc/patches/target_libbacktrace.patch index 44c77ee225..e630e93e1d 100644 --- a/repos/ports/src/noux-pkg/gcc/patches/target_libbacktrace.patch +++ b/repos/ports/src/noux-pkg/gcc/patches/target_libbacktrace.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 c78d9cbea..2a25449de 100644 +index 85977482a..e1a0a797b 100644 --- a/configure.ac +++ b/configure.ac -@@ -145,7 +145,6 @@ host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb +@@ -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 \ diff --git a/repos/ports/src/noux-pkg/gcc/target.inc b/repos/ports/src/noux-pkg/gcc/target.inc index 97b166f013..db827437e2 100644 --- a/repos/ports/src/noux-pkg/gcc/target.inc +++ b/repos/ports/src/noux-pkg/gcc/target.inc @@ -17,6 +17,7 @@ CONFIGURE_ARGS = --program-prefix=$(PROGRAM_PREFIX) \ --disable-tls \ --disable-threads \ --disable-hosted-libstdcxx \ + --disable-c++-tools \ --enable-shared \ --enable-multiarch \ --disable-sjlj-exceptions \ diff --git a/tool/builddir/build.mk b/tool/builddir/build.mk index ed31c74654..342451777e 100644 --- a/tool/builddir/build.mk +++ b/tool/builddir/build.mk @@ -194,7 +194,7 @@ check_tool = $(if $(shell command -v $(1)),,$(error Need to have '$(1)' installe # Empty DST_DIRS is interpreted as a tool-chain agnostic target, e.g., clean. # ifneq ($(DST_DIRS),) -REQUIRED_GCC_VERSION ?= 10.3.0 +REQUIRED_GCC_VERSION ?= 12.2.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") diff --git a/tool/tool_chain b/tool/tool_chain index edaa9dc1f6..2ef45f59a9 100755 --- a/tool/tool_chain +++ b/tool/tool_chain @@ -57,7 +57,7 @@ GENODE_DIR ?= $(realpath $(dir $(firstword $(MAKEFILE_LIST)))/..) # TOOL_CHAIN_VERSION = 23.05 -GCC_VERSION = 10.3.0 +GCC_VERSION = 12.2.0 BINUTILS_VERSION = 2.32 # @@ -173,7 +173,7 @@ TARGET_NAME_arm = arm-none-eabi TARGET_NAME_riscv = riscv64-unknown-elf TARGET_NAME_aarch64 = aarch64-none-elf -GCC_CONFIG_riscv = --with-arch=rv64imac --with-abi=lp64 +GCC_CONFIG_riscv = --with-arch=rv64imac_zicsr_zifencei --with-abi=lp64 INSTALL_riscv = cd $(INSTALL_LOCATION)/lib/gcc/riscv64-unknown-elf/$(GCC_VERSION)/rv64imac/lp64 && \ $(SUDO) ln -sf ../../include include @@ -244,8 +244,23 @@ BINUTILS_CONFIG += $(BINUTILS_CONFIG_$(PLATFORM)) # # GDB configure arguments # -GDB_CONFIG += $(COMMON_CONFIG) --disable-werror --disable-sim +# --with-static-standard-libraries is needed because the bootstrap libstdc++ +# used for building might be incompatible with the host libstdc++ used at +# runtime +# +# --disable-source-highlight is needed because the feature is incompatible +# with --with-static-standard-libraries +# +GDB_CONFIG += $(COMMON_CONFIG) \ + --disable-werror \ + --disable-sim \ + --with-static-standard-libraries \ + --disable-source-highlight +# +# -fno-tree-vectorize is needed to prevent vectorization in libgcc, +# which caused startup problems with the Fiasco.OC bootstrap component. +# GCC_CONFIG += $(COMMON_CONFIG) \ --enable-languages=$(LANGUAGES) \ --disable-libgo \ @@ -263,8 +278,13 @@ GCC_CONFIG += $(COMMON_CONFIG) \ --enable-shared \ --enable-multiarch \ --disable-sjlj-exceptions \ - CFLAGS_FOR_TARGET="-I$(GENODE_DIR)/tool -DUSE_PT_GNU_EH_FRAME -Dinhibit_libc -fPIC" \ - CXXFLAGS_FOR_TARGET="-fPIC" + CFLAGS_FOR_TARGET="-I$(GENODE_DIR)/tool \ + -DUSE_PT_GNU_EH_FRAME \ + -Dinhibit_libc \ + -fPIC \ + -fno-tree-vectorize" \ + CXXFLAGS_FOR_TARGET="-fPIC \ + -fno-tree-vectorize" GCC_CONFIG += $(GCC_CONFIG_$(PLATFORM))