sm-commit AT lists.ibiblio.org
Subject: Source Mage code commit list
List archive
[[SM-Commit] ] GIT changes to master grimoire by Ismael Luceno (b6dc7a1fa4ee78484dab173dcd8e99c07c3d749a)
- 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 (b6dc7a1fa4ee78484dab173dcd8e99c07c3d749a)
- Date: Sat, 15 Aug 2026 23:01:11 +0000
GIT changes to master grimoire by Ismael Luceno <ismael AT sourcemage.org>:
ChangeLog
| 7
devel/llvm/BUILD
| 45
devel/llvm/CONFLICTS
| 7
devel/llvm/DETAILS
| 208 ++-
devel/llvm/HISTORY
| 18
devel/llvm/INSTALL
| 21
devel/llvm/PREPARE
| 15
devel/llvm/PRE_BUILD
| 128 +
devel/llvm/PRE_SUB_DEPENDS
| 1
devel/llvm/SLOTS
| 7
devel/llvm/SUB_DEPENDS
| 5
devel/llvm/WATCH
| 23
devel/llvm/patches-llvm15/0001-Make-lseek64-available.patch
| 24
devel/llvm/patches-llvm15/llvm-001-musl.patch
| 58
devel/llvm15/BUILD
| 37
devel/llvm15/CONFIGURE
| 25
devel/llvm15/DEPENDS
| 14
devel/llvm15/DETAILS
| 34
devel/llvm15/HISTORY
| 5
devel/llvm15/INSTALL
| 1
devel/llvm15/PREPARE
| 2
devel/llvm15/PRE_BUILD
| 24
devel/llvm15/PRE_SUB_DEPENDS
| 10
devel/llvm15/SUB_DEPENDS
| 23
devel/llvm15/UP_TRIGGERS
| 2
devel/llvm15/patches-llvm/0001-Make-lseek64-available.patch
| 24
devel/llvm15/patches-llvm/llvm-001-musl.patch
| 58
devel/llvm16/BUILD
| 28
devel/llvm16/CONFIGURE
| 25
devel/llvm16/DEPENDS
| 14
devel/llvm16/DETAILS
| 33
devel/llvm16/HISTORY
| 5
devel/llvm16/INSTALL
| 1
devel/llvm16/PREPARE
| 2
devel/llvm16/PRE_BUILD
| 24
devel/llvm16/PRE_SUB_DEPENDS
| 10
devel/llvm16/SUB_DEPENDS
| 23
devel/llvm16/UP_TRIGGERS
| 2
devel/llvm20/BUILD
| 1
devel/llvm20/DETAILS
| 15
devel/llvm20/HISTORY
| 693 ++++++++++
devel/llvm20/INSTALL
| 1
devel/llvm20/PRE_BUILD
| 1
devel/llvm20/UP_TRIGGERS
| 2
devel/sparse/DEPENDS
| 2
devel/sparse/HISTORY
| 3
gnu/gcc-10/BUILD
| 144 --
gnu/gcc-10/CONFIGURE
| 4
gnu/gcc-10/DEPENDS
| 45
gnu/gcc-10/DETAILS
| 59
gnu/gcc-10/FINAL
| 2
gnu/gcc-10/HISTORY
| 7
gnu/gcc-10/INSTALL
| 11
gnu/gcc-10/PREPARE
| 23
gnu/gcc-10/PRE_BUILD
| 48
gnu/gcc-10/PRE_SUB_DEPENDS
| 11
gnu/gcc-10/REPAIR^none^EXPORTS
| 3
gnu/gcc-10/SUB_DEPENDS
| 12
gnu/gcc-10/UP_TRIGGERS
| 2
gnu/gcc-10/patches/0001-Allow-transformations-on-info-file-names.patch
| 683 ---------
gnu/gcc-10/patches/0001-Remove-conflicting-duplicated-manpages.patch
| 33
gnu/gcc-10/patches/0001-musl-always-use--lib--directory-for-all-x86_64-ABIs.patch
| 116 -
gnu/gcc-10/patches/50_all_posix_memalign.patch
| 31
gnu/gcc-10/ssp_nonshared.diff
| 14
gnu/gcc-14/BUILD
| 158 --
gnu/gcc-14/CONFIGURE
| 19
gnu/gcc-14/CONFLICTS
| 5
gnu/gcc-14/DEPENDS
| 46
gnu/gcc-14/DETAILS
| 60
gnu/gcc-14/FINAL
| 5
gnu/gcc-14/HISTORY
| 5
gnu/gcc-14/INSTALL
| 32
gnu/gcc-14/PREPARE
| 30
gnu/gcc-14/PRE_BUILD
| 51
gnu/gcc-14/PRE_SUB_DEPENDS
| 14
gnu/gcc-14/REPAIR^none^volatiles
| 1
gnu/gcc-14/SUB_DEPENDS
| 15
gnu/gcc-14/UP_TRIGGERS
| 2
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
| 48
gnu/gcc/CONFIGURE
| 29
gnu/gcc/CONFLICTS
| 23
gnu/gcc/DEPENDS
| 10
gnu/gcc/DETAILS
| 43
gnu/gcc/HISTORY
| 27
gnu/gcc/INSTALL
| 36
gnu/gcc/PREPARE
| 27
gnu/gcc/PRE_BUILD
| 43
gnu/gcc/REPAIR^none^volatiles
| 1
gnu/gcc/SLOTS
| 6
gnu/gcc/SOLO
| 3
gnu/gcc/UP_TRIGGERS
| 12
gnu/gcc/patches/0002-Remove-conflicting-duplicated-manpages.patch
| 36
gnu/gcc/patches/0003-all-posix_memalign.patch
| 45
gnu/gcc/patches/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
| 46
gnu/gcc/patches/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
| 115 -
gnu/gcc/patches/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
| 30
gnu/gcc/patches/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
| 31
gnu/gcc/patches/0010-druntime-link-against-libucontext-on-all-platforms.patch
| 58
gnu/gcc/patches/0012-libphobos-do-not-use-LFS64-symbols.patch
| 34
gnu/gcc/patches/0013-libgo-fix-lfs64-use.patch
| 198 --
gnu/gcc/patches/0014-lto-plugin-no-la.patch
| 11
gnu/gcc/patches/10/0001-Allow-transformations-on-info-file-names.patch
| 683 +++++++++
gnu/gcc/patches/10/0001-Remove-conflicting-duplicated-manpages.patch
| 33
gnu/gcc/patches/10/0001-musl-always-use--lib--directory-for-all-x86_64-ABIs.patch
| 116 +
gnu/gcc/patches/10/50_all_posix_memalign.patch
| 31
gnu/gcc/patches/14/0002-Remove-conflicting-duplicated-manpages.patch
| 36
gnu/gcc/patches/14/0003-all-posix_memalign.patch
| 45
gnu/gcc/patches/14/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
| 46
gnu/gcc/patches/14/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
| 115 +
gnu/gcc/patches/14/0006-ada-libgnarl-compatibility-for-musl.patch
| 138 +
gnu/gcc/patches/14/0007-ada-musl-support-fixes.patch
| 226 +++
gnu/gcc/patches/14/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
| 30
gnu/gcc/patches/14/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
| 31
gnu/gcc/patches/14/0010-druntime-link-against-libucontext-on-all-platforms.patch
| 58
gnu/gcc/patches/14/0011-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
| 28
gnu/gcc/patches/14/0012-libphobos-do-not-use-LFS64-symbols.patch
| 34
gnu/gcc/patches/14/0013-libgo-fix-lfs64-use.patch
| 198 ++
gnu/gcc/patches/14/0014-lto-plugin-no-la.patch
| 11
gnu/gcc/patches/16/0002-Remove-conflicting-duplicated-manpages.patch
| 36
gnu/gcc/patches/16/0003-all-posix_memalign.patch
| 45
gnu/gcc/patches/16/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
| 46
gnu/gcc/patches/16/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
| 115 +
gnu/gcc/patches/16/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
| 30
gnu/gcc/patches/16/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
| 31
gnu/gcc/patches/16/0010-druntime-link-against-libucontext-on-all-platforms.patch
| 58
gnu/gcc/patches/16/0012-libphobos-do-not-use-LFS64-symbols.patch
| 34
gnu/gcc/patches/16/0013-libgo-fix-lfs64-use.patch
| 198 ++
gnu/gcc/patches/16/0014-lto-plugin-no-la.patch
| 11
gnu/gcc/ssp_nonshared.diff
| 14
gnu/gcc/volatiles
| 1
144 files changed, 4063 insertions(+), 3726 deletions(-)
New commits:
commit b6dc7a1fa4ee78484dab173dcd8e99c07c3d749a
Author: Ismael Luceno <ismael AT sourcemage.org>
Commit: Ismael Luceno <ismael AT sourcemage.org>
llvm: Merge llvm15 and llvm16 in as slots
Also add LLVM 20.
commit 504a5b287a165c844efb6f1b46c5984e94bec8f8
Author: Ismael Luceno <ismael AT sourcemage.org>
Commit: Ismael Luceno <ismael AT sourcemage.org>
gcc: Merge gcc-10 and gcc-14 in as slots
diff --git a/ChangeLog b/ChangeLog
index 34d9b6b..eb8e13f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2026-08-15 Ismael Luceno <ismael AT sourcemage.org>
+ * gnu/gcc-10, gnu/gcc-14: spells deprecated [superseded by the
+ gcc:10 and gcc:14 slots]
+ * devel/llvm15, devel/llvm16, devel/llvm20: spells deprecated
+ [superseded by the llvm:15, llvm:16 and llvm:20 slots]
+
2026-08-14 Ismael Luceno <ismael AT sourcemage.org>
* devel/xbinutils: spell deprecated [unmaintained since 2006]
@@ -238,6 +244,7 @@
2025-06-20 Ismael Luceno <ismael AT sourcemage.org>
* gnu/gcc-14: new spell, the GNU C compiler collection, version 14.x
+ * devel/llvm20: new spell, LLVM 20.x
2025-05-15 Ismael Luceno <ismael AT sourcemage.org>
* science-libs/minisat: new spell, minimalistic, open-source SAT
diff --git a/devel/llvm/BUILD b/devel/llvm/BUILD
index 847c32b..8ae9fc2 100755
--- a/devel/llvm/BUILD
+++ b/devel/llvm/BUILD
@@ -1,3 +1,44 @@
+# the standalone slots know none of the options below: they are a bare
+# llvm tree, configured where they were unpacked, and the only choices
+# their spells ever offered were targets, RTTI and polly
+if [[ $LLVM_LAYOUT == standalone ]]; then
+ case "$HOST" in
+ (*-musl)
+ OPTS+=' -DLIBCXX_HAS_MUSL_LIBC=YES'
+ ;;
+ esac &&
+
+ # Remove -DPIC from compiler flags, produces build errors
+ CXXFLAGS="${CXXFLAGS//-DPIC}" &&
+
+ # Default target, not detected correctly
+ OPTS+=" -DLLVM_DEFAULT_TARGET_TRIPLE=$HOST" &&
+
+ OPTS+=" -DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS// /;}" &&
+
+ # recommended by mesa project
+ OPTS+=" -DLLVM_LINK_LLVM_DYLIB=1 -DCMAKE_BUILD_TYPE=RELEASE" &&
+
+ OPTS+=" -DLLVM_BUILD_BENCHMARKS=OFF" &&
+ OPTS+=" -DLLVM_INCLUDE_BENCHMARKS=OFF" &&
+ OPTS+=" -DLLVM_INCLUDE_TESTS=OFF" &&
+
+ # prevent unnecessary use of libedit and ncurses
+ OPTS+=" -DLLVM_ENABLE_LIBEDIT=OFF" &&
+ OPTS+=" -DLLVM_ENABLE_TERMINFO=OFF" &&
+ OPTS+=" -DLLVM_ENABLE_BACKTRACES=OFF" &&
+
+ # Enable RTTI if requested, recommended, changing it breaks the ABI
+ if [[ y == "$LLVM_WITH_RTTI" ]]; then
+ OPTS+=" -DLLVM_ENABLE_RTTI=ON"
+ else
+ OPTS+=" -DLLVM_ENABLE_RTTI=OFF"
+ fi &&
+
+ cmake_build "$INSTALL_ROOT$LLVM_PREFIX"
+ return
+fi
+
case "$HOST" in
(*-musl)
OPTS="$OPTS -DLIBCXX_HAS_MUSL_LIBC=YES"
@@ -23,7 +64,7 @@ OPTS="$OPTS -DLLVM_INCLUDE_BENCHMARKS=OFF" &&
OPTS="$OPTS -DLLVM_INCLUDE_TESTS=OFF" &&
# prevent unnecessary use of libedit and ncurses
-if ! is_depends_enabled $SPELL libedit;then
+if ! is_depends_enabled $SPELL_INSTANCE libedit;then
OPTS="$OPTS -DLLVM_ENABLE_LIBEDIT=OFF" &&
OPTS="$OPTS -DLLVM_ENABLE_TERMINFO=OFF" &&
OPTS="$OPTS -DLLVM_ENABLE_BACKTRACES=OFF"
@@ -174,4 +215,4 @@ if [ -n "$LLVM_PROJECTS" ] ;then
OPTS="$OPTS -DLLVM_ENABLE_PROJECTS=${LLVM_PROJECTS// /;}"
fi &&
-cmake_build -S ../llvm
+cmake_build -S ../llvm "$INSTALL_ROOT$LLVM_PREFIX"
diff --git a/devel/llvm/CONFLICTS b/devel/llvm/CONFLICTS
new file mode 100755
index 0000000..aa8238b
--- /dev/null
+++ b/devel/llvm/CONFLICTS
@@ -0,0 +1,7 @@
+# each of the older slots takes over the versioned spell it was made
+# from; the slots themselves live side by side and conflict with nothing
+case "$SLOT" in
+ (20) conflicts llvm20 y ;;
+ (16) conflicts llvm16 y ;;
+ (15) conflicts llvm15 y ;;
+esac
diff --git a/devel/llvm/DETAILS b/devel/llvm/DETAILS
index 899aab6..bace50b 100755
--- a/devel/llvm/DETAILS
+++ b/devel/llvm/DETAILS
@@ -1,24 +1,220 @@
-# Watch: https://github.com/llvm/llvm-project/releases
/llvmorg-([0-9.]+)[.]tar
SPELL=llvm
- VERSION="22.1.8"
+case "$SLOT" in
+ ('') SLOT=0 ;&
+ (0) VERSION=22.1.8
+ SPIRV_VERSION=22.1.2
+
SPIRV_HASH=sha512:d224b29029dae66dac430834b927a0683e3e15fb555c2ba83764403b8cdc28bfcccbe8e9ec2e3d1854c9d32b02d0b8282a3d883441c7ce33c1fc5339c0a373f0
+ ;;
+ (20) VERSION=20.1.8
+ SPIRV_VERSION=19.1.3
+
SPIRV_HASH=sha512:8370ca2192e7df3aff2e2336155d3ab5519103cc31f84a1d199b34d78ad77397be0e3944d2d5eb815497fb297dcb1b4ca063d2f667dfe8e0a75c896389a9ad0b
+ ;;
+ (16) VERSION=16.0.6
+ ;;
+ (15) VERSION=15.0.7
+ PATCHLEVEL=1
+ ;;
+esac
+# slot 0 is the system llvm and owns /usr; every other slot is a major
+# of its own and installs under /opt, which is where the versioned
+# spells these slots were made from always meant to go
+if [[ $SLOT == 0 ]]; then
+ LLVM_PREFIX=/usr
+else
+ LLVM_PREFIX=/opt/llvm$SLOT
+fi
+# 15 and 16 are the standalone llvm of their day: one tarball, built in
+# a tree of its own, with cmake and polly unpacked beside it. 20 is
+# released as a set of tarballs to be laid out as a project tree, and
+# from 21 it is that tree in one tarball
+case $SLOT in
+ (15|16) LLVM_LAYOUT=standalone ;;
+ (20) LLVM_LAYOUT=split ;;
+ *) LLVM_LAYOUT=project ;;
+esac
SPELL_BUILD_SYSTEM=cmake
+
GITHUB_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-$VERSION"
+if [[ $LLVM_LAYOUT == project ]]; then
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-project-${VERSION}.src"
SOURCE="${SPELL}-project-${VERSION}.src.tar.xz"
-
SOURCE_URL[0]="https://github.com/${SPELL}/${SPELL}-project/releases/download/${SPELL}org-${VERSION}/${SOURCE}"
+ SOURCE_URL[0]="${GITHUB_URI}/${SOURCE}"
SOURCE2=$SOURCE.sig
SOURCE2_URL[0]="${SOURCE_URL[0]}.sig"
SOURCE_GPG=llvm.gpg:$SOURCE2:UPSTREAM_KEY
SOURCE2_IGNORE=signature
if [[ "$LLVM_WITH_SPIRV" == y ]]; then
- SPIRV_VERSION="22.1.2"
-
SOURCE33_HASH="sha512:d224b29029dae66dac430834b927a0683e3e15fb555c2ba83764403b8cdc28bfcccbe8e9ec2e3d1854c9d32b02d0b8282a3d883441c7ce33c1fc5339c0a373f0"
+ SOURCE33_HASH="$SPIRV_HASH"
SOURCE33="SPIRV-LLVM-Translator-$SPIRV_VERSION.tar.gz"
SOURCE33_URL[0]="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/v$SPIRV_VERSION/$SOURCE33"
fi
+
+elif [[ $LLVM_LAYOUT == standalone ]]; then
+ SOURCE_DIRECTORY="${BUILD_DIRECTORY}/llvm-${VERSION}.src"
+ SOURCE="llvm-${VERSION}.src.tar.xz"
+ SOURCE_URL[0]="${GITHUB_URI}/${SOURCE}"
+ SOURCE21="cmake-${VERSION}.src.tar.xz"
+ SOURCE21_URL[0]="${GITHUB_URI}/${SOURCE21}"
+if [[ "$LLVM_WITH_POLLY" == y ]]; then
+ SOURCE11="polly-${VERSION}.src.tar.xz"
+ SOURCE11_URL[0]="${GITHUB_URI}/${SOURCE11}"
+fi
+# these two were taken on trust of their hash long before the spells
+# were merged, and there is no reason to take them any other way now
+case $SLOT in
+ (16)
+
SOURCE_HASH=sha512:8d4cdadc9a1ad249fbf9248c8e56f3bcafab73a473a0b0ca73499ed8825c62e27668aac4f1d03341631e5ad93701621e834e9e196ca32eac3ef805cf1c860083
+
SOURCE11_HASH=sha512:791473c145930fcd1541002c5385c2fbc1b6dbecc60ca19b69f81d4df27a324609d1b0fc2723893147886eab988b4bf88e9c0ca815b1aa5b0a10d899cf32bc7e
+
SOURCE21_HASH=sha512:52ecd941d2d85a5b668caa5d0d40480cb6a97b3bf1174e634c2a93e9ef6d03670ca7e96abb0a60cb33ba537b93d5788754dab1f2f45c1f623f788162717d088b
+ ;;
+ (15)
+
SOURCE_HASH=sha256:4ad8b2cc8003c86d0078d15d987d84e3a739f24aae9033865c027abae93ee7a4
+
SOURCE11_HASH=sha256:1053610cace401c0b4e6d430d441277b0283dd4112581e2acc90e174d3192819
+
SOURCE21_HASH=sha256:8986f29b634fdaa9862eedda78513969fe9788301c9f2d938f4c10a3e7a3e7ea
+ ;;
+esac
+
+else
+ SOURCE_DIRECTORY="${BUILD_DIRECTORY}/llvm-project"
+ SOURCE="llvm-${VERSION}.src.tar.xz"
+ SOURCE2=$SOURCE.sig
+ SOURCE_URL[0]="${GITHUB_URI}/${SOURCE}"
+ SOURCE2_URL[0]="${SOURCE_URL[0]}.sig"
+ SOURCE_GPG=llvm.gpg:$SOURCE2:UPSTREAM_KEY
+ SOURCE2_IGNORE=signature
+ SOURCE3="cmake-${VERSION}.src.tar.xz"
+ SOURCE3_URL[0]="${GITHUB_URI}/${SOURCE3}"
+ SOURCE4="$SOURCE3.sig"
+ SOURCE4_URL[0]="${SOURCE3_URL[0]}.sig"
+ SOURCE3_GPG="llvm.gpg:$SOURCE4:UPSTREAM_KEY"
+ SOURCE4_IGNORE=signature
+if [[ "$LLVM_WITH_BOLT" == y ]]; then
+ SOURCE5="bolt-${VERSION}.src.tar.xz"
+ SOURCE5_URL[0]="${GITHUB_URI}/${SOURCE5}"
+ SOURCE6="$SOURCE5.sig"
+ SOURCE6_URL[0]="${SOURCE5_URL[0]}.sig"
+ SOURCE5_GPG="llvm.gpg:$SOURCE6:UPSTREAM_KEY"
+ SOURCE6_IGNORE="signature"
+fi
+if [[ "$LLVM_WITH_CLANG" == y ]]; then
+ SOURCE7="clang-${VERSION}.src.tar.xz"
+ SOURCE7_URL[0]="${GITHUB_URI}/${SOURCE7}"
+ SOURCE8="$SOURCE7.sig"
+ SOURCE8_URL[0]="${SOURCE7_URL[0]}.sig"
+ SOURCE7_GPG="llvm.gpg:$SOURCE8:UPSTREAM_KEY"
+ SOURCE8_IGNORE="signature"
+ SOURCE9="clang-tools-extra-${VERSION}.src.tar.xz"
+ SOURCE9_URL[0]="${GITHUB_URI}/${SOURCE9}"
+ SOURCE10="$SOURCE9.sig"
+ SOURCE10_URL[0]="${SOURCE9_URL[0]}.sig"
+ SOURCE9_GPG="llvm.gpg:$SOURCE10:UPSTREAM_KEY"
+ SOURCE10_IGNORE=signature
+fi
+if [[ "$LLVM_WITH_LLD" == y ]]; then
+ SOURCE11="lld-${VERSION}.src.tar.xz"
+ SOURCE11_URL[0]="${GITHUB_URI}/${SOURCE11}"
+ SOURCE12="$SOURCE11.sig"
+ SOURCE12_URL[0]="${SOURCE11_URL[0]}.sig"
+ SOURCE11_GPG="llvm.gpg:$SOURCE12:UPSTREAM_KEY"
+ SOURCE12_IGNORE="signature"
+fi
+if [[ "$LLVM_WITH_LLDB" == y ]]; then
+ SOURCE13="lldb-${VERSION}.src.tar.xz"
+ SOURCE13_URL[0]="${GITHUB_URI}/${SOURCE13}"
+ SOURCE14="$SOURCE13.sig"
+ SOURCE14_URL[0]="${SOURCE13_URL[0]}.sig"
+ SOURCE13_GPG="llvm.gpg:$SOURCE14:UPSTREAM_KEY"
+ SOURCE14_IGNORE="signature"
+fi
+if [[ "$LLVM_WITH_MLIR" == y ]]; then
+ SOURCE15="mlir-${VERSION}.src.tar.xz"
+ SOURCE15_URL[0]="${GITHUB_URI}/${SOURCE15}"
+ SOURCE16="$SOURCE15.sig"
+ SOURCE16_URL[0]="${SOURCE15_URL[0]}.sig"
+ SOURCE15_GPG="llvm.gpg:$SOURCE16:UPSTREAM_KEY"
+ SOURCE16_IGNORE="signature"
+fi
+if [[ "$LLVM_WITH_POLLY" == y ]]; then
+ SOURCE17="polly-${VERSION}.src.tar.xz"
+ SOURCE17_URL[0]="${GITHUB_URI}/${SOURCE17}"
+ SOURCE18="$SOURCE17.sig"
+ SOURCE18_URL[0]="${SOURCE17_URL[0]}.sig"
+ SOURCE17_GPG="llvm.gpg:$SOURCE18:UPSTREAM_KEY"
+ SOURCE18_IGNORE="signature"
+fi
+if [[ -n "$LLVM_RUNTIMES" ]] ;then
+ SOURCE19="runtimes-${VERSION}.src.tar.xz"
+ SOURCE19_URL[0]="${GITHUB_URI}/${SOURCE19}"
+ SOURCE20="$SOURCE19.sig"
+ SOURCE20_URL[0]="${SOURCE19_URL[0]}.sig"
+ SOURCE19_GPG="llvm.gpg:$SOURCE20:UPSTREAM_KEY"
+ SOURCE20_IGNORE="signature"
+fi
+if list_find "$LLVM_RUNTIMES" "compiler-rt" ;then
+ SOURCE21="compiler-rt-${VERSION}.src.tar.xz"
+ SOURCE21_URL[0]="${GITHUB_URI}/${SOURCE21}"
+ SOURCE22="$SOURCE21.sig"
+ SOURCE22_URL[0]="${SOURCE21_URL[0]}.sig"
+ SOURCE21_GPG="llvm.gpg:$SOURCE22:UPSTREAM_KEY"
+ SOURCE22_IGNORE="signature"
+fi
+if list_find "$LLVM_RUNTIMES" "libcxx" ;then
+ SOURCE23="libcxx-${VERSION}.src.tar.xz"
+ SOURCE23_URL[0]="${GITHUB_URI}/${SOURCE23}"
+ SOURCE24="$SOURCE23.sig"
+ SOURCE24_URL[0]="${SOURCE23_URL[0]}.sig"
+ SOURCE23_GPG="llvm.gpg:$SOURCE24:UPSTREAM_KEY"
+ SOURCE24_IGNORE="signature"
+fi
+if list_find "$LLVM_RUNTIMES" "libcxxabi" ;then
+ SOURCE25="libcxxabi-${VERSION}.src.tar.xz"
+ SOURCE25_URL[0]="${GITHUB_URI}/${SOURCE25}"
+ SOURCE26="$SOURCE25.sig"
+ SOURCE26_URL[0]="${SOURCE25_URL[0]}.sig"
+ SOURCE25_GPG="llvm.gpg:$SOURCE26:UPSTREAM_KEY"
+ SOURCE26_IGNORE="signature"
+fi
+if list_find "$LLVM_RUNTIMES" "libunwind" ;then
+ SOURCE27="libunwind-${VERSION}.src.tar.xz"
+ SOURCE27_URL[0]="${GITHUB_URI}/${SOURCE27}"
+ SOURCE28="$SOURCE27.sig"
+ SOURCE28_URL[0]="${SOURCE27_URL[0]}.sig"
+ SOURCE27_GPG="llvm.gpg:$SOURCE28:UPSTREAM_KEY"
+ SOURCE28_IGNORE="signature"
+fi
+if list_find "$LLVM_RUNTIMES" "openmp" ;then
+ SOURCE29="openmp-${VERSION}.src.tar.xz"
+ SOURCE29_URL[0]="${GITHUB_URI}/${SOURCE29}"
+ SOURCE30="$SOURCE29.sig"
+ SOURCE30_URL[0]="${SOURCE29_URL[0]}.sig"
+ SOURCE29_GPG="llvm.gpg:$SOURCE30:UPSTREAM_KEY"
+ SOURCE30_IGNORE="signature"
+fi
+if [[ "$LLVM_WITH_LIBCLC" == y ]]; then
+ SOURCE31="libclc-${VERSION}.src.tar.xz"
+ SOURCE31_URL[0]="${GITHUB_URI}/${SOURCE31}"
+ SOURCE32="$SOURCE31.sig"
+ SOURCE32_URL[0]="${SOURCE31_URL[0]}.sig"
+ SOURCE31_GPG="llvm.gpg:$SOURCE32:UPSTREAM_KEY"
+ SOURCE32_IGNORE="signature"
+fi
+if [[ "$LLVM_WITH_SPIRV" == y ]]; then
+ SOURCE33="SPIRV-LLVM-Translator-$SPIRV_VERSION.tar.gz"
+
SOURCE33_URL[0]="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/v$SPIRV_VERSION/$SOURCE33"
+ SOURCE33_HASH="$SPIRV_HASH"
+fi
+if [[ "$LLVM_WITH_FLANG" == y ]]; then
+ SOURCE34="flang-${VERSION}.src.tar.xz"
+ SOURCE34_URL[0]="${GITHUB_URI}/${SOURCE34}"
+ SOURCE35="$SOURCE34.sig"
+ SOURCE35_URL[0]="${SOURCE34_URL[0]}.sig"
+ SOURCE34_GPG="llvm.gpg:$SOURCE35:UPSTREAM_KEY"
+ SOURCE35_IGNORE="signature"
+fi
+fi
WEB_SITE="https://llvm.org"
LICENSE[0]=APACHE
ENTERED=20081115
- SHORT="A novel compiler infrastructure for the optimization of
programs."
+ SHORT="A novel compiler infrastructure, version
${VERSION%%.*}.x"
TMPFS=off # Well, needs about 5G space, plus actual RAM for
compiling.
STAGED_INSTALL=off # chmod issues with castfs
cat << EOF
diff --git a/devel/llvm/HISTORY b/devel/llvm/HISTORY
index e43c8e0..c9163db 100644
--- a/devel/llvm/HISTORY
+++ b/devel/llvm/HISTORY
@@ -1,3 +1,21 @@
+2026-08-16 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS: slot 20 updated to 20.1.8
+
+2026-08-15 Ismael Luceno <ismael AT sourcemage.org>
+ * SLOTS: added, slots 0, 20, 16 and 15
+ * DETAILS: slot 0 keeps the system llvm in /usr; slots 20, 16 and 15
+ are the llvm20, llvm16 and llvm15 spells, in /opt/llvm<major> as
+ they always were; per-slot sources, three layouts (one project
+ tarball, one tarball per component, and the standalone llvm of 15
+ and 16), LLVM_PREFIX
+ * PREPARE, CONFIGURE, BUILD, PRE_BUILD, INSTALL: build and install
+ each slot the way its spell did, into its own prefix
+ * CONFLICTS: added, each older slot takes over its versioned spell
+ * SUB_DEPENDS, PRE_SUB_DEPENDS: added AMD, which is what the older
+ spells called TARGET-AMDGPU
+ * patches-llvm15: added, taken from the llvm15 spell
+ * WATCH: added, a stanza per slot
+
2026-06-16 Pavel Vinogradov <public AT sourcemage.org>
* DETAILS: version 22.1.8
diff --git a/devel/llvm/INSTALL b/devel/llvm/INSTALL
index 27ba7541..bbfd614 100755
--- a/devel/llvm/INSTALL
+++ b/devel/llvm/INSTALL
@@ -1,24 +1,29 @@
cmake_install &&
-ln -sfn /usr/share/clang/run-clang-tidy.py /usr/bin/run-clang-tidy &&
+# nothing below is built unless clang is, and the standalone slots never
+# build it; everything installed here belongs to the slot's own prefix
+if [[ "$LLVM_WITH_CLANG" == y ]]; then
+ ln -sfn "$LLVM_PREFIX/share/clang/run-clang-tidy.py" \
+ "$INSTALL_ROOT$LLVM_PREFIX/bin/run-clang-tidy"
+fi &&
if [[ "$LLVM_WITH_ANALYZER" == "y" ]]
then
- target="$INSTALL_ROOT/usr/share/llvm" &&
+ target="$INSTALL_ROOT$LLVM_PREFIX/share/llvm" &&
cd "$SOURCE_DIRECTORY/clang/tools" &&
install -v -o root -g root -m 0755 -d "$target/scan-build" &&
for i in ccc-analyzer c++-analyzer; do
- install -v -o root -g root -m 0755 -t "${INSTALL_ROOT}/usr/bin/"
scan-build/libexec/${i}
+ install -v -o root -g root -m 0755 -t "$INSTALL_ROOT$LLVM_PREFIX/bin/"
scan-build/libexec/${i}
done &&
for i in build view; do
- install -v -o root -g root -m 0755 -t "${INSTALL_ROOT}/usr/bin/"
scan-${i}/bin/scan-${i}
+ install -v -o root -g root -m 0755 -t "$INSTALL_ROOT$LLVM_PREFIX/bin/"
scan-${i}/bin/scan-${i}
done &&
- ln -sf "/usr/bin/ccc-analyzer" "${INSTALL_ROOT}/usr/bin/c++-analyzer" &&
+ ln -sf "$LLVM_PREFIX/bin/ccc-analyzer"
"$INSTALL_ROOT$LLVM_PREFIX/bin/c++-analyzer" &&
for i in scanview.css sorttable.js; do
install -v -o root -g root -m 0644 -t "$target/scan-build"
scan-build/share/scan-build/${i}
@@ -30,9 +35,11 @@ then
install -v -o root -g root -m 0644 -t "$target/scan-view"
scan-view/share/${i}
done &&
- install -v -o root -g root -m 0644 -t
"${INSTALL_ROOT}/usr/share/man/man1/" scan-build/man/scan-build.1
+ install -v -o root -g root -m 0755 -d
"$INSTALL_ROOT$LLVM_PREFIX/share/man/man1" &&
+ install -v -o root -g root -m 0644 -t
"$INSTALL_ROOT$LLVM_PREFIX/share/man/man1/" scan-build/man/scan-build.1
fi &&
-if [[ "$LLVM_WITH_CLANG" == y ]] && spell_ok python3; then
+# only the system llvm has any business in the system python
+if [[ $SLOT == 0 ]] && [[ "$LLVM_WITH_CLANG" == y ]] && spell_ok python3;
then
cp -Rv "${SOURCE_DIRECTORY}/clang/bindings/python/clang"
"${INSTALL_ROOT}/usr/lib/python$(installed_version python3 | cut -f1,2 -d.)/"
fi
diff --git a/devel/llvm/PREPARE b/devel/llvm/PREPARE
index 318caa7..0ff5c6a 100755
--- a/devel/llvm/PREPARE
+++ b/devel/llvm/PREPARE
@@ -1,5 +1,20 @@
. $GRIMOIRE/config_query_multi.function &&
+# PREPARE runs before DETAILS, so the slot is all there is to go on:
+# 15 and 16 build llvm and nothing else, and the only things left to
+# ask are the ones their spells asked
+if [[ $SLOT == 15 || $SLOT == 16 ]]; then
+ config_query_multi LLVM_TARGETS \
+ "Which backend targets to build?" \
+ AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips \
+ MSP430 NVPTX PowerPC RISCV Sparc SystemZ VE \
+ WebAssembly X86 XCore &&
+
+ config_query LLVM_WITH_RTTI "Enable RTTI? (recommended)" y &&
+ config_query LLVM_WITH_POLLY "Enable polyhedral optimizer?" n
+ return
+fi
+
local targets="all" &&
targets="$targets AArch64" &&
targets="$targets AMDGPU" &&
diff --git a/devel/llvm/PRE_BUILD b/devel/llvm/PRE_BUILD
index cf683e8..4f5b8cb 100755
--- a/devel/llvm/PRE_BUILD
+++ b/devel/llvm/PRE_BUILD
@@ -1,3 +1,131 @@
+if [[ $LLVM_LAYOUT == standalone ]]; then
+ # one tarball holding llvm itself, with the cmake modules it was split
+ # away from, and polly, laid back beside it
+ default_pre_build &&
+ cd "$SOURCE_DIRECTORY" &&
+
+ if [[ $SLOT == 15 ]]; then
+ apply_patch_dir patches-llvm15 &&
+ unpack_file 21 &&
+ mv cmake-${VERSION}.src/Modules/*cmake cmake
+ else
+ unpack_file 21 &&
+ mv cmake-${VERSION}.src/Modules cmake &&
+ sed '/LLVM_COMMON_CMAKE_UTILS /s;\.\./;;' -i CMakeLists.txt
+ fi &&
+
+ if [[ "$LLVM_WITH_POLLY" == y ]]; then
+ unpack_file 11 &&
+ mv polly-${VERSION}.src tools/polly
+ fi &&
+
+ cd "$SOURCE_DIRECTORY" &&
+
+ # small cmake related fix for libffi
+ if spell_ok libffi;then
+ FFI=`pkg-config --cflags-only-I libffi` &&
+ FFI=${FFI//-I/} &&
+ FFI=${FFI//\ */} &&
+ sed -i "/FFI_I/s|\"\"|\"$FFI\"|" CMakeLists.txt
+ fi &&
+
+ # do not build all backends
+ sed -i "/^set.*all\"$/s/all//" CMakeLists.txt
+ return
+fi &&
+
+if [[ $LLVM_LAYOUT == split ]]; then
+ # a tarball per component, unpacked into the tree they would have come
+ # in had upstream shipped one
+ mk_source_dir "$SOURCE_DIRECTORY" &&
+ cd "$SOURCE_DIRECTORY" &&
+
+ unpack_file &&
+ mv "llvm-${VERSION}.src" llvm &&
+
+ unpack_file 3 &&
+ mv "cmake-${VERSION}.src" cmake &&
+
+ if [[ "$LLVM_WITH_BOLT" == y ]]; then
+ unpack_file 5 &&
+ mv "bolt-${VERSION}.src" bolt
+ fi &&
+
+ if [[ "$LLVM_WITH_CLANG" == y ]]; then
+ unpack_file 7 &&
+ mv "clang-${VERSION}.src" clang &&
+ unpack_file 9 &&
+ mv "clang-tools-extra-${VERSION}.src" clang-tools-extra &&
+ ln -s ../../clang-tools-extra clang/tools/extra
+ fi &&
+
+ if [[ "$LLVM_WITH_FLANG" == y ]]; then
+ unpack_file 34 &&
+ mv "flang-${VERSION}.src" flang
+ fi &&
+
+ if [[ "$LLVM_WITH_LIBCLC" == y ]]; then
+ unpack_file 31 &&
+ mv "libclc-${VERSION}.src" libclc
+ fi &&
+
+ if [[ "$LLVM_WITH_LLD" == y ]]; then
+ unpack_file 11 &&
+ mv "lld-${VERSION}.src" lld
+ fi &&
+
+ if [[ "$LLVM_WITH_LLDB" == y ]]; then
+ unpack_file 13 &&
+ mv "lldb-${VERSION}.src" lldb
+ fi &&
+
+ if [[ "$LLVM_WITH_MLIR" == y ]]; then
+ unpack_file 15 &&
+ mv "mlir-${VERSION}.src" mlir
+ fi &&
+
+ if [[ "$LLVM_WITH_POLLY" == y ]]; then
+ unpack_file 17 &&
+ mv "polly-${VERSION}.src" polly
+ fi &&
+
+ if [[ -n "$LLVM_RUNTIMES" ]] ;then
+ unpack_file 19 &&
+ mv "runtimes-${VERSION}.src" runtimes
+ fi &&
+
+ if list_find "$LLVM_RUNTIMES" "compiler-rt"; then
+ unpack_file 21 &&
+ mv "compiler-rt-${VERSION}.src" compiler-rt
+ fi &&
+
+ if list_find "$LLVM_RUNTIMES" "libcxx"; then
+ unpack_file 23 &&
+ mv "libcxx-${VERSION}.src" libcxx
+ fi &&
+
+ if list_find "$LLVM_RUNTIMES" "libcxxabi"; then
+ unpack_file 25 &&
+ mv "libcxxabi-${VERSION}.src" libcxxabi
+ fi &&
+
+ if list_find "$LLVM_RUNTIMES" "libunwind"; then
+ unpack_file 27 &&
+ mv "libunwind-${VERSION}.src" libunwind
+ fi &&
+
+ if list_find "$LLVM_RUNTIMES" "openmp"; then
+ unpack_file 29 &&
+ mv "openmp-${VERSION}.src" openmp
+ fi &&
+
+ if [[ "$LLVM_WITH_SPIRV" == y ]]; then
+ unpack_file 33 &&
+ ln -s "../../SPIRV-LLVM-Translator-${SPIRV_VERSION}"
llvm/tools/llvm-spirv
+ fi
+ return
+fi &&
+
default_pre_build &&
cd "$SOURCE_DIRECTORY" &&
diff --git a/devel/llvm/PRE_SUB_DEPENDS b/devel/llvm/PRE_SUB_DEPENDS
index 80aec61..bd8321a 100755
--- a/devel/llvm/PRE_SUB_DEPENDS
+++ b/devel/llvm/PRE_SUB_DEPENDS
@@ -7,6 +7,7 @@ case "$THIS_SUB_DEPENDS" in
list_find "$LLVM_RUNTIMES" "all" ||
list_find "$LLVM_RUNTIMES" "${THIS_SUB_DEPENDS#RUNTIME-}"
;;
+ AMD) list_find "$LLVM_TARGETS" "all" || list_find "$LLVM_TARGETS" AMDGPU ;;
BOLT) [[ "${LLVM_WITH_BOLT}" == "y" ]] ;;
CLANG) [[ "${LLVM_WITH_CLANG}" == "y" ]] ;;
FLANG) [[ "$LLVM_WITH_FLANG" == "y" ]] ;;
diff --git a/devel/llvm/SLOTS b/devel/llvm/SLOTS
new file mode 100644
index 0000000..cad0a9c
--- /dev/null
+++ b/devel/llvm/SLOTS
@@ -0,0 +1,7 @@
+# The llvm a spell that says nothing about slots gets is slot 0 -- the
+# system llvm, in /usr -- so 'cast llvm' is what it always was and
+# every other spell's 'depends llvm' still means it. The older majors
+# are slots of their own, cast as llvm:20, llvm:16 and llvm:15, and
+# install beside it under /opt/llvm<major>, which is where the spells
+# they were made from wanted to go.
+0 20 16 15
diff --git a/devel/llvm/SUB_DEPENDS b/devel/llvm/SUB_DEPENDS
index 449a103..ee9ad37 100755
--- a/devel/llvm/SUB_DEPENDS
+++ b/devel/llvm/SUB_DEPENDS
@@ -9,6 +9,11 @@ case "$THIS_SUB_DEPENDS" in
message "${MESSAGE_COLOR}$target runtime support enforced by
sub-dependency.$DEFAULT_COLOR"
list_add LLVM_RUNTIMES "$target"
;;
+ AMD)
+ # what the standalone slots' spells called TARGET-AMDGPU
+ message "${MESSAGE_COLOR}AMD support enforced by
sub-dependency.$DEFAULT_COLOR"
+ list_add LLVM_TARGETS AMDGPU
+ ;;
BOLT)
message "${MESSAGE_COLOR}Building bolt enforced by
sub-dependency.$DEFAULT_COLOR"
LLVM_WITH_BOLT=y
diff --git a/devel/llvm/WATCH b/devel/llvm/WATCH
new file mode 100644
index 0000000..892dd64
--- /dev/null
+++ b/devel/llvm/WATCH
@@ -0,0 +1,23 @@
+# slot 0 follows llvm wherever it goes; the other slots each stay on a
+# major of their own, and each is told which VERSION= line is its. The
+# tags page only ever shows the newest tags, so the older slots ask for
+# the page that follows the first tag of the major above them.
+url https://github.com/llvm/llvm-project/releases
+slot 0
+release /llvmorg-([0-9.]+)[.]tar
+version ^[ \t]*\(0\)[ \t]*VERSION=(.*)
+
+url https://github.com/llvm/llvm-project/tags?after=llvmorg-21.1.0
+slot 20
+release /llvmorg-(20[.][0-9.]+)[.]tar
+version ^[ \t]*\(20\)[ \t]*VERSION=(.*)
+
+url https://github.com/llvm/llvm-project/tags?after=llvmorg-17.0.0
+slot 16
+release /llvmorg-(16[.][0-9.]+)[.]tar
+version ^[ \t]*\(16\)[ \t]*VERSION=(.*)
+
+url https://github.com/llvm/llvm-project/tags?after=llvmorg-16.0.0
+slot 15
+release /llvmorg-(15[.][0-9.]+)[.]tar
+version ^[ \t]*\(15\)[ \t]*VERSION=(.*)
diff --git a/devel/llvm/patches-llvm15/0001-Make-lseek64-available.patch
b/devel/llvm/patches-llvm15/0001-Make-lseek64-available.patch
new file mode 100644
index 0000000..b6d859f
--- /dev/null
+++ b/devel/llvm/patches-llvm15/0001-Make-lseek64-available.patch
@@ -0,0 +1,24 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Ismael Luceno <ismael AT sourcemage.org>
+Date: Fri, 13 Jun 2025 15:38:35 +0200
+Subject: [PATCH] Make lseek64 available
+
+Origin: Source Mage
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+---
+ raw_ostream.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/Support/raw_ostream.cpp b/lib/Support/raw_ostream.cpp
+index 651949ad5765..258ad2b79e3e 100644
+--- a/lib/Support/raw_ostream.cpp
++++ b/lib/Support/raw_ostream.cpp
+@@ -10,6 +10,8 @@
+ //
+
//===----------------------------------------------------------------------===//
+
++#define _LARGEFILE64_SOURCE
++
+ #include "llvm/Support/raw_ostream.h"
+ #include "llvm/ADT/STLArrayExtras.h"
+ #include "llvm/ADT/StringExtras.h"
diff --git a/devel/llvm/patches-llvm15/llvm-001-musl.patch
b/devel/llvm/patches-llvm15/llvm-001-musl.patch
new file mode 100644
index 0000000..3e68f3f
--- /dev/null
+++ b/devel/llvm/patches-llvm15/llvm-001-musl.patch
@@ -0,0 +1,58 @@
+From faca3fbd15d0c3108493c3c54cd93138e049ac43 Mon Sep 17 00:00:00 2001
+From: Andrea Brancaleoni <miwaxe AT gmail.com>
+Date: Tue, 8 Sep 2015 22:03:02 +0200
+Subject: [PATCH 3/3] musl
+
+Origin: Void Linux
+---
+ include/llvm/Analysis/TargetLibraryInfo.h | 9 +++++++++
+ lib/Support/DynamicLibrary.cpp | 2 +-
+ lib/Support/Unix/Signals.inc | 6 +++---
+ utils/unittest/googletest/src/gtest.cc | 1 +
+ 5 files changed, 17 insertions(+), 6 deletions(-)
+
+diff --git a/include/llvm/Analysis/TargetLibraryInfo.h
b/include/llvm/Analysis/TargetLibraryInfo.h
+index 34a8a1e3..1214ece5 100644
+--- a/include/llvm/Analysis/TargetLibraryInfo.h
++++ b/include/llvm/Analysis/TargetLibraryInfo.h
+@@ -18,6 +18,15 @@
+ #include "llvm/IR/PassManager.h"
+ #include "llvm/Pass.h"
+
++#undef fopen64
++#undef fseeko64
++#undef fstat64
++#undef fstatvfs64
++#undef ftello64
++#undef lstat64
++#undef stat64
++#undef tmpfile64
++
+ namespace llvm {
+ template <typename T> class ArrayRef;
+ class Triple;
+diff --git a/lib/Support/Unix/DynamicLibrary.inc
b/lib/Support/Unix/DynamicLibrary.inc
+index a2a37996..2f86c470 100644
+--- a/lib/Support/Unix/DynamicLibrary.inc
++++ b/lib/Support/Unix/DynamicLibrary.inc
+@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
+
+ // This macro returns the address of a well-known, explicit symbol
+ #define EXPLICIT_SYMBOL(SYM) \
+- if (!strcmp(SymbolName, #SYM)) return &SYM
++ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
+
+ // Under glibc we have a weird situation. The stderr/out/in symbols are both
+ // macros and global variables because of standards requirements. So, we
+diff --git a/utils/unittest/googletest/src/gtest.cc
b/utils/unittest/googletest/src/gtest.cc
+index d882ab2e..f1fb12d0 100644
+--- a/utils/unittest/googletest/src/gtest.cc
++++ b/utils/unittest/googletest/src/gtest.cc
+@@ -128,6 +128,7 @@
+
+ #if GTEST_CAN_STREAM_RESULTS_
+ # include <arpa/inet.h> // NOLINT
++# include <sys/socket.h> // NOLINT
+ # include <netdb.h> // NOLINT
+ # include <sys/socket.h> // NOLINT
+ # include <sys/types.h> // NOLINT
diff --git a/devel/llvm15/BUILD b/devel/llvm15/BUILD
index 35dd24f..27ba77d 100755
--- a/devel/llvm15/BUILD
+++ b/devel/llvm15/BUILD
@@ -1,36 +1 @@
-case "$HOST" in
- (*-musl)
- OPTS+=' -DLIBCXX_HAS_MUSL_LIBC=YES'
- ;;
-esac &&
-
-# Remove -DPIC from compiler flags, produces build errors
-CXXFLAGS="${CXXFLAGS//-DPIC}" &&
-
-# Default target, not detected correctly
-OPTS+=" -DLLVM_DEFAULT_TARGET_TRIPLE=$HOST" &&
-
-# Targets and runtimes
-OPTS+=" -DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS// /;}" &&
-
-# recommended by mesa project
-OPTS+=" -DLLVM_LINK_LLVM_DYLIB=1 -DCMAKE_BUILD_TYPE=RELEASE" &&
-
-OPTS+=" -DLLVM_BUILD_BENCHMARKS=OFF" &&
-OPTS+=" -DLLVM_INCLUDE_BENCHMARKS=OFF" &&
-OPTS+=" -DLLVM_INCLUDE_TESTS=OFF" &&
-
-# prevent unnecessary use of libedit and ncurses
-OPTS+=" -DLLVM_ENABLE_LIBEDIT=OFF" &&
-OPTS+=" -DLLVM_ENABLE_TERMINFO=OFF" &&
-OPTS+=" -DLLVM_ENABLE_BACKTRACES=OFF"
-
-# Enable RTTI if requested, recommended, changing it breaks the ABI
-if [[ y == "$LLVM_WITH_RTTI" ]]; then
- OPTS+=" -DLLVM_ENABLE_RTTI=ON"
-else
- OPTS+=" -DLLVM_ENABLE_RTTI=OFF"
-fi &&
-
-
-cmake_build "${INSTALL_ROOT}/opt/$SPELL"
+true
diff --git a/devel/llvm15/CONFIGURE b/devel/llvm15/CONFIGURE
deleted file mode 100755
index 75512bd..0000000
--- a/devel/llvm15/CONFIGURE
+++ /dev/null
@@ -1,25 +0,0 @@
-. $GRIMOIRE/config_query_multi.function &&
-message "$DEFAULT_COLOR$MESSAGE_COLOR" \
- "LLVM can build multiple backends." \
- "\nFor most people, X86 and AMDGPU are sufficient." &&
-config_query_multi LLVM_TARGETS "which backend targets?" \
- AArch64 \
- AMDGPU \
- ARM \
- AVR \
- BPF \
- Hexagon \
- Lanai \
- Mips \
- MSP430 \
- NVPTX \
- PowerPC \
- RISCV \
- Sparc \
- SystemZ \
- VE \
- WebAssembly \
- X86 \
- XCore &&
-
-. "$GRIMOIRE"/CMAKE_CONFIGURE
diff --git a/devel/llvm15/DEPENDS b/devel/llvm15/DEPENDS
deleted file mode 100755
index 355c8d5..0000000
--- a/devel/llvm15/DEPENDS
+++ /dev/null
@@ -1,14 +0,0 @@
-. "$GRIMOIRE"/CMAKE_DEPENDS &&
-case "$HOST" in
- (*-musl)
- depends libexecinfo &&
- depends musl-obstack
- ;;
-esac &&
-depends libtool &&
-depends -sub CXX gcc &&
-depends PKG-CONFIG &&
-depends zlib '-DLLVM_ENABLE_ZLIB=1' &&
-depends python3 &&
-depends mako &&
-depends libffi '-DLLVM_ENABLE_FFI=1'
diff --git a/devel/llvm15/DETAILS b/devel/llvm15/DETAILS
index 28bca56..cc22494 100755
--- a/devel/llvm15/DETAILS
+++ b/devel/llvm15/DETAILS
@@ -1,31 +1,15 @@
-# Watch: https://github.com/llvm/llvm-project/tags
/llvmorg-(15[.][0-9.]+)[.]tar
-. "$GRIMOIRE"/CMAKE_FUNCTIONS
SPELL=llvm15
VERSION=15.0.7
- PATCHLEVEL=1
- SOURCE="llvm-${VERSION}.src.tar.xz"
-
GITHUB_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-$VERSION"
- SOURCE_URL[0]="${GITHUB_URI}/${SOURCE}"
-
SOURCE_HASH=sha256:4ad8b2cc8003c86d0078d15d987d84e3a739f24aae9033865c027abae93ee7a4
-if [[ "$LLVM_WITH_POLLY" == y ]]; then
- SOURCE11="polly-${VERSION}.src.tar.xz"
- SOURCE11_URL[0]="${GITHUB_URI}/${SOURCE11}"
-
SOURCE11_HASH=sha256:1053610cace401c0b4e6d430d441277b0283dd4112581e2acc90e174d3192819
-fi
- SOURCE21="cmake-${VERSION}.src.tar.xz"
- SOURCE21_URL[0]="${GITHUB_URI}/${SOURCE21}"
-
SOURCE21_HASH=sha256:8986f29b634fdaa9862eedda78513969fe9788301c9f2d938f4c10a3e7a3e7ea
-SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SOURCE%.tar.xz}"
- WEB_SITE="https://llvm.org"
+ PATCHLEVEL=2
+ ARCHIVE=off
+ GATHER_DOCS=off
LICENSE[0]=BSD
+ WEB_SITE="https://llvm.org"
ENTERED=20230330
- SHORT="A novel compiler infrastructure for the optimization of
programs."
- TMPFS=off # Well, needs about 5G space, plus actual RAM for
compiling.
+ SHORT="deprecated, superseded by llvm:15"
cat << EOF
-Low-Level Virtual Machine (LLVM) is a compiler infrastructure designed for
-compile-time, link-time, run-time, and "idle-time" optimization of programs
-from arbitrary programming languages. It currently supports compilation of
-C, Objective-C, and C++ programs, using front-ends derived from GCC 4.0,
-GCC 4.2, and a custom new front-end, "clang". It supports x86, x86_64, ia64,
-PowerPC, and SPARC, with support for Alpha and ARM under development.
+Deprecated in favour of slot 15 of the llvm spell, which builds the same
+llvm into the same /opt/llvm15.
+
+Casting this dispels it and casts llvm:15 in its place.
EOF
diff --git a/devel/llvm15/HISTORY b/devel/llvm15/HISTORY
index 639d0b0..25f85bc 100644
--- a/devel/llvm15/HISTORY
+++ b/devel/llvm15/HISTORY
@@ -1,3 +1,8 @@
+2026-08-15 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS, PRE_BUILD, BUILD, INSTALL, UP_TRIGGERS: deprecated in
+ favour of llvm:15, which is this same llvm as a slot of the llvm
+ spell; casting this dispels it and casts llvm:15
+
2025-06-14 Ismael Luceno <ismael AT sourcemage.org>
* BUILD: partially synced with llvm19
* DETAILS: removed STAGED_INSTALL=off
diff --git a/devel/llvm15/INSTALL b/devel/llvm15/INSTALL
new file mode 100755
index 0000000..27ba77d
--- /dev/null
+++ b/devel/llvm15/INSTALL
@@ -0,0 +1 @@
+true
diff --git a/devel/llvm15/PREPARE b/devel/llvm15/PREPARE
deleted file mode 100755
index 237b29e..0000000
--- a/devel/llvm15/PREPARE
+++ /dev/null
@@ -1,2 +0,0 @@
-config_query LLVM_WITH_RTTI "Enable RTTI? (recommended)" y &&
-config_query LLVM_WITH_POLLY "Enable polihedral optimizer?" n
diff --git a/devel/llvm15/PRE_BUILD b/devel/llvm15/PRE_BUILD
index 27f152a..27ba77d 100755
--- a/devel/llvm15/PRE_BUILD
+++ b/devel/llvm15/PRE_BUILD
@@ -1,23 +1 @@
-default_pre_build &&
-cd "$SOURCE_DIRECTORY" &&
-apply_patch_dir patches-llvm &&
-unpack_file 21 &&
-mv cmake-${VERSION}.src/Modules/*cmake cmake &&
-
-if [[ "$LLVM_WITH_POLLY" == y ]]; then
- unpack_file 11 &&
- mv polly-${VERSION}.src tools/polly
-fi &&
-
-cd "$SOURCE_DIRECTORY" &&
-
-# small cmake related fix for libffi
-if spell_ok libffi;then
- FFI=`pkg-config --cflags-only-I libffi` &&
- FFI=${FFI//-I/} &&
- FFI=${FFI//\ */} &&
- sed -i "/FFI_I/s|\"\"|\"$FFI\"|" CMakeLists.txt
-fi &&
-
-# do not build all backends
-sed -i "/^set.*all\"$/s/all//" CMakeLists.txt
+true
diff --git a/devel/llvm15/PRE_SUB_DEPENDS b/devel/llvm15/PRE_SUB_DEPENDS
deleted file mode 100755
index 3f35485..0000000
--- a/devel/llvm15/PRE_SUB_DEPENDS
+++ /dev/null
@@ -1,10 +0,0 @@
-case $THIS_SUB_DEPENDS in
-TARGET-*) list_find "$LLVM_TARGETS" "${THIS_SUB_DEPENDS#TARGET-}" ;;
-AMD) list_find "${LLVM_TARGETS}" AMDGPU ;;
-POLLY) [[ "${LLVM_WITH_POLLY}" == "y" ]] ;;
-RTTI) [[ y == "$LLVM_WITH_RTTI" ]] ;;
- *)
- message "${PROBLEM_COLOR}bogus sub_depends: $SPELL
$THIS_SUB_DEPENDS${DEFAULT_COLOR}"
- return 1
-;;
-esac
diff --git a/devel/llvm15/SUB_DEPENDS b/devel/llvm15/SUB_DEPENDS
deleted file mode 100755
index d4675c7..0000000
--- a/devel/llvm15/SUB_DEPENDS
+++ /dev/null
@@ -1,23 +0,0 @@
-case $THIS_SUB_DEPENDS in
-TARGET-*)
- target="${THIS_SUB_DEPENDS#TARGET-}"
- message "${MESSAGE_COLOR}$target target support enforced by
subdep.$DEFAULT_COLOR"
- list_add LLVM_TARGETS "$target"
-;;
-AMD)
- message "${MESSAGE_COLOR}AMD support enforced by
sub-dependency.$DEFAULT_COLOR"
- list_add LLVM_TARGETS AMDGPU
-;;
-POLLY)
- message "${MESSAGE_COLOR}Building polly enforced by
sub-dependency.$DEFAULT_COLOR"
- LLVM_WITH_POLLY=y
-;;
-RTTI)
- message "${MESSAGE_COLOR}RTTI support enforced by
sub-dependency.$DEFAULT_COLOR"
- LLVM_WITH_RTTI=y
-;;
- *)
- message "${PROBLEM_COLOR}bogus sub_depends: $SPELL
$THIS_SUB_DEPENDS${DEFAULT_COLOR}"
- return 1
-;;
-esac
diff --git a/devel/llvm15/UP_TRIGGERS b/devel/llvm15/UP_TRIGGERS
new file mode 100755
index 0000000..5230953
--- /dev/null
+++ b/devel/llvm15/UP_TRIGGERS
@@ -0,0 +1,2 @@
+up_trigger llvm15 dispel_self &&
+up_trigger llvm:15 cast_self
diff --git a/devel/llvm15/patches-llvm/0001-Make-lseek64-available.patch
b/devel/llvm15/patches-llvm/0001-Make-lseek64-available.patch
deleted file mode 100644
index b6d859f..0000000
--- a/devel/llvm15/patches-llvm/0001-Make-lseek64-available.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Ismael Luceno <ismael AT sourcemage.org>
-Date: Fri, 13 Jun 2025 15:38:35 +0200
-Subject: [PATCH] Make lseek64 available
-
-Origin: Source Mage
-Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
----
- raw_ostream.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/lib/Support/raw_ostream.cpp b/lib/Support/raw_ostream.cpp
-index 651949ad5765..258ad2b79e3e 100644
---- a/lib/Support/raw_ostream.cpp
-+++ b/lib/Support/raw_ostream.cpp
-@@ -10,6 +10,8 @@
- //
-
//===----------------------------------------------------------------------===//
-
-+#define _LARGEFILE64_SOURCE
-+
- #include "llvm/Support/raw_ostream.h"
- #include "llvm/ADT/STLArrayExtras.h"
- #include "llvm/ADT/StringExtras.h"
diff --git a/devel/llvm15/patches-llvm/llvm-001-musl.patch
b/devel/llvm15/patches-llvm/llvm-001-musl.patch
deleted file mode 100644
index 3e68f3f..0000000
--- a/devel/llvm15/patches-llvm/llvm-001-musl.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From faca3fbd15d0c3108493c3c54cd93138e049ac43 Mon Sep 17 00:00:00 2001
-From: Andrea Brancaleoni <miwaxe AT gmail.com>
-Date: Tue, 8 Sep 2015 22:03:02 +0200
-Subject: [PATCH 3/3] musl
-
-Origin: Void Linux
----
- include/llvm/Analysis/TargetLibraryInfo.h | 9 +++++++++
- lib/Support/DynamicLibrary.cpp | 2 +-
- lib/Support/Unix/Signals.inc | 6 +++---
- utils/unittest/googletest/src/gtest.cc | 1 +
- 5 files changed, 17 insertions(+), 6 deletions(-)
-
-diff --git a/include/llvm/Analysis/TargetLibraryInfo.h
b/include/llvm/Analysis/TargetLibraryInfo.h
-index 34a8a1e3..1214ece5 100644
---- a/include/llvm/Analysis/TargetLibraryInfo.h
-+++ b/include/llvm/Analysis/TargetLibraryInfo.h
-@@ -18,6 +18,15 @@
- #include "llvm/IR/PassManager.h"
- #include "llvm/Pass.h"
-
-+#undef fopen64
-+#undef fseeko64
-+#undef fstat64
-+#undef fstatvfs64
-+#undef ftello64
-+#undef lstat64
-+#undef stat64
-+#undef tmpfile64
-+
- namespace llvm {
- template <typename T> class ArrayRef;
- class Triple;
-diff --git a/lib/Support/Unix/DynamicLibrary.inc
b/lib/Support/Unix/DynamicLibrary.inc
-index a2a37996..2f86c470 100644
---- a/lib/Support/Unix/DynamicLibrary.inc
-+++ b/lib/Support/Unix/DynamicLibrary.inc
-@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
-
- // This macro returns the address of a well-known, explicit symbol
- #define EXPLICIT_SYMBOL(SYM) \
-- if (!strcmp(SymbolName, #SYM)) return &SYM
-+ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
-
- // Under glibc we have a weird situation. The stderr/out/in symbols are both
- // macros and global variables because of standards requirements. So, we
-diff --git a/utils/unittest/googletest/src/gtest.cc
b/utils/unittest/googletest/src/gtest.cc
-index d882ab2e..f1fb12d0 100644
---- a/utils/unittest/googletest/src/gtest.cc
-+++ b/utils/unittest/googletest/src/gtest.cc
-@@ -128,6 +128,7 @@
-
- #if GTEST_CAN_STREAM_RESULTS_
- # include <arpa/inet.h> // NOLINT
-+# include <sys/socket.h> // NOLINT
- # include <netdb.h> // NOLINT
- # include <sys/socket.h> // NOLINT
- # include <sys/types.h> // NOLINT
diff --git a/devel/llvm16/BUILD b/devel/llvm16/BUILD
index 655cb4a..27ba77d 100755
--- a/devel/llvm16/BUILD
+++ b/devel/llvm16/BUILD
@@ -1,27 +1 @@
-case "$HOST" in
- (*-musl)
- OPTS+=' -DLIBCXX_HAS_MUSL_LIBC=YES'
- ;;
-esac &&
-# Remove -DPIC from compiler flags, produces build errors
-CXXFLAGS="${CXXFLAGS//-DPIC}" &&
-# Default target, not detected correctly
-OPTS+=" -DLLVM_DEFAULT_TARGET_TRIPLE=$HOST" &&
-# LLVM_TARGETS
-OPTS+=" -DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS// /;}" &&
-# recommended by mesa project
-OPTS+=" -DLLVM_LINK_LLVM_DYLIB=1 -DCMAKE_BUILD_TYPE=RELEASE" &&
-# prevent unnecessary use of libedit and ncurses
-OPTS+=" -DLLVM_ENABLE_LIBEDIT=0" &&
-OPTS+=" -DLLVM_ENABLE_TERMINFO=0" &&
-OPTS+=" -DLLVM_ENABLE_BACKTRACES=0"
-# Enable RTTI if requested, recommended, changing it breaks the ABI
-if [[ y == "$LLVM_WITH_RTTI" ]]; then
- OPTS+=" -DLLVM_ENABLE_RTTI=ON"
-else
- OPTS+=" -DLLVM_ENABLE_RTTI=OFF"
-fi &&
-
-OPTS+=" -DLLVM_BUILD_BENCHMARKS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF
-DLLVM_INCLUDE_TESTS=OFF" &&
-
-cmake_build "${INSTALL_ROOT}/opt/$SPELL"
+true
diff --git a/devel/llvm16/CONFIGURE b/devel/llvm16/CONFIGURE
deleted file mode 100755
index 75512bd..0000000
--- a/devel/llvm16/CONFIGURE
+++ /dev/null
@@ -1,25 +0,0 @@
-. $GRIMOIRE/config_query_multi.function &&
-message "$DEFAULT_COLOR$MESSAGE_COLOR" \
- "LLVM can build multiple backends." \
- "\nFor most people, X86 and AMDGPU are sufficient." &&
-config_query_multi LLVM_TARGETS "which backend targets?" \
- AArch64 \
- AMDGPU \
- ARM \
- AVR \
- BPF \
- Hexagon \
- Lanai \
- Mips \
- MSP430 \
- NVPTX \
- PowerPC \
- RISCV \
- Sparc \
- SystemZ \
- VE \
- WebAssembly \
- X86 \
- XCore &&
-
-. "$GRIMOIRE"/CMAKE_CONFIGURE
diff --git a/devel/llvm16/DEPENDS b/devel/llvm16/DEPENDS
deleted file mode 100755
index 355c8d5..0000000
--- a/devel/llvm16/DEPENDS
+++ /dev/null
@@ -1,14 +0,0 @@
-. "$GRIMOIRE"/CMAKE_DEPENDS &&
-case "$HOST" in
- (*-musl)
- depends libexecinfo &&
- depends musl-obstack
- ;;
-esac &&
-depends libtool &&
-depends -sub CXX gcc &&
-depends PKG-CONFIG &&
-depends zlib '-DLLVM_ENABLE_ZLIB=1' &&
-depends python3 &&
-depends mako &&
-depends libffi '-DLLVM_ENABLE_FFI=1'
diff --git a/devel/llvm16/DETAILS b/devel/llvm16/DETAILS
index 9cfc2a1..9a7bc7c 100755
--- a/devel/llvm16/DETAILS
+++ b/devel/llvm16/DETAILS
@@ -1,30 +1,15 @@
-# Watch: https://github.com/llvm/llvm-project/tags
/llvmorg-(16[.][0-9.]+)[.]tar
-. "$GRIMOIRE"/CMAKE_FUNCTIONS
SPELL=llvm16
VERSION=16.0.6
- SOURCE="llvm-${VERSION}.src.tar.xz"
-
GITHUB_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-$VERSION"
- SOURCE_URL[0]="${GITHUB_URI}/${SOURCE}"
-
SOURCE_HASH=sha512:8d4cdadc9a1ad249fbf9248c8e56f3bcafab73a473a0b0ca73499ed8825c62e27668aac4f1d03341631e5ad93701621e834e9e196ca32eac3ef805cf1c860083
-if [[ "$LLVM_WITH_POLLY" == y ]]; then
- SOURCE11="polly-${VERSION}.src.tar.xz"
- SOURCE11_URL[0]="${GITHUB_URI}/${SOURCE11}"
-
SOURCE11_HASH=sha512:791473c145930fcd1541002c5385c2fbc1b6dbecc60ca19b69f81d4df27a324609d1b0fc2723893147886eab988b4bf88e9c0ca815b1aa5b0a10d899cf32bc7e
-fi
- SOURCE21="cmake-${VERSION}.src.tar.xz"
- SOURCE21_URL[0]="${GITHUB_URI}/${SOURCE21}"
-
SOURCE21_HASH=sha512:52ecd941d2d85a5b668caa5d0d40480cb6a97b3bf1174e634c2a93e9ef6d03670ca7e96abb0a60cb33ba537b93d5788754dab1f2f45c1f623f788162717d088b
-SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SOURCE%.tar.xz}"
- WEB_SITE="https://llvm.org"
+ PATCHLEVEL=1
+ ARCHIVE=off
+ GATHER_DOCS=off
LICENSE[0]=BSD
+ WEB_SITE="https://llvm.org"
ENTERED=20231110
- SHORT="A novel compiler infrastructure for the optimization of
programs."
- TMPFS=off # Well, needs about 5G space, plus actual RAM for
compiling.
+ SHORT="deprecated, superseded by llvm:16"
cat << EOF
-Low-Level Virtual Machine (LLVM) is a compiler infrastructure designed for
-compile-time, link-time, run-time, and "idle-time" optimization of programs
-from arbitrary programming languages. It currently supports compilation of
-C, Objective-C, and C++ programs, using front-ends derived from GCC 4.0,
-GCC 4.2, and a custom new front-end, "clang". It supports x86, x86_64, ia64,
-PowerPC, and SPARC, with support for Alpha and ARM under development.
+Deprecated in favour of slot 16 of the llvm spell, which builds the same
+llvm into the same /opt/llvm16.
+
+Casting this dispels it and casts llvm:16 in its place.
EOF
diff --git a/devel/llvm16/HISTORY b/devel/llvm16/HISTORY
index d8e3156..5f4889c 100644
--- a/devel/llvm16/HISTORY
+++ b/devel/llvm16/HISTORY
@@ -1,3 +1,8 @@
+2026-08-15 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS, PRE_BUILD, BUILD, INSTALL, UP_TRIGGERS: deprecated in
+ favour of llvm:16, which is this same llvm as a slot of the llvm
+ spell; casting this dispels it and casts llvm:16
+
2025-06-17 Ismael Luceno <ismael AT sourcemage.org>
* DETAILS: removed STAGED_INSTALL=off
diff --git a/devel/llvm16/INSTALL b/devel/llvm16/INSTALL
new file mode 100755
index 0000000..27ba77d
--- /dev/null
+++ b/devel/llvm16/INSTALL
@@ -0,0 +1 @@
+true
diff --git a/devel/llvm16/PREPARE b/devel/llvm16/PREPARE
deleted file mode 100755
index 237b29e..0000000
--- a/devel/llvm16/PREPARE
+++ /dev/null
@@ -1,2 +0,0 @@
-config_query LLVM_WITH_RTTI "Enable RTTI? (recommended)" y &&
-config_query LLVM_WITH_POLLY "Enable polihedral optimizer?" n
diff --git a/devel/llvm16/PRE_BUILD b/devel/llvm16/PRE_BUILD
index b3338d3..27ba77d 100755
--- a/devel/llvm16/PRE_BUILD
+++ b/devel/llvm16/PRE_BUILD
@@ -1,23 +1 @@
-default_pre_build &&
-cd "$SOURCE_DIRECTORY" &&
-unpack_file 21 &&
-mv cmake-${VERSION}.src/Modules cmake &&
-sed '/LLVM_COMMON_CMAKE_UTILS /s;\.\./;;' -i CMakeLists.txt &&
-
-if [[ "$LLVM_WITH_POLLY" == y ]]; then
- unpack_file 11 &&
- mv polly-${VERSION}.src tools/polly
-fi &&
-
-cd "$SOURCE_DIRECTORY" &&
-
-# small cmake related fix for libffi
-if spell_ok libffi;then
- FFI=`pkg-config --cflags-only-I libffi` &&
- FFI=${FFI//-I/} &&
- FFI=${FFI//\ */} &&
- sed -i "/FFI_I/s|\"\"|\"$FFI\"|" CMakeLists.txt
-fi &&
-
-# do not build all backends
-sed -i "/^set.*all\"$/s/all//" CMakeLists.txt
+true
diff --git a/devel/llvm16/PRE_SUB_DEPENDS b/devel/llvm16/PRE_SUB_DEPENDS
deleted file mode 100755
index 3f35485..0000000
--- a/devel/llvm16/PRE_SUB_DEPENDS
+++ /dev/null
@@ -1,10 +0,0 @@
-case $THIS_SUB_DEPENDS in
-TARGET-*) list_find "$LLVM_TARGETS" "${THIS_SUB_DEPENDS#TARGET-}" ;;
-AMD) list_find "${LLVM_TARGETS}" AMDGPU ;;
-POLLY) [[ "${LLVM_WITH_POLLY}" == "y" ]] ;;
-RTTI) [[ y == "$LLVM_WITH_RTTI" ]] ;;
- *)
- message "${PROBLEM_COLOR}bogus sub_depends: $SPELL
$THIS_SUB_DEPENDS${DEFAULT_COLOR}"
- return 1
-;;
-esac
diff --git a/devel/llvm16/SUB_DEPENDS b/devel/llvm16/SUB_DEPENDS
deleted file mode 100755
index d4675c7..0000000
--- a/devel/llvm16/SUB_DEPENDS
+++ /dev/null
@@ -1,23 +0,0 @@
-case $THIS_SUB_DEPENDS in
-TARGET-*)
- target="${THIS_SUB_DEPENDS#TARGET-}"
- message "${MESSAGE_COLOR}$target target support enforced by
subdep.$DEFAULT_COLOR"
- list_add LLVM_TARGETS "$target"
-;;
-AMD)
- message "${MESSAGE_COLOR}AMD support enforced by
sub-dependency.$DEFAULT_COLOR"
- list_add LLVM_TARGETS AMDGPU
-;;
-POLLY)
- message "${MESSAGE_COLOR}Building polly enforced by
sub-dependency.$DEFAULT_COLOR"
- LLVM_WITH_POLLY=y
-;;
-RTTI)
- message "${MESSAGE_COLOR}RTTI support enforced by
sub-dependency.$DEFAULT_COLOR"
- LLVM_WITH_RTTI=y
-;;
- *)
- message "${PROBLEM_COLOR}bogus sub_depends: $SPELL
$THIS_SUB_DEPENDS${DEFAULT_COLOR}"
- return 1
-;;
-esac
diff --git a/devel/llvm16/UP_TRIGGERS b/devel/llvm16/UP_TRIGGERS
new file mode 100755
index 0000000..88c267a
--- /dev/null
+++ b/devel/llvm16/UP_TRIGGERS
@@ -0,0 +1,2 @@
+up_trigger llvm16 dispel_self &&
+up_trigger llvm:16 cast_self
diff --git a/devel/llvm20/BUILD b/devel/llvm20/BUILD
new file mode 100755
index 0000000..27ba77d
--- /dev/null
+++ b/devel/llvm20/BUILD
@@ -0,0 +1 @@
+true
diff --git a/devel/llvm20/DETAILS b/devel/llvm20/DETAILS
new file mode 100755
index 0000000..768f910
--- /dev/null
+++ b/devel/llvm20/DETAILS
@@ -0,0 +1,15 @@
+ SPELL=llvm20
+ VERSION=20.1.7
+ PATCHLEVEL=1
+ ARCHIVE=off
+ GATHER_DOCS=off
+ LICENSE[0]=APACHE
+ WEB_SITE="https://llvm.org"
+ ENTERED=20081115
+ SHORT="deprecated, superseded by llvm:20"
+cat << EOF
+Deprecated in favour of slot 20 of the llvm spell, which builds the same
+llvm into the same /opt/llvm20.
+
+Casting this dispels it and casts llvm:20 in its place.
+EOF
diff --git a/devel/llvm20/HISTORY b/devel/llvm20/HISTORY
new file mode 100644
index 0000000..5258013
--- /dev/null
+++ b/devel/llvm20/HISTORY
@@ -0,0 +1,693 @@
+2026-08-15 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS, PRE_BUILD, BUILD, INSTALL, UP_TRIGGERS: deprecated in
+ favour of llvm:20, which is this same llvm as a slot of the llvm
+ spell; casting this dispels it and casts llvm:20
+
+2025-06-17 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS: updated spell to 20.1.7
+ removed STAGED_INSTALL=off
+ * BUILD, CONFIGURE, DEPENDS, DETAILS, HISTORY, INSTALL, PREPARE,
PRE_BUILD,
+ PRE_SUB_DEPENDS, SUB_DEPENDS, TODO,
+ patches-clang/clang-001-fix-unwind-chain-inclusion.patch:
+ copied from llvm(19)
+ * CONFLICTS: conflicts with llvm for now
+
+2025-05-11 Ismael Luceno <ismael AT sourcemage.org>
+ * BUILD: removed CMAKE_LINKER_TYPE=SYSTEM
+
+2025-04-02 Pavel Vinogradov <public AT sourcemage.org>
+ * BUILD: improved spirv check in libclc targets
+
+2025-03-06 Thomas Orgis <sobukus AT sourcemage.org>
+ * BUILD: allow build with libclc _without_ SPIR-V in it
+
+2025-03-02 Justin Boffemmyer <flux AT sourcemage.org>
+ * BUILD, PREPARE: explicitly warn the user about libclc SPIR-V builds
+ needing llvm-spirv
+
+2025-02-28 Thomas Orgis <sobukus AT sourcemage.org>
+ * BUILD: fix the && chain and make a non-existing llvm-spirv non-fatal
+ * DETAILS: ++PATCHLEVEL, as this changes the build (for example,
really
+ using clang for building)
+
+2025-01-17 Justin Boffemmyer <flux AT sourcemage.org>
+ * BUILD: fix experimental targets, make clang-tools-extra build
+ explicit, support SPIR-V runner for MLIR, make utils install
+ explicit, improve linker handling
+ * DEPENDS: fix Z3 option, make doxygen option explicit, support Vulkan
+ runner for MLIR
+ * PREPARE: move linker processing to BUILD, fix experimental target
+ processing
+ * PRE_BUILD: fix typo in SPIRV_VERSION variable usage, quote filenames
+
+2025-01-16 Justin Boffemmyer <flux AT sourcemage.org>
+ * BUILD: add a workaround for building libclc
+
+2025-01-16 Justin Boffemmyer <flux AT sourcemage.org>
+ * CONFIGURE,PREPARE: move backend target selection to PREPARE, add
+ experimental backend target selection options
+
+2025-01-16 Justin Boffemmyer <flux AT sourcemage.org>
+ * CONFIGURE: add LoongArch to list of supported build targets
+
+2025-01-16 Justin Boffemmyer <flux AT sourcemage.org>
+ * PREPARE: don't hardcode a specific path for finding host compilers
or
+ linkers
+
+2025-01-16 Justin Boffemmyer <flux AT sourcemage.org>
+ * DEPENDS: add missing functions include
+
+2025-01-16 Justin Boffemmyer <flux AT sourcemage.org>
+ * CONFIGURE: refactor target specifications
+ * DETAILS: declare cmake as the build system, update license, update
+ description
+ * DEPENDS: correct dependencies, convert to buildsys_depends
functions,
+ specify gcc sub-dependency only when using gcc to build
+ * PREPARE: enable choosing which host compiler and linker to build
with
+
+2025-01-15 Justin Boffemmyer <flux AT sourcemage.org>
+ * PRE_SUB_DEPENDS,SUB_DEPENDS: add more supported features so they can
+ be depended on if needed
+
+2025-01-15 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: fixed typo in SOURCE3_URL[0] (cmake modules)
+
+2025-01-14 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 19.1.7
+
+2025-01-05 Justin Boffemmyer <flux AT sourcemage.org>
+ * BUILD,PRE_BUILD: simplify with CMake vars instead of symlinks
+ * PREPARE: clean up whitespace
+
+2025-01-05 Justin Boffemmyer <flux AT sourcemage.org>
+ * PRE_SUB_DEPENDS,SUB_DEPENDS: remove unneeded option
+
+2025-01-05 Justin Boffemmyer <flux AT sourcemage.org>
+ * BUILD: fix placement of &&
+
+2025-01-05 Justin Boffemmyer <flux AT sourcemage.org>
+ * BUILD: optimize build by removing more benchmarks and tests
+ * patches-lld/0001-Include-libunwind-from-source-directory.patch:
+ removed, no longer needed
+
+2025-01-04 Justin Boffemmyer <flux AT sourcemage.org>
+ * BUILD,DETAILS,PREPARE,PRE_BUILD: fix, restructure, add some missing
+ supported features
+ * CONFIGURE: add "all" target option
+ * DEPENDS: change options from 1,0 to ON,OFF
+ * FINAL: remove, perform in INSTALL
+ * INSTALL: set ownership and permissions
+ * PRE_SUB_DEPENDS: account for "all" targets
+ * SUB_DEPENDS: fix quoting and phrasing
+
+2024-12-18 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 19.1.6
+
+2024-12-03 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 19.1.5
+
+2024-11-12 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 19.1.4
+
+2024-10-30 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 19.1.3
+
+2024-10-15 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 19.1.2
+
+2024-10-01 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 19.1.1
+
+2024-09-17 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 19.1.0
+
+2024-06-06 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 18.1.7
+
+2024-05-19 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 18.1.6
+
+2024-05-02 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 18.1.5
+
+2024-04-18 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 18.1.4
+
+2024-04-04 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 18.1.3
+
+2024-03-20 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 18.1.2
+
+2024-03-09 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 18.1.1
+
+2024-03-07 Treeve Jelbert <treeve AT sourcemage.org>
+ * libcxxabi-dl.patch: deleted, obsolete
+
+2024-03-06 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 18.1.0
+
+2023-11-28 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 17.0.6
+
+2023-11-14 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 17.0.5
+
+2023-11-11 Thomas Orgis <sobukus AT sourcemage.org>
+ * patches-lldb/lldb-musl.patch: gone, apparently outdated/mismatched
+
+2023-11-10 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS: simplified SOURCE_DIRECTORY to match llvm15
+
+2023-10-31 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 17.0.4
+
+2023-10-17 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 17.0.3
+
+2023-10-03 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 17.0.2
+
+2023-09-19 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 17.0.1
+
+2023-88-24 Pavel Vinogradov <public AT sourcemage.org>
+ * DEPENDS: removed hardcoded path in libffi flag, no longer needed
+
+2023-06-14 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 16.0.6
+
+2023-06-02 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 16.0.5
+
+2023-05-17 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 16.0.4
+
+2023-05-03 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 16.0.3
+
+2023-04-19 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 16.0.2
+
+2023-04-15 Treeve Jelbert <treeve AT sourcemage.org>
+ * PRE_SUB_DEPENDS: fix sytntax for RTTI
+ * BUILD: tweak RTTI flags, otherwise breaks mesa build
+
+2023-04-05 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 16.0.1
+
+2023-03-19 Florian Franzmann <bwlf AT bandrate.org>
+ * patches-libcxx/libcxx-musl.patch: remove broken patch
+
+2023-03-18 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 16.0.0
+ * BUILD: disabled tests
+ * PRE_BUILD: removed patching from patches-llvm, fixed cmake modules
+ extraction and location
+ * patches-llvm/llvm-001-musl.patch: dropped, no longer applicable
+
+2023-01-12 Pavel Vinpgradov <public AT sourcemage.org>
+ * DETAILS: version 15.0.7
+
+2022-12-13 Ismael Luceno <ismael AT sourcemage.org>
+ * DEPENDS: added missing dependency on mako
+
+2022-11-29 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 15.0.6
+
+2022-11-16 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: version 15.0.5
+
+2022-11-02 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 15.0.4
+
+2022-10-23 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: staged installation isn't possible after all
+
+2022-10-18 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 15.0.3
+
+2022-10-04 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 15.0.2
+
+2022-09-24 Florian Franzmann <bwlf AT bandrate.org>
+ * INSTALL, FINAL: fix typos
+
+2022-09-20 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 15.0.1, reenabled staged installation
+ * INSTALL, FINAL: moved the ownership and permissions setting code to
FINAL,
+ refactored installation of analyzer files and python3 bindings
+
+2022-09-06 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS, PRE_BUILD: version 15.0.0, added cmake modules archive for
all
+ variants/options
+
+2022-08-03 Ismael Luceno <ismael AT sourcemage.org>
+ * PRE_BUILD: removed musl-related edit; not needed anymore
+
+2022-07-27 Vlad Glagolev <stealth AT sourcemage.org>
+ * DEPENDS: switch to PKG-CONFIG provider (automated)
+
+2022-06-25 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: version 14.0.6
+
+2022-06-11 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: version 14.0.5
+
+2022-05-25 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 14.0.4
+
+2022-05-25 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD, patches-libcxx/libcxx-musl.patch,
+ patches-libcxx/libcxxabi-dl.patch: fix unpack locations
+
+2022-04-29 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 14.0.3
+
+2022-04-27 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 14.0.2
+
+2022-04-13 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 14.0.1
+
+2022-03-23 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 14.0.0
+ * BUILD: disabled benchmarks, removed debug output
+
+2022-03-05 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS: added STAGED_INSTALL=off due to chmod errors
+
+2022-02-03 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 13.0.1
+
+2021-10-05 Ismael Luceno <ismael AT iodev.co.uk>
+ * patches-clang/compiler-rt-size_t.patch: removed, no longer needed
+
+2021-10-01 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 13.0.0
+ *
patches-llvm/0001--SROA--Avoid-splitting-loads-stores-with-irregular-type.patch:
+ deleted, no longer needed
+
+2021-09-09 Ismael Luceno <ismael AT sourcemage.org>
+ * PRE_SUB_DEPENDS, SUB_DEPENDS: added generic target subdeps
+ * CONFIGURE: added AVR, Lanai, RISCV & WebAssembly arch targets
+ *
patches-llvm/0001--SROA--Avoid-splitting-loads-stores-with-irregular-type.patch:
+ added patch required by Zig
+ * DETAILS: PATCHLEVEL++
+
+2021-08-30 Ismael Luceno <ismael AT sourcemage.org>
+ * BUILD: removed deprecated CXX1Y and CXX1Z options
+ * DEPENDS: added libexecinfo for musl
+ added dep on system six
+ * PRE_BUILD: fixed typo
+ * patches-clang/clang-001-fix-unwind-chain-inclusion.patch,
+ patches-clang/compiler-rt-size_t.patch,
+ patches-libcxx/libcxx-musl.patch, patches-libcxx/libcxxabi-dl.patch,
+ patches-lldb/lldb-musl.patch, patches-llvm/llvm-001-musl.patch,
+ BUILD, PRE_BUILD: fixed build against musl
+
+2021-07-10 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD: only apply lld-related patch when lld is actually built
+ * INSTALL: do not try to install nonexistent manpage
+
+2021-07-09 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: version 12.0.1
+
+2021-05-01 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD, DETAILS,
0001-Include-libunwind-from-source-directory.patch:
+ Unpack missing sources for building lld
+
+2021-04-18 Ismael Luceno <ismael AT iodev.co.uk>
+ * PRE_BUILD: edited patch to clang-tools-extra path
+
+2021-04-18 Remko van der Vossen <wich AT sourcemage.org>
+ * PRE_BUILD: make path patch actually work
+
+2021-04-17 Ismael Luceno <ismael AT iodev.co.uk>
+ * PRE_BUILD: patched path to clang-tools-extra
+
+2021-04-15 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 12.0.0
+
+2021-02-19 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: version 11.1.0
+
+2021-01-06 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 11.0.1
+
+2020-10-12 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 11.0.0
+ * 0001-fix-compile-error.patch: deleted
+ * PRE_BUILD: adjust
+
+2020-08-12 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS: PATCHLEVEL++
+ * PRE_BUILD, BUILD: Replaced clang patch by -DPIC removal from
CXXFLAGS
+ * 0001-fix-compile-error-clang.patch: removed, no longer needed
+
+2020-07-22 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 10.0.1
+
+2020-03-26 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS, PRE_BUILD: version 10.0.0
+ * 0001-fix-compile-error-clang.patch, 0001-fix-compile-error.patch:
+ regenerate patches
+
+2020-01-11 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS, PRE_BUILD: version 9.0.1
+
+2019-11-29 Florian Franzmann <bwlf AT bandrate.org>
+ * INSTALL: install symlink to run-clang-tidy.py
+
+2019-09-20 Pavel Vinogradov <public AT sourcemage.org>
+ * PRE_BUILD, 0001-fix-compile-error*.patch: reenabled and updated
+
+2019-09-19 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 9.0.0
+ fix url
+ * PRE_BUILD: disable pathces, they don't applu
+
+2019-08-22 Ismael Luceno <ismael AT sourcemage.org>
+ * BUILD: Fixed default target
+
+2019-08-21 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS: removed broken llvm.org URLs
+ * DEPENDS: Added optional dependency on z3
+ * PRE_BUILD: Removed directory dancing
+ Disabled clang sanitizers on musl
+
+2019-07-20 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 8.0.1, added GitHub mirror
+
+2019-05-25 Ismael Luceno <ismael AT sourcemage.org>
+ * DEPENDS: Fix build against musl
+
+2019-05-23 Ismael Luceno <ismael AT sourcemage.org>
+ * DEPENDS, PRE_BUILD: Remove python, builds only with python3 now
+
+2019-05-05 Pavel Vinogradov <public AT sourcemage.org>
+ * 0001-fix-compile-error{,-clang}.patch: fixed building without clang
+
+2019-04-12 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: fix lld's source url
+
+2019-04-01 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS, PREPARE, PRE_BUILD, PRE_SUB_DEPENDS, SUB_DEPENDS: add
support for llvm's linker
+
+2019-03-21 Pavel Vinogradov <public AT sourcemage.org>
+ * PRE_BUILD, 0001-fix-compile-error.patch,
+ 0001-fix-compile-error-clang.patch: reenabled and updated,
+ otherwise compilation fails for PIC code generation
+
+2019-03-20 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 8.0.0
+ * DEPENDS: improve libffi flags
+ * PRE_BUILD: disbale at present, build without patching
+
+2018-12-15 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 7.0.1
+
+2018-09-20 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 7.0.0
+ * 0001-fix-compile-error.patch, 0001-fix-compile-error-clang.patch:
+ updated the patches
+
+2018-06-26 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 6.0.1
+
+2018-03-22 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 6.0.0
+ * 0001-fix-compile-error.patch, 0001-fix-compile-error-clang.patch:
+ updated the patches
+ * 0001-fix-scan-view-s-module-search-path.patch: removed
+
+2018-03-06 Eric Sandall <sandalle AT sourcemage.org>
+ * 0001-fix-compile-error.patch: Remove CommonArgs.cpp and
cs1as_main.cpp
+ patch as these files don't exist in llvm source.
+ * 0001-fix-compile-error-clang.patch: Add CommonArgs.cpp and
cs1as_main.cpp
+ patch as these are for Clang source code.
+ * PRE_BUILD: Apply 0001-fix-compile-error-clang.patch if Clang is
enabled.
+
+2017-12-21 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD, 0001-fix-compile-error.patch: fix compile error
+
+2017-12-20 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 5.0.1
+
+2017-11-03 Treeve Jelbert <treeve AT sourcemage.org>
+ * DEPENDS: libedit also drags in ncurses
+ * BUILD: disable various options
+ also use options recommended by mesa project
+
+2017-10-23 Treeve Jelbert <treeve AT sourcemage.org>
+ * PRE_SUB_DEPENDS: fix typos
+
+2017-10-20 Treeve Jelbert <treeve AT sourcemage.org>
+ * SUB_DEPENDS PRE_SUB_DEPENDS: add AMD option
+
+2017-09-11 Vlad Glagolev <stealth AT sourcemage.org>
+ * DEPENDS: swig is required only for LLDB
+
+2017-09-07 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 5.0.0
+
+2017-06-27 Treeve Jelbert <treeve AT sourcemage.org>
+ * CONFIGURE DEPENDS INSTALL: cmake+ninja support
+
+2017-06-24 Florian Franzmann <bwlf AT bandrate.org>
+ * SUB_DEPENDS, PRE_SUB_DEPENDS, PRE_BUILD, PREPARE, DETAILS:
+ add optional support for the polly loop and data-locality optimizer
+
+2017-06-23 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 4.0.1
+
+2017-04-15 Eric Sandall <sandalle AT sourcemage.org>
+ * BUILD: Truly disable PIC with disable_pic(force).
+
+2017-03-13 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 4.0.0
+
+2017-01-20 Florian Franzmann <bwlf AT bandrate.org>
+ * SUB_DEPENDS, PRE_SUB_DEPENDS: add subdependencies for clang and lldb
+
+2016-12-22 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: version 3.9.1
+
+2016-12-08 Ismael Luceno <ismael AT sourcemage.org>
+ * PRE_BUILD, lldb-3.6.2-fix-shared-lib-build.patch: Patch removed,
+ applied by upstream
+
+2016-10-06 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS: PATCH_LEVEL -> PATCHLEVEL
+
+2016-10-05 Florian Franzmann <bwlf AT bandrate.org>
+ * INSTALL: install python bindings for libclang
+ * DETAILS: PATCH_LEVEL++
+
+2016-09-29 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD, DETAILS: install clang extra tools alongside clang, bump
+ PATCH_LEVEL
+
+2016-09.1 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.9.0
+ * CPONFIGURE: remove CppBackend
+
+2016-07-12 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.8,1
+
+2016-03-12 Florian Franzmann <bwlf AT bandrate.org>
+ * INSTALL: fix installation of clang static analyzer
+
+2016-03-09 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.8,0
+ * CONFIGURE: remove crud
+ * PRE_BUILD: remove scan-view patch
+
+2016-01-06 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.7.1
+
+2015-09-02 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.7.0
+ * CONFIGURE: support AMDGPU, remove R600
+ * BUILD: adjust
+
+2015-08-18 Thomas Orgis <sobukus AT sourcemage.org>
+ * PRE_BUILD, lldb-3.6.2-fix-shared-lib-build.patch: Again fixup,
+ adapted from https://llvm.org/bugs/show_bug.cgi?id=21670 .
+ Is this a joke? Anyone laughing?
+ * lldb-shared-libs.patch: gone, got a new one now
+
+2015-07-17 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.6.2
+
+2015-05-28 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.6.1
+
+2015-05-05 Pavel Vinogradov <public AT sourcemage.org>
+ * PRE_BUILD, lldb-shared-libs.patch: added a fix for building lldb
+ with shared llvm and system libraries (found here:
+ https://llvm.org/bugs/show_bug.cgi?id=21670#c8)
+
+2015-04-06 Florian Franzmann <bwlf AT bandrate.org>
+ * PRE_BUILD: use absolute path when sediting CMakeLists.txt
+
+2015-03-19 Thomas Orgis <sobukus AT sourcemage.org>
+ * PRE_BUILD: It's lldb-$VERSION.src, like all else.
+ Build of lldb still breaks here, but at least not in PRE_BUILD.
+
+2015-02-27 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 3.6.0
+ * llvm.gpg: added new key, 345AD05D, Hans Wennborg <hans AT chromium.org>
+
+2015-01-12 Ismael Luceno <ismael AT sourcemage.org>
+ * BUILD: Remove "PIC" from CXXFLAGS, it is used as an identifier
+ * PRE_BUILD: Merged edits to scan-build
+
+2015-01-11 Treeve Jelbert <treeve AT sourcemage.org>
+ * BUILD, CONFIGURE, PRE_BUILD: allow user to specify backends to build
+
+2014-12-16 Treeve Jelbert <treeve AT sourcemage.org>
+ * BUILD, CONFIGURE: ensure that R600 is supported
+
+2014-10-24 Pol Vinogradov <vin.public AT gmail.com>
+ * DETAILS: updated to 3.5.0, .gz -> .xz, removed COMPILERRT_VERSION
and LLDB_VERSION
+ * PRE_BUILD: removed PIC related fix, applied *VERSION changes
+
+2014-08-24 Thomas Orgis <sobukus AT sourcemage.org>
+ * DETAILS: disable TMPFS, as build needs 5 GiB on disk, plus actual
RAM for
+ compiling
+ * DEPENDS: swig
+ * BUILD: remove restriction of targets to X86
+
+2014-06-20 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.4.2
+ * PRE_BUILD, gcc-4.9.patch: not needed
+
+2014-06-01 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS, PRE_BUILD: add compiler-rt
+ * DETAILS: use signed tarball for lldb
+
+2014-05-29 Treeve Jelbert <treeve AT sourcemage.org>
+ * DEPENDS: fix syntax error
+
+2014-05-21 Florian Franzmann <bwlf AT bandrate.org>
+ * DEPENDS, DETAILS, INSTALL, PREPARE, PRE_BUILD: add suppport
+ for the lldb debugger
+
+2014-05-10 Florian Franzmann <bwlf AT bandrate.org>
+ * INSTALL: install static analyzer to /usr/bin
+ * PRE_BUILD: fix search paths in scan-build and scan-view
+
+2014-05-09 Florian Franzmann <bwlf AT bandrate.org>
+ * DETAILS, PRE_BUILD: version 3.4.1
+ * PRE_BUILD, gcc-4.9.patch: fix error when using gcc 4.9's stdlib
+
+2014-03-26 Pol Vinogradov <vin.public AT gmail.com>
+ * DETAILS: SOURCE3 was updated to upstream
+ * PRE_BUILD: corrected clang directory name change,
+ removed patching of Tools.cpp, sed was used instead
+ * Tools.cpp.patch: removed
+
+2014-01-06 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.4
+ * llvm.gpg: add key BB5A0569: "Bill Wendling <void AT llvm.org>"
+
+2013-06-20 Pol Vinogradov <vin.public AT gmail.com>
+ * PRE_BUILD, Tools.cpp.patch: corrected clang directory, readded
+ slightly modified Tools.cpp patch
+
+2013-06-20 Treeve Jelbert <treeve AT sourcemage.org>
+ * DEPENDS: add PYTHON, zlib
+ * PRE_BUILD: fix build with python3
+
+2013-06-18 Pol Vinogradov <vin.public AT gmail.com>
+ * DETAILS, PRE_BUILD: adapted clang build with current version
+ * Tools.cpp.patch: removed
+
+2013-06-18 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.3
+ * llvm.gpg: added E95C63DC Bill Wendling <wendling AT apple.com>
+
+2013-04-27 Treeve Jelbert <treeve AT sourcemage.org>
+ * PRE_BUILD: move clang patch
+
+2013-02-24 Florian Franzmann <bwlf AT bandrate.org>
+ * gcc-4.7.patch: remove unused patch
+ * Tools.cpp.patch, PRE_BUILD: fix compile error if clang is enabled
+
+2012-12-24 Pol Vinogradov <vin.public AT gmail.com>
+ * DETAILS: version 3.2
+ * E95C63DC.gpg: removed
+ * llvm.gpg: added new key: 7CB2EFFB,
+ Pawel Wodnicki (elektrknight) <root AT 32bitmicro.com>
+
+2012-05-30 Pol Vinogradov <vin.public AT gmail.com>
+ * DETAILS: version 3.1, changed sources' names for both
+ llvm and clang
+
+2012-02-16 Ladislav Hagara <hgr AT vabo.cz>
+ * DETAILS: clang is also signed by E95C63DC
+ * 0DD88BA2.gpg: removed
+ * PRE_BUILD, INSTALL: updated
+
+2012-01-15 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 3.0
+ now uses .tar.gz
+ different gpg
+ * E95C63DC.gpg: added
+ key E95C63DC: public key "Bill Wendling <wendling AT apple.com>"
+ * DEPENDS: add cmake, libffi, ocaml, pkgconfig
+ * BUILD: use cmake_build
+ also build shared libraries;
+ needed by some other spells, such as opengtl
+ only build X86 targets
+ * CONFIGURE: remove ref to jit
+ * PRE_BUILD: small fix to find libffi
+
+2011-09-26 Justin Boffemmyer <flux AT sourcemage.org>
+ * DETAILS, PRE_BUILD: converted clang sources to also use upstream
+ signature checking, and corrected source numbering (clang source
+ conflicted with llvm sig source)
+ * CONFIGURE: add option for installing the clang static analyzer
+ scripts
+ * DEPENDS: if the clang static analyzer is enabled, then the runtime
+ environment will minimally need perl, and python is optional
+ * INSTALL: new file, added to handle installing the clang static
+ analyzer scripts if enabled in CONFIGURE, as there is currently no
+ upstream install for the files
+
+2011-09-26 Bor Kraljič <pyrobor AT ver.si>
+ * DETAILS: converted to upstream signature checking
+ * 0DD88BA2.gpg: added gpg keyring
+
+2011-07-30 Florian Franzmann <bwlf AT bandrate.org>
+ * DEPENDS: changed dependency on g++ to dependency on gcc with
+ sub-depends on CXX (scripted)
+
+2011-05-12 Peng Chang (Charles) <chp AT sourcemage.org>
+ * DETAILS: updated spell to 2.9
+
+2010-10-07 Finn Haedicke <finn AT sourcemage.org>
+ * DETAILS: updated spell to 2.8
+
+2010-06-23 Finn Haedicke <finn AT sourcemage.org>
+ * CONFIGURE,PREPARE: query for clang in PREPARE
+ * DETAILS,PRE_BUILD: only download and unpack clang if enabled
+
+2010-06-20 Finn Haedicke <finn AT sourcemage.org>
+ * CONFIGURE,DETAILS,PRE_BUILD : added support for clang
+ * DEPENDS: removed query for gcc backend (unused)
+
+2010-06-10 Peng Chang (Charles) <chp AT sourcemage.org>
+ * DETAILS: updated spell to 2.7
+
+2009-10-31 Bor Kraljič <pyrobor AT ver.si>
+ * DETAILS: updated spell to 2.6
+
+2009-03-29 Ladislav Hagara <hgr AT vabo.cz>
+ * DETAILS: 2.5
+
+2008-11-15 Justin Boffemmyer <flux AT sourcemage.org>
+ * BUILD, CONFIGURE, DEPENDS, DETAILS, INSTALL: spell created
+
diff --git a/devel/llvm20/INSTALL b/devel/llvm20/INSTALL
new file mode 100755
index 0000000..27ba77d
--- /dev/null
+++ b/devel/llvm20/INSTALL
@@ -0,0 +1 @@
+true
diff --git a/devel/llvm20/PRE_BUILD b/devel/llvm20/PRE_BUILD
new file mode 100755
index 0000000..27ba77d
--- /dev/null
+++ b/devel/llvm20/PRE_BUILD
@@ -0,0 +1 @@
+true
diff --git a/devel/llvm20/UP_TRIGGERS b/devel/llvm20/UP_TRIGGERS
new file mode 100755
index 0000000..64408dc
--- /dev/null
+++ b/devel/llvm20/UP_TRIGGERS
@@ -0,0 +1,2 @@
+up_trigger llvm20 dispel_self &&
+up_trigger llvm:20 cast_self
diff --git a/devel/sparse/DEPENDS b/devel/sparse/DEPENDS
index b90c7fc..4d08059 100755
--- a/devel/sparse/DEPENDS
+++ b/devel/sparse/DEPENDS
@@ -4,7 +4,7 @@ optional_depends gtk+3 \
optional_depends libxml2 \
'' HAVE_LIBXML= \
'for c2xml' &&
-optional_depends llvm15 \
+optional_depends llvm:15 \
'' HAVE_LLVM= \
'for sparse-llvm' &&
optional_depends sqlite \
diff --git a/devel/sparse/HISTORY b/devel/sparse/HISTORY
index 46291d1..4c2da9b 100644
--- a/devel/sparse/HISTORY
+++ b/devel/sparse/HISTORY
@@ -1,3 +1,6 @@
+2026-08-15 Ismael Luceno <ismael AT sourcemage.org>
+ * DEPENDS: llvm15 is llvm:15 now
+
2024-10-06 Ismael Luceno <ismael AT sourcemage.org>
* CONFLICTS: added smatch
diff --git a/gnu/gcc-10/BUILD b/gnu/gcc-10/BUILD
index cba7a1a..27ba77d 100755
--- a/gnu/gcc-10/BUILD
+++ b/gnu/gcc-10/BUILD
@@ -1,143 +1 @@
-# 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/} &&
-
-if list_find "$GCC_10_COMPILER" "fortran"; then
- OPTS+=" --enable-libquadmath"
-else
- OPTS+=" --disable-libquadmath"
-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 &&
-
-# store CFLAGS and LDFLAGS persistently so they can be read by the other
-# split spells later, see bug #10087
-GCC_10_CFLAGS="$CFLAGS" &&
-GCC_10_LDFLAGS="$LDFLAGS" &&
-persistent_add GCC_10_CFLAGS GCC_10_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_10_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/bin/gcc" &&
-
- export
INCLUDE_DIR="$SOURCE_DIRECTORY/$ADA_PATH/lib/gcc/$HOST/${VERSION13}/include"
&&
- export LIB_DIR="$SOURCE_DIRECTORY/$ADA_PATH/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/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_10_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="--disable-bootstrap $OPTS" &&
-OPTS="--enable-gnu-unique-object $OPTS" &&
-OPTS="--enable-linker-build-id $OPTS" &&
-if [[ "$GCC_10_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" &&
-
-case "$HOST" in
-*-musl)
- OPTS="--disable-multilib $OPTS" &&
- OPTS="--disable-libssp $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
- export CC=/opt/gcc49/bin/gcc CXX=/opt/gcc49/bin/g++ CPP=/opt/gcc49/bin/cpp
-fi &&
-make CFLAGS="$CFLAGS" BOOT_CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
+true
diff --git a/gnu/gcc-10/CONFIGURE b/gnu/gcc-10/CONFIGURE
deleted file mode 100755
index 9c13afd..0000000
--- a/gnu/gcc-10/CONFIGURE
+++ /dev/null
@@ -1,4 +0,0 @@
-. $SECTION_DIRECTORY/FUNCTIONS &&
-default_configure_gcc &&
-
-config_query GCC_10_CLOOG "Use cloog loop vectorizer?" y
diff --git a/gnu/gcc-10/DEPENDS b/gnu/gcc-10/DEPENDS
deleted file mode 100755
index 6a52701..0000000
--- a/gnu/gcc-10/DEPENDS
+++ /dev/null
@@ -1,45 +0,0 @@
-. "$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" &&
-
-
-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-10/DETAILS b/gnu/gcc-10/DETAILS
index f2efa9d..9f13876 100755
--- a/gnu/gcc-10/DETAILS
+++ b/gnu/gcc-10/DETAILS
@@ -1,59 +1,16 @@
SPELL=gcc-10
VERSION=10.5.0
- ISL_VERSION=0.20
- 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_10_CLOOG" == "y" ]]; then
- SOURCE3=isl-${ISL_VERSION}.tar.xz
- SOURCE3_URL[0]=http://isl.gforge.inria.fr/$SOURCE3
-
SOURCE3_HASH=sha512:394bccd22d8e63cb052a60ad8b1a75f4ec43916a9482c66f5167b534b538161179c47919815983b7fbc20dfaa1a590e88b251850aa092bbffc2891635bf30dc4
-fi
-
-if list_find "$GCC_10_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=8.2.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
+ PATCHLEVEL=1
+ ARCHIVE=off
+ GATHER_DOCS=off
LICENSE[0]=GPL
- TMPFS=off
WEB_SITE=https://gcc.gnu.org/
KEYWORDS="compiler"
ENTERED=20040420
- SHORT="the GNU Compiler Collection, version 10.x"
- DOCS="$DOCS INSTALL"
+ SHORT="deprecated, superseded by gcc:10"
cat << EOF
-The entire GNU Compiler Collection.
+Deprecated in favour of slot 10 of the gcc spell, which builds the same
+compiler into the same /opt/gcc-10.
+
+Casting this dispels it and casts gcc:10 in its place.
EOF
diff --git a/gnu/gcc-10/FINAL b/gnu/gcc-10/FINAL
deleted file mode 100755
index bff4320..0000000
--- a/gnu/gcc-10/FINAL
+++ /dev/null
@@ -1,2 +0,0 @@
-default_final &&
-rm_source_dir $SOURCE_DIRECTORY.bld
diff --git a/gnu/gcc-10/HISTORY b/gnu/gcc-10/HISTORY
index 01f8955..71a19e5 100644
--- a/gnu/gcc-10/HISTORY
+++ b/gnu/gcc-10/HISTORY
@@ -1,3 +1,10 @@
+2026-08-15 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS, PRE_BUILD, BUILD, INSTALL, UP_TRIGGERS: deprecated in
+ favour of gcc:10, which is this same compiler as a slot of the
+ gcc spell; casting this dispels it and casts gcc:10
+ * REPAIR^none^EXPORTS: added, so that gcc:10 can read the compiler
+ selection out of an old tablet
+
2023-07-11 Ismael Luceno <ismael AT sourcemage.org>
* DETAILS: updated spell to 10.5.0
* CONFIGURE, BUILD: converted to non-bootstrap build
diff --git a/gnu/gcc-10/INSTALL b/gnu/gcc-10/INSTALL
index f20b882..27ba77d 100755
--- a/gnu/gcc-10/INSTALL
+++ b/gnu/gcc-10/INSTALL
@@ -1,10 +1 @@
-#
-# 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
+true
diff --git a/gnu/gcc-10/PREPARE b/gnu/gcc-10/PREPARE
deleted file mode 100755
index 43c79c2..0000000
--- a/gnu/gcc-10/PREPARE
+++ /dev/null
@@ -1,23 +0,0 @@
-message "Note: C and C++ compilers are always built"
-. $GRIMOIRE/config_query_multi.function
-list_remove GCC_10_COMPILER c &&
-list_remove GCC_10_COMPILER c++ &&
-config_query_multi GCC_10_COMPILER "Select the additional compilers you
want" \
- none \
- ada \
- brig \
- d \
- fortran \
- objc \
- obj-c++ \
- all &&
-list_remove GCC_10_COMPILER none &&
-if list_find "$GCC_10_COMPILER" "all" ; then
- list_remove GCC_10_COMPILER all &&
- list_add GCC_10_COMPILER ada &&
- list_add GCC_10_COMPILER brig &&
- list_add GCC_10_COMPILER d &&
- list_add GCC_10_COMPILER fortran &&
- list_add GCC_10_COMPILER objc &&
- list_add GCC_10_COMPILER obj-c++
-fi
diff --git a/gnu/gcc-10/PRE_BUILD b/gnu/gcc-10/PRE_BUILD
index 33ea740..27ba77d 100755
--- a/gnu/gcc-10/PRE_BUILD
+++ b/gnu/gcc-10/PRE_BUILD
@@ -1,47 +1 @@
-default_pre_build &&
-
-if [[ "$GCC_10_CLOOG" == "y" ]]; then
- cd "$SOURCE_DIRECTORY" &&
- unpack_file 3 &&
- mv isl-$ISL_VERSION isl
-fi &&
-
-if list_find "$GCC_10_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 &&
-
-mk_source_dir "$SOURCE_DIRECTORY.bld" &&
-cd "$SOURCE_DIRECTORY" &&
-apply_patch_dir patches &&
-
-# Drop .la files like everyone else.
-find . -name Makefile.in \
-| xargs sed -i
's,^\(LIBTOOL[[:space:]]*=[[:space:]]*\),\1'"$GRIMOIRE"'/libtool-nola ,' &&
-
-sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in &&
-sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in &&
-
-case "$HOST" in
-(*-musl)
- patch -fp1 -i "$SPELL_DIRECTORY/ssp_nonshared.diff"
- ;;
-esac
+true
diff --git a/gnu/gcc-10/PRE_SUB_DEPENDS b/gnu/gcc-10/PRE_SUB_DEPENDS
deleted file mode 100755
index ee3c574..0000000
--- a/gnu/gcc-10/PRE_SUB_DEPENDS
+++ /dev/null
@@ -1,11 +0,0 @@
-case $THIS_SUB_DEPENDS in
- ADA) list_find "$GCC_10_COMPILER" ada ;;
- BRIG) list_find "$GCC_10_COMPILER" brig ;;
- D) list_find "$GCC_10_COMPILER" d ;;
- CXX) true ;;
- FORTRAN) list_find "$GCC_10_COMPILER" fortran ;;
- OBJC) list_find "$GCC_10_COMPILER" objc ;;
- OBJCXX) list_find "$GCC_10_COMPILER" objc-c++ ;;
- *) message "${PROBLEM_COLOR}bogus sub_depends: $SPELL
$THIS_SUB_DEPENDS${DEFAULT_COLOR}" ;
- return 1;;
-esac
diff --git a/gnu/gcc-10/REPAIR^none^EXPORTS b/gnu/gcc-10/REPAIR^none^EXPORTS
new file mode 100755
index 0000000..732f4db
--- /dev/null
+++ b/gnu/gcc-10/REPAIR^none^EXPORTS
@@ -0,0 +1,3 @@
+GCC_10_CFLAGS
+GCC_10_COMPILER
+GCC_10_LDFLAGS
diff --git a/gnu/gcc-10/SUB_DEPENDS b/gnu/gcc-10/SUB_DEPENDS
deleted file mode 100755
index 195dd0c..0000000
--- a/gnu/gcc-10/SUB_DEPENDS
+++ /dev/null
@@ -1,12 +0,0 @@
-persistent_add GCC_10_COMPILER &&
-case $THIS_SUB_DEPENDS in
- ADA) list_add GCC_10_COMPILER ada ;;
- BRIG) list_add GCC_10_COMPILER brig ;;
- D) list_add GCC_10_COMPILER d ;;
- CXX) true ;;
- FORTRAN) list_add GCC_10_COMPILER fortran ;;
- OBJC) list_add GCC_10_COMPILER objc ;;
- OBJCXX) list_add GCC_10_COMPILER objc-c++ ;;
- *) message "${PROBLEM_COLOR}bogus sub_depends: $SPELL
$THIS_SUB_DEPENDS${DEFAULT_COLOR}" ;
- return 1;;
-esac
diff --git a/gnu/gcc-10/UP_TRIGGERS b/gnu/gcc-10/UP_TRIGGERS
new file mode 100755
index 0000000..141f1bd
--- /dev/null
+++ b/gnu/gcc-10/UP_TRIGGERS
@@ -0,0 +1,2 @@
+up_trigger gcc-10 dispel_self &&
+up_trigger gcc:10 cast_self
diff --git
a/gnu/gcc-10/patches/0001-Allow-transformations-on-info-file-names.patch
b/gnu/gcc-10/patches/0001-Allow-transformations-on-info-file-names.patch
deleted file mode 100644
index 46dc4e5..0000000
--- a/gnu/gcc-10/patches/0001-Allow-transformations-on-info-file-names.patch
+++ /dev/null
@@ -1,683 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Matthias Klose <doko AT debian.org>
-Date: Tue, 17 Feb 2004 00:00:00 +0000
-Subject: Allow transformations on info file names
-
-Apply program_transform_name to info files too, to enable concurrent
-installation with other GCC versions.
-
-[ismael AT sourcemage.org: Edited patch description.
- Fixed CLEANFILES and MAINTAINERCLEANFILES.
- Fixed libgomp info file name]
-Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
-
-Origin: Debian
-Upstream-Status: Unknown
----
- gcc/Makefile.in | 93
+++++++++++++++++++++++++++++++++++--------
- gcc/ada/gnat-style.texi | 2
- gcc/ada/gnat_rm.texi | 2
- gcc/doc/cpp.texi | 2
- gcc/doc/cppinternals.texi | 2
- gcc/doc/extend.texi | 2
- gcc/doc/gcc.texi | 2
- gcc/doc/gccint.texi | 4 -
- gcc/doc/install.texi | 2
- gcc/doc/invoke.texi | 8 +--
- gcc/doc/libgcc.texi | 2
- gcc/doc/standards.texi | 2
- gcc/fortran/Make-lang.in | 11 ++---
- gcc/fortran/gfortran.texi | 2
- gcc/go/Make-lang.in | 13 +++---
- gcc/go/gccgo.texi | 4 -
- libgomp/Makefile.am | 10 ++--
- libgomp/Makefile.in | 14 +++---
- libgomp/libgomp.texi | 2
- libitm/Makefile.am | 11 +++--
- libitm/Makefile.in | 11 +++--
- libitm/libitm.texi | 2
- libquadmath/Makefile.am | 12 +++--
- libquadmath/Makefile.in | 15 +++---
- libquadmath/libquadmath.texi | 2
- 25 files changed, 153 insertions(+), 79 deletions(-)
-
---- a/gcc/fortran/gfortran.texi
-+++ b/gcc/fortran/gfortran.texi
-@@ -101,7 +101,7 @@ Texts being (a) (see below), and with th
- @ifinfo
- @dircategory Software development
- @direntry
--* gfortran: (gfortran). The GNU Fortran Compiler.
-+* @value{fngfortran}: (@value{fngfortran}). The GNU
Fortran Compiler.
- @end direntry
- This file documents the use and the internals of
- the GNU Fortran compiler, (@command{gfortran}).
---- a/gcc/fortran/Make-lang.in
-+++ b/gcc/fortran/Make-lang.in
-@@ -114,7 +114,8 @@ fortran.tags: force
- cd $(srcdir)/fortran; etags -o TAGS.sub *.c *.h; \
- etags --include TAGS.sub --include ../TAGS.sub
-
--fortran.info: doc/gfortran.info doc/gfc-internals.info
-+INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)')
-+fortran.info: doc/$(INFO_FORTRAN_NAME).info
- fortran.dvi: doc/gfortran.dvi doc/gfc-internals.dvi
-
- F95_HTMLFILES = $(build_htmldir)/gfortran
-@@ -184,10 +185,10 @@ GFORTRAN_TEXI = \
- $(srcdir)/doc/include/gcc-common.texi \
- gcc-vers.texi
-
--doc/gfortran.info: $(GFORTRAN_TEXI)
-+doc/$(INFO_FORTRAN_NAME).info: $(GFORTRAN_TEXI)
- if [ x$(BUILD_INFO) = xinfo ]; then \
- rm -f doc/gfortran.info-*; \
-- $(MAKEINFO) -I $(srcdir)/doc/include -I $(srcdir)/fortran \
-+ $(MAKEINFO) $(MAKEINFODEFS) -I $(srcdir)/doc/include -I
$(srcdir)/fortran \
- -o $@ $<; \
- else true; fi
-
-@@ -252,7 +253,7 @@ fortran.install-common: install-finclude
-
- fortran.install-plugin:
-
--fortran.install-info: $(DESTDIR)$(infodir)/gfortran.info
-+fortran.install-info: $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info
-
- fortran.install-man: $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext)
-
-@@ -270,7 +271,7 @@ fortran.uninstall:
- rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext); \
- rm -rf $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext); \
- rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_TARGET_INSTALL_NAME)$(exeext); \
-- rm -rf $(DESTDIR)$(infodir)/gfortran.info*
-+ rm -rf $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info*
-
- #
- # Clean hooks:
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -3223,8 +3223,31 @@ install-no-fixedincludes:
-
- doc: $(BUILD_INFO) $(GENERATED_MANPAGES)
-
--INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \
-- doc/gccinstall.info doc/cppinternals.info
-+INFO_CPP_NAME = $(shell echo cpp|sed '$(program_transform_name)')
-+INFO_GCC_NAME = $(shell echo gcc|sed '$(program_transform_name)')
-+INFO_GXX_NAME = $(shell echo g++|sed '$(program_transform_name)')
-+INFO_GCCINT_NAME = $(shell echo gccint|sed '$(program_transform_name)')
-+INFO_GCCINSTALL_NAME = $(shell echo gccinstall|sed
'$(program_transform_name)')
-+INFO_CPPINT_NAME = $(shell echo cppinternals|sed
'$(program_transform_name)')
-+
-+INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)')
-+INFO_GCCGO_NAME = $(shell echo gccgo|sed '$(program_transform_name)')
-+
-+INFOFILES = doc/$(INFO_CPP_NAME).info doc/$(INFO_GCC_NAME).info \
-+ doc/$(INFO_GCCINT_NAME).info \
-+ doc/$(INFO_GCCINSTALL_NAME).info doc/$(INFO_CPPINT_NAME).info
-+
-+MAKEINFODEFS = -D 'fncpp $(INFO_CPP_NAME)' \
-+ -D 'fngcc $(INFO_GCC_NAME)' \
-+ -D 'fngcov $(INFO_GCC_NAME)' \
-+ -D 'fngcovtool $(INFO_GCC_NAME)' \
-+ -D 'fngcovdump $(INFO_GCC_NAME)' \
-+ -D 'fngxx $(INFO_GXX_NAME)' \
-+ -D 'fngccint $(INFO_GCCINT_NAME)' \
-+ -D 'fngccinstall $(INFO_GCCINSTALL_NAME)' \
-+ -D 'fncppint $(INFO_CPPINT_NAME)' \
-+ -D 'fngfortran $(INFO_FORTRAN_NAME)' \
-+ -D 'fngccgo $(INFO_GCCGO_NAME)'
-
- info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo
-
-@@ -3272,7 +3295,20 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE)
- if [ -n "$(PKGVERSION)" ]; then \
- echo "@set VERSION_PACKAGE $(PKGVERSION)" >> $@T; \
- fi
-- echo "@set BUGURL $(BUGURL_TEXI)" >> $@T; \
-+ echo "@set BUGURL $(BUGURL_TEXI)" >> $@T
-+ ( \
-+ echo '@set fncpp $(INFO_CPP_NAME)'; \
-+ echo '@set fngcc $(INFO_GCC_NAME)'; \
-+ echo '@set fngcov $(INFO_GCC_NAME)'; \
-+ echo '@set fngcovtool $(INFO_GCC_NAME)'; \
-+ echo '@set fngcovdump $(INFO_GCC_NAME)'; \
-+ echo '@set fngxx $(INFO_GXX_NAME)'; \
-+ echo '@set fngccint $(INFO_GCCINT_NAME)'; \
-+ echo '@set fngccinstall $(INFO_GCCINSTALL_NAME)'; \
-+ echo '@set fncppint $(INFO_CPPINT_NAME)'; \
-+ echo '@set fngfortran $(INFO_FORTRAN_NAME)'; \
-+ echo '@set fngccgo $(INFO_GCCGO_NAME)'; \
-+ ) >> $@T
- mv -f $@T $@
-
-
-@@ -3280,21 +3316,41 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE)
- # patterns. To use them, put each of the specific targets with its
- # specific dependencies but no build commands.
-
--doc/cpp.info: $(TEXI_CPP_FILES)
--doc/gcc.info: $(TEXI_GCC_FILES)
--doc/gccint.info: $(TEXI_GCCINT_FILES)
--doc/cppinternals.info: $(TEXI_CPPINT_FILES)
--
-+# Generic entry to handle info files, which are not renamed (currently Ada)
- doc/%.info: %.texi
- if [ x$(BUILD_INFO) = xinfo ]; then \
- $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
- -I $(gcc_docdir)/include -o $@ $<; \
- fi
-
-+doc/$(INFO_CPP_NAME).info: $(TEXI_CPP_FILES)
-+ if [ x$(BUILD_INFO) = xinfo ]; then \
-+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir)
\
-+ -I $(gcc_docdir)/include -o $@ $<; \
-+ fi
-+
-+doc/$(INFO_GCC_NAME).info: $(TEXI_GCC_FILES)
-+ if [ x$(BUILD_INFO) = xinfo ]; then \
-+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir)
\
-+ -I $(gcc_docdir)/include -o $@ $<; \
-+ fi
-+
-+doc/$(INFO_GCCINT_NAME).info: $(TEXI_GCCINT_FILES)
-+ if [ x$(BUILD_INFO) = xinfo ]; then \
-+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir)
\
-+ -I $(gcc_docdir)/include -o $@ $<; \
-+ fi
-+
-+doc/$(INFO_CPPINT_NAME).info: $(TEXI_CPPINT_FILES)
-+ if [ x$(BUILD_INFO) = xinfo ]; then \
-+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir)
\
-+ -I $(gcc_docdir)/include -o $@ $<; \
-+ fi
-+
- # Duplicate entry to handle renaming of gccinstall.info
--doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
-+doc/$(INFO_GCCINSTALL_NAME).info: $(TEXI_GCCINSTALL_FILES)
- if [ x$(BUILD_INFO) = xinfo ]; then \
-- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
-+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir)
\
- -I $(gcc_docdir)/include -o $@ $<; \
- fi
-
-@@ -3701,11 +3757,11 @@ install-driver: installdirs xgcc$(exeext
- # $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
- # to do the install.
- install-info:: doc installdirs \
-- $(DESTDIR)$(infodir)/cpp.info \
-- $(DESTDIR)$(infodir)/gcc.info \
-- $(DESTDIR)$(infodir)/cppinternals.info \
-- $(DESTDIR)$(infodir)/gccinstall.info \
-- $(DESTDIR)$(infodir)/gccint.info \
-+ $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info \
-+ $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info \
-+ $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info \
-+ $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info \
-+ $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info \
- lang.install-info
-
- $(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
-@@ -3932,8 +3988,11 @@ uninstall: lang.uninstall
- -rm -rf $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext)
- -rm -rf $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext)
- -rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext)
-- -rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info*
-- -rm -f $(DESTDIR)$(infodir)/cppinternals.info*
$(DESTDIR)$(infodir)/gccint.info*
-+ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info*
-+ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info*
-+ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info*
-+ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info*
-+ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info*
- for i in ar nm ranlib ; do \
- install_name=`echo gcc-$$i|sed
'$(program_transform_name)'`$(exeext) ;\
- target_install_name=$(target_noncanonical)-`echo gcc-$$i|sed
'$(program_transform_name)'`$(exeext) ; \
---- a/gcc/ada/gnat-style.texi
-+++ b/gcc/ada/gnat-style.texi
-@@ -31,7 +31,7 @@ Texts. A copy of the license is include
-
- @dircategory Software development
- @direntry
--* gnat-style: (gnat-style). GNAT Coding Style
-+* gnat-style: (gnat-style-10). GNAT Coding Style
- @end direntry
-
- @macro syntax{element}
---- a/gcc/ada/gnat_rm.texi
-+++ b/gcc/ada/gnat_rm.texi
-@@ -12,7 +12,7 @@
- @finalout
- @dircategory GNU Ada Tools
- @direntry
--* gnat_rm: (gnat_rm.info). gnat_rm
-+* GNAT Reference Manual: (gnat_rm-10). Reference Manual for GNU Ada tools.
- @end direntry
-
- @definfoenclose strong,`,'
---- a/gcc/doc/invoke.texi
-+++ b/gcc/doc/invoke.texi
-@@ -14413,7 +14413,7 @@ One of the standard libraries bypassed b
- @option{-nodefaultlibs} is @file{libgcc.a}, a library of internal
subroutines
- which GCC uses to overcome shortcomings of particular machines, or special
- needs for some languages.
--(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler
-+(@xref{Interface,,Interfacing to GCC Output,@value{fngccint},GNU Compiler
- Collection (GCC) Internals},
- for more discussion of @file{libgcc.a}.)
- In most cases, you need @file{libgcc.a} even when you want to avoid
-@@ -14422,7 +14422,7 @@ or @option{-nodefaultlibs} you should us
- This ensures that you have no unresolved references to internal GCC
- library subroutines.
- (An example of such an internal subroutine is @code{__main}, used to ensure
C++
--constructors are called; @pxref{Collect2,,@code{collect2}, gccint,
-+constructors are called; @pxref{Collect2,,@code{collect2}, @value{fngccint},
- GNU Compiler Collection (GCC) Internals}.)
-
- @item -e @var{entry}
-@@ -31072,7 +31072,7 @@ Note that you can also specify places to
- @option{-B}, @option{-I} and @option{-L} (@pxref{Directory Options}). These
- take precedence over places specified using environment variables, which
- in turn take precedence over those specified by the configuration of GCC@.
--@xref{Driver,, Controlling the Compilation Driver @file{gcc}, gccint,
-+@xref{Driver,, Controlling the Compilation Driver @file{gcc},
@value{fngccint},
- GNU Compiler Collection (GCC) Internals}.
-
- @table @env
-@@ -31232,7 +31232,7 @@ the headers it contains change.
-
- A precompiled header file is searched for when @code{#include} is
- seen in the compilation. As it searches for the included file
--(@pxref{Search Path,,Search Path,cpp,The C Preprocessor}) the
-+(@pxref{Search Path,,Search Path,@value{fncpp},The C Preprocessor}) the
- compiler looks for a precompiled header in each directory just before it
- looks for the include file in that directory. The name searched for is
- the name specified in the @code{#include} with @samp{.gch} appended. If
---- a/gcc/doc/extend.texi
-+++ b/gcc/doc/extend.texi
-@@ -24519,7 +24519,7 @@ want to write code that checks whether t
- test for the GNU compiler the same way as for C programs: check for a
- predefined macro @code{__GNUC__}. You can also use @code{__GNUG__} to
- test specifically for GNU C++ (@pxref{Common Predefined Macros,,
--Predefined Macros,cpp,The GNU C Preprocessor}).
-+Predefined Macros,@value{fncpp},The GNU C Preprocessor}).
-
- @menu
- * C++ Volatiles:: What constitutes an access to a volatile object.
---- a/gcc/doc/standards.texi
-+++ b/gcc/doc/standards.texi
-@@ -332,5 +332,5 @@ specification, described at @uref{https:
- GNAT Reference Manual}, for information on standard
- conformance and compatibility of the Ada compiler.
-
--@xref{Standards,,Standards, gfortran, The GNU Fortran Compiler}, for details
-+@xref{Standards,,Standards, @value{fngfortran}, The GNU Fortran Compiler},
for details
- of standards supported by GNU Fortran.
---- a/gcc/doc/libgcc.texi
-+++ b/gcc/doc/libgcc.texi
-@@ -24,7 +24,7 @@ that needs them.
- GCC will also generate calls to C library routines, such as
- @code{memcpy} and @code{memset}, in some cases. The set of routines
- that GCC may possibly use is documented in @ref{Other
--Builtins,,,gcc, Using the GNU Compiler Collection (GCC)}.
-+Builtins,,,@value{fngcc}, Using the GNU Compiler Collection (GCC)}.
-
- These routines take arguments and return values of a specific machine
- mode, not a specific C type. @xref{Machine Modes}, for an explanation
---- a/gcc/doc/gccint.texi
-+++ b/gcc/doc/gccint.texi
-@@ -49,7 +49,7 @@ Texts being (a) (see below), and with th
- @ifnottex
- @dircategory Software development
- @direntry
--* gccint: (gccint). Internals of the GNU Compiler Collection.
-+* @value{fngccint}: (@value{fngccint}). Internals of the GNU
Compiler Collection.
- @end direntry
- This file documents the internals of the GNU compilers.
- @sp 1
-@@ -81,7 +81,7 @@ write front ends for new languages. It
- @value{VERSION_PACKAGE}
- @end ifset
- version @value{version-GCC}. The use of the GNU compilers is documented in
a
--separate manual. @xref{Top,, Introduction, gcc, Using the GNU
-+separate manual. @xref{Top,, Introduction, @value{fngcc}, Using the GNU
- Compiler Collection (GCC)}.
-
- This manual is mainly a reference manual rather than a tutorial. It
---- a/gcc/doc/cpp.texi
-+++ b/gcc/doc/cpp.texi
-@@ -50,7 +50,7 @@ This manual contains no Invariant Sectio
- @ifinfo
- @dircategory Software development
- @direntry
--* Cpp: (cpp). The GNU C preprocessor.
-+* @value{fncpp}: (@value{fncpp}). The GNU C preprocessor.
- @end direntry
- @end ifinfo
-
---- a/gcc/doc/gcc.texi
-+++ b/gcc/doc/gcc.texi
-@@ -129,7 +129,7 @@ version @value{version-GCC}.
- The internals of the GNU compilers, including how to port them to new
- targets and some information about how to write front ends for new
- languages, are documented in a separate manual. @xref{Top,,
--Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
-+Introduction, @value{fngccint}, GNU Compiler Collection (GCC) Internals}.
-
- @menu
- * G++ and GCC:: You can compile C or C++ programs.
---- a/gcc/doc/install.texi
-+++ b/gcc/doc/install.texi
-@@ -93,7 +93,7 @@ Free Documentation License}''.
- @end ifinfo
- @dircategory Software development
- @direntry
--* gccinstall: (gccinstall). Installing the GNU Compiler Collection.
-+* @value{fngccinstall}: (@value{fngccinstall}). Installing the GNU
Compiler Collection.
- @end direntry
-
- @c Part 3 Titlepage and Copyright
---- a/gcc/doc/cppinternals.texi
-+++ b/gcc/doc/cppinternals.texi
-@@ -7,7 +7,7 @@
- @ifinfo
- @dircategory Software development
- @direntry
--* Cpplib: (cppinternals). Cpplib internals.
-+* @value{fncppint}: (@value{fncppint}). Cpplib internals.
- @end direntry
- @end ifinfo
-
---- a/libgomp/libgomp.texi
-+++ b/libgomp/libgomp.texi
-@@ -31,7 +31,7 @@ texts being (a) (see below), and with th
- @ifinfo
- @dircategory GNU Libraries
- @direntry
--* libgomp: (libgomp). GNU Offloading and Multi Processing Runtime
Library.
-+* @value{fnlibgomp}: (@value{fnlibgomp}). GNU Offloading and Multi
Processing Runtime Library.
- @end direntry
-
- This manual documents libgomp, the GNU Offloading and Multi Processing
---- a/libgomp/Makefile.in
-+++ b/libgomp/Makefile.in
-@@ -310,13 +310,13 @@
- am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
- am__v_texidevnull_0 = > /dev/null
- am__v_texidevnull_1 =
--INFO_DEPS = libgomp.info
-+INFO_DEPS = $(INFO_LIBGOMP_NAME).info
- am__TEXINFO_TEX_DIR = $(srcdir)/../gcc/doc/include
--DVIS = libgomp.dvi
--PDFS = libgomp.pdf
--PSS = libgomp.ps
--HTMLS = libgomp.html
--TEXINFOS = libgomp.texi
-+DVIS = $(INFO_LIBGOMP_NAME).dvi
-+PDFS = $(INFO_LIBGOMP_NAME).pdf
-+PSS = $(INFO_LIBGOMP_NAME).ps
-+HTMLS = $(INFO_LIBGOMP_NAME).html
-+TEXINFOS = $(INFO_LIBGOMP_NAME).texi
- TEXI2DVI = texi2dvi
- TEXI2PDF = $(TEXI2DVI) --pdf --batch
- MAKEINFOHTML = $(MAKEINFO) --html
-@@ -636,7 +636,8 @@ info_TEXINFOS = libgomp.texi
-
- # AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO])
- @BUILD_INFO_TRUE@STAMP_BUILD_INFO = stamp-build-info
-+INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)')
- CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO)
--MAINTAINERCLEANFILES = $(srcdir)/libgomp.info
-+MAINTAINERCLEANFILES = $(srcdir)/$(INFO_LIBGOMP_NAME).info
- MULTISRCTOP =
- MULTIBUILDTOP =
-@@ -1425,15 +1426,16 @@ env.lo: libgomp_f.h
- env.o: libgomp_f.h
-
- all-local: $(STAMP_GENINSRC)
--
--stamp-geninsrc: libgomp.info
-- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info
-+stamp-geninsrc: $(INFO_LIBGOMP_NAME).info
-+ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info
- @touch $@
-
--libgomp.info: $(STAMP_BUILD_INFO)
-+libgomp.info: $(INFO_LIBGOMP_NAME).info
-+ [ "$(INFO_LIBGOMP_NAME).info" = libgomp.info ] || cp
$(INFO_LIBGOMP_NAME).info libgomp.info
-+$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO)
-
- stamp-build-info: libgomp.texi
-- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
libgomp.info $(srcdir)/libgomp.texi
-+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp
$(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info
$(srcdir)/libgomp.texi
- @touch $@
-
- # GNU Make needs to see an explicit $(MAKE) variable in the command it
---- a/libgomp/Makefile.am
-+++ b/libgomp/Makefile.am
-@@ -127,14 +127,16 @@ endif
-
- all-local: $(STAMP_GENINSRC)
-
--stamp-geninsrc: libgomp.info
-- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info
-+stamp-geninsrc: $(INFO_LIBGOMP_NAME).info
-+ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info
- @touch $@
-
--libgomp.info: $(STAMP_BUILD_INFO)
-+libgomp.info: $(INFO_LIBGOMP_NAME).info
-+ cp $(INFO_LIBGOMP_NAME).info libgomp.info
-+$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO)
-
- stamp-build-info: libgomp.texi
-- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
libgomp.info $(srcdir)/libgomp.texi
-+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp
$(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info
$(srcdir)/libgomp.texi
- @touch $@
-
-
---- a/libitm/libitm.texi
-+++ b/libitm/libitm.texi
-@@ -20,7 +20,7 @@ Free Documentation License''.
- @ifinfo
- @dircategory GNU Libraries
- @direntry
--* libitm: (libitm). GNU Transactional Memory Library
-+* @value{fnlibitm}: (@value{fnlibitm}). GNU
Transactional Memory Library
- @end direntry
-
- This manual documents the GNU Transactional Memory Library.
---- a/libitm/Makefile.am
-+++ b/libitm/Makefile.am
-@@ -107,14 +107,17 @@ endif
-
- all-local: $(STAMP_GENINSRC)
-
--stamp-geninsrc: libitm.info
-- cp -p $(top_builddir)/libitm.info $(srcdir)/libitm.info
-+INFO_LIBITM_NAME = $(shell echo libitm|sed '$(program_transform_name)')
-+stamp-geninsrc: $(INFO_LIBITM_NAME).info
-+ cp -p $(top_builddir)/$(INFO_LIBITM_NAME).info $(srcdir)/libitm.info
- @touch $@
-
--libitm.info: $(STAMP_BUILD_INFO)
-+libitm.info: $(INFO_LIBITM_NAME).info
-+ cp $(INFO_LIBITM_NAME).info libitm.info
-+$(INFO_LIBITM_NAME).info: $(STAMP_BUILD_INFO)
-
- stamp-build-info: libitm.texi
-- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
libitm.info $(srcdir)/libitm.texi
-+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -D
'fnlibitm $(INFO_LIBITM_NAME)'-o $(INFO_LIBITM_NAME).info
$(srcdir)/libitm.texi
- @touch $@
-
-
---- a/libitm/Makefile.in
-+++ b/libitm/Makefile.in
-@@ -1186,14 +1186,17 @@ vpath % $(strip $(search_path))
-
- all-local: $(STAMP_GENINSRC)
-
--stamp-geninsrc: libitm.info
-- cp -p $(top_builddir)/libitm.info $(srcdir)/libitm.info
-+INFO_LIBITM_NAME = $(shell echo libitm|sed '$(program_transform_name)')
-+stamp-geninsrc: $(INFO_LIBITM_NAME).info
-+ cp -p $(top_builddir)/$(INFO_LIBITM_NAME).info $(srcdir)/libitm.info
- @touch $@
-
--libitm.info: $(STAMP_BUILD_INFO)
-+libitm.info: $(INFO_LIBITM_NAME).info
-+ cp $(INFO_LIBITM_NAME).info libitm.info
-+$(INFO_LIBITM_NAME).info: $(STAMP_BUILD_INFO)
-
- stamp-build-info: libitm.texi
-- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
libitm.info $(srcdir)/libitm.texi
-+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -D
'fnlibitm $(INFO_LIBITM_NAME)' -o $(INFO_LIBITM_NAME).info
$(srcdir)/libitm.texi
- @touch $@
-
- # GNU Make needs to see an explicit $(MAKE) variable in the command it
---- a/gcc/go/Make-lang.in
-+++ b/gcc/go/Make-lang.in
-@@ -91,10 +91,11 @@ GO_TEXI_FILES = \
- $(gcc_docdir)/include/gcc-common.texi \
- gcc-vers.texi
-
--doc/gccgo.info: $(GO_TEXI_FILES)
-+INFO_GCCGO_NAME = $(shell echo gccgo|sed '$(program_transform_name)')
-+doc/$(INFO_GCCGO_NAME).info: $(GO_TEXI_FILES)
- if test "x$(BUILD_INFO)" = xinfo; then \
-- rm -f doc/gccgo.info*; \
-- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
-+ rm -f doc/$(INFO_GCCGO_NAME).info*; \
-+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
- -I $(gcc_docdir)/include -o $@ $<; \
- else true; fi
-
-@@ -120,7 +121,7 @@ gccgo.pod: go/gccgo.texi
- go.all.cross: gccgo-cross$(exeext)
- go.start.encap: gccgo$(exeext)
- go.rest.encap:
--go.info: doc/gccgo.info
-+go.info: doc/$(INFO_GCCGO_NAME).info
- go.dvi: doc/gccgo.dvi
- go.pdf: doc/gccgo.pdf
- go.html: $(build_htmldir)/go/index.html
-@@ -159,7 +160,7 @@ go.install-common: installdirs
-
- go.install-plugin:
-
--go.install-info: $(DESTDIR)$(infodir)/gccgo.info
-+go.install-info: $(DESTDIR)$(infodir)/$(INFO_GCCGO_NAME).info
-
- go.install-pdf: doc/gccgo.pdf
- @$(NORMAL_INSTALL)
-@@ -199,7 +200,7 @@ go.uninstall:
- rm -rf $(DESTDIR)$(bindir)/$(GCCGO_INSTALL_NAME)$(exeext)
- rm -rf $(DESTDIR)$(man1dir)/$(GCCGO_INSTALL_NAME)$(man1ext)
- rm -rf $(DESTDIR)$(bindir)/$(GCCGO_TARGET_INSTALL_NAME)$(exeext)
-- rm -rf $(DESTDIR)$(infodir)/gccgo.info*
-+ rm -rf $(DESTDIR)$(infodir)/$(INFO_GCCGO_NAME).info*
-
- # Clean hooks.
-
---- a/gcc/go/gccgo.texi
-+++ b/gcc/go/gccgo.texi
-@@ -50,7 +50,7 @@ man page gfdl(7).
- @format
- @dircategory Software development
- @direntry
--* Gccgo: (gccgo). A GCC-based compiler for the Go language
-+* @value{fngccgo}: (@value{fngccgo}). A GCC-based compiler for
the Go language
- @end direntry
- @end format
-
-@@ -124,7 +124,7 @@ and the Info entries for @file{gccgo} an
-
- The @command{gccgo} command is a frontend to @command{gcc} and
- supports many of the same options. @xref{Option Summary, , Option
--Summary, gcc, Using the GNU Compiler Collection (GCC)}. This manual
-+Summary, @value{fngcc}, Using the GNU Compiler Collection (GCC)}. This
manual
- only documents the options specific to @command{gccgo}.
-
- The @command{gccgo} command may be used to compile Go source code into
---- a/libquadmath/libquadmath.texi
-+++ b/libquadmath/libquadmath.texi
-@@ -25,7 +25,7 @@ copy and modify this GNU manual.
- @ifinfo
- @dircategory GNU Libraries
- @direntry
--* libquadmath: (libquadmath). GCC Quad-Precision Math
Library
-+* @value{fnlibquadmath}: (@value{fnlibquadmath}). GCC
Quad-Precision Math Library
- @end direntry
-
- This manual documents the GCC Quad-Precision Math Library API.
---- a/libquadmath/Makefile.am
-+++ b/libquadmath/Makefile.am
-@@ -134,16 +134,18 @@ STAMP_BUILD_INFO =
- endif
-
-
--stamp-geninsrc: libquadmath.info
-- cp -p $(top_builddir)/libquadmath.info $(srcdir)/libquadmath.info
-+INFO_LIBQMATH_NAME = $(shell echo libquadmath|sed
'$(program_transform_name)')
-+
-+stamp-geninsrc: $(INFO_LIBQMATH_NAME).info
-+ cp -p $(top_builddir)/$(INFO_LIBQMATH_NAME).info
$(srcdir)/libquadmath.info
- @touch $@
-
- stamp-build-info: libquadmath.texi $(libquadmath_TEXINFOS)
-- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
libquadmath.info $(srcdir)/libquadmath.texi
-+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
$(INFO_LIBQMATH_NAME).info $(srcdir)/libquadmath.texi
- @touch $@
-
- CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO)
--MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info
-+MAINTAINERCLEANFILES = $(srcdir)/$(INFO_LIBQMATH_NAME).info
-
- endif BUILD_LIBQUADMATH
-
---- a/libquadmath/Makefile.in
-+++ b/libquadmath/Makefile.in
-@@ -283,7 +283,8 @@ AM_V_texidevnull = $(am__v_texidevnull_@
- am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
- am__v_texidevnull_0 = > /dev/null
- am__v_texidevnull_1 =
--INFO_DEPS = libquadmath.info
-+INFO_LIBQMATH_NAME = $(shell echo libquadmath|sed
'$(program_transform_name)')
-+INFO_DEPS = $(INFO_LIBQMATH_NAME).info
- am__TEXINFO_TEX_DIR = $(srcdir)/../gcc/doc/include
- DVIS = libquadmath.dvi
- PDFS = libquadmath.pdf
-@@ -552,8 +553,8 @@ AUTOMAKE_OPTIONS = foreign info-in-build
-
- # AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO])
- @BUILD_INFO_TRUE@@BUILD_LIBQUADMATH_TRUE@STAMP_BUILD_INFO = stamp-build-info
- @BUILD_LIBQUADMATH_TRUE@CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO)
--@BUILD_LIBQUADMATH_TRUE@MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info
-+@BUILD_LIBQUADMATH_TRUE@MAINTAINERCLEANFILES =
$(srcdir)/$(INFO_LIBQMATH_NAME).info
-
- # Automake Documentation:
- # If your package has Texinfo files in many directories, you can use the
-@@ -1434,19 +1435,19 @@ uninstall-am: uninstall-dvi-am uninstall
-
@BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@
sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \
-
@BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@
> $@ || (rm -f $@ ; exit 1)
-
--@BUILD_LIBQUADMATH_TRUE@stamp-geninsrc: libquadmath.info
--@BUILD_LIBQUADMATH_TRUE@ cp -p $(top_builddir)/libquadmath.info
$(srcdir)/libquadmath.info
-+@BUILD_LIBQUADMATH_TRUE@stamp-geninsrc: $(INFO_LIBQMATH_NAME).info
-+@BUILD_LIBQUADMATH_TRUE@ cp -p
$(top_builddir)/$(INFO_LIBQMATH_NAME).info
$(srcdir)/$(INFO_LIBQMATH_NAME).info
- @BUILD_LIBQUADMATH_TRUE@ @touch $@
-
- @BUILD_LIBQUADMATH_TRUE@stamp-build-info: libquadmath.texi
$(libquadmath_TEXINFOS)
--@BUILD_LIBQUADMATH_TRUE@ $(MAKEINFO) $(AM_MAKEINFOFLAGS)
$(MAKEINFOFLAGS) -I $(srcdir) -o libquadmath.info $(srcdir)/libquadmath.texi
-+@BUILD_LIBQUADMATH_TRUE@ $(MAKEINFO) $(AM_MAKEINFOFLAGS)
$(MAKEINFOFLAGS) -I $(srcdir) -o $(INFO_LIBQMATH_NAME).info
$(srcdir)/libquadmath.texi
- @BUILD_LIBQUADMATH_TRUE@ @touch $@
-
- all-local: $(ALL_LOCAL_DEPS)
-
- # Unconditionally override this target, so that automake's definition
- # does not wrongly interfere.
--libquadmath.info: $(STAMP_BUILD_INFO)
-+$(INFO_LIBQMATH_NAME).info: $(STAMP_BUILD_INFO)
-
- libquadmath-vers.texi:
- echo "@set BUGURL $(REPORT_BUGS_TEXI)" > $@
diff --git
a/gnu/gcc-10/patches/0001-Remove-conflicting-duplicated-manpages.patch
b/gnu/gcc-10/patches/0001-Remove-conflicting-duplicated-manpages.patch
deleted file mode 100644
index f58546b..0000000
--- a/gnu/gcc-10/patches/0001-Remove-conflicting-duplicated-manpages.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 0000000000000000000000000000000000000000 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] 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
-Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
-Upstream-Status: Inappropriate
----
- Makefile.in | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 5ac87c98230c..fdc40d7ce1d7 100644
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -3756,10 +3756,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 $@
diff --git
a/gnu/gcc-10/patches/0001-musl-always-use--lib--directory-for-all-x86_64-ABIs.patch
b/gnu/gcc-10/patches/0001-musl-always-use--lib--directory-for-all-x86_64-ABIs.patch
deleted file mode 100644
index 80fa28c..0000000
---
a/gnu/gcc-10/patches/0001-musl-always-use--lib--directory-for-all-x86_64-ABIs.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From f313773d9087298a3f0ab45602791946debff8b7 Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox AT gentoo.org>
-Date: Mon, 05 Jul 2021 18:15:44 +0000
-Subject: [PATCH] musl: always use 'lib' directory for all x86_64 ABIs
[PR90077]
-Message-ID: <20210705181544.1519647-1-slyfox AT gentoo.org>
-
-From: Sergei Trofimovich <siarheit AT google.com>
-
-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 iodev.co.uk>
----
- 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 0230bb88861..a87a59c9403 100644
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -1923,7 +1923,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"
-@@ -1983,7 +1986,10 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
- tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-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 00000000000..58e23c3c7dc
---- /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
-+# <<a
href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.
-+
-+# 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.32.0
diff --git a/gnu/gcc-10/patches/50_all_posix_memalign.patch
b/gnu/gcc-10/patches/50_all_posix_memalign.patch
deleted file mode 100644
index d974b56..0000000
--- a/gnu/gcc-10/patches/50_all_posix_memalign.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Origin: Gentoo
-
-diff -Naur gcc-7.1.0.orig/gcc/config/i386/pmm_malloc.h
gcc-7.1.0/gcc/config/i386/pmm_malloc.h
---- gcc-7.1.0.orig/gcc/config/i386/pmm_malloc.h 2017-01-01
04:07:43.000000000 -0800
-+++ gcc-7.1.0/gcc/config/i386/pmm_malloc.h 2017-05-07 11:35:22.878398460
-0700
-@@ -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 @@
- 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;
diff --git a/gnu/gcc-10/ssp_nonshared.diff b/gnu/gcc-10/ssp_nonshared.diff
deleted file mode 100644
index 2d3e586..0000000
--- a/gnu/gcc-10/ssp_nonshared.diff
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index c48178f1aa3..e2fae4ef055 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -863,7 +863,8 @@ proper position among the other output files. */
- #ifndef LINK_SSP_SPEC
- #ifdef TARGET_LIBC_PROVIDES_SSP
- #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
-- "|fstack-protector-strong|fstack-protector-explicit:}"
-+ "|fstack-protector-strong|fstack-protector-explicit" \
-+ ":-lssp_nonshared}"
- #else
- #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
- "|fstack-protector-strong|fstack-protector-explicit" \
diff --git a/gnu/gcc-14/BUILD b/gnu/gcc-14/BUILD
index 75a01e0..27ba77d 100755
--- a/gnu/gcc-14/BUILD
+++ b/gnu/gcc-14/BUILD
@@ -1,157 +1 @@
-# 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
+true
diff --git a/gnu/gcc-14/CONFIGURE b/gnu/gcc-14/CONFIGURE
deleted file mode 100755
index bbc9db9..0000000
--- a/gnu/gcc-14/CONFIGURE
+++ /dev/null
@@ -1,19 +0,0 @@
-. $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
deleted file mode 100755
index 4522282..0000000
--- a/gnu/gcc-14/CONFLICTS
+++ /dev/null
@@ -1,5 +0,0 @@
-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
deleted file mode 100755
index 510c309..0000000
--- a/gnu/gcc-14/DEPENDS
+++ /dev/null
@@ -1,46 +0,0 @@
-. "$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
index bb15889..fe143f0 100755
--- a/gnu/gcc-14/DETAILS
+++ b/gnu/gcc-14/DETAILS
@@ -1,60 +1,16 @@
-# 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
+ PATCHLEVEL=1
+ ARCHIVE=off
+ GATHER_DOCS=off
LICENSE[0]=GPL
- TMPFS=off
WEB_SITE=https://gcc.gnu.org/
KEYWORDS="compiler"
ENTERED=20040420
- SHORT="the GNU C compiler collection"
- DOCS="$DOCS INSTALL"
+ SHORT="deprecated, superseded by gcc:14"
cat << EOF
-The entire GNU C Compiler collection.
+Deprecated in favour of slot 14 of the gcc spell, which builds the same
+compiler into the same /opt/gcc-14.
+
+Casting this dispels it and casts gcc:14 in its place.
EOF
diff --git a/gnu/gcc-14/FINAL b/gnu/gcc-14/FINAL
deleted file mode 100755
index f09e41e..0000000
--- a/gnu/gcc-14/FINAL
+++ /dev/null
@@ -1,5 +0,0 @@
-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
index ea96c9c..7bc992d 100644
--- a/gnu/gcc-14/HISTORY
+++ b/gnu/gcc-14/HISTORY
@@ -1,3 +1,8 @@
+2026-08-15 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS, PRE_BUILD, BUILD, INSTALL, UP_TRIGGERS: deprecated in
+ favour of gcc:14, which is this same compiler as a slot of the
+ gcc spell; casting this dispels it and casts gcc:14
+
2025-06-20 Ismael Luceno <ismael AT sourcemage.org>
* DETAILS: updated spell to 14.3.0
* Copied from gcc spell, version 14.2.0
diff --git a/gnu/gcc-14/INSTALL b/gnu/gcc-14/INSTALL
index a451b09..27ba77d 100755
--- a/gnu/gcc-14/INSTALL
+++ b/gnu/gcc-14/INSTALL
@@ -1,31 +1 @@
-#
-# 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
+true
diff --git a/gnu/gcc-14/PREPARE b/gnu/gcc-14/PREPARE
deleted file mode 100755
index 731f19a..0000000
--- a/gnu/gcc-14/PREPARE
+++ /dev/null
@@ -1,30 +0,0 @@
-. $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
index 29fb500..27ba77d 100755
--- a/gnu/gcc-14/PRE_BUILD
+++ b/gnu/gcc-14/PRE_BUILD
@@ -1,50 +1 @@
-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
+true
diff --git a/gnu/gcc-14/PRE_SUB_DEPENDS b/gnu/gcc-14/PRE_SUB_DEPENDS
deleted file mode 100755
index d284652..0000000
--- a/gnu/gcc-14/PRE_SUB_DEPENDS
+++ /dev/null
@@ -1,14 +0,0 @@
-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^none^volatiles
b/gnu/gcc-14/REPAIR^none^volatiles
deleted file mode 100755
index d6dffea..0000000
--- a/gnu/gcc-14/REPAIR^none^volatiles
+++ /dev/null
@@ -1 +0,0 @@
-^/usr/lib/gcc/.*/.*/specs$
diff --git a/gnu/gcc-14/SUB_DEPENDS b/gnu/gcc-14/SUB_DEPENDS
deleted file mode 100755
index 321c953..0000000
--- a/gnu/gcc-14/SUB_DEPENDS
+++ /dev/null
@@ -1,15 +0,0 @@
-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/UP_TRIGGERS b/gnu/gcc-14/UP_TRIGGERS
new file mode 100755
index 0000000..e487b80
--- /dev/null
+++ b/gnu/gcc-14/UP_TRIGGERS
@@ -0,0 +1,2 @@
+up_trigger gcc-14 dispel_self &&
+up_trigger gcc:14 cast_self
diff --git
a/gnu/gcc-14/patches/0002-Remove-conflicting-duplicated-manpages.patch
b/gnu/gcc-14/patches/0002-Remove-conflicting-duplicated-manpages.patch
deleted file mode 100644
index 636c6db..0000000
--- a/gnu/gcc-14/patches/0002-Remove-conflicting-duplicated-manpages.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-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
deleted file mode 100644
index f4ada43..0000000
--- a/gnu/gcc-14/patches/0003-all-posix_memalign.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-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
deleted file mode 100644
index 40b46ec..0000000
---
a/gnu/gcc-14/patches/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-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
deleted file mode 100644
index 8d9bb1e..0000000
---
a/gnu/gcc-14/patches/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-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
-+# <<a
href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.
-+
-+# 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
deleted file mode 100644
index a9970f7..0000000
--- a/gnu/gcc-14/patches/0006-ada-libgnarl-compatibility-for-musl.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-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
deleted file mode 100644
index d8a1b3a..0000000
--- a/gnu/gcc-14/patches/0007-ada-musl-support-fixes.patch
+++ /dev/null
@@ -1,226 +0,0 @@
-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
deleted file mode 100644
index 51224ec..0000000
---
a/gnu/gcc-14/patches/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-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
deleted file mode 100644
index 922b7c0..0000000
---
a/gnu/gcc-14/patches/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-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
deleted file mode 100644
index 657fc59..0000000
---
a/gnu/gcc-14/patches/0010-druntime-link-against-libucontext-on-all-platforms.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-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
deleted file mode 100644
index d42abea..0000000
---
a/gnu/gcc-14/patches/0011-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-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
deleted file mode 100644
index ae51a8e..0000000
--- a/gnu/gcc-14/patches/0012-libphobos-do-not-use-LFS64-symbols.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-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
deleted file mode 100644
index 85bcd1c..0000000
--- a/gnu/gcc-14/patches/0013-libgo-fix-lfs64-use.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-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
deleted file mode 100644
index 0aef288..0000000
--- a/gnu/gcc-14/patches/0014-lto-plugin-no-la.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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
deleted file mode 100755
index d6dffea..0000000
--- a/gnu/gcc-14/volatiles
+++ /dev/null
@@ -1 +0,0 @@
-^/usr/lib/gcc/.*/.*/specs$
diff --git a/gnu/gcc/BUILD b/gnu/gcc/BUILD
index fd565c3..8b09d39 100755
--- a/gnu/gcc/BUILD
+++ b/gnu/gcc/BUILD
@@ -45,8 +45,10 @@ fi &&
disable_fortify_source &&
disable_cf_protection &&
+# whatever slot is being cast, what builds it is the system compiler,
+# and the system compiler is slot 0
# fixes seg-fault on libiberty/splay.c in v 4.3.2
-if is_version_less $(installed_version $SPELL) 5.0.0; then
+if is_version_less $(installed_version $SPELL:0) 5.0.0; then
CFLAGS="-O1 $CFLAGS"
fi &&
@@ -78,14 +80,18 @@ if list_find "$GCC_COMPILER" "ada" ; then
ADA_PATH=${SOURCE13/.tar.bz2/} &&
PATH=$SOURCE_DIRECTORY/$ADA_PATH/bin:$PATH &&
- export CC="$SOURCE_DIRECTORY/$ADA_PATH/usr/bin/gcc" &&
+ # the older bootstrap tarball unpacks without the usr/ level
+ ADA_ROOT=$SOURCE_DIRECTORY/$ADA_PATH &&
+ if [[ -d $ADA_ROOT/usr/bin ]]; then ADA_ROOT=$ADA_ROOT/usr; fi &&
- 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 CC="$ADA_ROOT/bin/gcc" &&
+
+ export INCLUDE_DIR="$ADA_ROOT/lib/gcc/$HOST/${VERSION13}/include" &&
+ export LIB_DIR="$ADA_ROOT/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 COMPILER_PATH="$ADA_ROOT/bin" &&
export ADA_OBJECTS_PATH="$LIB_DIR/adalib" &&
export ADA_INCLUDE_PATH="$LIB_DIR/adainclude" &&
@@ -95,11 +101,22 @@ if list_find "$GCC_COMPILER" "ada" ; then
fi &&
OPTS="$GCJ_HOME $OPTS" &&
-OPTS="--prefix=${INSTALL_ROOT}/usr $OPTS" &&
-OPTS="--libdir=${INSTALL_ROOT}/usr/lib $OPTS" &&
-OPTS="--libexecdir=${INSTALL_ROOT}/usr/lib $OPTS" &&
-OPTS="--mandir=${INSTALL_ROOT}/usr/share/man $OPTS" &&
-OPTS="--infodir=${INSTALL_ROOT}/usr/share/info $OPTS" &&
+OPTS="--prefix=${INSTALL_ROOT}$GCC_PREFIX $OPTS" &&
+# only the system compiler owns the unsuffixed names and the paths the
+# rest of the system is built against, and only it is worth the time a
+# bootstrap costs -- a slot beside it is built by it
+if [[ $SLOT == 0 ]]; then
+ OPTS="--libdir=${INSTALL_ROOT}/usr/lib $OPTS" &&
+ OPTS="--libexecdir=${INSTALL_ROOT}/usr/lib $OPTS" &&
+ OPTS="--mandir=${INSTALL_ROOT}/usr/share/man $OPTS" &&
+ OPTS="--infodir=${INSTALL_ROOT}/usr/share/info $OPTS" &&
+ OPTS="--enable-bootstrap $OPTS" &&
+ OPTS="$GCC_MULTILIB $OPTS"
+else
+ OPTS="--program-suffix=-${VERSION%%.*} $OPTS" &&
+ OPTS="--with-gcc-major-version-only $OPTS" &&
+ OPTS="--disable-bootstrap $OPTS"
+fi &&
OPTS="--with-bugurl=http://bugs.sourcemage.org $OPTS" &&
OPTS="--enable-languages=${GCC_COMPILER// /,},lto $OPTS" &&
OPTS="--enable-shared $OPTS" &&
@@ -108,7 +125,6 @@ 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
@@ -126,7 +142,6 @@ 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)
@@ -134,7 +149,10 @@ case "$HOST" in
OPTS="--disable-libmpx $OPTS" &&
OPTS="--disable-libmudflap $OPTS" &&
OPTS="--disable-libsanitizer $OPTS" &&
- OPTS="--disable-symvers $OPTS"
+ OPTS="--disable-symvers $OPTS" &&
+ if [[ $SLOT == 10 ]]; then
+ OPTS="--disable-libssp $OPTS"
+ fi
;;
esac &&
@@ -144,7 +162,9 @@ 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 $SPELL) 4.9.0; then
+# $GCC_TARGET is only asked after for slot 0; the other slots are not
+# bootstrapped and take the default target
+if is_version_less $(installed_version $SPELL:0) 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 &&
diff --git a/gnu/gcc/CONFIGURE b/gnu/gcc/CONFIGURE
index bbc9db9..eaa913c 100755
--- a/gnu/gcc/CONFIGURE
+++ b/gnu/gcc/CONFIGURE
@@ -1,19 +1,24 @@
. $SECTION_DIRECTORY/FUNCTIONS &&
default_configure_gcc &&
-config_query_list GCC_TARGET "Select what build to use" \
- all \
- bootstrap \
- bootstrap-lean \
- profiledbootstrap \
- profiledbootstrap-lean &&
+# only the system compiler is bootstrapped and only its flags are the
+# ones the rest of the system is built with; a slot beside it takes
+# the defaults for all three
+if [[ $SLOT == 0 ]]; then
+ 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 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_option GCC_OPTS \
+ "Build C/C++ transactional memory support (libitm)?" n
\
+ --enable-libitm \
+ --disable-libitm
+fi &&
config_query GCC_CLOOG "Use cloog loop vectorizer?" y
diff --git a/gnu/gcc/CONFLICTS b/gnu/gcc/CONFLICTS
index 4522282..75bae0f 100755
--- a/gnu/gcc/CONFLICTS
+++ b/gnu/gcc/CONFLICTS
@@ -1,5 +1,18 @@
-conflicts ada y
-conflicts fortran y
-conflicts g++ y
-conflicts gcj y
-conflicts objc y
+# the split compiler spells install into /usr, which is slot 0's; a
+# slot under /opt is in nobody's way
+if [[ $SLOT == 0 ]]; then
+ conflicts ada y
+ conflicts fortran y
+ conflicts g++ y
+ conflicts gcj y
+ conflicts objc y
+fi
+
+# these slots were spells of their own until they were merged in here,
+# and where one of those is still installed it owns the very prefix the
+# slot is about to write; conflicting with it says so, and says nothing
+# once it is gone
+case $SLOT in
+ 14) conflicts gcc-14 y ;;
+ 10) conflicts gcc-10 y ;;
+esac
diff --git a/gnu/gcc/DEPENDS b/gnu/gcc/DEPENDS
index 05c6b30..7fece5b 100755
--- a/gnu/gcc/DEPENDS
+++ b/gnu/gcc/DEPENDS
@@ -14,9 +14,14 @@ optional_depends GETTEXT \
"--disable-nls" \
"for Native Language Support" &&
-optional_depends libxcrypt '' '' 'use libcrypt' &&
+# 10 does not know about libxcrypt
+if [[ $SLOT != 10 ]]; then
+ optional_depends libxcrypt '' '' 'use libcrypt'
+fi &&
-if is_version_less $(installed_version $SPELL) 4.9.0; then
+# the compiler that will build this one is the system compiler, which
+# is slot 0 whatever slot is being cast
+if is_version_less $(installed_version $SPELL:0) 4.9.0; then
depends gcc49
fi &&
@@ -43,4 +48,3 @@ fi &&
if is_version_less $(installed_version libmpc) 0.8.1; then
force_depends libmpc
fi
-
diff --git a/gnu/gcc/DETAILS b/gnu/gcc/DETAILS
index 175d1c2..6d4086c 100755
--- a/gnu/gcc/DETAILS
+++ b/gnu/gcc/DETAILS
@@ -1,7 +1,34 @@
# Watch: https://ftp.gnu.org/gnu/gcc href="gcc-([0-9.]+)/"
SPELL=gcc
- VERSION=16.2.0
- ISL_VERSION=0.24
+case "$SLOT" in
+ ('') SLOT=0 ;&
+ (0) VERSION=16.2.0
+ ISL_VERSION=0.24
+ ISL_SITE=https://libisl.sourceforge.io
+
ISL_HASH=sha512:ff6bdcff839e1cd473f2a0c1e4dd4a3612ec6fee4544ccbc62b530a7248db2cf93b4b99bf493a86ddf2aba00e768927265d5d411f92061ea85fd7929073428e8
+ ADA_VERSION=12.1.0
+ ;;
+ (14) VERSION=14.4.0
+ ISL_VERSION=0.24
+ ISL_SITE=https://libisl.sourceforge.io
+
ISL_HASH=sha512:ff6bdcff839e1cd473f2a0c1e4dd4a3612ec6fee4544ccbc62b530a7248db2cf93b4b99bf493a86ddf2aba00e768927265d5d411f92061ea85fd7929073428e8
+ ADA_VERSION=12.1.0
+ ;;
+ (10) VERSION=10.5.0
+ ISL_VERSION=0.20
+ ISL_SITE=http://isl.gforge.inria.fr
+
ISL_HASH=sha512:394bccd22d8e63cb052a60ad8b1a75f4ec43916a9482c66f5167b534b538161179c47919815983b7fbc20dfaa1a590e88b251850aa092bbffc2891635bf30dc4
+ ADA_VERSION=8.2.0
+ ;;
+esac
+# slot 0 is the system compiler and owns /usr; every other slot lives
+# in a prefix of its own and wears its major on every binary name, so
+# that no two slots ever write the same path
+if [[ $SLOT == 0 ]]; then
+ GCC_PREFIX=/usr
+else
+ GCC_PREFIX=/opt/gcc-${VERSION%%.*}
+fi
BASE_SOURCE_URL="https://ftp.gnu.org/pub/gnu/gcc/gcc-$VERSION"
SOURCE=gcc-$VERSION.tar.xz
SOURCE2=$SOURCE.sig
@@ -15,8 +42,8 @@ SOURCE_DIRECTORY="${BUILD_DIRECTORY}/gcc-${VERSION}"
if [[ "$GCC_CLOOG" == "y" ]]; then
SOURCE3=isl-${ISL_VERSION}.tar.xz
- SOURCE3_URL[0]=https://libisl.sourceforge.io/$SOURCE3
-
SOURCE3_HASH=sha512:ff6bdcff839e1cd473f2a0c1e4dd4a3612ec6fee4544ccbc62b530a7248db2cf93b4b99bf493a86ddf2aba00e768927265d5d411f92061ea85fd7929073428e8
+ SOURCE3_URL[0]=$ISL_SITE/$SOURCE3
+ SOURCE3_HASH=$ISL_HASH
fi
if list_find "$GCC_COMPILER" "ada" ; then
@@ -36,8 +63,8 @@ if list_find "$GCC_COMPILER" "ada" ; then
#
case "${SMGL_COMPAT_ARCHS[1]}" in
- x86_64) VERSION13=12.1.0 ARCH13=x86_64 ;;
- *) VERSION13=4.7.1 ARCH13=i686 ;;
+ x86_64) VERSION13=$ADA_VERSION 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
@@ -53,8 +80,8 @@ fi
WEB_SITE=https://gcc.gnu.org/
KEYWORDS="compiler"
ENTERED=20040420
- SHORT="the GNU C compiler collection"
+ SHORT="the GNU compiler collection, version ${VERSION%%.*}.x"
DOCS="$DOCS INSTALL"
cat << EOF
-The entire GNU C Compiler collection.
+The entire GNU Compiler Collection.
EOF
diff --git a/gnu/gcc/HISTORY b/gnu/gcc/HISTORY
index 52e9170..e5472ce 100644
--- a/gnu/gcc/HISTORY
+++ b/gnu/gcc/HISTORY
@@ -1,3 +1,30 @@
+2026-08-15 Ismael Luceno <ismael AT sourcemage.org>
+ * SLOTS: added, one slot per major version; slot 0 is the system
+ compiler and keeps every path, name and tablet it had, the rest
+ install beside it under /opt as they did as separate spells
+ * DETAILS: version per slot, 16.2.0/14.3.0/10.5.0; isl version and
+ ada bootstrap version follow the slot; GCC_PREFIX
+ * DEPENDS, BUILD: the compiler that builds any slot is slot 0
+ * PREPARE: slot 10 is not offered go, jit or rust
+ * CONFIGURE: only slot 0 is asked the bootstrap target, the
+ generic-build and the libitm questions
+ * PRE_BUILD: patches/<major> per slot; libtool handled the way each
+ version wanted it
+ * BUILD: only slot 0 is bootstrapped, owns the multilib setting and
+ the /usr layout; the others are suffixed with their major
+ * INSTALL: the unsuffixed names, the loader link and /lib/cpp are
+ slot 0's alone
+ * CONFLICTS: the split compiler spells are slot 0's alone; slots 14
+ and 10 conflict with the gcc-14 and gcc-10 spells they replace,
+ which own the same prefix wherever they are still installed
+ * UP_TRIGGERS: slot 0 only, the libstdc++ ABI is the system's
+ * SOLO: slot 0 only
+ * volatiles, REPAIR^none^volatiles: added the /opt specs
+ * Merged the gcc-14 and gcc-10 spells in as slots 14 and 10
+ * PREPARE: slots 14 and 10 take over the compiler selection made
+ for the deprecated gcc-14 and gcc-10 spells
+ * DETAILS: slot 14 updated to 14.4.0
+
2026-08-07 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 16.2.0
diff --git a/gnu/gcc/INSTALL b/gnu/gcc/INSTALL
index 6e74bd6..37d0464 100755
--- a/gnu/gcc/INSTALL
+++ b/gnu/gcc/INSTALL
@@ -9,23 +9,27 @@ 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/usr/bin/$i" || return 1
-done &&
+# the unsuffixed names, the loader link and /lib/cpp are the system's,
+# and there is only one system compiler to own them
+if [[ $SLOT == 0 ]]; then
+ # add standard symlinks
+ for i in cc c89 c99 c17; do
+ ln -vsf gcc "$INSTALL_ROOT/usr/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 &&
+ 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 &&
+ 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
+ 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
fi
diff --git a/gnu/gcc/PREPARE b/gnu/gcc/PREPARE
index b788ada..02ffdf9 100755
--- a/gnu/gcc/PREPARE
+++ b/gnu/gcc/PREPARE
@@ -1,8 +1,28 @@
. $GRIMOIRE/config_query_multi.function &&
message "${MESSAGE_COLOR}Note: C and C++ compilers are always
built${DEFAULT_COLOR}" &&
+
+# a slot that was a spell of its own until now inherits the answer that
+# spell was given, so that nobody is asked again what they already said
+if [[ ! $GCC_COMPILER ]]; then
+ case $SLOT in
+ 14) persistent_read gcc-14 GCC_COMPILER GCC_COMPILER ;;
+ 10) persistent_read gcc-10 GCC_10_COMPILER GCC_COMPILER ;;
+ esac
+fi
+
list_remove GCC_COMPILER c &&
list_remove GCC_COMPILER c++ &&
+
+# a slot answers these for itself -- the config is kept per instance --
+# so the older ones may be built with a different set of front ends,
+# and are only offered the ones they have
+GCC_LANGUAGES="ada brig d fortran go jit objc obj-c++" &&
+if [[ $SLOT == 10 ]]; then
+ list_remove GCC_LANGUAGES go &&
+ list_remove GCC_LANGUAGES jit
+fi &&
+
config_query_multi GCC_COMPILER "Select the additional compilers you want" \
none \
ada \
@@ -13,10 +33,12 @@ config_query_multi GCC_COMPILER "Select the additional
compilers you want" \
jit \
objc \
obj-c++ \
+ $GCC_LANGUAGES \
all &&
list_remove GCC_COMPILER none &&
if list_find "$GCC_COMPILER" "all" ; then
list_remove GCC_COMPILER all &&
+<<<<<<< HEAD
list_add GCC_COMPILER ada &&
list_add GCC_COMPILER brig &&
list_add GCC_COMPILER d &&
@@ -25,4 +47,9 @@ if list_find "$GCC_COMPILER" "all" ; then
list_add GCC_COMPILER jit &&
list_add GCC_COMPILER objc &&
list_add GCC_COMPILER obj-c++
+=======
+ for language in $GCC_LANGUAGES; do
+ list_add GCC_COMPILER $language
+ done
+>>>>>>> 278701bec907 (gcc: Merge gcc-10 and gcc-14 in as slots)
fi
diff --git a/gnu/gcc/PRE_BUILD b/gnu/gcc/PRE_BUILD
index 39b44ba..db3741d 100755
--- a/gnu/gcc/PRE_BUILD
+++ b/gnu/gcc/PRE_BUILD
@@ -31,22 +31,45 @@ fi &&
cd ${SOURCE_DIRECTORY} &&
-apply_patch_dir patches &&
+if [[ $SLOT == 14 ]]; then
+ patch_bundled_libtool \
+ libgo/config/ltmain.sh \
+ isl/interface/ltmain.sh \
+ isl/ltmain.sh
+fi &&
+
+# every slot has a patch dir of its own, named after the major it
+# patches, since a patch for one version rarely applies to another
+apply_patch_dir patches/${VERSION%%.*} &&
-# fix broken build of libatomic, which is needed by qtwebengine
-sed -i "/rm.*libatomic.la/D" libatomic/Makefile.in &&
+if [[ $SLOT == 0 ]]; then
+ # fix broken build of libatomic, which is needed by qtwebengine
+ sed -i "/rm.*libatomic.la/D" libatomic/Makefile.in
+fi &&
-# Drop .la files like everyone else.
-find . -name Makefile.in \
-| xargs sed -i
's,^\(LIBTOOL[[:space:]]*=[[:space:]]*\),\1'"$GRIMOIRE"'/libtool-nola ,' &&
+if [[ $SLOT != 14 ]]; then
+ # Drop .la files like everyone else.
+ find . -name Makefile.in \
+ | xargs sed -i
's,^\(LIBTOOL[[:space:]]*=[[:space:]]*\),\1'"$GRIMOIRE"'/libtool-nola ,'
+fi &&
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
+if [[ $SLOT != 10 ]]; then
+ # Fix build without libxcrypt
+ if ! is_depends_enabled $SPELL_INSTANCE 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
+fi &&
+
+if [[ $SLOT == 10 ]]; then
+ case "$HOST" in
+ (*-musl)
+ patch -fp1 -i "$SPELL_DIRECTORY/ssp_nonshared.diff"
+ ;;
+ esac
fi
diff --git a/gnu/gcc/REPAIR^none^volatiles b/gnu/gcc/REPAIR^none^volatiles
index d6dffea..f1ff96b 100755
--- a/gnu/gcc/REPAIR^none^volatiles
+++ b/gnu/gcc/REPAIR^none^volatiles
@@ -1 +1,2 @@
^/usr/lib/gcc/.*/.*/specs$
+^/opt/gcc-[0-9]*/lib/gcc/.*/.*/specs$
diff --git a/gnu/gcc/SLOTS b/gnu/gcc/SLOTS
new file mode 100755
index 0000000..884bfcc
--- /dev/null
+++ b/gnu/gcc/SLOTS
@@ -0,0 +1,6 @@
+# The system compiler is slot 0 -- the slot a spell that says nothing
+# about slots is in -- so 'cast gcc' is what it always was and every
+# other spell's 'depends gcc' still means it. The older majors are
+# slots of their own, cast as gcc:14 and gcc:10, and install beside it
+# under /opt.
+0 14 10
diff --git a/gnu/gcc/SOLO b/gnu/gcc/SOLO
index e69de29..23d920e 100755
--- a/gnu/gcc/SOLO
+++ b/gnu/gcc/SOLO
@@ -0,0 +1,3 @@
+# the system compiler must not be rebuilt while anything else is being
+# built with it; a slot under /opt is only another program
+0
diff --git a/gnu/gcc/UP_TRIGGERS b/gnu/gcc/UP_TRIGGERS
index 08675ea..ee93cc7 100755
--- a/gnu/gcc/UP_TRIGGERS
+++ b/gnu/gcc/UP_TRIGGERS
@@ -1,8 +1,11 @@
+# only the system compiler's ABI is the system's; a slot under /opt
+# takes nobody with it when it changes
+if [[ $SLOT == 0 ]]; then
LC_ALL=C
LC_CTYPE=C
LANG=C
local OLD_SPELL_VERSION=""
-spell_ok $SPELL && OLD_SPELL_VERSION="$(installed_version $SPELL)"
+spell_ok $SPELL_INSTANCE && OLD_SPELL_VERSION="$(installed_version
$SPELL_INSTANCE)"
if [ "$VERSION" != "$OLD_SPELL_VERSION" ]; then
# recast the split compiler spells on a gcc version update, see bug #9813
# this includes g77 for the upgrade from 3.4.x to 4.x compilers
@@ -20,8 +23,10 @@ if [[ ${OLD_SPELL_VERSION%%.*} < "5" ]];then
message "${MESSAGE_COLOR}This is an ABI-incompatible update of g++..."
message "Determining which spells need to be recast, this may take a
while.${DEFAULT_COLOR}"
- for other_spell in $(gaze installed | cut -d: -f1); do
- [[ $SPELL != $other_spell ]] || continue
+ # a row of gaze installed is instance:version:status:updated, and
+ # the instance is what has to be recast, slot and all
+ for other_spell in $(gaze installed | sed 's/\(:[^:]*\)\{3\}$//'); do
+ [[ $SPELL_INSTANCE != $other_spell ]] || continue
if gaze install $other_spell \
| xargs file -e apptype -e ascii -e compress -e tar \
| grep '\<ELF\>.*\<dynamically linked\>' \
@@ -39,3 +44,4 @@ if [[ -e "$INSTALL_ROOT/usr/lib/libstdc++.la" ]]; then
. $GRIMOIRE/la_remove_up_trigger.function
la_remove_up_trigger 1
fi
+fi
diff --git
a/gnu/gcc/patches/0002-Remove-conflicting-duplicated-manpages.patch
b/gnu/gcc/patches/0002-Remove-conflicting-duplicated-manpages.patch
deleted file mode 100644
index 636c6db..0000000
--- a/gnu/gcc/patches/0002-Remove-conflicting-duplicated-manpages.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-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/patches/0003-all-posix_memalign.patch
b/gnu/gcc/patches/0003-all-posix_memalign.patch
deleted file mode 100644
index f4ada43..0000000
--- a/gnu/gcc/patches/0003-all-posix_memalign.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-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/patches/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
b/gnu/gcc/patches/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
deleted file mode 100644
index 40b46ec..0000000
---
a/gnu/gcc/patches/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-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/patches/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
b/gnu/gcc/patches/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
deleted file mode 100644
index 8d9bb1e..0000000
---
a/gnu/gcc/patches/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-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
-+# <<a
href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.
-+
-+# 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/patches/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
b/gnu/gcc/patches/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
deleted file mode 100644
index 51224ec..0000000
---
a/gnu/gcc/patches/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-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/patches/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
b/gnu/gcc/patches/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
deleted file mode 100644
index 922b7c0..0000000
---
a/gnu/gcc/patches/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-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/patches/0010-druntime-link-against-libucontext-on-all-platforms.patch
b/gnu/gcc/patches/0010-druntime-link-against-libucontext-on-all-platforms.patch
deleted file mode 100644
index 657fc59..0000000
---
a/gnu/gcc/patches/0010-druntime-link-against-libucontext-on-all-platforms.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-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/patches/0012-libphobos-do-not-use-LFS64-symbols.patch
b/gnu/gcc/patches/0012-libphobos-do-not-use-LFS64-symbols.patch
deleted file mode 100644
index ae51a8e..0000000
--- a/gnu/gcc/patches/0012-libphobos-do-not-use-LFS64-symbols.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-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/patches/0013-libgo-fix-lfs64-use.patch
b/gnu/gcc/patches/0013-libgo-fix-lfs64-use.patch
deleted file mode 100644
index 85bcd1c..0000000
--- a/gnu/gcc/patches/0013-libgo-fix-lfs64-use.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-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/patches/0014-lto-plugin-no-la.patch
b/gnu/gcc/patches/0014-lto-plugin-no-la.patch
deleted file mode 100644
index 0aef288..0000000
--- a/gnu/gcc/patches/0014-lto-plugin-no-la.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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/patches/10/0001-Allow-transformations-on-info-file-names.patch
b/gnu/gcc/patches/10/0001-Allow-transformations-on-info-file-names.patch
new file mode 100644
index 0000000..46dc4e5
--- /dev/null
+++ b/gnu/gcc/patches/10/0001-Allow-transformations-on-info-file-names.patch
@@ -0,0 +1,683 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Matthias Klose <doko AT debian.org>
+Date: Tue, 17 Feb 2004 00:00:00 +0000
+Subject: Allow transformations on info file names
+
+Apply program_transform_name to info files too, to enable concurrent
+installation with other GCC versions.
+
+[ismael AT sourcemage.org: Edited patch description.
+ Fixed CLEANFILES and MAINTAINERCLEANFILES.
+ Fixed libgomp info file name]
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+
+Origin: Debian
+Upstream-Status: Unknown
+---
+ gcc/Makefile.in | 93
+++++++++++++++++++++++++++++++++++--------
+ gcc/ada/gnat-style.texi | 2
+ gcc/ada/gnat_rm.texi | 2
+ gcc/doc/cpp.texi | 2
+ gcc/doc/cppinternals.texi | 2
+ gcc/doc/extend.texi | 2
+ gcc/doc/gcc.texi | 2
+ gcc/doc/gccint.texi | 4 -
+ gcc/doc/install.texi | 2
+ gcc/doc/invoke.texi | 8 +--
+ gcc/doc/libgcc.texi | 2
+ gcc/doc/standards.texi | 2
+ gcc/fortran/Make-lang.in | 11 ++---
+ gcc/fortran/gfortran.texi | 2
+ gcc/go/Make-lang.in | 13 +++---
+ gcc/go/gccgo.texi | 4 -
+ libgomp/Makefile.am | 10 ++--
+ libgomp/Makefile.in | 14 +++---
+ libgomp/libgomp.texi | 2
+ libitm/Makefile.am | 11 +++--
+ libitm/Makefile.in | 11 +++--
+ libitm/libitm.texi | 2
+ libquadmath/Makefile.am | 12 +++--
+ libquadmath/Makefile.in | 15 +++---
+ libquadmath/libquadmath.texi | 2
+ 25 files changed, 153 insertions(+), 79 deletions(-)
+
+--- a/gcc/fortran/gfortran.texi
++++ b/gcc/fortran/gfortran.texi
+@@ -101,7 +101,7 @@ Texts being (a) (see below), and with th
+ @ifinfo
+ @dircategory Software development
+ @direntry
+-* gfortran: (gfortran). The GNU Fortran Compiler.
++* @value{fngfortran}: (@value{fngfortran}). The GNU
Fortran Compiler.
+ @end direntry
+ This file documents the use and the internals of
+ the GNU Fortran compiler, (@command{gfortran}).
+--- a/gcc/fortran/Make-lang.in
++++ b/gcc/fortran/Make-lang.in
+@@ -114,7 +114,8 @@ fortran.tags: force
+ cd $(srcdir)/fortran; etags -o TAGS.sub *.c *.h; \
+ etags --include TAGS.sub --include ../TAGS.sub
+
+-fortran.info: doc/gfortran.info doc/gfc-internals.info
++INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)')
++fortran.info: doc/$(INFO_FORTRAN_NAME).info
+ fortran.dvi: doc/gfortran.dvi doc/gfc-internals.dvi
+
+ F95_HTMLFILES = $(build_htmldir)/gfortran
+@@ -184,10 +185,10 @@ GFORTRAN_TEXI = \
+ $(srcdir)/doc/include/gcc-common.texi \
+ gcc-vers.texi
+
+-doc/gfortran.info: $(GFORTRAN_TEXI)
++doc/$(INFO_FORTRAN_NAME).info: $(GFORTRAN_TEXI)
+ if [ x$(BUILD_INFO) = xinfo ]; then \
+ rm -f doc/gfortran.info-*; \
+- $(MAKEINFO) -I $(srcdir)/doc/include -I $(srcdir)/fortran \
++ $(MAKEINFO) $(MAKEINFODEFS) -I $(srcdir)/doc/include -I
$(srcdir)/fortran \
+ -o $@ $<; \
+ else true; fi
+
+@@ -252,7 +253,7 @@ fortran.install-common: install-finclude
+
+ fortran.install-plugin:
+
+-fortran.install-info: $(DESTDIR)$(infodir)/gfortran.info
++fortran.install-info: $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info
+
+ fortran.install-man: $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext)
+
+@@ -270,7 +271,7 @@ fortran.uninstall:
+ rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext); \
+ rm -rf $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext); \
+ rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_TARGET_INSTALL_NAME)$(exeext); \
+- rm -rf $(DESTDIR)$(infodir)/gfortran.info*
++ rm -rf $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info*
+
+ #
+ # Clean hooks:
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -3223,8 +3223,31 @@ install-no-fixedincludes:
+
+ doc: $(BUILD_INFO) $(GENERATED_MANPAGES)
+
+-INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \
+- doc/gccinstall.info doc/cppinternals.info
++INFO_CPP_NAME = $(shell echo cpp|sed '$(program_transform_name)')
++INFO_GCC_NAME = $(shell echo gcc|sed '$(program_transform_name)')
++INFO_GXX_NAME = $(shell echo g++|sed '$(program_transform_name)')
++INFO_GCCINT_NAME = $(shell echo gccint|sed '$(program_transform_name)')
++INFO_GCCINSTALL_NAME = $(shell echo gccinstall|sed
'$(program_transform_name)')
++INFO_CPPINT_NAME = $(shell echo cppinternals|sed
'$(program_transform_name)')
++
++INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)')
++INFO_GCCGO_NAME = $(shell echo gccgo|sed '$(program_transform_name)')
++
++INFOFILES = doc/$(INFO_CPP_NAME).info doc/$(INFO_GCC_NAME).info \
++ doc/$(INFO_GCCINT_NAME).info \
++ doc/$(INFO_GCCINSTALL_NAME).info doc/$(INFO_CPPINT_NAME).info
++
++MAKEINFODEFS = -D 'fncpp $(INFO_CPP_NAME)' \
++ -D 'fngcc $(INFO_GCC_NAME)' \
++ -D 'fngcov $(INFO_GCC_NAME)' \
++ -D 'fngcovtool $(INFO_GCC_NAME)' \
++ -D 'fngcovdump $(INFO_GCC_NAME)' \
++ -D 'fngxx $(INFO_GXX_NAME)' \
++ -D 'fngccint $(INFO_GCCINT_NAME)' \
++ -D 'fngccinstall $(INFO_GCCINSTALL_NAME)' \
++ -D 'fncppint $(INFO_CPPINT_NAME)' \
++ -D 'fngfortran $(INFO_FORTRAN_NAME)' \
++ -D 'fngccgo $(INFO_GCCGO_NAME)'
+
+ info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo
+
+@@ -3272,7 +3295,20 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE)
+ if [ -n "$(PKGVERSION)" ]; then \
+ echo "@set VERSION_PACKAGE $(PKGVERSION)" >> $@T; \
+ fi
+- echo "@set BUGURL $(BUGURL_TEXI)" >> $@T; \
++ echo "@set BUGURL $(BUGURL_TEXI)" >> $@T
++ ( \
++ echo '@set fncpp $(INFO_CPP_NAME)'; \
++ echo '@set fngcc $(INFO_GCC_NAME)'; \
++ echo '@set fngcov $(INFO_GCC_NAME)'; \
++ echo '@set fngcovtool $(INFO_GCC_NAME)'; \
++ echo '@set fngcovdump $(INFO_GCC_NAME)'; \
++ echo '@set fngxx $(INFO_GXX_NAME)'; \
++ echo '@set fngccint $(INFO_GCCINT_NAME)'; \
++ echo '@set fngccinstall $(INFO_GCCINSTALL_NAME)'; \
++ echo '@set fncppint $(INFO_CPPINT_NAME)'; \
++ echo '@set fngfortran $(INFO_FORTRAN_NAME)'; \
++ echo '@set fngccgo $(INFO_GCCGO_NAME)'; \
++ ) >> $@T
+ mv -f $@T $@
+
+
+@@ -3280,21 +3316,41 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE)
+ # patterns. To use them, put each of the specific targets with its
+ # specific dependencies but no build commands.
+
+-doc/cpp.info: $(TEXI_CPP_FILES)
+-doc/gcc.info: $(TEXI_GCC_FILES)
+-doc/gccint.info: $(TEXI_GCCINT_FILES)
+-doc/cppinternals.info: $(TEXI_CPPINT_FILES)
+-
++# Generic entry to handle info files, which are not renamed (currently Ada)
+ doc/%.info: %.texi
+ if [ x$(BUILD_INFO) = xinfo ]; then \
+ $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
+ -I $(gcc_docdir)/include -o $@ $<; \
+ fi
+
++doc/$(INFO_CPP_NAME).info: $(TEXI_CPP_FILES)
++ if [ x$(BUILD_INFO) = xinfo ]; then \
++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir)
\
++ -I $(gcc_docdir)/include -o $@ $<; \
++ fi
++
++doc/$(INFO_GCC_NAME).info: $(TEXI_GCC_FILES)
++ if [ x$(BUILD_INFO) = xinfo ]; then \
++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir)
\
++ -I $(gcc_docdir)/include -o $@ $<; \
++ fi
++
++doc/$(INFO_GCCINT_NAME).info: $(TEXI_GCCINT_FILES)
++ if [ x$(BUILD_INFO) = xinfo ]; then \
++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir)
\
++ -I $(gcc_docdir)/include -o $@ $<; \
++ fi
++
++doc/$(INFO_CPPINT_NAME).info: $(TEXI_CPPINT_FILES)
++ if [ x$(BUILD_INFO) = xinfo ]; then \
++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir)
\
++ -I $(gcc_docdir)/include -o $@ $<; \
++ fi
++
+ # Duplicate entry to handle renaming of gccinstall.info
+-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
++doc/$(INFO_GCCINSTALL_NAME).info: $(TEXI_GCCINSTALL_FILES)
+ if [ x$(BUILD_INFO) = xinfo ]; then \
+- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir)
\
+ -I $(gcc_docdir)/include -o $@ $<; \
+ fi
+
+@@ -3701,11 +3757,11 @@ install-driver: installdirs xgcc$(exeext
+ # $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
+ # to do the install.
+ install-info:: doc installdirs \
+- $(DESTDIR)$(infodir)/cpp.info \
+- $(DESTDIR)$(infodir)/gcc.info \
+- $(DESTDIR)$(infodir)/cppinternals.info \
+- $(DESTDIR)$(infodir)/gccinstall.info \
+- $(DESTDIR)$(infodir)/gccint.info \
++ $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info \
++ $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info \
++ $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info \
++ $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info \
++ $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info \
+ lang.install-info
+
+ $(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
+@@ -3932,8 +3988,11 @@ uninstall: lang.uninstall
+ -rm -rf $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext)
+- -rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info*
+- -rm -f $(DESTDIR)$(infodir)/cppinternals.info*
$(DESTDIR)$(infodir)/gccint.info*
++ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info*
++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info*
++ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info*
++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info*
++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info*
+ for i in ar nm ranlib ; do \
+ install_name=`echo gcc-$$i|sed
'$(program_transform_name)'`$(exeext) ;\
+ target_install_name=$(target_noncanonical)-`echo gcc-$$i|sed
'$(program_transform_name)'`$(exeext) ; \
+--- a/gcc/ada/gnat-style.texi
++++ b/gcc/ada/gnat-style.texi
+@@ -31,7 +31,7 @@ Texts. A copy of the license is include
+
+ @dircategory Software development
+ @direntry
+-* gnat-style: (gnat-style). GNAT Coding Style
++* gnat-style: (gnat-style-10). GNAT Coding Style
+ @end direntry
+
+ @macro syntax{element}
+--- a/gcc/ada/gnat_rm.texi
++++ b/gcc/ada/gnat_rm.texi
+@@ -12,7 +12,7 @@
+ @finalout
+ @dircategory GNU Ada Tools
+ @direntry
+-* gnat_rm: (gnat_rm.info). gnat_rm
++* GNAT Reference Manual: (gnat_rm-10). Reference Manual for GNU Ada tools.
+ @end direntry
+
+ @definfoenclose strong,`,'
+--- a/gcc/doc/invoke.texi
++++ b/gcc/doc/invoke.texi
+@@ -14413,7 +14413,7 @@ One of the standard libraries bypassed b
+ @option{-nodefaultlibs} is @file{libgcc.a}, a library of internal
subroutines
+ which GCC uses to overcome shortcomings of particular machines, or special
+ needs for some languages.
+-(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler
++(@xref{Interface,,Interfacing to GCC Output,@value{fngccint},GNU Compiler
+ Collection (GCC) Internals},
+ for more discussion of @file{libgcc.a}.)
+ In most cases, you need @file{libgcc.a} even when you want to avoid
+@@ -14422,7 +14422,7 @@ or @option{-nodefaultlibs} you should us
+ This ensures that you have no unresolved references to internal GCC
+ library subroutines.
+ (An example of such an internal subroutine is @code{__main}, used to ensure
C++
+-constructors are called; @pxref{Collect2,,@code{collect2}, gccint,
++constructors are called; @pxref{Collect2,,@code{collect2}, @value{fngccint},
+ GNU Compiler Collection (GCC) Internals}.)
+
+ @item -e @var{entry}
+@@ -31072,7 +31072,7 @@ Note that you can also specify places to
+ @option{-B}, @option{-I} and @option{-L} (@pxref{Directory Options}). These
+ take precedence over places specified using environment variables, which
+ in turn take precedence over those specified by the configuration of GCC@.
+-@xref{Driver,, Controlling the Compilation Driver @file{gcc}, gccint,
++@xref{Driver,, Controlling the Compilation Driver @file{gcc},
@value{fngccint},
+ GNU Compiler Collection (GCC) Internals}.
+
+ @table @env
+@@ -31232,7 +31232,7 @@ the headers it contains change.
+
+ A precompiled header file is searched for when @code{#include} is
+ seen in the compilation. As it searches for the included file
+-(@pxref{Search Path,,Search Path,cpp,The C Preprocessor}) the
++(@pxref{Search Path,,Search Path,@value{fncpp},The C Preprocessor}) the
+ compiler looks for a precompiled header in each directory just before it
+ looks for the include file in that directory. The name searched for is
+ the name specified in the @code{#include} with @samp{.gch} appended. If
+--- a/gcc/doc/extend.texi
++++ b/gcc/doc/extend.texi
+@@ -24519,7 +24519,7 @@ want to write code that checks whether t
+ test for the GNU compiler the same way as for C programs: check for a
+ predefined macro @code{__GNUC__}. You can also use @code{__GNUG__} to
+ test specifically for GNU C++ (@pxref{Common Predefined Macros,,
+-Predefined Macros,cpp,The GNU C Preprocessor}).
++Predefined Macros,@value{fncpp},The GNU C Preprocessor}).
+
+ @menu
+ * C++ Volatiles:: What constitutes an access to a volatile object.
+--- a/gcc/doc/standards.texi
++++ b/gcc/doc/standards.texi
+@@ -332,5 +332,5 @@ specification, described at @uref{https:
+ GNAT Reference Manual}, for information on standard
+ conformance and compatibility of the Ada compiler.
+
+-@xref{Standards,,Standards, gfortran, The GNU Fortran Compiler}, for details
++@xref{Standards,,Standards, @value{fngfortran}, The GNU Fortran Compiler},
for details
+ of standards supported by GNU Fortran.
+--- a/gcc/doc/libgcc.texi
++++ b/gcc/doc/libgcc.texi
+@@ -24,7 +24,7 @@ that needs them.
+ GCC will also generate calls to C library routines, such as
+ @code{memcpy} and @code{memset}, in some cases. The set of routines
+ that GCC may possibly use is documented in @ref{Other
+-Builtins,,,gcc, Using the GNU Compiler Collection (GCC)}.
++Builtins,,,@value{fngcc}, Using the GNU Compiler Collection (GCC)}.
+
+ These routines take arguments and return values of a specific machine
+ mode, not a specific C type. @xref{Machine Modes}, for an explanation
+--- a/gcc/doc/gccint.texi
++++ b/gcc/doc/gccint.texi
+@@ -49,7 +49,7 @@ Texts being (a) (see below), and with th
+ @ifnottex
+ @dircategory Software development
+ @direntry
+-* gccint: (gccint). Internals of the GNU Compiler Collection.
++* @value{fngccint}: (@value{fngccint}). Internals of the GNU
Compiler Collection.
+ @end direntry
+ This file documents the internals of the GNU compilers.
+ @sp 1
+@@ -81,7 +81,7 @@ write front ends for new languages. It
+ @value{VERSION_PACKAGE}
+ @end ifset
+ version @value{version-GCC}. The use of the GNU compilers is documented in
a
+-separate manual. @xref{Top,, Introduction, gcc, Using the GNU
++separate manual. @xref{Top,, Introduction, @value{fngcc}, Using the GNU
+ Compiler Collection (GCC)}.
+
+ This manual is mainly a reference manual rather than a tutorial. It
+--- a/gcc/doc/cpp.texi
++++ b/gcc/doc/cpp.texi
+@@ -50,7 +50,7 @@ This manual contains no Invariant Sectio
+ @ifinfo
+ @dircategory Software development
+ @direntry
+-* Cpp: (cpp). The GNU C preprocessor.
++* @value{fncpp}: (@value{fncpp}). The GNU C preprocessor.
+ @end direntry
+ @end ifinfo
+
+--- a/gcc/doc/gcc.texi
++++ b/gcc/doc/gcc.texi
+@@ -129,7 +129,7 @@ version @value{version-GCC}.
+ The internals of the GNU compilers, including how to port them to new
+ targets and some information about how to write front ends for new
+ languages, are documented in a separate manual. @xref{Top,,
+-Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
++Introduction, @value{fngccint}, GNU Compiler Collection (GCC) Internals}.
+
+ @menu
+ * G++ and GCC:: You can compile C or C++ programs.
+--- a/gcc/doc/install.texi
++++ b/gcc/doc/install.texi
+@@ -93,7 +93,7 @@ Free Documentation License}''.
+ @end ifinfo
+ @dircategory Software development
+ @direntry
+-* gccinstall: (gccinstall). Installing the GNU Compiler Collection.
++* @value{fngccinstall}: (@value{fngccinstall}). Installing the GNU
Compiler Collection.
+ @end direntry
+
+ @c Part 3 Titlepage and Copyright
+--- a/gcc/doc/cppinternals.texi
++++ b/gcc/doc/cppinternals.texi
+@@ -7,7 +7,7 @@
+ @ifinfo
+ @dircategory Software development
+ @direntry
+-* Cpplib: (cppinternals). Cpplib internals.
++* @value{fncppint}: (@value{fncppint}). Cpplib internals.
+ @end direntry
+ @end ifinfo
+
+--- a/libgomp/libgomp.texi
++++ b/libgomp/libgomp.texi
+@@ -31,7 +31,7 @@ texts being (a) (see below), and with th
+ @ifinfo
+ @dircategory GNU Libraries
+ @direntry
+-* libgomp: (libgomp). GNU Offloading and Multi Processing Runtime
Library.
++* @value{fnlibgomp}: (@value{fnlibgomp}). GNU Offloading and Multi
Processing Runtime Library.
+ @end direntry
+
+ This manual documents libgomp, the GNU Offloading and Multi Processing
+--- a/libgomp/Makefile.in
++++ b/libgomp/Makefile.in
+@@ -310,13 +310,13 @@
+ am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
+ am__v_texidevnull_0 = > /dev/null
+ am__v_texidevnull_1 =
+-INFO_DEPS = libgomp.info
++INFO_DEPS = $(INFO_LIBGOMP_NAME).info
+ am__TEXINFO_TEX_DIR = $(srcdir)/../gcc/doc/include
+-DVIS = libgomp.dvi
+-PDFS = libgomp.pdf
+-PSS = libgomp.ps
+-HTMLS = libgomp.html
+-TEXINFOS = libgomp.texi
++DVIS = $(INFO_LIBGOMP_NAME).dvi
++PDFS = $(INFO_LIBGOMP_NAME).pdf
++PSS = $(INFO_LIBGOMP_NAME).ps
++HTMLS = $(INFO_LIBGOMP_NAME).html
++TEXINFOS = $(INFO_LIBGOMP_NAME).texi
+ TEXI2DVI = texi2dvi
+ TEXI2PDF = $(TEXI2DVI) --pdf --batch
+ MAKEINFOHTML = $(MAKEINFO) --html
+@@ -636,7 +636,8 @@ info_TEXINFOS = libgomp.texi
+
+ # AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO])
+ @BUILD_INFO_TRUE@STAMP_BUILD_INFO = stamp-build-info
++INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)')
+ CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO)
+-MAINTAINERCLEANFILES = $(srcdir)/libgomp.info
++MAINTAINERCLEANFILES = $(srcdir)/$(INFO_LIBGOMP_NAME).info
+ MULTISRCTOP =
+ MULTIBUILDTOP =
+@@ -1425,15 +1426,16 @@ env.lo: libgomp_f.h
+ env.o: libgomp_f.h
+
+ all-local: $(STAMP_GENINSRC)
+-
+-stamp-geninsrc: libgomp.info
+- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info
++stamp-geninsrc: $(INFO_LIBGOMP_NAME).info
++ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info
+ @touch $@
+
+-libgomp.info: $(STAMP_BUILD_INFO)
++libgomp.info: $(INFO_LIBGOMP_NAME).info
++ [ "$(INFO_LIBGOMP_NAME).info" = libgomp.info ] || cp
$(INFO_LIBGOMP_NAME).info libgomp.info
++$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO)
+
+ stamp-build-info: libgomp.texi
+- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
libgomp.info $(srcdir)/libgomp.texi
++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp
$(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info
$(srcdir)/libgomp.texi
+ @touch $@
+
+ # GNU Make needs to see an explicit $(MAKE) variable in the command it
+--- a/libgomp/Makefile.am
++++ b/libgomp/Makefile.am
+@@ -127,14 +127,16 @@ endif
+
+ all-local: $(STAMP_GENINSRC)
+
+-stamp-geninsrc: libgomp.info
+- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info
++stamp-geninsrc: $(INFO_LIBGOMP_NAME).info
++ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info
+ @touch $@
+
+-libgomp.info: $(STAMP_BUILD_INFO)
++libgomp.info: $(INFO_LIBGOMP_NAME).info
++ cp $(INFO_LIBGOMP_NAME).info libgomp.info
++$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO)
+
+ stamp-build-info: libgomp.texi
+- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
libgomp.info $(srcdir)/libgomp.texi
++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp
$(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info
$(srcdir)/libgomp.texi
+ @touch $@
+
+
+--- a/libitm/libitm.texi
++++ b/libitm/libitm.texi
+@@ -20,7 +20,7 @@ Free Documentation License''.
+ @ifinfo
+ @dircategory GNU Libraries
+ @direntry
+-* libitm: (libitm). GNU Transactional Memory Library
++* @value{fnlibitm}: (@value{fnlibitm}). GNU
Transactional Memory Library
+ @end direntry
+
+ This manual documents the GNU Transactional Memory Library.
+--- a/libitm/Makefile.am
++++ b/libitm/Makefile.am
+@@ -107,14 +107,17 @@ endif
+
+ all-local: $(STAMP_GENINSRC)
+
+-stamp-geninsrc: libitm.info
+- cp -p $(top_builddir)/libitm.info $(srcdir)/libitm.info
++INFO_LIBITM_NAME = $(shell echo libitm|sed '$(program_transform_name)')
++stamp-geninsrc: $(INFO_LIBITM_NAME).info
++ cp -p $(top_builddir)/$(INFO_LIBITM_NAME).info $(srcdir)/libitm.info
+ @touch $@
+
+-libitm.info: $(STAMP_BUILD_INFO)
++libitm.info: $(INFO_LIBITM_NAME).info
++ cp $(INFO_LIBITM_NAME).info libitm.info
++$(INFO_LIBITM_NAME).info: $(STAMP_BUILD_INFO)
+
+ stamp-build-info: libitm.texi
+- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
libitm.info $(srcdir)/libitm.texi
++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -D
'fnlibitm $(INFO_LIBITM_NAME)'-o $(INFO_LIBITM_NAME).info
$(srcdir)/libitm.texi
+ @touch $@
+
+
+--- a/libitm/Makefile.in
++++ b/libitm/Makefile.in
+@@ -1186,14 +1186,17 @@ vpath % $(strip $(search_path))
+
+ all-local: $(STAMP_GENINSRC)
+
+-stamp-geninsrc: libitm.info
+- cp -p $(top_builddir)/libitm.info $(srcdir)/libitm.info
++INFO_LIBITM_NAME = $(shell echo libitm|sed '$(program_transform_name)')
++stamp-geninsrc: $(INFO_LIBITM_NAME).info
++ cp -p $(top_builddir)/$(INFO_LIBITM_NAME).info $(srcdir)/libitm.info
+ @touch $@
+
+-libitm.info: $(STAMP_BUILD_INFO)
++libitm.info: $(INFO_LIBITM_NAME).info
++ cp $(INFO_LIBITM_NAME).info libitm.info
++$(INFO_LIBITM_NAME).info: $(STAMP_BUILD_INFO)
+
+ stamp-build-info: libitm.texi
+- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
libitm.info $(srcdir)/libitm.texi
++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -D
'fnlibitm $(INFO_LIBITM_NAME)' -o $(INFO_LIBITM_NAME).info
$(srcdir)/libitm.texi
+ @touch $@
+
+ # GNU Make needs to see an explicit $(MAKE) variable in the command it
+--- a/gcc/go/Make-lang.in
++++ b/gcc/go/Make-lang.in
+@@ -91,10 +91,11 @@ GO_TEXI_FILES = \
+ $(gcc_docdir)/include/gcc-common.texi \
+ gcc-vers.texi
+
+-doc/gccgo.info: $(GO_TEXI_FILES)
++INFO_GCCGO_NAME = $(shell echo gccgo|sed '$(program_transform_name)')
++doc/$(INFO_GCCGO_NAME).info: $(GO_TEXI_FILES)
+ if test "x$(BUILD_INFO)" = xinfo; then \
+- rm -f doc/gccgo.info*; \
+- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
++ rm -f doc/$(INFO_GCCGO_NAME).info*; \
++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+ -I $(gcc_docdir)/include -o $@ $<; \
+ else true; fi
+
+@@ -120,7 +121,7 @@ gccgo.pod: go/gccgo.texi
+ go.all.cross: gccgo-cross$(exeext)
+ go.start.encap: gccgo$(exeext)
+ go.rest.encap:
+-go.info: doc/gccgo.info
++go.info: doc/$(INFO_GCCGO_NAME).info
+ go.dvi: doc/gccgo.dvi
+ go.pdf: doc/gccgo.pdf
+ go.html: $(build_htmldir)/go/index.html
+@@ -159,7 +160,7 @@ go.install-common: installdirs
+
+ go.install-plugin:
+
+-go.install-info: $(DESTDIR)$(infodir)/gccgo.info
++go.install-info: $(DESTDIR)$(infodir)/$(INFO_GCCGO_NAME).info
+
+ go.install-pdf: doc/gccgo.pdf
+ @$(NORMAL_INSTALL)
+@@ -199,7 +200,7 @@ go.uninstall:
+ rm -rf $(DESTDIR)$(bindir)/$(GCCGO_INSTALL_NAME)$(exeext)
+ rm -rf $(DESTDIR)$(man1dir)/$(GCCGO_INSTALL_NAME)$(man1ext)
+ rm -rf $(DESTDIR)$(bindir)/$(GCCGO_TARGET_INSTALL_NAME)$(exeext)
+- rm -rf $(DESTDIR)$(infodir)/gccgo.info*
++ rm -rf $(DESTDIR)$(infodir)/$(INFO_GCCGO_NAME).info*
+
+ # Clean hooks.
+
+--- a/gcc/go/gccgo.texi
++++ b/gcc/go/gccgo.texi
+@@ -50,7 +50,7 @@ man page gfdl(7).
+ @format
+ @dircategory Software development
+ @direntry
+-* Gccgo: (gccgo). A GCC-based compiler for the Go language
++* @value{fngccgo}: (@value{fngccgo}). A GCC-based compiler for
the Go language
+ @end direntry
+ @end format
+
+@@ -124,7 +124,7 @@ and the Info entries for @file{gccgo} an
+
+ The @command{gccgo} command is a frontend to @command{gcc} and
+ supports many of the same options. @xref{Option Summary, , Option
+-Summary, gcc, Using the GNU Compiler Collection (GCC)}. This manual
++Summary, @value{fngcc}, Using the GNU Compiler Collection (GCC)}. This
manual
+ only documents the options specific to @command{gccgo}.
+
+ The @command{gccgo} command may be used to compile Go source code into
+--- a/libquadmath/libquadmath.texi
++++ b/libquadmath/libquadmath.texi
+@@ -25,7 +25,7 @@ copy and modify this GNU manual.
+ @ifinfo
+ @dircategory GNU Libraries
+ @direntry
+-* libquadmath: (libquadmath). GCC Quad-Precision Math
Library
++* @value{fnlibquadmath}: (@value{fnlibquadmath}). GCC
Quad-Precision Math Library
+ @end direntry
+
+ This manual documents the GCC Quad-Precision Math Library API.
+--- a/libquadmath/Makefile.am
++++ b/libquadmath/Makefile.am
+@@ -134,16 +134,18 @@ STAMP_BUILD_INFO =
+ endif
+
+
+-stamp-geninsrc: libquadmath.info
+- cp -p $(top_builddir)/libquadmath.info $(srcdir)/libquadmath.info
++INFO_LIBQMATH_NAME = $(shell echo libquadmath|sed
'$(program_transform_name)')
++
++stamp-geninsrc: $(INFO_LIBQMATH_NAME).info
++ cp -p $(top_builddir)/$(INFO_LIBQMATH_NAME).info
$(srcdir)/libquadmath.info
+ @touch $@
+
+ stamp-build-info: libquadmath.texi $(libquadmath_TEXINFOS)
+- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
libquadmath.info $(srcdir)/libquadmath.texi
++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o
$(INFO_LIBQMATH_NAME).info $(srcdir)/libquadmath.texi
+ @touch $@
+
+ CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO)
+-MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info
++MAINTAINERCLEANFILES = $(srcdir)/$(INFO_LIBQMATH_NAME).info
+
+ endif BUILD_LIBQUADMATH
+
+--- a/libquadmath/Makefile.in
++++ b/libquadmath/Makefile.in
+@@ -283,7 +283,8 @@ AM_V_texidevnull = $(am__v_texidevnull_@
+ am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
+ am__v_texidevnull_0 = > /dev/null
+ am__v_texidevnull_1 =
+-INFO_DEPS = libquadmath.info
++INFO_LIBQMATH_NAME = $(shell echo libquadmath|sed
'$(program_transform_name)')
++INFO_DEPS = $(INFO_LIBQMATH_NAME).info
+ am__TEXINFO_TEX_DIR = $(srcdir)/../gcc/doc/include
+ DVIS = libquadmath.dvi
+ PDFS = libquadmath.pdf
+@@ -552,8 +553,8 @@ AUTOMAKE_OPTIONS = foreign info-in-build
+
+ # AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO])
+ @BUILD_INFO_TRUE@@BUILD_LIBQUADMATH_TRUE@STAMP_BUILD_INFO = stamp-build-info
+ @BUILD_LIBQUADMATH_TRUE@CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO)
+-@BUILD_LIBQUADMATH_TRUE@MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info
++@BUILD_LIBQUADMATH_TRUE@MAINTAINERCLEANFILES =
$(srcdir)/$(INFO_LIBQMATH_NAME).info
+
+ # Automake Documentation:
+ # If your package has Texinfo files in many directories, you can use the
+@@ -1434,19 +1435,19 @@ uninstall-am: uninstall-dvi-am uninstall
+
@BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@
sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \
+
@BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@
> $@ || (rm -f $@ ; exit 1)
+
+-@BUILD_LIBQUADMATH_TRUE@stamp-geninsrc: libquadmath.info
+-@BUILD_LIBQUADMATH_TRUE@ cp -p $(top_builddir)/libquadmath.info
$(srcdir)/libquadmath.info
++@BUILD_LIBQUADMATH_TRUE@stamp-geninsrc: $(INFO_LIBQMATH_NAME).info
++@BUILD_LIBQUADMATH_TRUE@ cp -p
$(top_builddir)/$(INFO_LIBQMATH_NAME).info
$(srcdir)/$(INFO_LIBQMATH_NAME).info
+ @BUILD_LIBQUADMATH_TRUE@ @touch $@
+
+ @BUILD_LIBQUADMATH_TRUE@stamp-build-info: libquadmath.texi
$(libquadmath_TEXINFOS)
+-@BUILD_LIBQUADMATH_TRUE@ $(MAKEINFO) $(AM_MAKEINFOFLAGS)
$(MAKEINFOFLAGS) -I $(srcdir) -o libquadmath.info $(srcdir)/libquadmath.texi
++@BUILD_LIBQUADMATH_TRUE@ $(MAKEINFO) $(AM_MAKEINFOFLAGS)
$(MAKEINFOFLAGS) -I $(srcdir) -o $(INFO_LIBQMATH_NAME).info
$(srcdir)/libquadmath.texi
+ @BUILD_LIBQUADMATH_TRUE@ @touch $@
+
+ all-local: $(ALL_LOCAL_DEPS)
+
+ # Unconditionally override this target, so that automake's definition
+ # does not wrongly interfere.
+-libquadmath.info: $(STAMP_BUILD_INFO)
++$(INFO_LIBQMATH_NAME).info: $(STAMP_BUILD_INFO)
+
+ libquadmath-vers.texi:
+ echo "@set BUGURL $(REPORT_BUGS_TEXI)" > $@
diff --git
a/gnu/gcc/patches/10/0001-Remove-conflicting-duplicated-manpages.patch
b/gnu/gcc/patches/10/0001-Remove-conflicting-duplicated-manpages.patch
new file mode 100644
index 0000000..f58546b
--- /dev/null
+++ b/gnu/gcc/patches/10/0001-Remove-conflicting-duplicated-manpages.patch
@@ -0,0 +1,33 @@
+From 0000000000000000000000000000000000000000 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] 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
+Signed-off-by: Ismael Luceno <ismael AT sourcemage.org>
+Upstream-Status: Inappropriate
+---
+ Makefile.in | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index 5ac87c98230c..fdc40d7ce1d7 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -3756,10 +3756,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 $@
diff --git
a/gnu/gcc/patches/10/0001-musl-always-use--lib--directory-for-all-x86_64-ABIs.patch
b/gnu/gcc/patches/10/0001-musl-always-use--lib--directory-for-all-x86_64-ABIs.patch
new file mode 100644
index 0000000..80fa28c
--- /dev/null
+++
b/gnu/gcc/patches/10/0001-musl-always-use--lib--directory-for-all-x86_64-ABIs.patch
@@ -0,0 +1,116 @@
+From f313773d9087298a3f0ab45602791946debff8b7 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox AT gentoo.org>
+Date: Mon, 05 Jul 2021 18:15:44 +0000
+Subject: [PATCH] musl: always use 'lib' directory for all x86_64 ABIs
[PR90077]
+Message-ID: <20210705181544.1519647-1-slyfox AT gentoo.org>
+
+From: Sergei Trofimovich <siarheit AT google.com>
+
+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 iodev.co.uk>
+---
+ 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 0230bb88861..a87a59c9403 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -1923,7 +1923,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"
+@@ -1983,7 +1986,10 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
+ tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-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 00000000000..58e23c3c7dc
+--- /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
++# <<a
href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.
++
++# 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.32.0
diff --git a/gnu/gcc/patches/10/50_all_posix_memalign.patch
b/gnu/gcc/patches/10/50_all_posix_memalign.patch
new file mode 100644
index 0000000..d974b56
--- /dev/null
+++ b/gnu/gcc/patches/10/50_all_posix_memalign.patch
@@ -0,0 +1,31 @@
+Origin: Gentoo
+
+diff -Naur gcc-7.1.0.orig/gcc/config/i386/pmm_malloc.h
gcc-7.1.0/gcc/config/i386/pmm_malloc.h
+--- gcc-7.1.0.orig/gcc/config/i386/pmm_malloc.h 2017-01-01
04:07:43.000000000 -0800
++++ gcc-7.1.0/gcc/config/i386/pmm_malloc.h 2017-05-07 11:35:22.878398460
-0700
+@@ -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 @@
+ 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;
diff --git
a/gnu/gcc/patches/14/0002-Remove-conflicting-duplicated-manpages.patch
b/gnu/gcc/patches/14/0002-Remove-conflicting-duplicated-manpages.patch
new file mode 100644
index 0000000..636c6db
--- /dev/null
+++ b/gnu/gcc/patches/14/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/patches/14/0003-all-posix_memalign.patch
b/gnu/gcc/patches/14/0003-all-posix_memalign.patch
new file mode 100644
index 0000000..f4ada43
--- /dev/null
+++ b/gnu/gcc/patches/14/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/patches/14/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
b/gnu/gcc/patches/14/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
new file mode 100644
index 0000000..40b46ec
--- /dev/null
+++
b/gnu/gcc/patches/14/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/patches/14/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
b/gnu/gcc/patches/14/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/patches/14/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
++# <<a
href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.
++
++# 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/patches/14/0006-ada-libgnarl-compatibility-for-musl.patch
b/gnu/gcc/patches/14/0006-ada-libgnarl-compatibility-for-musl.patch
new file mode 100644
index 0000000..a9970f7
--- /dev/null
+++ b/gnu/gcc/patches/14/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/patches/14/0007-ada-musl-support-fixes.patch
b/gnu/gcc/patches/14/0007-ada-musl-support-fixes.patch
new file mode 100644
index 0000000..d8a1b3a
--- /dev/null
+++ b/gnu/gcc/patches/14/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/patches/14/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
b/gnu/gcc/patches/14/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
new file mode 100644
index 0000000..51224ec
--- /dev/null
+++
b/gnu/gcc/patches/14/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/patches/14/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
b/gnu/gcc/patches/14/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
new file mode 100644
index 0000000..922b7c0
--- /dev/null
+++
b/gnu/gcc/patches/14/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/patches/14/0010-druntime-link-against-libucontext-on-all-platforms.patch
b/gnu/gcc/patches/14/0010-druntime-link-against-libucontext-on-all-platforms.patch
new file mode 100644
index 0000000..657fc59
--- /dev/null
+++
b/gnu/gcc/patches/14/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/patches/14/0011-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
b/gnu/gcc/patches/14/0011-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
new file mode 100644
index 0000000..d42abea
--- /dev/null
+++
b/gnu/gcc/patches/14/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/patches/14/0012-libphobos-do-not-use-LFS64-symbols.patch
b/gnu/gcc/patches/14/0012-libphobos-do-not-use-LFS64-symbols.patch
new file mode 100644
index 0000000..ae51a8e
--- /dev/null
+++ b/gnu/gcc/patches/14/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/patches/14/0013-libgo-fix-lfs64-use.patch
b/gnu/gcc/patches/14/0013-libgo-fix-lfs64-use.patch
new file mode 100644
index 0000000..85bcd1c
--- /dev/null
+++ b/gnu/gcc/patches/14/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/patches/14/0014-lto-plugin-no-la.patch
b/gnu/gcc/patches/14/0014-lto-plugin-no-la.patch
new file mode 100644
index 0000000..0aef288
--- /dev/null
+++ b/gnu/gcc/patches/14/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/patches/16/0002-Remove-conflicting-duplicated-manpages.patch
b/gnu/gcc/patches/16/0002-Remove-conflicting-duplicated-manpages.patch
new file mode 100644
index 0000000..636c6db
--- /dev/null
+++ b/gnu/gcc/patches/16/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/patches/16/0003-all-posix_memalign.patch
b/gnu/gcc/patches/16/0003-all-posix_memalign.patch
new file mode 100644
index 0000000..f4ada43
--- /dev/null
+++ b/gnu/gcc/patches/16/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/patches/16/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
b/gnu/gcc/patches/16/0004-convert-__cpu_indicator_init-to-__cpu_indicator_init.patch
new file mode 100644
index 0000000..40b46ec
--- /dev/null
+++
b/gnu/gcc/patches/16/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/patches/16/0005-musl-always-use-lib-directory-for-all-x86_64-ABIs-PR.patch
b/gnu/gcc/patches/16/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/patches/16/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
++# <<a
href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.
++
++# 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/patches/16/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
b/gnu/gcc/patches/16/0008-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
new file mode 100644
index 0000000..51224ec
--- /dev/null
+++
b/gnu/gcc/patches/16/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/patches/16/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
b/gnu/gcc/patches/16/0009-gdc-unconditionally-link-libgphobos-against-libucont.patch
new file mode 100644
index 0000000..922b7c0
--- /dev/null
+++
b/gnu/gcc/patches/16/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/patches/16/0010-druntime-link-against-libucontext-on-all-platforms.patch
b/gnu/gcc/patches/16/0010-druntime-link-against-libucontext-on-all-platforms.patch
new file mode 100644
index 0000000..657fc59
--- /dev/null
+++
b/gnu/gcc/patches/16/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/patches/16/0012-libphobos-do-not-use-LFS64-symbols.patch
b/gnu/gcc/patches/16/0012-libphobos-do-not-use-LFS64-symbols.patch
new file mode 100644
index 0000000..ae51a8e
--- /dev/null
+++ b/gnu/gcc/patches/16/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/patches/16/0013-libgo-fix-lfs64-use.patch
b/gnu/gcc/patches/16/0013-libgo-fix-lfs64-use.patch
new file mode 100644
index 0000000..85bcd1c
--- /dev/null
+++ b/gnu/gcc/patches/16/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/patches/16/0014-lto-plugin-no-la.patch
b/gnu/gcc/patches/16/0014-lto-plugin-no-la.patch
new file mode 100644
index 0000000..0aef288
--- /dev/null
+++ b/gnu/gcc/patches/16/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/ssp_nonshared.diff b/gnu/gcc/ssp_nonshared.diff
new file mode 100644
index 0000000..2d3e586
--- /dev/null
+++ b/gnu/gcc/ssp_nonshared.diff
@@ -0,0 +1,14 @@
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index c48178f1aa3..e2fae4ef055 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -863,7 +863,8 @@ proper position among the other output files. */
+ #ifndef LINK_SSP_SPEC
+ #ifdef TARGET_LIBC_PROVIDES_SSP
+ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
+- "|fstack-protector-strong|fstack-protector-explicit:}"
++ "|fstack-protector-strong|fstack-protector-explicit" \
++ ":-lssp_nonshared}"
+ #else
+ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
+ "|fstack-protector-strong|fstack-protector-explicit" \
diff --git a/gnu/gcc/volatiles b/gnu/gcc/volatiles
index d6dffea..f1ff96b 100755
--- a/gnu/gcc/volatiles
+++ b/gnu/gcc/volatiles
@@ -1 +1,2 @@
^/usr/lib/gcc/.*/.*/specs$
+^/opt/gcc-[0-9]*/lib/gcc/.*/.*/specs$
- [[SM-Commit] ] GIT changes to master grimoire by Ismael Luceno (b6dc7a1fa4ee78484dab173dcd8e99c07c3d749a), Ismael Luceno, 08/15/2026
Archive powered by MHonArc 2.6.24.