Skip to content

Commit 2959661

Browse files
committed
sys-devel/gcc-14.2.0: version bump (should fix Darwin24)
Signed-off-by: Fabian Groffen <[email protected]>
1 parent 7bac23d commit 2959661

File tree

4 files changed

+143
-124
lines changed

4 files changed

+143
-124
lines changed

sys-devel/gcc/Manifest

+3
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,8 @@ DIST gcc-14.1.0-arm64-darwin.patch 200436 BLAKE2B ba92f8a1586f01085775c2a0a724f5
66
DIST gcc-14.1.0-macos-SDK-availability.patch 9044 BLAKE2B 783340d55590337b156d3fd866027a931bafc3bd7d6a14c7d7940e13ff6fffebe351dae3a6d98c0ba7c7c5b4f226179bb24a8714f5ca334170ab353e0c2f4be8 SHA512 6db397718d20eca0b4caf7de45358379d05e83bfc4cb4d800aaf82dd8b7994af5dbfd9ff56e3480722dfec78ad381457034552358fc1e8eeb0a5a3e3ad0e4cc1
77
DIST gcc-14.1.0-musl-patches-1.tar.xz 3600 BLAKE2B 4cd920b7ca1f122cae806707564d8e45bfd48e78c88788a12a301f6068b5a5f335d8885e67479ac536c66aeaa81f2ecb7240ae56e9fc821a7246ab66b453711f SHA512 61c48d90a55dfc2129d96aee69d939d6a89f6407f69f7bd12c1a619f28989f471fd219d731958f8e62b0fd650c32300f0ad8dc06d5df23d9fc8c1a77fe210c25
88
DIST gcc-14.1.0-patches-3.tar.xz 11868 BLAKE2B 06d079766bfbaddd066cd70f2d3f5e9ef17f3617fe90de4cb0a9562e6c3b2dc46d94dce03649f2e530c21e3fa0e0e6e5aae3c7b768bd08717c4f29ff29b00a04 SHA512 636a2853b5bf057fef262d54bcb250f3ebf63c600bc184cfea499783d254c462f6c0ecf5f0c5dac6634110ba0d11193fbfb96850ac27fc5a318f1d810f2231cc
9+
DIST gcc-14.1.0-patches-4.tar.xz 11620 BLAKE2B c819fbdea1f3bf10c8d4214d4c33cf28c1410171d2833b6f8c1225eeefe749ddb815067b3fdb750e5839761aee8d39ffc51ffb492f88e630076818a61b18362b SHA512 0d6e1b04591607dfc8022124b186ce499467c32db7667ee1a640fe2e07706597edc0e4ad5c7ebcb75c8f5fc6e45e9b9ef715402c71ff9ab21fe380007fe5d84f
910
DIST gcc-14.1.0.tar.xz 92265736 BLAKE2B 7efd6574b8bca081de6e31480ec0565c6d7fb773383e8e1fdcc17e35bba2bf44b3f4f995cdbcccd001689926e96a6563ef3d099902fe3b37ab09dcf553ab0596 SHA512 e9e224f2b26646fcf038d28dfa08b94c623bc57941f99894a321d01c600f7c68aff6b8837fd25e73e540de1f8de5606e98694a62cdcdfb525ce768b3ef6879ea
11+
DIST gcc-14.2.0-arm64-darwin.patch 203103 BLAKE2B a040283f1ffdd0e912767b64515c18d194eb9cf2f6c55b93e7a9fab8436920b4461539ebf2482e26119001ea6f42f7294670351d853b42ca333f870365e9cc9b SHA512 c96d92289492d76f6e4e6376148c53d7e962fd15d03b1ecfe16f8036a0ff0c1e9277bf00566ecfe0d54765a679ce7d7470f6e696f8e3fe7b419000b924260fcf
12+
DIST gcc-14.2.0.tar.xz 92306460 BLAKE2B 87baf2a06dfa75d8fb6cd62c747ef1f57d3b9bbbe33a360d9ed3de4b4dbeaa8d920504c67e409bd9863414202c14fd854b46108e984418171205119216d03d3b SHA512 932bdef0cda94bacedf452ab17f103c0cb511ff2cec55e9112fc0328cbf1d803b42595728ea7b200e0a057c03e85626f937012e49a7515bc5dd256b2bf4bc396
1013
DIST gcc-validate-failures-a447cd6dee206facb66720bdacf0c765a8b09f33.py 27537 BLAKE2B 96c7474de0bc50ab890a91551412398c979396c43aa237a4b6d8baa98ce7fda2cc9f5a755a03fd9d055d885ee2fb40ba29644a0649c24398361ce75a20fae634 SHA512 409434953351cf1f2287f1e4a4fbde5b28a27add35ddd284080acec71b33cb4ec5e1c07f41a79fac060bd6f1eedd198812495141923e410ded907429fe515f83

sys-devel/gcc/files/gcc-13-darwin14-fix-duplicate-libs.patch

-28
This file was deleted.

sys-devel/gcc/files/gcc-13-darwin14-math_h.patch

-96
This file was deleted.

sys-devel/gcc/gcc-14.2.0.ebuild

