commit:     f7c6ba09d654605ace18e54523f5b60bf48cfca8
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 13 11:24:31 2026 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri Mar 13 11:26:06 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f7c6ba09

sys-devel/gcc: add m68k workaround and keyword 15.2.1_p20260214 for ~m68k

Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123853
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33850
Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113357
Bug: https://bugs.gentoo.org/932733
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 sys-devel/gcc/files/gcc-15-m68k-workaround.patch | 49 ++++++++++++++++++++++++
 sys-devel/gcc/gcc-15.2.1_p20260214.ebuild        |  3 +-
 sys-devel/gcc/gcc-15.2.1_p20260221.ebuild        |  3 +-
 sys-devel/gcc/gcc-15.2.1_p20260228.ebuild        |  3 +-
 sys-devel/gcc/gcc-15.2.1_p20260307.ebuild        |  3 +-
 sys-devel/gcc/gcc-15.3.9999.ebuild               |  5 ++-
 sys-devel/gcc/gcc-16.0.1_p20260215.ebuild        |  1 +
 sys-devel/gcc/gcc-16.0.1_p20260222.ebuild        |  1 +
 sys-devel/gcc/gcc-16.0.1_p20260301.ebuild        |  1 +
 sys-devel/gcc/gcc-16.0.1_p20260308.ebuild        |  1 +
 sys-devel/gcc/gcc-16.0.9999.ebuild               |  3 +-
 11 files changed, 66 insertions(+), 7 deletions(-)

diff --git a/sys-devel/gcc/files/gcc-15-m68k-workaround.patch 
b/sys-devel/gcc/files/gcc-15-m68k-workaround.patch
new file mode 100644
index 000000000000..1d57484577de
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-15-m68k-workaround.patch
@@ -0,0 +1,49 @@
+From 0795902a1eea6a6f54249fe542eb6efbdea22f6e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= <[email protected]>
+Date: Wed, 11 Mar 2026 18:37:59 +0100
+Subject: [PATCH] Workaround to sanitize m68k until upstream has fixed things
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* Disable fold_mem_offsets by default
+* Do not enable late_combine_instructions with -O2 or higher
+
+Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123853
+Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33850
+Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113357
+Bug: https://bugs.gentoo.org/932733
+Signed-off-by: Andreas K. Hüttel <[email protected]>
+---
+ gcc/common.opt | 2 +-
+ gcc/opts.cc    | 1 -
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/gcc/common.opt b/gcc/common.opt
+index e3fa0dacec4c..a562b598153f 100644
+--- a/gcc/common.opt
++++ b/gcc/common.opt
+@@ -1297,7 +1297,7 @@ Common Var(flag_cprop_registers) Optimization
+ Perform a register copy-propagation optimization pass.
+ 
+ ffold-mem-offsets
+-Common Var(flag_fold_mem_offsets) Init(1) Optimization
++Common Var(flag_fold_mem_offsets) Init(0) Optimization
+ Fold instructions calculating memory offsets to the memory access instruction 
if possible.
+ 
+ fcrossjumping
+diff --git a/gcc/opts.cc b/gcc/opts.cc
+index ffcbdfef0bd9..beac74705929 100644
+--- a/gcc/opts.cc
++++ b/gcc/opts.cc
+@@ -666,7 +666,6 @@ static const struct default_options 
default_options_table[] =
+     { OPT_LEVELS_2_PLUS, OPT_finline_functions, NULL, 1 },
+     { OPT_LEVELS_2_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 },
+     { OPT_LEVELS_2_PLUS, OPT_foptimize_crc, NULL, 1 },
+-    { OPT_LEVELS_2_PLUS, OPT_flate_combine_instructions, NULL, 1 },
+ 
+     /* -O2 and above optimizations, but not -Os or -Og.  */
+     { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_falign_functions, NULL, 1 },
+-- 
+2.52.0
+

