mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 17:09:10 -07:00
dev-libs/jemalloc: Add -fno-builtin to CFLAGS when building integration tests
Patch from opensuse. https://build.opensuse.org/projects/openSUSE:Factory/packages/jemalloc/files/fix_make_check_with_gcc15.patch GCC 15 optimizes out allocations which aligned_alloc integration test expects to fail. Using the -fno-builtin option prevents GCC from treating malloc specially in this way and the test-suite to pass. Closes: https://bugs.gentoo.org/955995 Signed-off-by: NHOrus <jy6x2b32pie9@yahoo.com> Part-of: https://codeberg.org/gentoo/gentoo/pulls/595 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
https://bugs.gentoo.org/955995
|
||||
From: Martin Jambor <mjambor@suse.cz>
|
||||
Date: Wed, 30 Apr 2025 18:35:11 +0200
|
||||
Subject: Add -fno-builtin to CFLAGS when building integration tests
|
||||
References: boo#1240665, https://github.com/jemalloc/jemalloc/issues/2823
|
||||
Upstream: tbd
|
||||
|
||||
GCC 15 optimizes out allocations which aligned_alloc integration test
|
||||
expects to fail. Using the -fno-builtin option prevents GCC from
|
||||
treating malloc specially in this way and the test-suite to pass.
|
||||
|
||||
|
||||
Index: jemalloc-5.3.0/Makefile.in
|
||||
===================================================================
|
||||
--- jemalloc-5.3.0.orig/Makefile.in
|
||||
+++ jemalloc-5.3.0/Makefile.in
|
||||
@@ -654,6 +654,7 @@ uninstall: uninstall_doc
|
||||
endif
|
||||
|
||||
tests_unit: $(TESTS_UNIT:$(srcroot)%.c=$(objroot)%$(EXE))
|
||||
+tests_integration: CFLAGS += -fno-builtin
|
||||
tests_integration: $(TESTS_INTEGRATION:$(srcroot)%.c=$(objroot)%$(EXE)) $(TESTS_INTEGRATION_CPP:$(srcroot)%.cpp=$(objroot)%$(EXE))
|
||||
tests_analyze: $(TESTS_ANALYZE:$(srcroot)%.c=$(objroot)%$(EXE))
|
||||
tests_stress: $(TESTS_STRESS:$(srcroot)%.c=$(objroot)%$(EXE))
|
||||
59
dev-libs/jemalloc/jemalloc-5.3.0-r3.ebuild
Normal file
59
dev-libs/jemalloc/jemalloc-5.3.0-r3.ebuild
Normal file
@@ -0,0 +1,59 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
|
||||
inherit autotools multilib-minimal
|
||||
|
||||
DESCRIPTION="Jemalloc is a general-purpose scalable concurrent allocator"
|
||||
HOMEPAGE="http://jemalloc.net/ https://github.com/jemalloc/jemalloc"
|
||||
SRC_URI="https://github.com/jemalloc/jemalloc/releases/download/${PV}/${P}.tar.bz2"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/2"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="debug lazy-lock prof stats xmalloc"
|
||||
HTML_DOCS=( doc/jemalloc.html )
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-5.3.0-gentoo-fixups.patch"
|
||||
"${FILESDIR}/${PN}-5.3.0-backport-pr-2312.patch"
|
||||
"${FILESDIR}/${PN}-5.3.0-backport-pr-2338.patch"
|
||||
"${FILESDIR}/${PN}-5.3.0-aarch64-64kib-page-size.patch" # users can override by passing `--with-lg-pagesize=foo`
|
||||
"${FILESDIR}/${PN}-5.3.0-dont-call-libstdcxx-internals.patch"
|
||||
"${FILESDIR}/${PN}-5.3.0-gcc15-make-check.patch"
|
||||
)
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=( /usr/include/jemalloc/jemalloc.h )
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
$(use_enable debug)
|
||||
$(use_enable lazy-lock)
|
||||
$(use_enable prof)
|
||||
$(use_enable stats)
|
||||
$(use_enable xmalloc)
|
||||
)
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
# Copy man file which the Makefile looks for
|
||||
cp "${S}/doc/jemalloc.3" "${BUILD_DIR}/doc" || die
|
||||
emake DESTDIR="${D}" install
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
# fixup install_name, #437362
|
||||
install_name_tool \
|
||||
-id "${EPREFIX}"/usr/$(get_libdir)/libjemalloc.2.dylib \
|
||||
"${ED}"/usr/$(get_libdir)/libjemalloc.2.dylib || die
|
||||
fi
|
||||
find "${ED}" -name '*.a' -delete || die
|
||||
}
|
||||
Reference in New Issue
Block a user