dev-debug/valgrind: add 3.27.0_rc1 (unkeyworded)

Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2026-04-15 21:25:46 +01:00
parent da1162b1e1
commit c374ffb2b0
2 changed files with 205 additions and 0 deletions

View File

@@ -1,3 +1,5 @@
DIST valgrind-3.26.0-patches-1.tar.xz 8092 BLAKE2B e2e4874ddd9129128153fc2ad0a35e6ecf4f81662c416257624600750c80cf959ff41ab5de06d47a841d640d9dfa0bb965f067d8c08d815931c6dd02c5fcd0bf SHA512 d55f283b834d3be572b4b2cdbdc11a15975162333052bbf77b3b7a0c29b170d332427d4ce24b2790aacabe737f02ef6ad4f2898ca625378631513fb60aaaba58
DIST valgrind-3.26.0.tar.bz2 17182495 BLAKE2B 55e066b49e122f65df0c7129f25613f2d64fef6b4a7da59f42280e1a5a4086db84d033b8fca714b7ec8da506dbc71e8814f68f5b3d302c7373dbce8dac905b03 SHA512 80ebf9197be602fdd4aad0e9277e6ef2fd25ede9cecb6e6d159f6f062c13f62ad907c6b6e7000e82b3404d8b4f9e7bf15813f60d9fed414c7b713a4280c82898
DIST valgrind-3.26.0.tar.bz2.asc 228 BLAKE2B 7ee59c96f5929e2de3478c062208e5fcf645e86f0894cb9b6330bb320b518f2e55e432ab31c813c623208216859ddcfcb673417c5a2be3982f2a9d23f4dcd698 SHA512 ecae4158c64bc4ff9c6c5859f41d8a724c5207b5dbac75772d64c23baf78a280159b1b954a16ac73993eb19c39e1fcb3bd0c946c0e18209f3cb8f3d9238d6071
DIST valgrind-3.27.0.RC1.tar.bz2 17251319 BLAKE2B be6fa63788639b512776a57bf55b8410a3e69ca9bbc621f291ca89271cae88bbd61c2cd6efcd84463c6fad5d28737c06c8232fd665791268e0ccfa40c19efefb SHA512 f7b4b7976b4455baf91fcee27398402fceb9171e366758e45ccddfb25ee4b2ee56bfc8cf9f3c18550ec7929c5ed6f14f41df530911bb87d6941d29d682017ded
DIST valgrind-3.27.0.RC1.tar.bz2.asc 228 BLAKE2B 033ce7f0f97df87442cabc056a4ed235bfef1030e4a87aef081b1ab9e2c8e5d19bfb4169cc1d972fd5966a3cf62bc3721137be45209b898520452602d1d81bc0 SHA512 64e8ad6ba24e27416be36eb853af945db5700ee820ff897b0fd9c4abb9eee04643177798c989083223cfffa878d0a177ed35cbcfaa8c23e745442e7ff6ce1fd8

View File