diff --git a/sys-devel/gcc/gcc-15.2.1_p20260214.ebuild 
b/sys-devel/gcc/gcc-15.2.1_p20260214.ebuild
index f04dde562c96..5a34a76a0285 100644
--- a/sys-devel/gcc/gcc-15.2.1_p20260214.ebuild
+++ b/sys-devel/gcc/gcc-15.2.1_p20260214.ebuild
@@ -30,7 +30,7 @@ if tc_is_live ; then
        EGIT_BRANCH=master
 elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
        # Don't keyword live ebuilds
-       KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv 
~s390 ~sparc x86"
+       KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 
~riscv ~s390 ~sparc x86"
        :;
 fi
 
@@ -52,5 +52,6 @@ src_prepare() {
 
        toolchain_src_prepare
        eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+       [[ ${CHOST} == m68k-* ]] && eapply 
"${FILESDIR}"/${PN}-15-m68k-workaround.patch
        eapply_user
 }

diff --git a/sys-devel/gcc/gcc-15.2.1_p20260221.ebuild 
b/sys-devel/gcc/gcc-15.2.1_p20260221.ebuild
index bd7ab16f42a9..137388e82fc5 100644
--- a/sys-devel/gcc/gcc-15.2.1_p20260221.ebuild
+++ b/sys-devel/gcc/gcc-15.2.1_p20260221.ebuild
@@ -30,7 +30,7 @@ if tc_is_live ; then
        EGIT_BRANCH=master
 elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
        # Don't keyword live ebuilds
-       #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86"
+       #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86"
        :;
 fi
 
@@ -52,5 +52,6 @@ src_prepare() {
 
        toolchain_src_prepare
        eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+       [[ ${CHOST} == m68k-* ]] && eapply 
"${FILESDIR}"/${PN}-15-m68k-workaround.patch
        eapply_user
 }

diff --git a/sys-devel/gcc/gcc-15.2.1_p20260228.ebuild 
b/sys-devel/gcc/gcc-15.2.1_p20260228.ebuild
index bd7ab16f42a9..137388e82fc5 100644
--- a/sys-devel/gcc/gcc-15.2.1_p20260228.ebuild
+++ b/sys-devel/gcc/gcc-15.2.1_p20260228.ebuild
@@ -30,7 +30,7 @@ if tc_is_live ; then
        EGIT_BRANCH=master
 elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
        # Don't keyword live ebuilds
-       #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86"
+       #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86"
        :;
 fi
 
@@ -52,5 +52,6 @@ src_prepare() {
 
        toolchain_src_prepare
        eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+       [[ ${CHOST} == m68k-* ]] && eapply 
"${FILESDIR}"/${PN}-15-m68k-workaround.patch
        eapply_user
 }

diff --git a/sys-devel/gcc/gcc-15.2.1_p20260307.ebuild 
b/sys-devel/gcc/gcc-15.2.1_p20260307.ebuild
index bd7ab16f42a9..137388e82fc5 100644
--- a/sys-devel/gcc/gcc-15.2.1_p20260307.ebuild
+++ b/sys-devel/gcc/gcc-15.2.1_p20260307.ebuild
@@ -30,7 +30,7 @@ if tc_is_live ; then
        EGIT_BRANCH=master
 elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
        # Don't keyword live ebuilds
-       #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86"
+       #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86"
        :;
 fi
 
@@ -52,5 +52,6 @@ src_prepare() {
 
        toolchain_src_prepare
        eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+       [[ ${CHOST} == m68k-* ]] && eapply 
"${FILESDIR}"/${PN}-15-m68k-workaround.patch
        eapply_user
 }

diff --git a/sys-devel/gcc/gcc-15.3.9999.ebuild 
b/sys-devel/gcc/gcc-15.3.9999.ebuild
index e4f9afcc48e4..757ab8f09d68 100644
--- a/sys-devel/gcc/gcc-15.3.9999.ebuild
+++ b/sys-devel/gcc/gcc-15.3.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -28,7 +28,7 @@ if tc_is_live ; then
        EGIT_BRANCH=releases/gcc-$(ver_cut 1)
 elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
        # Don't keyword live ebuilds
