Added gcc-11.3.1_p20230427.

This commit is contained in:
László Valkó 2024-09-26 01:40:15 +02:00
parent ab2abb10cd
commit ccfa890765
3 changed files with 184 additions and 0 deletions

5
sys-devel/gcc/Manifest Normal file
View file

@ -0,0 +1,5 @@
DIST gcc-11-20230427.tar.xz 76165128 BLAKE2B dd896b418c1fce35a61005d5b5c90cfd1246d37d23c2a8fc08bacd7d7ca84c353f3ccf5de2370ae5e5ca95c7ae3deab3565b3f65eb78b611dbe5ad4a256516f0 SHA512 fada917a832be5d2e15ee32f24e19fc87b851dc8e6fc75d1be6d25d3510dba408ae3ef3b245ff239c51aa3d243c95f12269695611e5c8965ba55f5aa4730778d
DIST gcc-11.4.0-musl-patches-2.tar.xz 4308 BLAKE2B a2335e155fc57816fed822a648e0eaefafcba9d04e1ad0fd7baeea5a694ab6f5e3c1678cb406f2a1bd17bab25cb01699d032713a1ccf337948dfda2093844607 SHA512 17b84f907cb1bd763873655e6f35fd3ed55a40b602b70a626f04f83b4cc89c6261db1661de78d4d969187a8c56e9f6305b742515a3836b962248a21df0df5d0c
DIST gcc-11.4.0-patches-9.tar.xz 14704 BLAKE2B 9aa2ecbac493d3040694e9930738e57d59a764b90ab92b91709c319b883f28ad108767e5d11e8b62af40bf1e583d5ff83a03e8c895f904bc6f41315ce9ab4f0a SHA512 ac8b7c6c382ffacc4e9d08299440fc237fa366ec36fb8eb7a8d426b64a4186384a262e6380dc83ed7f7240125ce26a8435c8a4e0e13976ef2652067a7129bd17
EBUILD gcc-11.3.1_p20230427.ebuild 1605 BLAKE2B 65fc39711c23a635257ca2620c8f5f040c5a90c8df18f5c2b5584f646872a95ace4454d32a658d78afbe167e19193a11a02e777489af98165aa8565088822b9b SHA512 641ebcf7e7f93e51719cd20a72f8e94c31233fb57208b5ebee59994464c98254b04a2669c029239f1337c30a353903545a51dc4a7565dbe3f49b02365f643a21
MISC metadata.xml 5254 BLAKE2B b64569d62dd67c2f2dab441bb2c4a65bcd61b4c9d8ad7543e8f91c583501d72ed1474abf785e68c48de298d8391de3d94b9b4020086b2b0fa9cc477114a92e9e SHA512 f1307b7865dc4c2c843b5f498196bf5710e45e3292181b43687ebe85b5e9b26203c9c83ee7872efe2cd93595eca430de91e3a5fd6900f0f62c875308ccbb0303

View file

@ -0,0 +1,64 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="11.4.0"
PATCH_VER="9"
MUSL_VER="2"
MUSL_GCC_VER="11.4.0"
if [[ ${PV} == *.9999 ]] ; then
MY_PV_2=$(ver_cut 2)
MY_PV_3=1
if [[ ${MY_PV_2} == 0 ]] ; then
MY_PV_2=0
MY_PV_3=0
else
MY_PV_2=$((${MY_PV_2} - 1))
fi
# e.g. 12.2.9999 -> 12.1.1
TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
# Cheesy hack for RCs
MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
MY_P=${PN}-${MY_PV}
GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
TOOLCHAIN_SET_S=no
S="${WORKDIR}"/${MY_P}
fi
inherit toolchain
if tc_is_live ; then
# Needs to be after inherit (for now?), bug #830908
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 ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
:;
fi
if [[ ${CATEGORY} != cross-* ]] ; then
# Technically only if USE=hardened *too* right now, but no point in complicating it further.
# If GCC is enabling CET by default, we need glibc to be built with support for it.
# bug #830454
RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
DEPEND="${RDEPEND}"
BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]"
fi
src_prepare() {
local p upstreamed_patches=(
# add them here
)
for p in "${upstreamed_patches[@]}"; do
rm -v "${WORKDIR}/patch/${p}" || die
done
toolchain_src_prepare
eapply_user
}

115
sys-devel/gcc/metadata.xml Normal file
View file

