dev-libs/xxhash: Sync with Gentoo

It's from Gentoo commit 37e4389f1ccd658eebe29ffe886e29c0132a35bb.

Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
This commit is contained in:
Flatcar Buildbot 2026-01-12 07:11:40 +00:00 committed by Krzesimir Nowak
parent 9a11a3aadf
commit a28fb387a7
2 changed files with 56 additions and 1 deletions

View File

@ -0,0 +1,55 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic multilib-minimal toolchain-funcs
DESCRIPTION="Extremely fast non-cryptographic hash algorithm"
HOMEPAGE="https://xxhash.com/"
SRC_URI="https://github.com/Cyan4973/xxHash/archive/v${PV}.tar.gz -> ${P}.tar.gz"
S=${WORKDIR}/xxHash-${PV}
LICENSE="BSD-2 GPL-2+"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
src_prepare() {
default
multilib_copy_sources
}
src_configure() {
# Needed for -Og to be buildable, otherwise fails a/ always_inline (bug #961093)
# https://github.com/Cyan4973/xxHash?tab=readme-ov-file#binary-size-control
is-flagq '-Og' && append-cppflags -DXXH_NO_INLINE_HINTS
multilib-minimal_src_configure
}
myemake() {
# need LIBDIR set during compile too for Darwin, bug #966267
emake \
AR="$(tc-getAR)" \
CC="$(tc-getCC)" \
PREFIX="${EPREFIX}"/usr \
LIBDIR="${EPREFIX}"/usr/$(get_libdir) \
MANDIR='$(man1dir)' \
"${@}"
}
multilib_src_compile() {
myemake
}
multilib_src_test() {
# Injecting CPPFLAGS into CFLAGS is needed for test_sanity
myemake CFLAGS="${CPPFLAGS} ${CFLAGS}" check
}
multilib_src_install() {
myemake DESTDIR="${D}" install
einstalldocs
rm "${ED}"/usr/$(get_libdir)/libxxhash.a || die
}

View File

@ -12,7 +12,7 @@ S=${WORKDIR}/xxHash-${PV}
LICENSE="BSD-2 GPL-2+"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
src_prepare() {
default