-       #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86"
+       #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86"
        :;
 fi
 
@@ -50,5 +50,6 @@ src_prepare() {
 
        toolchain_src_prepare
        eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+       [[ ${CHOST} == m68k-* ]] && eapply 
"${FILESDIR}"/${PN}-15-m68k-workaround.patch
        eapply_user
 }

diff --git a/sys-devel/gcc/gcc-16.0.1_p20260215.ebuild 
b/sys-devel/gcc/gcc-16.0.1_p20260215.ebuild
index bd4fb971be2b..7aa84a02fb7e 100644
--- a/sys-devel/gcc/gcc-16.0.1_p20260215.ebuild
+++ b/sys-devel/gcc/gcc-16.0.1_p20260215.ebuild
@@ -52,5 +52,6 @@ src_prepare() {
 
        toolchain_src_prepare
        eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+       [[ ${CHOST} == m68k-* ]] && eapply 
"${FILESDIR}"/${PN}-15-m68k-workaround.patch
        eapply_user
 }

diff --git a/sys-devel/gcc/gcc-16.0.1_p20260222.ebuild 
b/sys-devel/gcc/gcc-16.0.1_p20260222.ebuild
index deab73994c40..45fd51ea37f2 100644
--- a/sys-devel/gcc/gcc-16.0.1_p20260222.ebuild
+++ b/sys-devel/gcc/gcc-16.0.1_p20260222.ebuild
@@ -52,5 +52,6 @@ src_prepare() {
 
        toolchain_src_prepare
        eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+       [[ ${CHOST} == m68k-* ]] && eapply 
"${FILESDIR}"/${PN}-15-m68k-workaround.patch
        eapply_user
 }

diff --git a/sys-devel/gcc/gcc-16.0.1_p20260301.ebuild 
b/sys-devel/gcc/gcc-16.0.1_p20260301.ebuild
index deab73994c40..45fd51ea37f2 100644
--- a/sys-devel/gcc/gcc-16.0.1_p20260301.ebuild
+++ b/sys-devel/gcc/gcc-16.0.1_p20260301.ebuild
@@ -52,5 +52,6 @@ src_prepare() {
 
        toolchain_src_prepare
        eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+       [[ ${CHOST} == m68k-* ]] && eapply 
"${FILESDIR}"/${PN}-15-m68k-workaround.patch
        eapply_user
 }

diff --git a/sys-devel/gcc/gcc-16.0.1_p20260308.ebuild 
b/sys-devel/gcc/gcc-16.0.1_p20260308.ebuild
index f0674c77da39..34f248837a73 100644
--- a/sys-devel/gcc/gcc-16.0.1_p20260308.ebuild
+++ b/sys-devel/gcc/gcc-16.0.1_p20260308.ebuild
@@ -52,5 +52,6 @@ src_prepare() {
 
        toolchain_src_prepare
        eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+       [[ ${CHOST} == m68k-* ]] && eapply 
"${FILESDIR}"/${PN}-15-m68k-workaround.patch
        eapply_user
 }

diff --git a/sys-devel/gcc/gcc-16.0.9999.ebuild 
b/sys-devel/gcc/gcc-16.0.9999.ebuild
index 3a4e5db657f4..2046aae02f4b 100644
--- a/sys-devel/gcc/gcc-16.0.9999.ebuild
+++ b/sys-devel/gcc/gcc-16.0.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -50,5 +50,6 @@ src_prepare() {
 
        toolchain_src_prepare
        eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+       [[ ${CHOST} == m68k-* ]] && eapply 
"${FILESDIR}"/${PN}-15-m68k-workaround.patch
        eapply_user
 }

Reply via email to