@ -0,0 +1,115 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>toolchain@gentoo.org</email>
<name>Gentoo Toolchain Project</name>
</maintainer>
<use>
<flag name="ada">Build the ADA language (GNAT) frontend</flag>
<flag name="cet" restrict="&gt;=sys-devel/gcc-10">
Enable support for Intel Control Flow Enforcement Technology (CET).
Only effective on amd64/x86.
Only provides benefits on newer CPUs. For Intel, the CPU
must be at least as new as Tiger Lake. For AMD, it must be
at least as new as Zen 3. This is harmless on older CPUs,
but provides no benefit either.
When combined with USE=hardened, GCC will set -fcf-protection
by default when building software. The effect is minimal
on systems which do not support it, other than a possible
small increase in codesize for the NOPs. The generated
code is therefore compatible with i686 at the earliest.
</flag>
<flag name="d">Enable support for the D programming language</flag>
<flag name="debug">
Enables GCC's 'checking' facility via --enable-checking=yes,extra,rtl.
This adds checks to various compiler passes for integrity and input
validation. This can help catch possible miscompilations early as
well as latent bugs which could become real problems in future, but
at the cost of slower compile times when using GCC.
Unrelated to backtraces.
</flag>
<flag name="default-stack-clash-protection">
Build packages with stack clash protection on by default as
a hardening measure.
This enables -fstack-clash-protection by default which protects against
large memory allocations allowing stack smashing.
May cause slightly increased codesize, but modern compilers
have been adapted to optimize well for this case, as
this mitigation is now quite common.
See https://developers.redhat.com/blog/2020/05/22/stack-clash-mitigation-in-gcc-part-3
and https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt.
</flag>
<flag name="default-znow">
Request full relocation on start from ld.so by default.
This sets the -z,now (BIND_NOW) flag by default on all linker invocations. By
resolving all dynamic symbols at application startup, parts of the program
can be made read-only as a hardening measure.
This is closely related to RELRO which is also separately
enabled by default.
In some applications with many unresolved symbols (heavily plugin based,
for example), startup time may be impacted.
</flag>
<flag name="fixed-point">Enable fixed-point arithmetic support for MIPS targets in gcc (Warning: significantly increases compile time!)</flag>
<flag name="go">Build the GCC Go language frontend.</flag>
<flag name="graphite">Add support for the framework for loop optimizations based on a polyhedral intermediate representation</flag>
<flag name="ieee-long-double">Use accelerated 128-bit IEEE long double ABI (ppc64le only)</flag>
<flag name="jit">Enable libgccjit so other applications can embed gcc for Just-In-Time compilation.</flag>
<flag name="libssp">Build SSP support into a dedicated library rather than use the code in the C library (DO NOT ENABLE THIS IF YOU DON'T KNOW WHAT IT DOES)</flag>
<flag name="lto">
Build using Link Time Optimizations (LTO).
Note that GCC is always built with support for building
other programs with LTO. This USE flag is for whether
GCC itself is built and optimized with LTO.
</flag>
<flag name="modula2">Build the GCC Modula-2 language frontend.</flag>
<flag name="mpx">Enable support for Intel Memory Protection Extensions (MPX)</flag>
<flag name="nptl">Enable support for Native POSIX Threads Library, the new threading module (requires linux-2.6 or better usually)</flag>
<flag name="objc">Build support for the Objective C code language</flag>
<flag name="objc++">Build support for the Objective C++ language</flag>
<flag name="objc-gc">Build support for the Objective C code language Garbage Collector</flag>
<flag name="pgo">
Build GCC using Profile Guided Optimization (PGO).
GCC will build itself and then analyze the just-built
binary and then rebuild itself using the data obtained
from analysis of codepaths taken.
It does not affect whether GCC itself supports PGO
when building other software.
This substantially increases the build time needed for
building GCC itself.
</flag>
<flag name="rust">Build support for the Rust language, installs gccrs.</flag>
<flag name="sanitize">
Build support for various sanitizer functions (ASAN/TSAN/etc...)
to find runtime problems in applications.
</flag>
<flag name="ssp">Build packages with stack smashing protection on by default</flag>
<flag name="systemtap">enable systemtap static probe points</flag>
<flag name="vtv">
Build support for virtual table verification (a C++ hardening feature).
This does not control whether GCC defaults to using VTV>
Note that actually using VTV breaks ABI and hence the whole
system must be built with -fvtable-verify.
</flag>
</use>
<upstream>
<remote-id type="cpe">cpe:/a:gnu:gcc</remote-id>
</upstream>
</pkgmetadata>