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 }
