Skip to Content.
Sympa Menu

sm-commit - [[SM-Commit] ] GIT changes to master grimoire by Ismael Luceno (71a0e7a9705a292c2b34e813125b8ad670b3e712)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Ismael Luceno <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org, sm-commit AT lists.sourcemage.org
  • Subject: [[SM-Commit] ] GIT changes to master grimoire by Ismael Luceno (71a0e7a9705a292c2b34e813125b8ad670b3e712)
  • Date: Sun, 22 Jun 2025 04:43:04 +0000

GIT changes to master grimoire by Ismael Luceno <ismael AT sourcemage.org>:

ChangeLog
| 3
gnu/gcc-14/BUILD
| 157 +
gnu/gcc-14/CONFIGURE
| 19
gnu/gcc-14/CONFLICTS
| 5
gnu/gcc-14/DEPENDS
| 46
gnu/gcc-14/DETAILS
| 60
gnu/gcc-14/EXPORTS
| 6
gnu/gcc-14/FINAL
| 5
gnu/gcc-14/HISTORY
| 931 ++++++++++
gnu/gcc-14/INSTALL
| 31
gnu/gcc-14/PREPARE
| 30
gnu/gcc-14/PRE_BUILD
| 50
gnu/gcc-14/PRE_SUB_DEPENDS
| 14
gnu/gcc-14/REPAIR^all^EXPORTS
| 6
gnu/gcc-14/REPAIR^none^volatiles
| 1
gnu/gcc-14/SUB_DEPENDS
| 15
gnu/gcc-14/patches/0002-Remove-conflicting-duplicated-manpages.patch
| 36
gnu/gcc-14/patches/0003-all-posix_memalign.patch
| 45

gnu/gcc-14/patches/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
| 46

gnu/gcc-14/patches/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
| 115 +
gnu/gcc-14/patches/0006-ada-libgnarl-compatibility-for-musl.patch
| 138 +
gnu/gcc-14/patches/0007-ada-musl-support-fixes.patch
| 226 ++

gnu/gcc-14/patches/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
| 30

gnu/gcc-14/patches/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
| 31

gnu/gcc-14/patches/0010-druntime-link-against-libucontext-on-all-platforms.patch
| 58
gnu/gcc-14/patches/0011-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
| 28
gnu/gcc-14/patches/0012-libphobos-do-not-use-LFS64-symbols.patch
| 34
gnu/gcc-14/patches/0013-libgo-fix-lfs64-use.patch
| 198 ++
gnu/gcc-14/patches/0014-lto-plugin-no-la.patch
| 11
gnu/gcc-14/volatiles
| 1
gnu/gcc/BUILD
| 2
gnu/gcc/HISTORY
| 3
32 files changed, 2381 insertions(+)

New commits:
commit 71a0e7a9705a292c2b34e813125b8ad670b3e712
Author: Ismael Luceno <ismael AT sourcemage.org>
Commit: Ismael Luceno <ismael AT sourcemage.org>

gcc: Avoid adding generic -mtune=x86_64 on compiler flags

When transforming -march=*.

commit 68cc7e2f79431035af63fbb955e852f878031888
Author: Ismael Luceno <ismael AT sourcemage.org>
Commit: Ismael Luceno <ismael AT sourcemage.org>

gcc-14: new spell, the GNU C compiler collection, version 14.x

