diff options
author | Christopher Fore <csfore@posteo.net> | 2024-10-15 02:06:53 -0400 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-10-15 07:19:05 +0100 |
commit | fa98b7704d8e61e42128737272a6020aa491bc9e (patch) | |
tree | 3f8d9935f3f1e57588e1cfde55a5af24058e03fd /sci-libs | |
parent | app-crypt/xca: add 2.8.0 (diff) | |
download | gentoo-fa98b7704d8e61e42128737272a6020aa491bc9e.tar.gz gentoo-fa98b7704d8e61e42128737272a6020aa491bc9e.tar.bz2 gentoo-fa98b7704d8e61e42128737272a6020aa491bc9e.zip |
sci-libs/libqalculate: Increase stack size on musl
Originally discovered through unittests, certain equations given to
libqalculate will result in a stack overflow, as witnessed using ASAN.
ASAN output example:
==8920==ERROR: AddressSanitizer: stack-overflow on address
0x7f6a6a4f4e38 (pc 0x7f6a6ab4b695 bp 0x7f6a6a4f6180 sp 0x7f6a6a4f4e00 T1)
#0 0x7f6a6ab4b695 in MathStructure::merge_multiplication(
MathStructure&, EvaluationOptions const&, MathStructure*,
unsigned long, unsigned long, bool, bool)
(/lib/libqalculate.so.23+0x54b695)
Closes: https://bugs.gentoo.org/924939
Signed-off-by: Christopher Fore <csfore@posteo.net>
Closes: https://github.com/gentoo/gentoo/pull/38996
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sci-libs')
-rw-r--r-- | sci-libs/libqalculate/libqalculate-5.3.0-r1.ebuild | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/sci-libs/libqalculate/libqalculate-5.3.0-r1.ebuild b/sci-libs/libqalculate/libqalculate-5.3.0-r1.ebuild new file mode 100644 index 000000000000..341483a69648 --- /dev/null +++ b/sci-libs/libqalculate/libqalculate-5.3.0-r1.ebuild @@ -0,0 +1,87 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bump with sci-calculators/qalculate-gtk and sci-calculators/qalculate-qt + +inherit flag-o-matic toolchain-funcs + +MY_PV="${PV//b/}" + +DESCRIPTION="A modern multi-purpose calculator library" +HOMEPAGE="https://qalculate.github.io/" +SRC_URI="https://github.com/Qalculate/${PN}/releases/download/v${MY_PV}/${P}.tar.gz" +S="${WORKDIR}"/"${PN}-${MY_PV}" + +LICENSE="GPL-2+" +# SONAME changes pretty often on bumps. Check! +SLOT="0/23.3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="curl icu gnuplot +hardened readline test" +RESTRICT="!test? ( test )" + +DEPEND="dev-libs/gmp:= + dev-libs/libxml2:2 + dev-libs/mpfr:= + virtual/libiconv + curl? ( net-misc/curl ) + icu? ( dev-libs/icu:= ) + readline? ( sys-libs/readline:= )" +RDEPEND="${DEPEND} + gnuplot? ( >=sci-visualization/gnuplot-3.7 )" +BDEPEND="dev-util/intltool + sys-devel/gettext + virtual/pkgconfig" + +src_prepare() { + default + cat >po/POTFILES.skip <<-EOF || die + # Required by make check + data/currencies.xml.in + data/datasets.xml.in + data/elements.xml.in + data/functions.xml.in + data/planets.xml.in + data/prefixes.xml.in + data/units.xml.in + data/variables.xml.in + src/defs2doc.cc + EOF +} + +src_configure() { + # Needed for po-defs/Makefile + export CXX_FOR_BUILD="$(tc-getBUILD_CXX)" + export CXXCPP_FOR_BUILD="$(tc-getBUILD_CXX) -E" + + # bug #792027 + tc-export CC + + # bug #924939 + use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + + local myeconfargs=( + $(use_enable test tests) + $(use_enable test unittests) + $(use_with curl libcurl) + $(use_with gnuplot gnuplot-call) + $(use_enable !hardened insecure) + $(use_with icu) + $(use_with readline) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + # docs/reference/Makefile.am -> referencedir= + emake \ + DESTDIR="${D}" \ + referencedir="${EPREFIX}/usr/share/doc/${PF}/html" \ + install + + einstalldocs + + find "${ED}" -name '*.la' -delete || die +} |