@@ -0,0 +1,203 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# The Valgrind upstream maintainer also maintains it in Fedora and will
# backport fixes there which haven't yet made it into a release. Keep an eye
# on it for fixes we should cherry-pick too:
# https://src.fedoraproject.org/rpms/valgrind/tree/rawhide
#
# Also check the ${PV}_STABLE branch upstream for backports.
inherit autotools dot-a flag-o-matic toolchain-funcs multilib pax-utils
DESCRIPTION="An open-source memory debugger for GNU/Linux"
HOMEPAGE="https://valgrind.org"
if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="
https://sourceware.org/git/${PN}.git
https://git.sr.ht/~sourceware/valgrind
"
inherit git-r3
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/valgrind.asc
inherit verify-sig
MY_P="${P/_rc/.RC}"
MY_P="${MY_P%%_p*}"
VALGRIND_PATCH_TARBALL="${MY_P}-patches-${PV##*_p}"
SRC_URI="
https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2
verify-sig? ( https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2.asc )
"
# Rollups of backports on ${PV}_STABLE branch upstream. This branch
# is usually announced on the mailing list and distros are encouraged
# to pull from it regularly.
if [[ ${PV} == *_p* ]] ; then
SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${VALGRIND_PATCH_TARBALL}.tar.xz"
fi
S="${WORKDIR}"/${MY_P}
if [[ ${PV} != *_rc* ]] ; then
KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos ~x64-solaris"
fi
fi
LICENSE="GPL-3+"
SLOT="0"
IUSE="mpi"
DEPEND="mpi? ( virtual/mpi )"
RDEPEND="${DEPEND}"
if [[ ${PV} == 9999 ]] ; then
# Needed for man pages
BDEPEND+="
app-text/docbook-xsl-stylesheets
dev-libs/libxslt
"
else
BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-valgrind-20251018 )"
fi
PATCHES=(
# Respect CFLAGS, LDFLAGS
"${FILESDIR}"/${PN}-3.7.0-respect-flags.patch
"${FILESDIR}"/${PN}-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch
"${FILESDIR}"/${PN}-3.21.0-glibc-2.34-suppressions.patch
)
QA_CONFIG_IMPL_DECL_SKIP+=(
# "checking if gcc accepts nested functions" but clang cannot handle good
# errors and reports both "function definition is not allowed here" and
# -Wimplicit-function-declaration. bug #900396
foo
# FreeBSD function, bug #932822
aio_readv
)
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
elif use verify-sig ; then
# Needed for downloaded patch (which is unsigned, which is fine)
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.bz2{,.asc}
fi
default
}
src_prepare() {
# Correct hard coded doc location
sed -i -e "s:doc/valgrind:doc/${PF}:" docs/Makefile.am || die
# Don't force multiarch stuff on OSX, bug #306467
sed -i -e 's:-arch \(i386\|x86_64\)::g' Makefile.all.am || die
if [[ ${CHOST} == *-solaris* ]] ; then
# upstream doesn't support this, but we don't build with
# Sun/Oracle ld, we have a GNU toolchain, so get some things
# working the Linux/GNU way
find "${S}" -name "Makefile.am" -o -name "Makefile.tool.am" | xargs \
sed -i -e 's:-M,/usr/lib/ld/map.noexstk:-z,noexecstack:' || die
cp "${S}"/coregrind/link_tool_exe_{linux,solaris}.in
fi
if [[ ${PV} != 9999 && -d "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ]] ; then
PATCHES+=( "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} )
fi
default
eautoreconf
}
src_configure() {
local myconf=(
--with-gdbscripts-dir="${EPREFIX}"/usr/share/gdb/auto-load
)
tc-is-lto && myconf+=( --enable-lto )
lto-guarantee-fat
# Respect ar, bug #468114
tc-export AR
# -fomit-frame-pointer "Assembler messages: Error: junk `8' after expression"
# while compiling insn_sse.c in none/tests/x86
# -fstack-protector more undefined references to __guard and __stack_smash_handler
# because valgrind doesn't link to glibc (bug #114347)
# -fstack-protector-all Fails same way as -fstack-protector/-fstack-protector-strong.
# Note: -fstack-protector-explicit is a no-op for Valgrind, no need to strip it
# -fstack-protector-strong See -fstack-protector (bug #620402)
# -m64 -mx32 for multilib-portage, bug #398825
# -fharden-control-flow-redundancy: breaks runtime ('jump to the invalid address stated on the next line')
filter-flags -fomit-frame-pointer
filter-flags -fstack-protector
filter-flags -fstack-protector-all
filter-flags -fstack-protector-strong
filter-flags -m64 -mx32
filter-flags -fsanitize -fsanitize=*
filter-flags -fharden-control-flow-redundancy
append-cflags $(test-flags-CC -fno-harden-control-flow-redundancy)
filter-lto
if use amd64 || use ppc64; then
! has_multilib_profile && myconf+=("--enable-only64bit")
fi
# Force bitness on darwin, bug #306467
use x64-macos && myconf+=("--enable-only64bit")
# Don't use mpicc unless the user asked for it (bug #258832)
if ! use mpi; then
myconf+=("--without-mpicc")
fi
econf "${myconf[@]}"
}
src_test() {
# fxsave.o, tronical.o have textrels
# -fno-strict-aliasing: https://bugs.kde.org/show_bug.cgi?id=486093
emake CFLAGS="${CFLAGS} -fno-strict-aliasing" LDFLAGS="${LDFLAGS} -Wl,-z,notext" check
}
src_install() {
if [[ ${PV} == 9999 ]]; then
# TODO: Could do HTML docs too with 'all-docs'
emake -C docs man-pages FAQ.txt
mv docs/FAQ.txt . || die "Couldn't move FAQ.txt"
fi
default
dodoc FAQ.txt
pax-mark m "${ED}"/usr/$(get_libdir)/valgrind/*-*-linux
strip-lto-bytecode
# See README_PACKAGERS
dostrip -x /usr/libexec/valgrind/vgpreload* /usr/$(get_libdir)/valgrind/*
if [[ ${CHOST} == *-darwin* ]] ; then
# fix install_names on shared libraries, can't turn them into bundles,
# as dyld won't load them any more then, bug #306467
local l
for l in "${ED}"/usr/lib/valgrind/*.so ; do
install_name_tool -id "${EPREFIX}"/usr/lib/valgrind/${l##*/} "${l}"
done
fi
}
pkg_postinst() {
elog "Valgrind will not work if libc (e.g. glibc) does not have debug symbols."
elog "To fix this you can add splitdebug to FEATURES in make.conf"
elog "and remerge glibc. See:"
elog "https://bugs.gentoo.org/214065"
elog "https://bugs.gentoo.org/274771"
elog "https://bugs.gentoo.org/388703"
}