+140
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
# Copyright 1999-2024 Gentoo Authors
2+
# Distributed under the terms of the GNU General Public License v2
3+
4+
EAPI=8
5+
6+
TOOLCHAIN_PATCH_DEV="sam"
7+
TOOLCHAIN_HAS_TESTS=1
8+
PATCH_GCC_VER="14.1.0"
9+
PATCH_VER="4"
10+
MUSL_VER="1"
11+
MUSL_GCC_VER="14.1.0"
12+
PYTHON_COMPAT=( python3_{10..12} )
13+
14+
if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
15+
# Cheesy hack for RCs
16+
MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
17+
MY_P=${PN}-${MY_PV}
18+
GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
19+
TOOLCHAIN_SET_S=no
20+
S="${WORKDIR}"/${MY_P}
21+
fi
22+
23+
inherit toolchain
24+
25+
if tc_is_live ; then
26+
# Needs to be after inherit (for now?), bug #830908
27+
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
28+
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
29+
# Don't keyword live ebuilds
30+
KEYWORDS="~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
31+
fi
32+
33+
# use alternate source for Apple M1 (also works for x86_64)
34+
SRC_URI+=" elibc_Darwin? ( https://raw.githubusercontent.com/Homebrew/formula-patches/d5dcb918a951b2dcf2d7702db75eb29ef144f614/gcc/gcc-14.2.0.diff -> gcc-14.2.0-arm64-darwin.patch )"
35+
IUSE+=" bootstrap"
36+
37+
if [[ ${CATEGORY} != cross-* ]] ; then
38+
# Technically only if USE=hardened *too* right now, but no point in complicating it further.
39+
# If GCC is enabling CET by default, we need glibc to be built with support for it.
40+
# bug #830454
41+
RDEPEND="!prefix-guest? ( elibc_glibc? ( sys-libs/glibc[cet(-)?] ) )"
42+
DEPEND="${RDEPEND}"
43+
fi
44+
45+
src_prepare() {
46+
# apply big arm64-darwin patch first thing
47+
use elibc_Darwin && eapply "${DISTDIR}"/${P}-arm64-darwin.patch
48+
49+
# make sure 64-bits native targets don't screw up the linker paths
50+
eapply "${FILESDIR}"/gcc-12-no-libs-for-startfile.patch
51+
52+
local p upstreamed_patches=(
53+
# add them here
54+
)
55+
for p in "${upstreamed_patches[@]}"; do
56+
rm -v "${WORKDIR}/patch/${p}" || die
57+
done
58+
59+
toolchain_src_prepare
60+
#
61+
# make it have correct install_names on Darwin
62+
eapply -p1 "${FILESDIR}"/4.3.3/darwin-libgcc_s-installname.patch
63+
64+
if [[ ${CHOST} == powerpc*-darwin* ]] ; then
65+
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44107
66+
sed -i -e 's|^ifeq (/usr/lib,|ifneq (/usr/lib,|' \
67+
libgcc/config/t-slibgcc-darwin || die
68+
fi
69+
70+
if [[ ${CHOST} == *-solaris* ]] ; then
71+
# madvise is not available in the compatibility mode GCC uses,
72+
# posix_madvise however, is
73+
sed -i -e 's/madvise/posix_madvise/' gcc/cp/module.cc || die
74+
fi
75+
76+
if [[ ${CHOST} == *-darwin* ]] ; then
77+
use bootstrap && eapply "${FILESDIR}"/${PN}-13-darwin14-bootstrap.patch
78+
79+
# our ld64 is a slight bit different, so tweak expression to not
80+
# get confused and break the build
81+
sed -i -e "s/EGREP 'ld64|dyld'/& | head -n1/" \
82+
gcc/configure{.ac,} || die
83+
84+
# rip out specific macos version min
85+
sed -i -e 's/-mmacosx-version-min=11.0//' \
86+
libgcc/config/aarch64/t-darwin \
87+
libgcc/config/aarch64/t-heap-trampoline \
88+
|| die
89+
fi
90+
91+
eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
92+
eapply_user
93+
}
94+
95+
src_configure() {
96+
local myconf=()
97+
case ${CTARGET}:" ${USE} " in
98+
powerpc*-darwin*)
99+
# bug #381179
100+
filter-flags "-mcpu=*" "-mtune=*"
101+
# bug #657522
102+
# A bug in configure checks whether -no-pie works, but the
103+
# compiler doesn't pass -no-pie onto the linker if -fno-PIE
104+
# isn't passed, so the configure check always finds -no-pie
105+
# is accepted. (Likewise, when -fno-PIE is passed, the
106+
# compiler passes -no_pie onto the linker.)
107+
# Since our linker doesn't grok this, avoid above checks to
108+
# be run
109+
# NOTE: later ld64 does grok -no_pie, not -no-pie (as checked)
110+
export gcc_cv_c_no_fpie=no
111+
export gcc_cv_no_pie=no
112+
;;
113+
*-darwin20)
114+
# use sysroot with the linker, #756160
115+
export gcc_cv_ld_sysroot=yes
116+
;;
117+
*-solaris*)
118+
# todo: some magic for native vs. GNU linking?
119+
myconf+=( --with-gnu-ld --with-gnu-as --enable-largefile )
120+
;;
121+
i[34567]86-*-linux*:*" prefix "*)
122+
# to allow the linux-x86-on-amd64.patch become useful, we need
123+
# to enable multilib, even if there is just one multilib option.
124+
myconf+=( --enable-multilib )
125+
if [[ ${CBUILD:-${CHOST}} == "${CHOST}" ]]; then
126+
# we might be on x86_64-linux, but don't do cross-compile, so
127+
# tell the host-compiler to really create 32bits (for stage1)
128+
# (real x86-linux-gcc also accept -m32).
129+
append-flags -m32
130+
fi
131+
;;
132+
esac
133+
134+
# Since GCC 4.1.2 some non-posix (?) /bin/sh compatible code is used, at
135+
# least on Solaris, and AIX /bin/sh is way too slow,
136+
# so force it to use $BASH (that portage uses) - it can't be EPREFIX
137+
# in case that doesn't exist yet
138+
export CONFIG_SHELL="${CONFIG_SHELL:-${BASH}}"
139+
toolchain_src_configure "${myconf[@]}"
140+
}

0 commit comments

Comments
 (0)