diff --git a/ChangeLog b/ChangeLog
index 314c0b5..ed87ef4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2025-06-20 Ismael Luceno <ismael AT sourcemage.org>
+ * gnu/gcc-14: new spell, the GNU C compiler collection, version 14.x
+
2025-05-15 Ismael Luceno <ismael AT sourcemage.org>
* science-libs/minisat: new spell, minimalistic, open-source SAT
solver
diff --git a/gnu/gcc-14/BUILD b/gnu/gcc-14/BUILD
new file mode 100755
index 0000000..75a01e0
--- /dev/null
+++ b/gnu/gcc-14/BUILD
@@ -0,0 +1,157 @@
+# cc1 compilation fails if the file blocks limit is too low
+ulimit -f unlimited &&
+
+. "$GRIMOIRE/FUNCTIONS" &&
+# using -pipe causes spurious test-suite failures
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565
+CFLAGS=${CFLAGS/-pipe/} &&
+CXXFLAGS=${CXXFLAGS/-pipe/} &&
+
+OPTS+=" $GCC_OPTS" &&
+
+if list_find "$GCC_COMPILER" "fortran"; then
+ OPTS+=" --enable-libquadmath"
+else
+ OPTS+=" --disable-libquadmath"
+fi &&
+
+if list_find "$GCC_COMPILER" "jit"; then
+ OPTS+=" --enable-host-shared"
+fi &&
+
+persistent_read gmp GMP_BUILD_ARCH GMP_BUILD_ARCH &&
+persistent_read mpfr MPFR_BUILD_ARCH MPFR_BUILD_ARCH &&
+
+if [[ $GMP_BUILD_ARCH != ${SMGL_COMPAT_ARCHS[4]}
+ || $MPFR_BUILD_ARCH != ${SMGL_COMPAT_ARCHS[4]} ]]; then
+ message "${PROBLEM_COLOR}" 1>&2 &&
+ message "gmp and/or mpfr have been built with a different archspec,
building gcc now" 1>&2 &&
+ message "would result in a broken compiler" 1>&2 &&
+ message "${DEFAULT_COLOR}" 1>&2
+ return 1
+fi &&
+
+# install gcc libraries to /lib instead of /lib64
+sedit "s/lib64/lib/" gcc/config/i386/linux64.h &&
+# tell gcc to target binaries to expect the linker in /lib instead of /lib64
+sedit "s/lib64/lib/" gcc/config/i386/t-linux64 &&
+
+if [[ "$ARCHITECTURE" == "pentium4" ||
+ "$ARCHITECTURE" == "pentium-m" ]]; then
+ CFLAGS=${CFLAGS//-ffast-math/}
+ CXXFLAGS=${CXXFLAGS//-ffast-math/}
+fi &&
+
+disable_fortify_source &&
+disable_cf_protection &&
+
+# fixes seg-fault on libiberty/splay.c in v 4.3.2
+if is_version_less $(installed_version gcc) 5.0.0; then
+ CFLAGS="-O1 $CFLAGS"
+fi &&
+
+if [[ $CROSS_INSTALL == on ]]; then
+ OPTS="--host=$HOST $OPTS"
+else
+ OPTS="--build=$HOST $OPTS"
+fi &&
+
+if [ "x$GCC_NO_MARCH" = xy ]; then
+ CFLAGS="${CFLAGS//-march=x86_64}" &&
+ CXXFLAGS="${CXXFLAGS//-march=x86_64}" &&
+ CFLAGS="${CFLAGS//-march=/-mtune=}" &&
+ CXXFLAGS="${CXXFLAGS//-march=/-mtune=}"
+fi &&
+
+# store CFLAGS and LDFLAGS persistently so they can be read by the other
+# split spells later, see bug #10087
+GCC_CFLAGS="$CFLAGS" &&
+GCC_LDFLAGS="$LDFLAGS" &&
+persistent_add GCC_CFLAGS GCC_LDFLAGS &&
+# when updating this spell please check if this is still necessary:
+if [[ $GCJ_AWT == y ]]; then
+ CFLAGS="$CFLAGS -I${INSTALL_ROOT}/usr/include/freetype2"
+fi &&
+
+if list_find "$GCC_COMPILER" "ada" ; then
+ # setup bootstrap ada compiler
+ ADA_PATH=${SOURCE13/.tar.bz2/} &&
+ PATH=$SOURCE_DIRECTORY/$ADA_PATH/bin:$PATH &&
+
+ export CC="$SOURCE_DIRECTORY/$ADA_PATH/usr/bin/gcc" &&
+
+ export
INCLUDE_DIR="$SOURCE_DIRECTORY/$ADA_PATH/usr/lib/gcc/$HOST/${VERSION13}/include"
&&
+ export
LIB_DIR="$SOURCE_DIRECTORY/$ADA_PATH/usr/lib/gcc/$HOST/${VERSION13}/" &&
+ export LDFLAGS="-L${LIB_DIR}" &&
+ export LIBRARY_PATH="$LIB_DIR" &&
+ export LD_LIBRARY_PATH="$LIB_DIR" &&
+ export COMPILER_PATH="$SOURCE_DIRECTORY/$ADA_PATH/usr/bin" &&
+
+ export ADA_OBJECTS_PATH="$LIB_DIR/adalib" &&
+ export ADA_INCLUDE_PATH="$LIB_DIR/adainclude" &&
+
+ OPTS="--enable-libada $OPTS"
+
+fi &&
+
+OPTS="$GCJ_HOME $OPTS" &&
+OPTS="--prefix=$INSTALL_ROOT/opt/gcc-${VERSION/.*} $OPTS" &&
+OPTS="--program-suffix=-${VERSION/.*} $OPTS" &&
+OPTS="--with-gcc-major-version-only $OPTS" &&
+OPTS="--with-bugurl=http://bugs.sourcemage.org $OPTS" &&
+OPTS="--enable-languages=${GCC_COMPILER// /,},lto $OPTS" &&
+OPTS="--enable-shared $OPTS" &&
+OPTS="--enable-threads=posix $OPTS" &&
+OPTS="--enable-__cxa_atexit $OPTS" &&
+OPTS="--disable-libunwind-exceptions $OPTS" &&
+OPTS="--enable-clocale=gnu $OPTS" &&
+OPTS="--disable-libstdcxx-pch $OPTS" &&
+OPTS="--enable-bootstrap $OPTS" &&
+OPTS="--enable-gnu-unique-object $OPTS" &&
+OPTS="--enable-linker-build-id $OPTS" &&
+if [[ "$GCC_CLOOG" == "y" ]]; then
+ OPTS="--enable-cloog-backend=isl $OPTS" &&
+ OPTS="--disable-isl-version-check $OPTS"
+else
+ OPTS="--without-isl --without-cloog $OPTS"
+fi &&
+OPTS="--enable-plugin $OPTS" &&
+OPTS="--enable-install-libiberty $OPTS" &&
+OPTS="--with-linker-hash-style=gnu $OPTS" &&
+OPTS="--disable-werror $OPTS" &&
+OPTS="--enable-checking=release $OPTS" &&
+OPTS="--enable-default-pie $OPTS" &&
+OPTS="--enable-default-ssp $OPTS" &&
+OPTS="--enable-cet=auto $OPTS" &&
+OPTS="--enable-lto $OPTS" &&
+OPTS="$GCC_MULTILIB $OPTS" &&
+
+case "$HOST" in
+*-musl)
+ OPTS="--disable-multilib $OPTS" &&
+ OPTS="--disable-libmpx $OPTS" &&
+ OPTS="--disable-libmudflap $OPTS" &&
+ OPTS="--disable-libsanitizer $OPTS" &&
+ OPTS="--disable-symvers $OPTS"
+ ;;
+esac &&
+
+# https://sourceware.org/bugzilla/show_bug.cgi?id=21930
+export glibcxx_cv_c99_math_cxx98=yes glibcxx_cv_c99_math_cxx11=yes &&
+
+cd $SOURCE_DIRECTORY.bld &&
+$SOURCE_DIRECTORY/configure $OPTS &&
+
+if is_version_less $(installed_version gcc) 4.9.0; then
+ if ! spell_ok gcc49; then
+ message "${PROBLEM_COLOR}" 1>&2 &&
+ message "This version of gcc needs gcc >= 4.9.0 to be able to compile.
Spell" 1>&2 &&
+ message "gcc49 is available to support this, but is not found to be
installed." 1>&2 &&
+ message "Please cast gcc49 first." 1>&2 &&
+ message "${DEFAULT_COLOR}" 1>&2
+ return 1
+ fi
+ PATH=/opt/gcc49/bin:$PATH make CFLAGS="$CFLAGS" BOOT_CFLAGS="$CFLAGS"
LDFLAGS="$LDFLAGS" $GCC_TARGET
+else
+ make CFLAGS="$CFLAGS" BOOT_CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" $GCC_TARGET
+fi
diff --git a/gnu/gcc-14/CONFIGURE b/gnu/gcc-14/CONFIGURE
new file mode 100755
index 0000000..bbc9db9
--- /dev/null
+++ b/gnu/gcc-14/CONFIGURE
@@ -0,0 +1,19 @@
+. $SECTION_DIRECTORY/FUNCTIONS &&
+default_configure_gcc &&
+
+config_query_list GCC_TARGET "Select what build to use" \
+ all \
+ bootstrap \
+ bootstrap-lean \
+ profiledbootstrap \
+ profiledbootstrap-lean &&
+
+config_query GCC_NO_MARCH \
+ "Make a generic/portable build (useful for distcc/icecream)?" n
&&
+
+config_query_option GCC_OPTS \
+ "Build C/C++ transactional memory support (libitm)?" n \
+ --enable-libitm \
+ --disable-libitm &&
+
+config_query GCC_CLOOG "Use cloog loop vectorizer?" y
diff --git a/gnu/gcc-14/CONFLICTS b/gnu/gcc-14/CONFLICTS
new file mode 100755
index 0000000..4522282
--- /dev/null
+++ b/gnu/gcc-14/CONFLICTS
@@ -0,0 +1,5 @@
+conflicts ada y
+conflicts fortran y
+conflicts g++ y
+conflicts gcj y
+conflicts objc y
diff --git a/gnu/gcc-14/DEPENDS b/gnu/gcc-14/DEPENDS
new file mode 100755
index 0000000..510c309
--- /dev/null
+++ b/gnu/gcc-14/DEPENDS
@@ -0,0 +1,46 @@
+. "$GRIMOIRE/FUNCTIONS" &&
+. "$GRIMOIRE/libcompat" &&
+depends perl &&
+depends diffutils &&
+depends gmp "--with-gmp=${INSTALL_ROOT}/" &&
+depends libmpc "--with-mpc=${INSTALL_ROOT}/usr" &&
+depends mpfr "--with-mpfr=${INSTALL_ROOT}/" &&
+depends smgl-fhs &&
+depends smgl-archspecs &&
+depends zlib "--with-system-zlib" &&
+
+optional_depends GETTEXT \
+ "--enable-nls" \
+ "--disable-nls" \
+ "for Native Language Support" &&
+
+optional_depends libxcrypt '' '' 'use libcrypt' &&
+
+if is_version_less $(installed_version gcc) 4.9.0; then
+ depends gcc49
+fi &&
+
+if is_version_less $(installed_version gmp) 4.3.2; then
+ force_depends mpfr
+fi &&
+if is_version_less $(installed_version mpfr) 2.4.2; then
+ force_depends mpfr
+fi &&
+
+if spell_ok gmp; then
+ persistent_read gmp GMP_BUILD_ARCH GMP_BUILD_ARCH || true
+fi &&
+if spell_ok mpfr; then
+ persistent_read mpfr MPFR_BUILD_ARCH MPFR_BUILD_ARCH || true
+fi &&
+if [[ $GMP_BUILD_ARCH != ${SMGL_COMPAT_ARCHS[4]}
+ || $MPFR_BUILD_ARCH != ${SMGL_COMPAT_ARCHS[4]} ]]; then
+ force_depends gmp &&
+ force_depends mpfr
+fi &&
+
+
+if is_version_less $(installed_version libmpc) 0.8.1; then
+ force_depends libmpc
+fi
+
diff --git a/gnu/gcc-14/DETAILS b/gnu/gcc-14/DETAILS
new file mode 100755
index 0000000..bb15889
--- /dev/null
+++ b/gnu/gcc-14/DETAILS
@@ -0,0 +1,60 @@
+# Watch: https://ftp.gnu.org/gnu/gcc href="gcc-([0-9.]+)/"
+ SPELL=gcc-14
+ VERSION=14.3.0
+ ISL_VERSION=0.24
+ BASE_SOURCE_URL="https://ftp.gnu.org/pub/gnu/gcc/gcc-$VERSION";
+ SOURCE=gcc-$VERSION.tar.xz
+ SOURCE2=$SOURCE.sig
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/gcc-${VERSION}"
+ SOURCE_URL[0]=$GNU_URL/gcc/gcc-$VERSION/$SOURCE
+ SOURCE_URL[1]=${BASE_SOURCE_URL}/$SOURCE
+ SOURCE2_URL[0]=${SOURCE_URL[0]}.sig
+ SOURCE2_URL[1]=${SOURCE_URL[1]}.sig
+ SOURCE_GPG=gnu.gpg:$SOURCE.sig:UPSTREAM_KEY
+ SOURCE2_IGNORE=signature
+
+if [[ "$GCC_CLOOG" == "y" ]]; then
+ SOURCE3=isl-${ISL_VERSION}.tar.xz
+ SOURCE3_URL[0]=https://libisl.sourceforge.io/$SOURCE3
+
SOURCE3_HASH=sha512:ff6bdcff839e1cd473f2a0c1e4dd4a3612ec6fee4544ccbc62b530a7248db2cf93b4b99bf493a86ddf2aba00e768927265d5d411f92061ea85fd7929073428e8
+fi
+
+if list_find "$GCC_COMPILER" "ada" ; then
+
+# howto generate the ada bootstraper
+# step 1: make a backup of your existing gcc cache you'll lose things like
libstdc++
+# step 2: modify sorcery CFLAGS to be generic x86_64 only
+# step 3: cast -r gcc -> select c and ada
+# step 4: wait
+# step 5: after it's done copy the generated cache(named
gcc-$VERSION-$HOST.tar.bz2)
+# to ada-$VERSION-$HOST.tar.bz2
+# step 7: update version under the right field and test cast gcc with ada
enabled
+# step 8: cast something ada dependant AND RUN IT
+# step 9: if it all works then upload the cache generated under step 5
somewhere
+# bug someone to put it in the right place if you don't have access
+# step 10: restore your old gcc cache and resurrect it
+#
+
+ case "${SMGL_COMPAT_ARCHS[1]}" in
+ x86_64) VERSION13=12.1.0 ARCH13=x86_64 ;;
+ *) VERSION13=4.7.1 ARCH13=i686 ;;
+ esac
+ SOURCE13=ada-$VERSION13-$ARCH13-pc-linux-gnu.tar.bz2
+ SOURCE13_URL[0]=https://download.sourcemage.org/distro/$SOURCE13
+ SOURCE13_URL[1]=https://smgl.bandrate.org/$SOURCE13
+ SOURCE13_GPG="gurus.gpg:$SOURCE13.sig:VERIFIED_UPSTREAM_KEY"
+ SOURCE14=$SOURCE13.sig
+ SOURCE14_URL[0]=${SOURCE13_URL[0]}.sig
+ SOURCE14_URL[1]=${SOURCE13_URL[1]}.sig
+ SOURCE14_IGNORE=signature
+fi
+ LICENSE[0]=GPL
+ TMPFS=off
+ WEB_SITE=https://gcc.gnu.org/
+ KEYWORDS="compiler"
+ ENTERED=20040420
+ SHORT="the GNU C compiler collection"
+ DOCS="$DOCS INSTALL"
+cat << EOF
+The entire GNU C Compiler collection.
+EOF
diff --git a/gnu/gcc-14/EXPORTS b/gnu/gcc-14/EXPORTS
new file mode 100755
index 0000000..b46480a
--- /dev/null
+++ b/gnu/gcc-14/EXPORTS
@@ -0,0 +1,6 @@
+GCC_CFLAGS
+GCC_COMPILER
+GCC_LDFLAGS
+GCC_MULTILIB
+GCC_NOLIB64
+GCC_BUILD_ARCH
diff --git a/gnu/gcc-14/FINAL b/gnu/gcc-14/FINAL
new file mode 100755
index 0000000..f09e41e
--- /dev/null
+++ b/gnu/gcc-14/FINAL
@@ -0,0 +1,5 @@
+default_final
+rm_source_dir $SOURCE_DIRECTORY.bld
+
+GCC_BUILD_ARCH=${SMGL_COMPAT_ARCHS[4]}
+persistent_add GCC_BUILD_ARCH
diff --git a/gnu/gcc-14/HISTORY b/gnu/gcc-14/HISTORY
new file mode 100644
index 0000000..ea96c9c
--- /dev/null
+++ b/gnu/gcc-14/HISTORY
@@ -0,0 +1,931 @@
+2025-06-20 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS: updated spell to 14.3.0
+ * Copied from gcc spell, version 14.2.0
+ * BUILD, INSTALL: adapted to installing in /opt
+ * BUILD, DEPENDS: substituted $SPELL where appropriate
+ * SOLO, UP_TRIGGERS: removed, not needed
+ * BUILD, CONFIGURE: added a knob for libitm
+ * PRE_BUILD: patch remaining libtool instances instead of using
+ libtool-nola
+ removed generic -march=x86_64
+
+2025-02-20 Thomas Orgis <sobukus AT sourcemage.org>
+ * patches/0014-lto-plugin-no-la.patch: re-enable linker plugin
support for .la-less
+ world
+ * DETAILS: ++PATCHLEVEL
+
+2025-01-25 Ismael Luceno <ismael AT sourcemage.org>
+ * INSTALL: added missing standard symlinks (c89, c99, c17)
+
+2024-08-31 Ismael Luceno <ismael AT sourcemage.org>
+ * BUILD, CONFIGURE: added knob to make a portable/generic build
+ * DETAILS: PATCHLEVEL++
+
+2024-08-01 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 14.2.0
+ * patches/0001-Fix-building-JIT-with-musl-libc-PR115442.patch: deleted
+
+2024-06-11 Ismael Luceno <ismael AT sourcemage.org>
+ * patches/0001-Fix-building-JIT-with-musl-libc-PR115442.patch:
+ fixed build against musl
+
+2024-05-07 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 14.1.0, quoting++
+ * patches/0001-Add-targetm.libm_function_max_error.patch: removed
+
+2024-01-14 Remko van der Vossen <wich AT sourcemage.org>
+ * BUILD: use PATH to select gcc49 as necessary
+
+2023-12-16 Remko van der Vossen <wich AT sourcemage.org>
+ * DEPENDS, PRE_BUILD: optional depends libxcrypt
+
+2023-07-27 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 13.2.0
+
+2023-07-14 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS: PATCHLEVEL++
+ * 0003-all-posix_memalign.patch,
+ 0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch,
+ 0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch:
+ normalised and renamed the patches
+ * patches/0002-Remove-conflicting-duplicated-manpages.patch:
+ added to avoid conflicting GCC installations
+ * patches/0001-Add-targetm.libm_function_max_error.patch:
+ added upstream fix
+ * patches/0006-ada-libgnarl-compatibility-for-musl.patch,
+ patches/0007-ada-musl-support-fixes.patch,
+
patches/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
+
patches/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
+
patches/0010-druntime-link-against-libucontext-on-all-platforms.patch
+ patches/0011-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
+ patches/0012-libphobos-do-not-use-LFS64-symbols.patch
+ patches/0013-libgo-fix-lfs64-use.patch:
+ added build fixes for musl
+
+2023-07-11 Ismael Luceno <ismael AT sourcemage.org>
+ * PRE_BUILD: enabled patch application again
+ * patches/0001-libgo-make-match.sh-POSIX-shell-compatible.patch:
+ removed, applied by upstream
+ * patches/0001-libgo-Add-support-for-libucontext.patch,
+
patches/0001-libgo-include-asm-ptrace.h-for-pt_regs-definition-on-PowerPC.patch,
+ patches/0034-Use-generic-errstr.go-implementation-on-musl.patch,
+
patches/0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch,
+
patches/0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch,
+ patches/0041-go-gospec-forcibly-disable-fsplit-stack-support.patch,
+ patches/0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch,
+ patches/0049-libgo-adjust-name-of-union-in-sigevent-struct.patch,
+
patches/0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch:
+ removed, no longer needed
+
+2023-04-26 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 13.1.0
+ * PRE_BUILD: disable all patches, most fail
+
+2022-12-12 Ismael Luceno <ismael AT sourcemage.org>
+ * patches/0001-libgo-Add-support-for-libucontext.patch,
+ patches/0034-Use-generic-errstr.go-implementation-on-musl.patch,
+
patches/0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch,
+
patches/0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch,
+ patches/0041-go-gospec-forcibly-disable-fsplit-stack-support.patch,
+ patches/0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch,
+ patches/0049-libgo-adjust-name-of-union-in-sigevent-struct.patch,
+
patches/0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch:
+ fixed libgo for musl
+
+2022-09-23 Ismael Luceno <ismael AT sourcemage.org>
+ * patches/0001-libgo-make-match.sh-POSIX-shell-compatible.patch:
+ fixed bashism in libgo/match.sh
+ *
patches/0001-libgo-include-asm-ptrace.h-for-pt_regs-definition-on-PowerPC.patch:
+ fixed powerpc libgo build
+
+2022-08-19 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 12.2.0
+ * 0042-Fix-attempt-to-use-poisoned-calloc-error-in-libgccji.patch:
deleted
+
+2022-06-02 Ismael Luceno <ismael AT sourcemage.org>
+ * BUILD, PRE_BUILD,
+ 0001-musl-always-use--lib--directory-for-all-x86_64-ABIs.patch,
+ 0042-Fix-attempt-to-use-poisoned-calloc-error-in-libgccji.patch,
+ 50_all_cpu_indicator.patch, 50_all_posix_memalign.patch:
+ fixed build against musl
+
+2022-05-30 Ismael Luceno <ismael AT sourcemage.org>
+ * 0003-fix-header-generation-for-libgo.patch,
+ 0001-Do-not-attempt-to-use-mallinfo2.patch,
+ ssp_nonshared.diff: removed, lo longer needed
+
+2022-05-27 Florian Franzmann <bwlf AT bandrate.org>
+ * PREPARE, UP_TRIGGERS: fix message colors
+ * BUILD: set --enable-host-shared if jit has been selected
+ * DETAILS: switch isl SOURCE_URL to new upstream URL
+ * DETAILS, BUILD: update ada bootstrapper to 12.1.0
+
+2022-05-06 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 12.1.0
+
+2022-04-21 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 11.3.0
+
+2021-07-28 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: gcc version 11.2.0, isl version 0.24
+
+2021-05-01 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD, 0001-Do-not-attempt-to-use-mallinfo2.patch: work around
wrong
+ detection of mallinfo2() in older versions of glibc
+ * DETAILS: update Ada bootstrapper to version 11.1.0
+
+2021-04-27 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 11.1.0
+
+2021-04-08 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: isl version 0.23
+
+2021-04-08 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 10.3.0
+
+2020-09-29 Eric Sandall <sandalle AT sourcemage.org>
+ * DEPENDS: Add paths to libmpc (/usr), gmp (/), and mpfr (/)
otherwise I get this error:
+ configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+
and MPC 0.8.0+.
+ Try the --with-gmp, --with-mpfr and/or --with-mpc options to
specify
+ their locations. Source code for these libraries can be
found at
+ I didn't test which one is the one failing, added all three that
gcc told me to.
+
+2020-09-03 Thomas Orgis <sobukus AT sourcemage.org>
+ * PRE_BUILD: drop .la files from installation
+ * DETAILS: ++PATCHLEVEL
+
+2020-07-23 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 10.2.0
+
+2020-05-07 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 10.1.0
+
+2020-03-12 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 9.3.0
+ * 0001-Fix-build-with-glibc-2.31.patch: deleted
+ * PRE_BUILD: adjust
+
+2020-02-07 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD, 0001-Fix-build-with-glibc-2.31.patch: fix build with
glibc 2.31
+
+2020-01-12 Florian Franzmann <bwlf AT bandrate.org>
+ * INSTALL: remove unnecessary disable fortify source
+ * BUILD: disable control-flow protection
+
+2020-01-11 Florian Franzmann <bwlf AT bandrate.org>
+ * BUILD, INSTALL: disable fortify source
+
+2019-11-24 Florian Franzmann <bwlf AT bandrate.org>
+ * DEPENDS, DETAILS, PRE_BUILD: make isl part of the gcc spell to
+ increase robustness
+
+2019-08-12 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 9.2.0
+
+2019-07-18 Florian Franzmann <bwlf AT bandrate.org>
+ * BUILD: fix syntax error
+
+2019-07-17 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS: PATCHLEVEL++
+ * BUILD: Use -O1 for older GCC only
+ Enable LTO with musl-libc
+
+2019-05-28 Ismael Luceno <ismael AT sourcemage.org>
+ * BUILD: Disabled multilib unconditionally for musl
+
+2019-05-24 Ismael Luceno <ismael AT sourcemage.org>
+ * BUILD, PRE_BUILD, ssp_nonshared.diff: Fixed build against musl
+
+2019-05-19 Remko van der Vossen <wich AT sourcemage.org>
+ * PREPARE: fix warning about invalid options in tablet
+ * BUILD, DEPENDS: rely on gcc49 to build if current installed gcc
+ version < 4.9.0 and ensure minimal needed versions of dependencies
+ are present
+
+2019-05-18 Ismael Luceno <ismael AT sourcemage.org>
+ * DEPENDS: Update dependency; s/gettext/GETTEXT/
+
+2019-05-04 Florian Franzmann <bwlf AT bandrate.org>
+ * PREPARE: add support for the brig, d and jit frontends
+ * PRE_SUB_DEPENDS, SUB_DEPENDS: add subdependencies for brig, d, jit
and objc-c++
+ * DETAILS: PATCHLEVEL=1
+ * PREPARE: use spaces instead of tabs for indenting
+
+2019-05-03 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 9.1.0
+
+2019-02-22 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 8.3.0
+ * PRE_BUILD, 0001-fix-isl-0.20.patch: removed the patch
+
+2019-01-19 Treeve Jelbert <treeve AT sourcemage.org>
+ * DEPENDS: delete gnupg
+
+2018-11-10 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS, BUILD: new ada bootstrapper
+ * DEPENDS: force use of isl if enabled
+
+2018-09-12 Eric Sandall <sandalle AT sourcemage.org>
+ * PRE_BUILD: Apply 0001-fix-isl-0.20.patch
+ Print message about Go patch as well.
+ * 0001-fix-isl-0.20.patch: Patch to build against isl 0.20
+ See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86724
+
+2018-07-26 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 8.2.0
+
+2018-05-02 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 8.1.0
+
+2018-01-25 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 7.3.0
+
+2017-09-30 Florian Franzmann <bwlf AT bandrate.org>
+ * BUILD: fix issue with builtin functions
+ * DETAILS: ++PATCHLEVEL
+
+2017-08-14 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 7.2.0
+ * 5266910fed23d6d7f101a878dd8a28d178697ec5.patch
+ 67dce0587409353e1b6e38c4b33ed89d4ccabe5c.patch: deleted
+ * PRE_BUILD: adjust
+
+2017-08-05 Remko van der Vossen <wich AT sourcemage.org>
+ * 5266910fed23d6d7f101a878dd8a28d178697ec5.patch,
+ 67dce0587409353e1b6e38c4b33ed89d4ccabe5c.patch,
+ PRE_BUILD: fix compiling with glibc-2.26
+
+2017-06-03 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: new ada bootstrapper
+
+2017-05-02 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 7.1.0
+ * CONFIGURE PRE_BUILD DETAILS BUILD PRE_SUB_DEPENDS SUB_DEPENDS
PREPARE DEPENDS:
+ remove all java related stuff, as java has been removed from gcc-7
+ * PRE_BUILD: disbale some patches
+
+2016-12-21 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 6.3.0
+
+2016-12-09 Ismael Luceno <ismael AT sourcemage.org>
+ * PRE_BUILD: Fixed linking of libgcj
+
+2016-09-09 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: new ada bootstrapper
+
+2016-08-22 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: removed PATCHLEVEL
+ * SUB_DEPENDS, PRE_SUB_DEPENDS: CXX always returns true now
+
+2016-08-22 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 6.2.0
+ * BUILD: fix
+
+2016-06-28 Ismael Luceno <ismael AT sourcemage.org>
+ * PREPARE: Add java if GCC_COMPILER=all
+ * BUILD, PREPARE: Fix compiler selection query
+
+2016-05-07 Florian Franzmann <bwlf AT bandrate.org>
+ * PREPARE: adapt to languages available in gcc 6.1
+
+2016-04-27 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 6.1.0
+ * integer_parameter_restrictions.patch: deleted
+ * PRE_BUILD: adjust
+ * UP_TRIGGERS: avoid unnecessary recasts
+
+2015-12-04 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 5.3.0
+ * cc-5.2.0-isl-1.patch: deleted
+ * PRE_BUILD: adjust
+
+2015-11-17 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS, PRE_BUILD: Removed SOURCE3, isl has it's own spell
+ * PRE_BUILD, gcc-5.2.0-isl-1.patch: Fixed build against isl 0.15
+
+2015-07-25 Florian Franzmann <bwlf AT bandrate.org>
+ * BUILD: remove make_single for profilebootstrap/profilebootstraplean
+ * INSTALL: add make_normal
+
+2015-07-16 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 5.2.0
+
+2015-06-20 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD, integer_parameter_restrictions.patch: fix build of
gprbuild 2015
+ * DETAILS: PATCHLEVEL++
+ * INSTALL: create versioned symlinks for libgnat and libgnarl
+
+2015-05-29 Remko van der Vossen <wich AT sourcemage.org>
+ * UP_TRIGGERS: find C++ ELF objects based on ELF DT_NEEDED entries
+ Probably more successful at finding all C++ ELF objects
+
+2015-05-25 Thomas Orgis <sobukus AT sourcemage.org>
+ * DETAILS: There is no ecj-5.1, trying ecj-4.9.
+ I can compile a hello world example at least.
+
+2015-05-03 Pavel Vinogradov <public AT sourcemage.org>
+ * UP_TRIGGERS: improved the major release change check, fixed
+ syntax error
+
+2015-05-02 Pavel Vinogradov <public AT sourcemage.org>
+ * UP_TRIGGERS: added clumsy migration mechanism for C++ ABI
+ changes on major version update
+
+2015-04-22 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 5.1.0, updated isl version to 0.14, removed
+ cloog sources
+ * PRE_BUILD: removed cloog sources unpacking and
+ gcc-4.8-filename-output.patch applying
+ * gcc-4.8-filename-output.patch: removed obsolete patch
+
+2015-04-02 Vlad Glagolev <stealth AT sourcemage.org>
+ * DEPENDS: added missing glib2 dependency
+
+2015-01-05 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS: Simplified ada binary selection
+ * PRE_BUILD: Removed bogus line
+ * classpath-ft2include.patch, PRE_BUILD: Removed, applied by upstream
+ * PRE_BUILD: Removed unpacking of go and fortran, tarballs long gone
+
+2014-11-15 Thomas Orgis <sobukus AT sourcemage.org>
+ * PRE_BUILD: patch for freetype2 headers
+ * classpath-ft2include.patch: added said patch
+
+2014-10-30 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 4.9.2
+
+2014-07-25 Treeve Jelbert <treeve AT sourcemage.org>
+ * FINAL: use default_final
+
+2014-07-16 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: version 4.9.1
+ * PRE_BUILD, gcc-4.9-tree-ssa-threadedge.patch,
+ gcc-4.9.0-upstream_fixes-1.patch: remove obsolete patches
+ * BUILD: fix paths to bootstrap compiler
+
+2014-06-30 Pol Vinogradov <vin.public AT gmail.com>
+ * PRE_BUILD, 0002-4.8.0-ffast-math.patch: removed the patch, causes
+ undefined reference to fxsave
+
+2014-06-15 Florian Franzmann <bwlf AT bandrate.org>
+ * BUILD: fix breakage in construction of OPTS
+ * DEPENDS: fix dependency on xproto
+
+2014-06-14 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD,
+ gcc-4.8-filename-output.patch,
+ gcc-4.9.0-upstream_fixes-1.patch,
+ gcc-4.9-tree-ssa-threadedge.patch: add bugfixes from upstream
+ * DETAILS: use gcc 4.9 based ada bootstrapper for x86_64
+ * BUILD, DETAILS, PRE_BUILD: download and use ecj.jar
+ * BUILD, CONFIGURE, DEPENDS, DETAILS, PRE_BUILD:
+ add option for building the cloog-isl optimizer
+ * DEPENDS: add dependencies on libxt, libx11 and libxproto if
+ building awt
+ * BUILD: build libquadmath if building with support for fortran
+ * BUILD: filter -pipe from CFLAGS
+
+2014-04-29 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: version 4.9.0
+
+2014-04-23 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 4.9.0
+
+2013-10-16 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 4.8.2
+ * PRE_BUILD, 0001-remove-libffi.patch: add patch to remove
+ redundant libffi
+ * PRE_BUILD, 0002-4.8.0-ffast-math.patch: renew patch
+ * PRE_BUILD, 0003-fix-header-generation-for-libgo.patch:
+ fix header generation for libgo
+ * txt00120.txt.gz, ecj-4.3.jar.sig, ada-symbolic-tracebacks.diff,
gcc-4.4.0-ffast-math.patch, mksysinfo.patch: removed
+ * DETAILS, BUILD: use new version of the ada bootstrap compiler
+ * DETAILS: there is now one integrated tarball, so remove multiple
source files
+ * PRE_BUILD: no need to unpack multiple files, except for ada
+ do not apply ffast-math.patch or remove-libffi.patch
+ * DEPENDS: add perl
+
+2013-08-13 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Updated to 4.6.4
+ Fixes compilation against texinfo 5.0+
+ * glibc216.patch: Removed, fix included in 4.6.4
+ * PRE_BUILD: No longer apply glibc216.patch
+
+2013-02-10 Vlad Glagolev <stealth AT sourcemage.org>
+ * PRE_BUILD: apply go patch only if Go compiler was included into
build
+ * EXPORTS: chmod +x
+
+2013-02-08 Vlad Glagolev <stealth AT sourcemage.org>
+ * PRE_BUILD: apply the patch
+ * mksysinfo.patch: added, to fix header generation for libgo (included
+ with go compiler)
+ * REPAIR^all^EXPORTS: chmod +x
+
+2012-10-03 Vlad Glagolev <stealth AT sourcemage.org>
+ * PRE_BUILD: apply the patch
+ * glibc216.patch: added, to fix build with glibc 2.16
+
+2013-08-13 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Updated to 4.6.4
+ Fixes compilation against texinfo 5.0+
+ * glibc216.patch: Removed, fix included in 4.6.4
+ * PRE_BUILD: No longer apply glibc216.patch
+
+2012-06-14 Treeve Jelbert <treeve01 AT oi.be>
+ * DETAILS: version 4.7.1
+
+2012-03-04 Ladislav Hagara <hgr AT vabo.cz>
+ * DETAILS: 4.6.3
+
+2012-02-05 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD, remove-libffi.patch: patch Makefile.in to not install
+ libffi, which would conflict with the spell libffi
+
+2012-01-12 Vlad Glagolev <stealth AT sourcemage.org>
+ * REPAIR^all^EXPORTS: added missing GCC_COMPILER
+ * EXPORTS: added
+
+2011-11-24 Robin Cook <rcook AT wyrms.net>
+ * BUILD: added java home build option
+ * CONFIGURE: query about java home
+ * PRE_SUB_DEPENDS: added subdepends check on java home
+ * SUB_DEPENDS: added subdepends on java home
+
+2011-11-19 Ladislav Hagara <hgr AT vabo.cz>
+ * DETAILS: 4.6.2
+
+2011-09-12 Bor Kraljič <pyrobor AT ver.si>
+ * PRE_BUILD: fixed the source numbers for java (fixes #115)
+
+2011-09-10 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: PATCHLEVEL=1
+ * PRE_BUILD: apply the patch
+ * python-gdb.patch: added, to fix gdb module install path
+
+2011-07-31 Andraž "ruskie" Levstik <ruskie+f03a580f AT codemages.net>
+ * CONFIGURE: should be _list not _multi
+
+2011-07-31 Bor Kraljič <pyrobor AT ver.si>
+ * DETAILS: TMPFS=off for all (1GB is not enough space)
+
+2011-07-03 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: version 4.6.1
+ * DEPENDS, BUILD: removed dependency on cloog/ppl since it makes
+ the spell fragile
+
+2011-04-11 Vlad Glagolev <stealth AT sourcemage.org>
+ * DEPENDS: added gettext optional dependency
+
+2011-03-26 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS, PREPARE, SUB_DEPENDS, PRE_SUB_DEPENDS: version 4.6.0,
+ added support for the go programming language
+ * BUILD, DEPENDS: added dependency on zlib, moved relevant
+ part of OPTS to DEPENDS
+ * BUILD: added make_normal after make
+ * DETAILS: updated Ada bootstrap compiler to 4.5.2
+ * DEPENDS: added optional dependency on cloog-ppl and ppl
+ * CONFIGURE, PRE_BUILD: commented out patches for gnat since
+ they don't work with gcc 4.6
+
+2010-12-27 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: version 4.5.2
+
+2010-09-22 Andraž "ruskie" Levstik <ruskie+f03a580f AT codemages.net>
+ * INSTALL: fixup the cpp and cc symlinks
+
+2010-09-08 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD, CONFIGURE, ada-symbolic-tracebacks.diff,
+ SUB_DEPENDS, PRE_SUB_DEPENDS, REPAIR^none^PRE_SUB_DEPENDS,
+ REPAIR^none^SUB_DEPENDS: added optional patch to allow
+ for symbolic tracebacks, added a sub depends that activates
+ symbolic tracebacks
+
+2010-09-05 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD, CONFIGURE, txt00120.txt.gz: added optional patch
+ from http://gcc.gnu.org/ml/gcc-patches/2010-04/txt00120.txt
+ to make semi automatic generation of C bindings for Ada
+ available
+ * DETAILS: corrected variable names, switched ada bootstrap compiler
+ to 4.3.3 on ia32
+
+2010-08-27 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: version 4.5.1
+ * DEPENDS: depends libmpc
+ * PRE_BUILD: removed sedit that doesn't apply to gcc 4.5
+ * BUILD: --with-bugurl=http://bugs.sourcemage.org,
+ --enable-bootstrap, --enable-checking=release
+
+2010-08-19 Eric Sandall <sandalle AT sourcemage.org>
+ * DEPENDS: gcj depends on unzip and zip
+
+2010-08-18 Eric Sandall <sandalle AT sourcemage.org>
+ * CONFLICTS: Auto-conflict with ada, fortran, g++, gcj, and objc
+ This will remove the old stand-alone files before the combined gcc
+ installs them.
+
+2010-04-01 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Updated to 4.4.3
+ * PRE_BUILD: gcc-4.3.0-ffast-math.patch -> gcc-4.4.0-ffast-math.patch
+ * gcc-4.3.0-ffast-math.patch: Updated to GCC 4.4 and renamed to
+ gcc-4.4.0-ffast-math.patch
+
+2009-10-18 Andraž "ruskie" Levstik <ruskie+f03a580f AT codemages.net>
+ * POST_RESURRECT: removed
+
+2009-10-16 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * DEPENDS: don't fail if mpfr and gmp persistent variables are
+ not available, bug #15476
+
+2009-07-25 Andraž "ruskie" Levstik <ruskie+f03a580f AT codemages.net>
+ * BUILD: removed the if about /lib64
+ * PREPARE: no more /lib workaround it's always in /lib
+ * INSTALL: no more specs handling and /lib
+
+2009-07-24 Andraž "ruskie" Levstik <ruskie+f03a580f AT codemages.net>
+ * BUILD: reformatted and added support for x86
+ * PRE_BUILD: reformatted
+
+2009-07-24 Peng Chang (Charles) <chp AT sourcemage.org>
+ * CONFIGURE: query for GCJ_AWT only when java is to be compiled
+ * PRE_BUILD: removed duplicate mk_source_dir $SOURCE_DIRECTORY.bld
+
+2009-07-23 Andraž "ruskie" Levstik <ruskie+f03a580f AT codemages.net>
+ * BUILD: modified for unified gcc
+ * CONFIGURE: modified for unified gcc
+ * DEPENDS: modified for unified gcc
+ * DETAILS: modified for unified gcc, updated the ada stuff
+ * EXPORTS: removed
+ * INSTALL: modified for unified gcc
+ * PREPARE: modified for unified gcc
+ * PRE_BUILD: modified for unified gcc
+ * PRE_SUB_DEPENDS: created, fixed fortran
+ * REPAIR^none^PRE_SUB_DEPENDS: created, fixed fortran
+ * REPAIR^none^SUB_DEPENDS: created, fixed fortran
+ * SUB_DEPENDS: created, fixed fortran
+ * ecj-4.3.jar.sig: added, moved from gcj spell
+
+2009-09-06 Remko van der Vossen <wich AT sourcemage.org>
+ * BUILD: Stop build if gmp or mpfr were built with a different
archspec
+ than the current one.
+ * DEPENDS: force_depends gmp and mpfr if either were built with a
+ different archspec than the current one. Fixes part of bug 15166.
+ * EXPORTS, FINAL, REPAIR^all^EXPORTS: Added export of build arch of
+ gcc to force recompile when casting g++ after switching archs.
+
+2009-05-10 Eric Sandall <sandalle AT sourcemage.org>
+ * BUILD: profiledbootstrap should not use parallel make
+ See http://gcc.gnu.org/install/build.html
+ Build using profiledbootstrap-lean to save disk space during
compilation
+ Thanks to Peng "chp" Chang
+
+2009-03-06 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * PRE_BUILD: removed workaround for
+ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26539, as it's not
needed
+ anymore with gcc 4.3.x
+
+2009-01-29 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Updated to 4.3.3
+
+2008-09-24 Andrew Stitt <astitt AT sourcemage.org>
+ * BUILD: prefix CFLAGS with -O1, fixing compilation error when
+ no optimizations are specified.
+
+2008-09-03 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * BUILD: only use --host for cross compiles, --build otherwise,
+ fixes bug #14624
+
+2008-08-29 Ladislav Hagara <hgr AT vabo.cz>
+ * DETAILS: 4.3.2
+
+2008-06-11 Ladislav Hagara <hgr AT vabo.cz>
+ * DETAILS: 4.3.1
+
+2008-03-26 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Reset PATCHLEVEL=0 (removed PATCHLEVEL)
+ * DEPENDS: GCC requires mpfr 2.3.0 or newer to work, so force mpfr
+ being built if it is not >= 2.3.0
+
+2008-03-15 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Updated to 4.3.0
+ * DEPENDS: Depends on gmp and mpfr
+ * PRE_BUILD: Use gcc-$VERSION-ffast-math.patch to keep up. :)
+ * BUILD: Pass --build=x86_64-pc-linux-gnu for x86_64, only way I found
+ to get around this warning:
+ configure: WARNING: If you wanted to set the --build type, don't use
+ --host. If a cross compiler is detected then cross compile mode will
+ be used.
+ * gcc-4.3.0-ffast-math.patch: Updated gcc-4.2.3-ffast-math.patch
+
+2008-02-05 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Updated to 4.2.3
+ * PRE_BUILD: gcc-4.1.1-ffast-math.patch -> gcc-4.2.3-ffast-math.patch
+ * gcc-4.1.1-ffast-math.patch: Synced to 4.2.3
+ gcc-4.1.1-ffast-math.patch -> gcc-4.2.3-ffast-math.patch
+
+2007-10-20 David Brown <dmlb2000 AT gmail.com>
+ * INSTALL: make sure if they are using lib64 to compile in the linker
+ as if it was in /lib64
+ * DETAILS: patchlevel++
+
+2007-10-09 Andraž "ruskie" Levstik <ruskie AT mages.ath.cx>
+ * DETAILS: updated spell to 4.2.2
+ fixed WEB_SITE
+
+2007-08-15 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * DETAILS: updated to 4.2.1
+
+2007-05-18 Jaka Kranjc <lynxlynxlynx AT sourcemage.org>
+ * DETAILS: updated spell to 4.2.0
+
+2007-03-01 Eric Sandall <sandalle AT sourcemage.org>
+ * BUILD: -ffast-math also breaks with pentium-m
+
+2007-02-14 Treeve Jelbert <treeve01 AT oi.be>
+ * DETAILS: version 4.1.2
+ convert to upstream signatures
+
+2007-01-22 Thomas Orgis <sobukus AT sourcemage.org>
+ * DEPENDS: ensure that compilers get cast after archspecs so that
+ they all use the same fresh setup
+
+2007-01-16 Eric Sandall <sandalle AT sourcemage.org>
+ * INSTALL: cd to $SOURCE_DIRECTORY.bld at beginning of INSTALL
+ Bug #10647
+
+2007-01-04 Eric Sandall <sandalle AT sourcemage.org>
+ * BUILD: At least on pentium4 architecture, compiling gcc with
+ -ffast-math in CFLAGS *or* CXXFLAGS will cause some (e.g. firefox)
+ C++ apps to segfault
+
+2006-12-28 David Kowis <dkowis AT shlrm.org>
+ * PRE_BUILD: added a patch for a -ffast-math bug
+ * DETAILS: incremented PATCHLEVEL
+ * gcc-4.1.1-ffast-math.patch: added
+
+2006-10-26 Jaka Kranjc <lynxlynxlynx AT sourcemage.org>
+ * INSTALL: use TRACK_ROOT when linking #9163
+
+2006-06-29 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Removed BUILD_API=2, set grimoire-wide
+ Removed UPDATED
+
+2006-06-23 Jaka Kranjc <lynxlynxlynx AT sourcemage.org>
+ * DEPENDS: added diffutils #8855
+
+2006-05-26 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * DETAILS: updated to 4.1.1
+
+2006-03-12 Karsten Behrmann <BearPerson AT sourcemage.org>
+ * DETAILS: (automated) Add KEYWORDS
+
+2006-03-03 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * PRE_BUILD: added a sedit to fix install
+ * INSTALL: removed the 'touch gcc/genmodes', not necessary anymore
+ * WIP: removed
+
+2006-03-01 Treeve Jelbert <treeve01 AT oi.be>
+ * DETAILS: upgrade to 4.1.0
+ * WIP: added, as install fails -
+ can't find a usable gcc as it tries to recompile libcpp
+
+2006-03-10 David Brown <dmlb2000 AT gmail.com>
+ * DETAILS: updated 4.0.3
+
+2006-02-19 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * BUILD, EXPORTS: store CFLAGS and LDFLAGS as GCC_*
+ persistent_variables, used to fix bug #10087
+ * INSTALL: touch $SPECSDIR/specs to make sure it's tracked by
+ installwatch (bug #8726)
+ * POST_RESURRECT: setup specs file after resurrection (bug #8726)
+ * EXPORTS: export GCC_MULTILIB and GCC_NOLIB64 so the split spells
+ can cleanly read them instead of using hacks
+ * DETAILS: PATCHLEVEL++
+
+2006-02-12 George Sherwood <george AT beernabeer.com>
+ * volatiles, REPAIR^none^volatiles: Added to prevent cleanse
+ failing on chainges to specs file.
+
+2006-02-08 Eric Sandall <sandalle AT sourcemage.org>
+ * DEPENDS: Depends on smgl-fhs (for directory structure)
+
+2006-02-06 Eric Sandall <sandalle AT sourcemage.org>
+ * DEPENDS: Depends on gnupg (for SOURCE verification)
+
+2005-10-13 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * UP_TRIGGERS: use 'if spell_ok ...; then' instead of 'spell_ok &&
...'
+ so UP_TRIGGERS doesn't return non-zero
+
+2005-10-02 Sergey Lipnevich <sergey AT sourcemage.org>
+ * DETAILS: upgrade to 4.0.2;
+ * BUILD: use dollar sign for variable, use double brackets while at
it;
+ * INSTALL: add missing `&&', install must fail in case of error; I
caught
+ this on a grimoire without FUNCTIONS file and hence no
`make_single'.
+
+2005-09-22 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * UP_TRIGGERS: trigger recasts of the installed split compiler spells
+ on a version change
+
+2005-07-09 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * DETAILS: updated to 4.0.1
+
+2005-07-01 Andrew Stitt <astitt AT sourcemage.org>
+ * INSTALL: fix symlink installation, bug 9163
+
+2005-05-15 Seth Woolley <seth AT tautology.org>
+ * PREPARE,BUILD,INSTALL: add fixes for bug 8626,
+ for a pure non-lib64 64-bit system
+
+2005-04-23 Sergey Lipnevich <sergey AT sourcemage.org>
+ * INSTALL: on my AMD64 system install needs make_single.
+
+2005-04-21 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * DETAILS: updated to 4.0.0
+
+2005-03-30 Sergey Lipnevich <sergey AT sourcemage.org>
+ * CONFIGURE: use default configuration script;
+ * BUILD: change variable name to GCC_MULTILIB.
+
+2005-03-29 Sergey Lipnevich <sergey AT sourcemage.org>
+ * CONFIGURE: make executable;
+ replace call to `test' with internal check and refactor a bit.
+
+2005-03-13 Seth Woolley <seth AT tautology.org>
+ * CONFIGURE,BUILD: --disable-multilib support for pure amd64 env.
+
+2004-11-07 Treeve Jelbert <treeve01 AT oi.be>
+ * DETAILS: version 3.4.3
+
+2004-09-08 Treeve Jelbert <treeve01 AT oi.be>
+ * DETAILS: version 3.4.2
+
+2004-07-07 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * INSTALL: don't install fixed includes
+
+2004-07-04 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * ALL: now only builds the C compiler
+
+2004-07-02 Treeve Jelbert <treeve01 AT oi.be>
+ * DETAILS: add missing MD5[3]
+
+2004-07-02 Treeve Jelbert <treeve01 AT oi.be>
+ * DETAILS: version 3.4.1
+ extra sourceurl
+
+2004-06-19 Sergey Lipnevich <sergey AT sourcemage.org>
+ * DETAILS: minor corrections;
+ * BUILD: fix minor syntax errors so that the file runs.
+
+2004-05-29 Treeve Jelbert <treeve01 AT oi.be>
+ * PREPARE: use config_query to specify required compilers
+ requires sorcery-1.10
+ * DETAILS: specify optional source files
+ * PRE_BUILD: unpack optional components, remove the libraries
+
+2004-04-20 Treeve Jelbert <treeve01 AT oi.be>
+ * DETAILS: version 3.4.0
+ BUILD_API=2 ( needs latest build-split sorcery)
+ this spell now only build the compilers. All libraries are separate
spells
+ * BUILD: remove ( ) > $FIFO
+ only does make
+ * INSTALL: add
+ * CONFIGURE: remove all front end logic
+ * POST_REMOVE: delete
+
+2004-03-13 hgg <hgreig AT bigpond.net.au>
+ * BUILD: revert previous, LDFLAGS not honoured,
+ pity because stripping debugging at least halves the disk footprint
+
+2004-03-13 hgg <hgreig AT bigpond.net.au>
+ * BUILD: adding our LDFLAGS to Makefile.in
+
+2004-02-18 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Changed mirror to use gcc.gnu.org
+ Removed MAINTAINER
+
+2004-02-16 Sergey Lipnevich <sergey AT sourcemage.org>
+ * DETAILS: upgrade to 3.3.3.
+
+2004-02-03 hgg <hgreig AT bigpond.net.au>
+ * BUILD: correct usage of INSTALL_ROOT
+
+2004-01-29 hgg <hgreig AT bigpond.net.au>
+ * BUILD: bug 5553 infodir and mandir switches
+
+2003-11-30 Eric Sandall <sandalle AT sourcemage.org>
+ * BUILD,POST_REMOVE,PREPARE: Use INSTALL_ROOT
+
+2003-10-17 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Update to 3.3.2
+ * HISTORY: Formatted to Guru Handbook
+
+2003-08-09 hgg <hgreig AT bigpond.net.au>
+ * DETAILS: Update to gcc3.3.1
+
+2003-07-26 Eric Sandall <sandalle AT sourcemage.org>
+ * CONFIGURE,PREPARE: Added Arwed's Ada patch (Bug #3846)
+
+2003-07-26 Arwed v. Merkatz <v.merkatz AT gmx.net>
+ * PREPARE: added and reenabled ada as language option
+
+2003-07-09 hgg <hgreig AT bigpond.net.au>
+ * BUILD: remove cosmetic configure switch.
+ Use "head-from-arse-extraction-tool" and remove export as it should
have
+ gone into glibc/BUILD :-)
+
+2003-06-24 hgg <hgreig AT bigpond.net.au>
+ * CONFIGURE: Reword fix includes query to cater for feebleminded
monkeys
+
+2003-06-23 hgg <hgreig AT bigpond.net.au>
+ * BUILD: Make symlink after build/install for stupid apps
+ like flash that expect RedHat compat libs
+
+2003-06-19 hgg <hgreig AT bigpond.net.au>
+ * BUILD: Add configure switch for c++ ABI compatibility
+
+2003-05-22 Julian v. Bock <julian AT wongr.net>
+ * BUILD: copy objc headers manually when fixed
+ includes are disabled.
+
+2003-05-15 Julian v. Bock <julian AT wongr.net>
+ * DETAILS: set VERSION to 3.3.
+ * CONFIGURE: use $FRONTENDS instead of $LANG.
+
+2003-04-30 Julian v. Bock <julian AT wongr.net>
+ * DETAILS: set VERSION to 3.2.3.
+ * DEPENDS: remove.
+ * CONFIGURE: remove ada language option.
+
+2003-04-08 M.L. <mlubrano AT sourcemage.org>
+ * BUILD: Added $OPTS
+
+2003-02-26 Julian v. Bock <julian AT wongr.net>
+ * BUILD: enable installwatch.
+
+2003-02-08 Julian v. Bock <julian AT wongr.net>
+ * DETAILS: set VERSION to 3.2.2.
+
+2002-12-31 Julian v. Bock <julian AT wongr.net>
+ * CONFIGURE: don't install fixed includes by default.
+
+2002-12-14 Julian v. Bock <julian AT wongr.net>
+ * CONFIGURE: add option to not install fixed includes.
+
+2002-11-21 Julian v. Bock <julian AT wongr.net>
+ * DETAILS: set VERSION to 3.2.1.
+
+2002-10-26 Julian v. Bock <julian AT wongr.net>
+ * BUILD: unset LD_PRELOAD before make install because of problems
+ with installwatch.
+
+2002-10-03 Julian v. Bock <julian AT wongr.net>
+ * DETAILS: add LICENSE and MD5 fields.
+
+2002-09-04 Julian v. Bock <julian AT wongr.net>
+ * BUILD: move creation / deletion of build directory to
+ PRE_BUILD and POST_INSTALL.
+ * PRE_BUILD: likewise.
+ * POST_INSTALL: likewise.
+
+2002-08-?? Julian v. Bock <julian AT wongr.net>
+ * DETAILS: set VERSION to 3.2.
+
+2002-05-26 Julian v. Bock <julian AT wongr.net>
+ * DETAILS: update spell for gcc-3.1; remove pascal stuff.
+ * BUILD: remove pascal stuff; remove --enable-shared; add
+ --enable-threads=posix; build everything in a separate directory.
+ * CONFIGURE: add Ada 95 frontend; remove pascal frontend; add
+ configure options for all frontends but C and C++.
+ * PRE_BUILD: remove.
+ * DEPENDS: add.
+
+2002-05-11 Julian v. Bock <julian AT wongr.net>
+ * DETAILS: set PASCAL_VERSION to 2.1.
+ * PRE_BUILD: use gpc-20020510 instead of gpc-$PASCAL_VERSION.
+
+2002-05-10 Ole Tange <sgl-spell-gcc AT tange.dk>
+ * DETAILS: set PASCAL_VERSION to 20020502.
+
+2002-04-30 Julian v. Bock <julian AT wongr.net>
+ * DETAILS: set PASCAL_VERSION to 20020426.
+ * CONFIGURE: add; make pascal support optional.
+ * PRE_BUILD: likewise.
+ * BUILD: likewise.
+
+2002-04-23 Julian v. Bock <julian AT wongr.net>
+ * BUILD: add pascal fix by Lyon Lemmens; don't use
+ --enable-languages.
+
+2002-04-18 Julian v. Bock <julian AT wongr.net>
+ * DETAILS: set PASCAL_VERSION to 20020410.
+
+2002-04-11 Julian v. Bock <julian AT wongr.net>
+ * BUILD: use "objc" in languages instead of "objective-c".
+
+2002-04-03 Julian v. Bock <julian AT wongr.net>
+ * DETAILS: update PASCAL_VERSION to 20020402; set SORUCE2_URL[0]
+ to http://www.gnu-pascal.de/current/$SOURCE2.
+
+2002-03-29 Julian v. Bock <julian AT wongr.net>
+ * BUILD: don't build chill frontend
+ * DETAILS: update PASCAL_VERSION to 20020318; remove SOURCE2_URL[0].
+
diff --git a/gnu/gcc-14/INSTALL b/gnu/gcc-14/INSTALL
new file mode 100755
index 0000000..a451b09
--- /dev/null
+++ b/gnu/gcc-14/INSTALL
@@ -0,0 +1,31 @@
+#
+# Bug #10647, also fixed in devel Sorcery
+#
+cd $SOURCE_DIRECTORY.bld &&
+
+# in some weird cases, this actually fails with multiple jobs
+make_single &&
+make CFLAGS="$CFLAGS" BOOT_CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
+ install &&
+make_normal &&
+
+# add standard symlinks
+for i in cc c89 c99 c17; do
+ ln -vsf gcc "$INSTALL_ROOT/opt/gcc-${VERSION/.*}/bin/$i" || return 1
+done &&
+
+if [[ "$HOST" == x86_64-* ]]; then
+ [ -d /lib64 -a ! -f /lib/ld-linux-x86-64.so.2 -a -f
/lib64/ld-linux-x86-64.so.2 ] &&
+ ln -s $TRACK_ROOT/lib64/ld-linux-x86-64.so.2 /lib/ld-linux-x86-64.so.2
+ true # see bug 8626 for info about this conditional
+fi &&
+
+ln -vsf ${TRACK_ROOT}/usr/bin/cpp ${INSTALL_ROOT}/lib/cpp &&
+
+if list_find "$GCC_COMPILER" "ada" ; then
+ cd ${INSTALL_ROOT}/usr/lib/gcc/${BUILD}/${VERSION}/adalib &&
+ local MAJOR_VERSION="$(echo $VERSION | cut -f1 -d.)" &&
+ local MINOR_VERSION="$(echo $VERSION | cut -f2 -d.)" &&
+ ln -sfn libgnat-${MAJOR_VERSION}.so
libgnat-${MAJOR_VERSION}.${MINOR_VERSION}.so &&
+ ln -sfn libgnarl-${MAJOR_VERSION}.so
libgnarl-${MAJOR_VERSION}.${MINOR_VERSION}.so
+fi
diff --git a/gnu/gcc-14/PREPARE b/gnu/gcc-14/PREPARE
new file mode 100755
index 0000000..731f19a
--- /dev/null
+++ b/gnu/gcc-14/PREPARE
@@ -0,0 +1,30 @@
+. $GRIMOIRE/config_query_multi.function &&
+
+message "${MESSAGE_COLOR}Note: C and C++ compilers are always
built${DEFAULT_COLOR}" &&
+list_remove GCC_COMPILER c &&
+list_remove GCC_COMPILER c++ &&
+config_query_multi GCC_COMPILER "Select the additional compilers you want" \
+ none \
+ ada \
+ brig \
+ d \
+ fortran \
+ go \
+ jit \
+ objc \
+ obj-c++ \
+ rust \
+ all &&
+list_remove GCC_COMPILER none &&
+if list_find "$GCC_COMPILER" "all" ; then
+ list_remove GCC_COMPILER all &&
+ list_add GCC_COMPILER ada &&
+ list_add GCC_COMPILER brig &&
+ list_add GCC_COMPILER d &&
+ list_add GCC_COMPILER fortran &&
+ list_add GCC_COMPILER go &&
+ list_add GCC_COMPILER jit &&
+ list_add GCC_COMPILER objc &&
+ list_add GCC_COMPILER obj-c++ &&
+ list_add GCC_COMPILER rust
+fi
diff --git a/gnu/gcc-14/PRE_BUILD b/gnu/gcc-14/PRE_BUILD
new file mode 100755
index 0000000..29fb500
--- /dev/null
+++ b/gnu/gcc-14/PRE_BUILD
@@ -0,0 +1,50 @@
+default_pre_build &&
+
+if [[ "$GCC_CLOOG" == "y" ]]; then
+ cd "$SOURCE_DIRECTORY" &&
+ unpack_file 3 &&
+ mv isl-$ISL_VERSION isl
+fi &&
+
+if list_find "$GCC_COMPILER" "ada" ; then
+ cd $SOURCE_DIRECTORY &&
+
+ mkdir ${SOURCE13/.tar.bz2} &&
+ cd ${SOURCE13/.tar.bz2} &&
+ unpack_file 13 &&
+
+ #
+ # This section is used to build a gnat bootstrap cache
+ #
+ touch $SOURCE_DIRECTORY/gcc/cstamp-h.in &&
+ touch $SOURCE_DIRECTORY/gcc/ada/[es]info.h &&
+ touch $SOURCE_DIRECTORY/gcc/ada/nmake.ad[bs] &&
+
+
+ sedit 's:and Nam is "gnatgcc":and Nam is "gcc":' \
+ $SOURCE_DIRECTORY/gcc/ada/osint.ads &&
+ cd ${SOURCE_DIRECTORY}
+ #
+ # End Ada bootstrap cache code
+ #
+fi &&
+
+cd ${SOURCE_DIRECTORY} &&
+
+patch_bundled_libtool \
+ libgo/config/ltmain.sh \
+ isl/interface/ltmain.sh \
+ isl/ltmain.sh &&
+
+apply_patch_dir patches &&
+
+mk_source_dir $SOURCE_DIRECTORY.bld &&
+
+sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in &&
+sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in &&
+
+# Fix build without libxcrypt
+if ! is_depends_enabled $SPELL libxcrypt; then
+ sed -i -e 's/^#define SANITIZER_INTERCEPT_CRYPT_R .*/#define
SANITIZER_INTERCEPT_CRYPT_R 0/' \
+ libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h
+fi
diff --git a/gnu/gcc-14/PRE_SUB_DEPENDS b/gnu/gcc-14/PRE_SUB_DEPENDS
new file mode 100755
index 0000000..d284652
--- /dev/null
+++ b/gnu/gcc-14/PRE_SUB_DEPENDS
@@ -0,0 +1,14 @@
+case $THIS_SUB_DEPENDS in
+ ADA) list_find "$GCC_COMPILER" ada ;;
+ BRIG) list_find "$GCC_COMPILER" brig ;;
+ D) list_find "$GCC_COMPILER" d ;;
+ CXX) true ;;
+ FORTRAN) list_find "$GCC_COMPILER" fortran ;;
+ GO) list_find "$GCC_COMPILER" go ;;
+ JIT) list_find "$GCC_COMPILER" jit ;;
+ OBJC) list_find "$GCC_COMPILER" objc ;;
+ OBJCXX) list_find "$GCC_COMPILER" objc-c++ ;;
+ RUST) list_find "$GCC_COMPILER" rust ;;
+ *) message "${PROBLEM_COLOR}bogus sub_depends: $SPELL
$THIS_SUB_DEPENDS${DEFAULT_COLOR}" ;
+ return 1;;
+esac
diff --git a/gnu/gcc-14/REPAIR^all^EXPORTS b/gnu/gcc-14/REPAIR^all^EXPORTS
new file mode 100755
index 0000000..b46480a
--- /dev/null
+++ b/gnu/gcc-14/REPAIR^all^EXPORTS
@@ -0,0 +1,6 @@
+GCC_CFLAGS
+GCC_COMPILER
+GCC_LDFLAGS
+GCC_MULTILIB
+GCC_NOLIB64
+GCC_BUILD_ARCH
diff --git a/gnu/gcc-14/REPAIR^none^volatiles
b/gnu/gcc-14/REPAIR^none^volatiles
new file mode 100755
index 0000000..d6dffea
--- /dev/null
+++ b/gnu/gcc-14/REPAIR^none^volatiles
@@ -0,0 +1 @@
+^/usr/lib/gcc/.*/.*/specs$
diff --git a/gnu/gcc-14/SUB_DEPENDS b/gnu/gcc-14/SUB_DEPENDS
new file mode 100755
index 0000000..321c953
--- /dev/null
+++ b/gnu/gcc-14/SUB_DEPENDS
@@ -0,0 +1,15 @@
+persistent_add GCC_COMPILER &&
+case $THIS_SUB_DEPENDS in
+ ADA) list_add GCC_COMPILER ada ;;
+ BRIG) list_add GCC_COMPILER brig ;;
+ D) list_add GCC_COMPILER d ;;
+ CXX) true ;;
+ FORTRAN) list_add GCC_COMPILER fortran ;;
+ GO) list_add GCC_COMPILER go ;;
+ JIT) list_add GCC_COMPILER jit ;;
+ OBJC) list_add GCC_COMPILER objc ;;
+ OBJCXX) list_add GCC_COMPILER objc-c++ ;;
+ RUST) list_add GCC_COMPILER rust ;;
+ *) message "${PROBLEM_COLOR}bogus sub_depends: $SPELL
$THIS_SUB_DEPENDS${DEFAULT_COLOR}" ;
+ return 1;;
+esac
diff --git
a/gnu/gcc-14/patches/0002-Remove-conflicting-duplicated-manpages.patch
b/gnu/gcc-14/patches/0002-Remove-conflicting-duplicated-manpages.patch
new file mode 100644
index 0000000..636c6db
--- /dev/null
+++ b/gnu/gcc-14/patches/0002-Remove-conflicting-duplicated-manpages.patch
@@ -0,0 +1,36 @@
+From 92af01f41471d7e932950860f3fb9271fbea2926 Mon Sep 17 00:00:00 2001
+From: Ismael Luceno <ismael AT sourcemage.org>
+Date: Mon, 10 Jul 2023 21:58:03 +0000
+Subject: [PATCH 02/13] Remove conflicting/duplicated manpages
+
+The fsf-funding.7, gfdl.7, and gpl.7 files conflict with other
+installed instances of GCC. Since there's no point in having
+different versions of these files, just remove them from the
+installation.
+
+Origin: Source Mage
+Upstream-Status: Inappropriate
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ gcc/Makefile.in | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index ad9a5d94cd01..a6c0592c7e9d 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -3889,10 +3889,7 @@ install-man: lang.install-man \
+ $(DESTDIR)$(man1dir)/$(GCOV_INSTALL_NAME)$(man1ext) \
+ $(DESTDIR)$(man1dir)/$(GCOV_TOOL_INSTALL_NAME)$(man1ext) \
+ $(DESTDIR)$(man1dir)/$(GCOV_DUMP_INSTALL_NAME)$(man1ext) \
+- $(if $(filter
yes,@enable_lto@),$(DESTDIR)$(man1dir)/$(LTO_DUMP_INSTALL_NAME)$(man1ext)) \
+- $(DESTDIR)$(man7dir)/fsf-funding$(man7ext) \
+- $(DESTDIR)$(man7dir)/gfdl$(man7ext) \
+- $(DESTDIR)$(man7dir)/gpl$(man7ext)
++ $(if $(filter
yes,@enable_lto@),$(DESTDIR)$(man1dir)/$(LTO_DUMP_INSTALL_NAME)$(man1ext))
+
+ $(DESTDIR)$(man7dir)/%$(man7ext): doc/%.7 installdirs
+ -rm -f $@
+--
+2.40.1
+
diff --git a/gnu/gcc-14/patches/0003-all-posix_memalign.patch
b/gnu/gcc-14/patches/0003-all-posix_memalign.patch
new file mode 100644
index 0000000..f4ada43
--- /dev/null
+++ b/gnu/gcc-14/patches/0003-all-posix_memalign.patch
@@ -0,0 +1,45 @@
+From 9d3ea1c18250b0db443ce4f6fd6febbce6903cdd Mon Sep 17 00:00:00 2001
+From: Unknown <unknown>
+Date: Thu, 13 Jul 2023 17:38:12 +0200
+Subject: [PATCH 03/13] all posix_memalign
+
+Origin: Gentoo
+Upstream-Status: Unknown
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ gcc/config/i386/pmm_malloc.h | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
+index 3527283693bd..ea0421ecb0c2 100644
+--- a/gcc/config/i386/pmm_malloc.h
++++ b/gcc/config/i386/pmm_malloc.h
+@@ -27,12 +27,13 @@
+ #include <stdlib.h>
+
+ /* We can't depend on <stdlib.h> since the prototype of posix_memalign
+- may not be visible. */
++ may not be visible and we can't pollute the namespace either. */
+ #ifndef __cplusplus
+-extern int posix_memalign (void **, size_t, size_t);
++extern int __gcc_posix_memalign (void **, size_t, size_t)
+ #else
+-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
++extern "C" int __gcc_posix_memalign (void **, size_t, size_t) throw ()
+ #endif
++__asm__("posix_memalign");
+
+ static __inline void *
+ _mm_malloc (size_t __size, size_t __alignment)
+@@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment)
+ return malloc (__size);
+ if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4))
+ __alignment = sizeof (void *);
+- if (posix_memalign (&__ptr, __alignment, __size) == 0)
++ if (__gcc_posix_memalign (&__ptr, __alignment, __size) == 0)
+ return __ptr;
+ else
+ return NULL;
+--
+2.40.1
+
diff --git
a/gnu/gcc-14/patches/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch

b/gnu/gcc-14/patches/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
new file mode 100644
index 0000000..40b46ec
--- /dev/null
+++
b/gnu/gcc-14/patches/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
@@ -0,0 +1,46 @@
+From aaea9a0d97fb8adc7801453783886795341eca69 Mon Sep 17 00:00:00 2001
+From: Unknown <unknown>
+Date: Thu, 7 May 2020 21:14:11 -0500
+Subject: [PATCH 04/13] convert "__cpu_indicator_init" to
+ "__cpu_indicator_init_local"
+
+Origin: Gentoo
+Upstream-Status: Unknown
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ gcc/config/i386/i386-expand.cc | 4 ++--
+ libgcc/config/i386/cpuinfo.c | 3 +++
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
+index 0d817fc3f3b8..4dfc79e8b50c 100644
+--- a/gcc/config/i386/i386-expand.cc
++++ b/gcc/config/i386/i386-expand.cc
+@@ -12691,10 +12691,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx
subtarget,
+ {
+ case IX86_BUILTIN_CPU_INIT:
+ {
+- /* Make it call __cpu_indicator_init in libgcc. */
++ /* Make it call __cpu_indicator_init_local in libgcc. */
+ tree call_expr, fndecl, type;
+ type = build_function_type_list (integer_type_node, NULL_TREE);
+- fndecl = build_fn_decl ("__cpu_indicator_init", type);
++ fndecl = build_fn_decl ("__cpu_indicator_init_local", type);
+ call_expr = build_call_expr (fndecl, 0);
+ return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
+ }
+diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
+index 50b6d8248a27..bbc0684ae65f 100644
+--- a/libgcc/config/i386/cpuinfo.c
++++ b/libgcc/config/i386/cpuinfo.c
+@@ -66,4 +66,7 @@ __cpu_indicator_init (void)
+ #if defined SHARED && defined USE_ELF_SYMVER
+ __asm__ (".symver __cpu_indicator_init, __cpu_indicator_init AT GCC_4.8.0");
+ __asm__ (".symver __cpu_model, __cpu_model AT GCC_4.8.0");
++#elif ! defined SHARED
++int __cpu_indicator_init_local (void)
++ __attribute__ ((weak, alias ("__cpu_indicator_init")));
+ #endif
+--
+2.40.1
+
diff --git
a/gnu/gcc-14/patches/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch

b/gnu/gcc-14/patches/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
new file mode 100644
index 0000000..8d9bb1e
--- /dev/null
+++
b/gnu/gcc-14/patches/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
@@ -0,0 +1,115 @@
+From da72f8c07ee6d51a79cbb98d2ae54a79754a0eb4 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit AT google.com>
+Date: Mon, 5 Jul 2021 18:15:44 +0000
+Subject: [PATCH 05/13] musl: always use 'lib' directory for all x86_64 ABIs
+ [PR90077]
+
+musl library intentionally does not support glibc-style multilib layout
+and usually assumes --libdir=lib (Gentoo and Alpine Linux both use it).
+
+Before the change --disable-multilib x86_64-gentoo-linux-musl returned:
+
+ $ gcc -print-multi-os-directory
+ ../lib64
+ $ gcc -print-multi-os-directory -m32
+ ../lib32
+ $ gcc -print-multi-os-directory -mx32
+ ../libx32
+
+After the change the layout is always the same:
+
+ $ gcc -print-multi-os-directory
+ ../lib
+ $ gcc -print-multi-os-directory -m32
+ ../lib
+ $ gcc -print-multi-os-directory -mx32
+ ../lib
+
+The discrepancy was noticed in meson build system which uses
+-print-multi-os-directory to find out target directory.
+
+Debian's multi-arch setup should not change.
+
+ PR target/90077
+
+gcc/ChangeLog
+
+ * gcc/config.gcc: Specal case musl to t-linux64-musl.
+
+ * gcc/config/i386/t-linux64-musl: New file based on t-linux64
+ that pins MULTILIB_OSDIRNAMES to lib.
+
+Origin: Gentoo
+Upstream-Status: Submitted
[https://gcc.gnu.org/pipermail/gcc-patches/2021-July/574482.html]
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ gcc/config.gcc | 10 ++++++++--
+ gcc/config/i386/t-linux64-musl | 28 ++++++++++++++++++++++++++++
+ 2 files changed, 36 insertions(+), 2 deletions(-)
+ create mode 100644 gcc/config/i386/t-linux64-musl
+
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index 6fd1594480a1..ea378b41dc35 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -1924,7 +1924,10 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
i[34567]86-*-gnu* | i[34567]8
+ if test x$enable_targets = xall; then
+ tm_file="${tm_file} i386/x86-64.h
i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
+ tm_defines="${tm_defines} TARGET_BI_ARCH=1"
+- tmake_file="${tmake_file} i386/t-linux64"
++ case $target in
++ *-*-*musl*) tmake_file="${tmake_file}
i386/t-linux64-musl";;
++ *) tmake_file="${tmake_file} i386/t-linux64";;
++ esac
+ x86_multilibs="${with_multilib_list}"
+ if test "$x86_multilibs" = "default"; then
+ x86_multilibs="m64,m32"
+@@ -1987,7 +1990,10 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu |
x86_64-*-gnu*)
+ tm_file="${tm_file} gnu.h i386/gnu64.h"
+ ;;
+ esac
+- tmake_file="${tmake_file} i386/t-linux64"
++ case $target in
++ *-*-*musl*) tmake_file="${tmake_file} i386/t-linux64-musl";;
++ *) tmake_file="${tmake_file} i386/t-linux64";;
++ esac
+ x86_multilibs="${with_multilib_list}"
+ if test "$x86_multilibs" = "default"; then
+ case ${with_abi} in
+diff --git a/gcc/config/i386/t-linux64-musl b/gcc/config/i386/t-linux64-musl
+new file mode 100644
+index 000000000000..fcacec410e53
+--- /dev/null
++++ b/gcc/config/i386/t-linux64-musl
+@@ -0,0 +1,28 @@
++# Copyright (C) 2002-2021 Free Software Foundation, Inc.
++#
++# This file is part of GCC.
++#
++# GCC is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3, or (at your option)
++# any later version.
++#
++# GCC is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with GCC; see the file COPYING3. If not see
++# &lt;<a
href="http://www.gnu.org/licenses/";>http://www.gnu.org/licenses/</a>&gt;.
++
++# musl explicitly does not support lib/lib32/lib64 layouts and always
++# uses lib layout. On debian full arch suffix is used. Thus we populate
++# all the m32/m64/mx32 with the same lib and apply multiarch suffix.
++
++comma=,
++MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
++MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
++MULTILIB_OSDIRNAMES = m64=../lib$(call if_multiarch,:x86_64-linux-gnu)
++MULTILIB_OSDIRNAMES+= m32=../lib$(call if_multiarch,:i386-linux-gnu)
++MULTILIB_OSDIRNAMES+= mx32=../lib$(call if_multiarch,:x86_64-linux-gnux32)
+--
+2.40.1
+
diff --git
a/gnu/gcc-14/patches/0006-ada-libgnarl-compatibility-for-musl.patch
b/gnu/gcc-14/patches/0006-ada-libgnarl-compatibility-for-musl.patch
new file mode 100644
index 0000000..a9970f7
--- /dev/null
+++ b/gnu/gcc-14/patches/0006-ada-libgnarl-compatibility-for-musl.patch
@@ -0,0 +1,138 @@
+From 447ffc221168d346be9fde743d230a0e6f89fd6c Mon Sep 17 00:00:00 2001
+From: Ariadne Conill <ariadne AT dereferenced.org>
+Date: Fri, 21 Aug 2020 07:06:30 +0000
+Subject: [PATCH 06/13] ada: libgnarl compatibility for musl
+
+Origin: Alpine Linux
+Upstream-Status: Unknown
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ gcc/ada/libgnarl/s-osinte__linux.ads | 11 ------
+ gcc/ada/libgnarl/s-taprop__linux.adb | 53 ++--------------------------
+ 2 files changed, 3 insertions(+), 61 deletions(-)
+
+diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads
b/gcc/ada/libgnarl/s-osinte__linux.ads
+index a5e645d334d5..321653470714 100644
+--- a/gcc/ada/libgnarl/s-osinte__linux.ads
++++ b/gcc/ada/libgnarl/s-osinte__linux.ads
+@@ -403,12 +403,6 @@ package System.OS_Interface is
+ PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
+
+- function pthread_rwlockattr_setkind_np
+- (attr : access pthread_rwlockattr_t;
+- pref : int) return int;
+- pragma Import
+- (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np");
+-
+ function pthread_rwlock_init
+ (mutex : access pthread_rwlock_t;
+ attr : access pthread_rwlockattr_t) return int;
+@@ -470,11 +464,6 @@ package System.OS_Interface is
+ protocol : int) return int;
+ pragma Import (C, pthread_mutexattr_setprotocol);
+
+- function pthread_mutexattr_setprioceiling
+- (attr : access pthread_mutexattr_t;
+- prioceiling : int) return int;
+- pragma Import (C, pthread_mutexattr_setprioceiling);
+-
+ type struct_sched_param is record
+ sched_priority : int; -- scheduling priority
+ end record;
+diff --git a/gcc/ada/libgnarl/s-taprop__linux.adb
b/gcc/ada/libgnarl/s-taprop__linux.adb
+index 821ceef30e4e..ae95b58e01ee 100644
+--- a/gcc/ada/libgnarl/s-taprop__linux.adb
++++ b/gcc/ada/libgnarl/s-taprop__linux.adb
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Operations is
+ pragma Import
+ (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
+
+- function GNAT_has_cap_sys_nice return C.int;
+- pragma Import
+- (C, GNAT_has_cap_sys_nice, "__gnat_has_cap_sys_nice");
+ -- We do not have pragma Linker_Options ("-lcap"); here, because this
+ -- library is not present on many Linux systems. 'libcap' is the Linux
+ -- "capabilities" library, called by __gnat_has_cap_sys_nice.
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Operations is
+ -- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
+ -- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
+
+- function Get_Ceiling_Support return Boolean;
+- -- Get the value of the Ceiling_Support constant (see below).
+- -- Note well: If this function or related code is modified, it should be
+- -- tested by hand, because automated testing doesn't exercise it.
+-
+- -------------------------
+- -- Get_Ceiling_Support --
+- -------------------------
+-
+- function Get_Ceiling_Support return Boolean is
+- Ceiling_Support : Boolean := False;
+- begin
+- if Locking_Policy /= 'C' then
+- return False;
+- end if;
+-
+- declare
+- function geteuid return Integer;
+- pragma Import (C, geteuid, "geteuid");
+- Superuser : constant Boolean := geteuid = 0;
+- Has_Cap : constant C.int := GNAT_has_cap_sys_nice;
+- pragma Assert (Has_Cap in 0 | 1);
+- begin
+- Ceiling_Support := Superuser or else Has_Cap = 1;
+- end;
+-
+- return Ceiling_Support;
+- end Get_Ceiling_Support;
+-
+- pragma Warnings (Off, "non-preelaborable call not allowed*");
+- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
+- pragma Warnings (On, "non-preelaborable call not allowed*");
+ -- True if the locking policy is Ceiling_Locking, and the current
process
+ -- has permission to use this policy. The process has permission if it
is
+ -- running as 'root', or if the capability was set by the setcap
command,
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Operations is
+ -- Init_Mutex --
+ ----------------
+
++ pragma Warnings (Off, "formal parameter * is not referenced");
+ function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return C.int
is
++ pragma Warnings (On, "formal parameter * is not referenced");
+ Mutex_Attr : aliased pthread_mutexattr_t;
+ Result, Result_2 : C.int;
+
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Operations is
+ return Result;
+ end if;
+
+- if Ceiling_Support then
+- Result := pthread_mutexattr_setprotocol
+- (Mutex_Attr'Access, PTHREAD_PRIO_PROTECT);
+- pragma Assert (Result = 0);
+-
+- Result := pthread_mutexattr_setprioceiling
+- (Mutex_Attr'Access, Prio_To_Linux_Prio (Prio));
+- pragma Assert (Result = 0);
+-
+- elsif Locking_Policy = 'I' then
++ if Locking_Policy = 'I' then
+ Result := pthread_mutexattr_setprotocol
+ (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
+ pragma Assert (Result = 0);
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Operations is
+ Result := pthread_rwlockattr_init (RWlock_Attr'Access);
+ pragma Assert (Result = 0);
+
+- Result := pthread_rwlockattr_setkind_np
+- (RWlock_Attr'Access,
+- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
+- pragma Assert (Result = 0);
+-
+ Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access);
+
+ pragma Assert (Result in 0 | ENOMEM);
+--
+2.40.1
+
diff --git a/gnu/gcc-14/patches/0007-ada-musl-support-fixes.patch
b/gnu/gcc-14/patches/0007-ada-musl-support-fixes.patch
new file mode 100644
index 0000000..d8a1b3a
--- /dev/null
+++ b/gnu/gcc-14/patches/0007-ada-musl-support-fixes.patch
@@ -0,0 +1,226 @@
+From c551e81f2957f8a81d4bce32032bb0219c0e8e63 Mon Sep 17 00:00:00 2001
+From: Ariadne Conill <ariadne AT dereferenced.org>
+Date: Fri, 21 Aug 2020 07:07:48 +0000
+Subject: [PATCH 07/13] ada: musl support fixes
+
+Origin: Alpine Linux
+Upstream-Status: Unknown
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ gcc/ada/Makefile.rtl | 10 +++++-----
+ gcc/ada/adaint.c | 34 +++++++++++++++++++---------------
+ gcc/ada/adaint.h | 10 ++++------
+ gcc/ada/terminals.c | 8 ++++----
+ 4 files changed, 32 insertions(+), 30 deletions(-)
+
+diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
+index 96306f8cc9ae..090b6770ae51 100644
+--- a/gcc/ada/Makefile.rtl
++++ b/gcc/ada/Makefile.rtl
+@@ -1549,7 +1549,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu)
$(target_os))),)
+ s-intman.adb<libgnarl/s-intman__posix.adb \
+ s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+ $(TRASYM_DWARF_UNIX_PAIRS) \
+- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++ s-tsmona.adb<libgnat/s-tsmona.adb \
+ a-exetim.adb<libgnarl/a-exetim__posix.adb \
+ a-exetim.ads<libgnarl/a-exetim__default.ads \
+ s-linux.ads<libgnarl/s-linux.ads \
+@@ -2174,7 +2174,7 @@ ifeq ($(strip $(filter-out powerpc%
linux%,$(target_cpu) $(target_os))),)
+ s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
+ s-taspri.ads<libgnarl/s-taspri__posix.ads \
+ $(TRASYM_DWARF_UNIX_PAIRS) \
+- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++ s-tsmona.adb<libgnat/s-tsmona.adb \
+ $(ATOMICS_TARGET_PAIRS) \
+ $(ATOMICS_BUILTINS_TARGET_PAIRS) \
+ system.ads<libgnat/system-linux-ppc.ads
+@@ -2205,7 +2205,7 @@ ifeq ($(strip $(filter-out powerpc%
linux%,$(target_cpu) $(target_os))),)
+ endif
+
+ # ARM linux, GNU eabi
+-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu)
$(target_os))),)
++ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi%
linux-muslgnueabi%,$(target_cpu) $(target_os))),)
+ LIBGNAT_TARGET_PAIRS = \
+ a-intnam.ads<libgnarl/a-intnam__linux.ads \
+ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
+@@ -2420,7 +2420,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu)
$(target_os))),)
+ s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+ s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
+ $(TRASYM_DWARF_UNIX_PAIRS) \
+- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++ s-tsmona.adb<libgnat/s-tsmona.adb \
+ $(ATOMICS_TARGET_PAIRS) \
+ $(ATOMICS_BUILTINS_TARGET_PAIRS) \
+ $(GNATRTL_128BIT_PAIRS) \
+@@ -2524,7 +2524,7 @@ ifeq ($(strip $(filter-out %x86_64
linux%,$(target_cpu) $(target_os))),)
+ s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+ s-taspri.ads<libgnarl/s-taspri__posix.ads \
+ $(TRASYM_DWARF_UNIX_PAIRS) \
+- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++ s-tsmona.adb<libgnat/s-tsmona.adb \
+ $(ATOMICS_TARGET_PAIRS) \
+ $(X86_64_TARGET_PAIRS) \
+ $(SIMD_PATH_TARGET_PAIRS) \
+diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
+index 8522094164e0..dcb9e95251a3 100644
+--- a/gcc/ada/adaint.c
++++ b/gcc/ada/adaint.c
+@@ -92,6 +92,11 @@
+ #include <sys/pstat.h>
+ #endif
+
++#if defined (linux) || defined(__linux__)
++#define _GNU_SOURCE 1
++#include <sched.h>
++#endif
++
+ #ifdef __PikeOS__
+ #define __BSD_VISIBLE 1
+ #endif
+@@ -3438,7 +3443,6 @@ __gnat_lwp_self (void)
+ #endif
+
+ #if defined (__linux__)
+-#include <sched.h>
+
+ /* glibc versions earlier than 2.7 do not define the routines to handle
+ dynamically allocated CPU sets. For these targets, we use the static
+@@ -3448,7 +3452,7 @@ __gnat_lwp_self (void)
+
+ /* Dynamic cpu sets */
+
+-cpu_set_t *
++void *
+ __gnat_cpu_alloc (size_t count)
+ {
+ return CPU_ALLOC (count);
+@@ -3461,33 +3465,33 @@ __gnat_cpu_alloc_size (size_t count)
+ }
+
+ void
+-__gnat_cpu_free (cpu_set_t *set)
++__gnat_cpu_free (void *set)
+ {
+- CPU_FREE (set);
++ CPU_FREE ((cpu_set_t *) set);
+ }
+
+ void
+-__gnat_cpu_zero (size_t count, cpu_set_t *set)
++__gnat_cpu_zero (size_t count, void *set)
+ {
+- CPU_ZERO_S (count, set);
++ CPU_ZERO_S (count, (cpu_set_t *) set);
+ }
+
+ void
+-__gnat_cpu_set (int cpu, size_t count, cpu_set_t *set)
++__gnat_cpu_set (int cpu, size_t count, void *set)
+ {
+ /* Ada handles CPU numbers starting from 1, while C identifies the first
+ CPU by a 0, so we need to adjust. */
+- CPU_SET_S (cpu - 1, count, set);
++ CPU_SET_S (cpu - 1, count, (cpu_set_t *) set);
+ }
+
+ #else /* !CPU_ALLOC */
+
+ /* Static cpu sets */
+
+-cpu_set_t *
++void *
+ __gnat_cpu_alloc (size_t count ATTRIBUTE_UNUSED)
+ {
+- return (cpu_set_t *) xmalloc (sizeof (cpu_set_t));
++ return xmalloc (sizeof (cpu_set_t));
+ }
+
+ size_t
+@@ -3497,23 +3501,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
+ }
+
+ void
+-__gnat_cpu_free (cpu_set_t *set)
++__gnat_cpu_free (void *set)
+ {
+ free (set);
+ }
+
+ void
+-__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
++__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, void *set)
+ {
+- CPU_ZERO (set);
++ CPU_ZERO ((cpu_set_t *) set);
+ }
+
+ void
+-__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
++__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, void *set)
+ {
+ /* Ada handles CPU numbers starting from 1, while C identifies the first
+ CPU by a 0, so we need to adjust. */
+- CPU_SET (cpu - 1, set);
++ CPU_SET (cpu - 1, (cpu_set_t *) set);
+ }
+ #endif /* !CPU_ALLOC */
+ #endif /* __linux__ */
+diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
+index 987432c93072..4d782f07de92 100644
+--- a/gcc/ada/adaint.h
++++ b/gcc/ada/adaint.h
+@@ -319,13 +319,11 @@ extern void *__gnat_lwp_self
(void);
+
+ /* Routines for interface to required CPU set primitives */
+
+-#include <sched.h>
+-
+-extern cpu_set_t *__gnat_cpu_alloc (size_t);
++extern void * __gnat_cpu_alloc (size_t);
+ extern size_t __gnat_cpu_alloc_size (size_t);
+-extern void __gnat_cpu_free (cpu_set_t *);
+-extern void __gnat_cpu_zero (size_t, cpu_set_t *);
+-extern void __gnat_cpu_set (int, size_t, cpu_set_t
*);
++extern void __gnat_cpu_free (void *);
++extern void __gnat_cpu_zero (size_t, void *);
++extern void __gnat_cpu_set (int, size_t, void *);
+ #endif
+
+ #if defined (_WIN32)
+diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
+index c0ee4a16bb1a..ed796a48c1b7 100644
+--- a/gcc/ada/terminals.c
++++ b/gcc/ada/terminals.c
+@@ -1127,7 +1127,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
+ /* POSIX does not specify how to open the master side of a terminal.Several
+ methods are available (system specific):
+ 1- using a cloning device (USE_CLONE_DEVICE)
+- 2- getpt (USE_GETPT)
++ 2- posix_openpt (USE_POSIX_OPENPT)
+ 3- openpty (USE_OPENPTY)
+
+ When using the cloning device method, the macro USE_CLONE_DEVICE should
+@@ -1141,7 +1141,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
+ #if defined (__APPLE__) || defined (BSD)
+ #define USE_OPENPTY
+ #elif defined (__linux__)
+-#define USE_GETPT
++#define USE_POSIX_OPENPT
+ #elif defined (__sun__)
+ #define USE_CLONE_DEVICE "/dev/ptmx"
+ #elif defined (_AIX)
+@@ -1190,8 +1190,8 @@ allocate_pty_desc (pty_desc **desc) {
+ int master_fd = -1;
+ char *slave_name = NULL;
+
+-#ifdef USE_GETPT
+- master_fd = getpt ();
++#if defined(USE_POSIX_OPENPT)
++ master_fd = posix_openpt(O_RDWR | O_NOCTTY);
+ #elif defined (USE_OPENPTY)
+ status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
+ #elif defined (USE_CLONE_DEVICE)
+--
+2.40.1
+
diff --git
a/gnu/gcc-14/patches/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch

b/gnu/gcc-14/patches/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
new file mode 100644
index 0000000..51224ec
--- /dev/null
+++
b/gnu/gcc-14/patches/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
@@ -0,0 +1,30 @@
+From 52805ba84cefb34275220da2c0424671e5f316e7 Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel AT sholland.org>
+Date: Thu, 30 Jun 2022 16:44:51 +0000
+Subject: [PATCH 08/13] libstdc++: do not throw exceptions for non-C locales
on
+ musl targets
+
+Origin: Alpine Linux
+Upstream-Status: Unknown
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ libstdc++-v3/config/locale/generic/c_locale.cc | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc
b/libstdc++-v3/config/locale/generic/c_locale.cc
+index 8849d78fdfac..aff467f98fe1 100644
+--- a/libstdc++-v3/config/locale/generic/c_locale.cc
++++ b/libstdc++-v3/config/locale/generic/c_locale.cc
+@@ -242,9 +242,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // Currently, the generic model only supports the "C" locale.
+ // See http://gcc.gnu.org/ml/libstdc++/2003-02/msg00345.html
+ __cloc = 0;
+- if (strcmp(__s, "C"))
+- __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
+- "name not valid"));
+ }
+
+ void
+--
+2.40.1
+
diff --git
a/gnu/gcc-14/patches/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch

b/gnu/gcc-14/patches/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
new file mode 100644
index 0000000..922b7c0
--- /dev/null
+++
b/gnu/gcc-14/patches/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
@@ -0,0 +1,31 @@
+From f1303df4cf4cd4865b29221cc9a9c5275fb3125f Mon Sep 17 00:00:00 2001
+From: Mathias LANG <pro.mathias.lang AT gmail.com>
+Date: Mon, 17 Jan 2022 03:49:21 +0000
+Subject: [PATCH 09/13] gdc: unconditionally link libgphobos against
+ libucontext
+
+Ref: alpine/aports#13422
+
+Origin: Alpine Linux
+Upstream-Status: Unknown
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 06a9398e1722..0c19a04d661f 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -52807,7 +52807,7 @@ configure-target-libphobos:
+ esac; \
+ module_srcdir=libphobos; \
+ rm -f no-such-file || : ; \
+- CONFIG_SITE=no-such-file $(SHELL) \
++ CONFIG_SITE=no-such-file LIBS="-lucontext $$LIBS" $(SHELL) \
+ $$s/$$module_srcdir/configure \
+ --srcdir=$${topdir}/$$module_srcdir \
+ $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
+--
+2.40.1
+
diff --git
a/gnu/gcc-14/patches/0010-druntime-link-against-libucontext-on-all-platforms.patch

b/gnu/gcc-14/patches/0010-druntime-link-against-libucontext-on-all-platforms.patch
new file mode 100644
index 0000000..657fc59
--- /dev/null
+++
b/gnu/gcc-14/patches/0010-druntime-link-against-libucontext-on-all-platforms.patch
@@ -0,0 +1,58 @@
+From 378db466221355b7770bafe547950aa3dd59d2fa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git AT soeren-tempel.net>
+Date: Sat, 16 Jul 2022 09:21:11 +0200
+Subject: [PATCH 10/13] druntime: link against libucontext on all platforms
+
+On musl-based Linux distributions, swapcontext etc. are not provided by
+musl but instead by libucontext. Hence, we _always_ need to link against
+an external library for these functions.
+
+Origin: Alpine Linux
+Upstream-Status: Unknown
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ libphobos/configure | 8 --------
+ libphobos/m4/druntime/libraries.m4 | 8 --------
+ 2 files changed, 16 deletions(-)
+
+diff --git a/libphobos/configure b/libphobos/configure
+index 925c53c5f5e4..60c2a0c11c67 100755
+--- a/libphobos/configure
++++ b/libphobos/configure
+@@ -15216,14 +15216,6 @@ fi
+ # Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
+ # "yes" for targets that have 'version = AsmExternal'.
+ druntime_fiber_asm_external=no
+- case "$target_cpu" in
+- aarch64* | \
+- arm* | \
+- i[34567]86|x86_64 | \
+- powerpc)
+- druntime_fiber_asm_external=yes
+- ;;
+- esac
+ if test "$druntime_fiber_asm_external" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library
containing swapcontext" >&5
+ $as_echo_n "checking for library containing swapcontext... " >&6; }
+diff --git a/libphobos/m4/druntime/libraries.m4
b/libphobos/m4/druntime/libraries.m4
+index 45a56f6f76a7..fef6e890b1e4 100644
+--- a/libphobos/m4/druntime/libraries.m4
++++ b/libphobos/m4/druntime/libraries.m4
+@@ -220,14 +220,6 @@ AC_DEFUN([DRUNTIME_LIBRARIES_UCONTEXT],
+ # Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
+ # "yes" for targets that have 'version = AsmExternal'.
+ druntime_fiber_asm_external=no
+- case "$target_cpu" in
+- aarch64* | \
+- arm* | \
+- i[[34567]]86|x86_64 | \
+- powerpc)
+- druntime_fiber_asm_external=yes
+- ;;
+- esac
+ if test "$druntime_fiber_asm_external" = no; then
+ AC_SEARCH_LIBS([swapcontext], [c ucontext], [],
+ AC_MSG_ERROR([swapcontext required but not found]))
+--
+2.40.1
+
diff --git
a/gnu/gcc-14/patches/0011-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
b/gnu/gcc-14/patches/0011-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
new file mode 100644
index 0000000..d42abea
--- /dev/null
+++
b/gnu/gcc-14/patches/0011-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
@@ -0,0 +1,28 @@
+From 5db97215bf502f07dcdd693f46fbdcaa3ca5fac6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git AT soeren-tempel.net>
+Date: Tue, 19 Jul 2022 14:54:07 +0200
+Subject: [PATCH 11/13] libgnat: time_t is always 64-bit on musl libc
+
+Origin: Alpine Linux
+Upstream-Status: Unknown
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ gcc/ada/libgnat/s-parame.ads | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gcc/ada/libgnat/s-parame.ads b/gcc/ada/libgnat/s-parame.ads
+index 3d6e345a1ba9..cfe0b4d3ca6c 100644
+--- a/gcc/ada/libgnat/s-parame.ads
++++ b/gcc/ada/libgnat/s-parame.ads
+@@ -102,7 +102,7 @@ package System.Parameters is
+ -- Characteristics of time_t type --
+ ------------------------------------
+
+- time_t_bits : constant := Long_Integer'Size;
++ time_t_bits : constant := Long_Long_Integer'Size;
+ -- Number of bits in type time_t
+
+ ----------------------------------------------
+--
+2.40.1
+
diff --git a/gnu/gcc-14/patches/0012-libphobos-do-not-use-LFS64-symbols.patch
b/gnu/gcc-14/patches/0012-libphobos-do-not-use-LFS64-symbols.patch
new file mode 100644
index 0000000..ae51a8e
--- /dev/null
+++ b/gnu/gcc-14/patches/0012-libphobos-do-not-use-LFS64-symbols.patch
@@ -0,0 +1,34 @@
+From c6aac26ea17dcdc5ac45f78fddd703a6962a2e3d Mon Sep 17 00:00:00 2001
+From: psykose <alice AT ayaya.dev>
+Date: Mon, 29 May 2023 15:33:11 +0000
+Subject: [PATCH 12/13] libphobos: do not use LFS64 symbols
+
+musl does not have these since 1.2.4, we can't use the compat interfaces.
+
+Origin: Alpine Linux
+Upstream-Status: Unknown
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ libphobos/libdruntime/core/sys/posix/sys/mman.d | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/libphobos/libdruntime/core/sys/posix/sys/mman.d
b/libphobos/libdruntime/core/sys/posix/sys/mman.d
+index 0d3d517d69a5..323aa0af72db 100644
+--- a/libphobos/libdruntime/core/sys/posix/sys/mman.d
++++ b/libphobos/libdruntime/core/sys/posix/sys/mman.d
+@@ -293,11 +293,7 @@ else version (CRuntime_Bionic)
+ }
+ else version (CRuntime_Musl)
+ {
+- static if (__USE_LARGEFILE64) void* mmap64(void*, size_t, int, int,
int, off_t);
+- static if (__USE_FILE_OFFSET64)
+- alias mmap = mmap64;
+- else
+- void* mmap(void*, size_t, int, int, int, off_t);
++ void* mmap(void*, size_t, int, int, int, off_t);
+ int munmap(void*, size_t);
+ }
+ else version (CRuntime_UClibc)
+--
+2.40.1
+
diff --git a/gnu/gcc-14/patches/0013-libgo-fix-lfs64-use.patch
b/gnu/gcc-14/patches/0013-libgo-fix-lfs64-use.patch
new file mode 100644
index 0000000..85bcd1c
--- /dev/null
+++ b/gnu/gcc-14/patches/0013-libgo-fix-lfs64-use.patch
@@ -0,0 +1,198 @@
+From 09513be79b48fafe3554b3cb873f0e827772747f Mon Sep 17 00:00:00 2001
+From: psykose <alice AT ayaya.dev>
+Date: Mon, 10 Jul 2023 23:23:29 +0000
+Subject: [PATCH 13/13] libgo: fix lfs64 use
+
+Origin: Alpine Linux
+Upstream-Status: Unknown
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ .../go/internal/syscall/unix/at_largefile.go | 2 +-
+ libgo/go/os/dir_largefile.go | 2 +-
+ libgo/go/syscall/libcall_glibc.go | 2 +-
+ libgo/go/syscall/libcall_linux.go | 4 +--
+ libgo/go/syscall/libcall_posix_largefile.go | 26 +++++++++----------
+ libgo/runtime/go-varargs.c | 2 +-
+ libgo/sysinfo.c | 9 +++----
+ 7 files changed, 22 insertions(+), 25 deletions(-)
+
+diff --git a/libgo/go/internal/syscall/unix/at_largefile.go
b/libgo/go/internal/syscall/unix/at_largefile.go
+index 82e0dcfd0749..16151ecad1be 100644
+--- a/libgo/go/internal/syscall/unix/at_largefile.go
++++ b/libgo/go/internal/syscall/unix/at_largefile.go
+@@ -10,5 +10,5 @@ import (
+ "syscall"
+ )
+
+-//extern fstatat64
++//extern fstatat
+ func fstatat(int32, *byte, *syscall.Stat_t, int32) int32
+diff --git a/libgo/go/os/dir_largefile.go b/libgo/go/os/dir_largefile.go
+index 1fc5ee0771f5..0c6dffe1a758 100644
+--- a/libgo/go/os/dir_largefile.go
++++ b/libgo/go/os/dir_largefile.go
+@@ -11,5 +11,5 @@ package os
+
+ import "syscall"
+
+-//extern readdir64
++//extern readdir
+ func libc_readdir(*syscall.DIR) *syscall.Dirent
+diff --git a/libgo/go/syscall/libcall_glibc.go
b/libgo/go/syscall/libcall_glibc.go
+index 5c1ec483c759..5a1245ed44b0 100644
+--- a/libgo/go/syscall/libcall_glibc.go
++++ b/libgo/go/syscall/libcall_glibc.go
+@@ -114,7 +114,7 @@ func Pipe2(p []int, flags int) (err error) {
+ }
+
+ //sys sendfile(outfd int, infd int, offset *Offset_t, count int) (written
int, err error)
+-//sendfile64(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t)
Ssize_t
++//sendfile(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t)
Ssize_t
+
+ func Sendfile(outfd int, infd int, offset *int64, count int) (written int,
err error) {
+ if race.Enabled {
+diff --git a/libgo/go/syscall/libcall_linux.go
b/libgo/go/syscall/libcall_linux.go
+index 19ae4393cf13..0f72c81e6294 100644
+--- a/libgo/go/syscall/libcall_linux.go
++++ b/libgo/go/syscall/libcall_linux.go
+@@ -158,7 +158,7 @@ func Reboot(cmd int) (err error) {
+ //adjtimex(buf *Timex) _C_int
+
+ //sys Fstatfs(fd int, buf *Statfs_t) (err error)
+-//fstatfs64(fd _C_int, buf *Statfs_t) _C_int
++//fstatfs(fd _C_int, buf *Statfs_t) _C_int
+
+ func Gettid() (tid int) {
+ r1, _, _ := Syscall(SYS_GETTID, 0, 0, 0)
+@@ -237,7 +237,7 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64,
len int, flags int) (n i
+ }
+
+ //sys Statfs(path string, buf *Statfs_t) (err error)
+-//statfs64(path *byte, buf *Statfs_t) _C_int
++//statfs(path *byte, buf *Statfs_t) _C_int
+
+ //sysnb Sysinfo(info *Sysinfo_t) (err error)
+ //sysinfo(info *Sysinfo_t) _C_int
+diff --git a/libgo/go/syscall/libcall_posix_largefile.go
b/libgo/go/syscall/libcall_posix_largefile.go
+index f90055bb29a0..334212f0af18 100644
+--- a/libgo/go/syscall/libcall_posix_largefile.go
++++ b/libgo/go/syscall/libcall_posix_largefile.go
+@@ -10,40 +10,40 @@
+ package syscall
+
+ //sys Creat(path string, mode uint32) (fd int, err error)
+-//creat64(path *byte, mode Mode_t) _C_int
++//creat(path *byte, mode Mode_t) _C_int
+
+ //sys Fstat(fd int, stat *Stat_t) (err error)
+-//fstat64(fd _C_int, stat *Stat_t) _C_int
++//fstat(fd _C_int, stat *Stat_t) _C_int
+
+ //sys Ftruncate(fd int, length int64) (err error)
+-//ftruncate64(fd _C_int, length Offset_t) _C_int
++//ftruncate(fd _C_int, length Offset_t) _C_int
+
+ //sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
+-//getrlimit64(resource _C_int, rlim *Rlimit) _C_int
++//getrlimit(resource _C_int, rlim *Rlimit) _C_int
+
+ //sys Lstat(path string, stat *Stat_t) (err error)
+-//lstat64(path *byte, stat *Stat_t) _C_int
++//lstat(path *byte, stat *Stat_t) _C_int
+
+ //sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int,
offset int64) (xaddr uintptr, err error)
+-//mmap64(addr *byte, length Size_t, prot _C_int, flags _C_int, fd _C_int,
offset Offset_t) *byte
++//mmap(addr *byte, length Size_t, prot _C_int, flags _C_int, fd _C_int,
offset Offset_t) *byte
+
+ //sys Open(path string, mode int, perm uint32) (fd int, err error)
+-//__go_open64(path *byte, mode _C_int, perm Mode_t) _C_int
++//__go_open(path *byte, mode _C_int, perm Mode_t) _C_int
+
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error)
+-//pread64(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
++//pread(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
+
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error)
+-//pwrite64(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
++//pwrite(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
+
+ //sys Seek(fd int, offset int64, whence int) (off int64, err error)
+-//lseek64(fd _C_int, offset Offset_t, whence _C_int) Offset_t
++//lseek(fd _C_int, offset Offset_t, whence _C_int) Offset_t
+
+ //sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
+-//setrlimit64(resource int, rlim *Rlimit) _C_int
++//setrlimit(resource int, rlim *Rlimit) _C_int
+
+ //sys Stat(path string, stat *Stat_t) (err error)
+-//stat64(path *byte, stat *Stat_t) _C_int
++//stat(path *byte, stat *Stat_t) _C_int
+
+ //sys Truncate(path string, length int64) (err error)
+-//truncate64(path *byte, length Offset_t) _C_int
++//truncate(path *byte, length Offset_t) _C_int
+diff --git a/libgo/runtime/go-varargs.c b/libgo/runtime/go-varargs.c
+index f84860891e6c..7efc96159853 100644
+--- a/libgo/runtime/go-varargs.c
++++ b/libgo/runtime/go-varargs.c
+@@ -84,7 +84,7 @@ __go_ioctl_ptr (int d, int request, void *arg)
+ int
+ __go_open64 (char *path, int mode, mode_t perm)
+ {
+- return open64 (path, mode, perm);
++ return open (path, mode, perm);
+ }
+
+ #endif
+diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
+index 180f5c31d742..1d717d55c0e9 100644
+--- a/libgo/sysinfo.c
++++ b/libgo/sysinfo.c
+@@ -366,7 +366,7 @@ typedef loff_t libgo_loff_t_type;
+ #endif
+
+ #if defined(HAVE_OFF64_T)
+-typedef off64_t libgo_off_t_type;
++typedef off_t libgo_off_t_type;
+ #else
+ typedef off_t libgo_off_t_type;
+ #endif
+@@ -398,13 +398,11 @@ typedef off_t libgo_off_t_type;
+
+ // From dirent.h
+ SREF(dirent);
+-SREF(dirent64);
+ OTREF(DIR);
+ EREF(DT_UNKNOWN);
+
+ // From fcntl.h
+ SREF(flock);
+-SREF(flock64);
+
+ // From ffi headers
+ SREF(_ffi_type);
+@@ -485,11 +483,10 @@ EREF(SS_ONSTACK);
+ EREF(SEGV_MAPERR);
+
+ // From stat.h
+-SREF(stat64);
++SREF(stat);
+
+ // From statfs.h
+ SREF(statfs);
+-SREF(statfs64);
+
+ // From sysinfo.h
+ SREF(sysinfo);
+@@ -519,7 +516,7 @@ EREF(PTRACE_PEEKTEXT);
+
+ // From sys/resource.h
+ SREF(rusage);
+-SREF(rlimit64);
++SREF(rlimit);
+ EREF(RLIMIT_NOFILE);
+ EREF(PRIO_USER);
+ EREF(RUSAGE_SELF);
+--
+2.40.1
+
diff --git a/gnu/gcc-14/patches/0014-lto-plugin-no-la.patch
b/gnu/gcc-14/patches/0014-lto-plugin-no-la.patch
new file mode 100644
index 0000000..0aef288
--- /dev/null
+++ b/gnu/gcc-14/patches/0014-lto-plugin-no-la.patch
@@ -0,0 +1,11 @@
+--- gcc-14.2.0/gcc/configure.orig 2025-02-20 16:15:18.042977049 +0100
++++ gcc-14.2.0/gcc/configure 2025-02-20 16:14:04.052977058 +0100
+@@ -28001,7 +28001,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker plugin support" >&5
+ $as_echo_n "checking linker plugin support... " >&6; }
+ gcc_cv_lto_plugin=0
+-if test -f liblto_plugin.la; then
++if test -f liblto_plugin.la || test -f liblto_plugin.so; then
+ save_ld_ver="$ld_ver"
+ save_ld_vers_major="$ld_vers_major"
+ save_ld_vers_minor="$ld_vers_minor"
diff --git a/gnu/gcc-14/volatiles b/gnu/gcc-14/volatiles
new file mode 100755
index 0000000..d6dffea
--- /dev/null
+++ b/gnu/gcc-14/volatiles
@@ -0,0 +1 @@
+^/usr/lib/gcc/.*/.*/specs$
diff --git a/gnu/gcc/BUILD b/gnu/gcc/BUILD
index 06660cf..fd565c3 100755
--- a/gnu/gcc/BUILD
+++ b/gnu/gcc/BUILD
@@ -57,6 +57,8 @@ else
fi &&

if [ "x$GCC_NO_MARCH" = xy ]; then
+ CFLAGS="${CFLAGS//-march=x86_64}" &&
+ CXXFLAGS="${CXXFLAGS//-march=x86_64}" &&
CFLAGS="${CFLAGS//-march=/-mtune=}" &&
CXXFLAGS="${CXXFLAGS//-march=/-mtune=}"
fi &&
diff --git a/gnu/gcc/HISTORY b/gnu/gcc/HISTORY
index 57a8d83..ea213d0 100644
--- a/gnu/gcc/HISTORY
+++ b/gnu/gcc/HISTORY
@@ -1,3 +1,6 @@
+2025-06-22 Ismael Luceno <ismael AT sourcemage.org>
+ * BUILD: added removal of generic -march=x86_64 from compiler flags
+
2025-06-21 Ismael Luceno <ismael AT sourcemage.org>
* BUILD, CONFIGURE: added a knob for libitm



  • [[SM-Commit] ] GIT changes to master grimoire by Ismael Luceno (71a0e7a9705a292c2b34e813125b8ad670b3e712), Ismael Luceno, 06/22/2025

Archive powered by MHonArc 2.6.24.

Top of Page