From 4b4d57db7cc5eee3b2d8dd319443f0d9aba56b17 Mon Sep 17 00:00:00 2001 From: Flatcar Buildbot Date: Mon, 7 Aug 2023 07:10:31 +0000 Subject: [PATCH] dev-libs/libpcre: Sync with Gentoo It's from Gentoo commit c7ebd2b053695929b4028cabac2744b23a0bb4c6. --- ...ibpcre-8.45-fix-stack-size-detection.patch | 18 +++ .../dev-libs/libpcre/libpcre-8.45-r2.ebuild | 106 ++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 sdk_container/src/third_party/portage-stable/dev-libs/libpcre/files/libpcre-8.45-fix-stack-size-detection.patch create mode 100644 sdk_container/src/third_party/portage-stable/dev-libs/libpcre/libpcre-8.45-r2.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre/files/libpcre-8.45-fix-stack-size-detection.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre/files/libpcre-8.45-fix-stack-size-detection.patch new file mode 100644 index 0000000000..2b5af062d3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre/files/libpcre-8.45-fix-stack-size-detection.patch @@ -0,0 +1,18 @@ +https://bugs.exim.org/show_bug.cgi?id=2173#c4 +https://bugs.gentoo.org/910188 +https://github.com/MariaDB/server/pull/2700 +--- a/pcre_exec.c ++++ b/pcre_exec.c +@@ -509,6 +509,12 @@ + (e.g. stopped by repeated call or recursion limit) + */ + ++#ifdef __GNUC__ ++static int ++match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode, ++ PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb, ++ unsigned int rdepth) __attribute__((optnone,noinline,noclone)); ++#endif + static int + match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode, + PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb, diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre/libpcre-8.45-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre/libpcre-8.45-r2.ebuild new file mode 100644 index 0000000000..0f71104bd9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre/libpcre-8.45-r2.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit libtool multilib-minimal preserve-libs usr-ldscript + +DESCRIPTION="Perl-compatible regular expression library" +HOMEPAGE="http://www.pcre.org/" +MY_P="pcre-${PV/_rc/-RC}" +if [[ ${PV} != *_rc* ]] ; then + # Only the final releases are available here. + SRC_URI=" + mirror://sourceforge/pcre/${MY_P}.tar.bz2 + https://ftp.pcre.org/pub/pcre/${MY_P}.tar.bz2 + ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${MY_P}.tar.bz2 + " +else + SRC_URI="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/Testing/${MY_P}.tar.bz2" +fi + +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD" +SLOT="3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="bzip2 +cxx +jit libedit pcre16 pcre32 +readline static-libs unicode valgrind zlib" +REQUIRED_USE=" + readline? ( !libedit ) + libedit? ( !readline ) +" + +RDEPEND=" + bzip2? ( app-arch/bzip2 ) + zlib? ( sys-libs/zlib ) + libedit? ( dev-libs/libedit ) + readline? ( sys-libs/readline:= ) +" +DEPEND=" + ${RDEPEND} + valgrind? ( dev-util/valgrind ) +" +BDEPEND="virtual/pkgconfig" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/pcre-config +) + +PATCHES=( + "${FILESDIR}"/${PN}-8.45-fix-stack-size-detection.patch +) + +src_prepare() { + default + + sed -i -e "s:-lpcre ::" libpcrecpp.pc.in || die + elibtoolize +} + +multilib_src_configure() { + local myeconfargs=( + $(multilib_native_use_enable bzip2 pcregrep-libbz2) + $(use_enable cxx cpp) + $(use_enable jit) + $(use_enable jit pcregrep-jit) + $(use_enable pcre16) + $(use_enable pcre32) + $(multilib_native_use_enable libedit pcretest-libedit) + $(multilib_native_use_enable readline pcretest-libreadline) + $(use_enable static-libs static) + $(use_enable unicode utf) + $(use_enable unicode unicode-properties) + $(multilib_native_use_enable valgrind) + $(multilib_native_use_enable zlib pcregrep-libz) + + --enable-pcre8 + --enable-shared + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_compile() { + emake V=1 $(multilib_is_native_abi || echo "bin_PROGRAMS=") +} + +multilib_src_install() { + emake \ + DESTDIR="${D}" \ + $(multilib_is_native_abi || echo "bin_PROGRAMS= dist_html_DATA=") \ + install + + gen_usr_ldscript -a pcre +} + +multilib_src_install_all() { + find "${ED}" -type f -name "*.la" -delete || die +} + +pkg_preinst() { + preserve_old_lib /$(get_libdir)/libpcre.so.0 +} + +pkg_postinst() { + preserve_old_lib_notify /$(get_libdir)/libpcre.so.0 +}