From 181bc2b406fcf7c401b543181d0af6f6562602e7 Mon Sep 17 00:00:00 2001 From: Thomas Deutschmann Date: Mon, 30 Oct 2017 23:26:59 +0100 Subject: dev-libs/libpcre: Rev bump to fix stack size detection Needed for dev-db/mariadb and friends. Bug: https://jira.mariadb.org/browse/MDEV-13412 Package-Manager: Portage-2.3.13, Repoman-2.3.4 --- .../libpcre-8.41-fix-stack-size-detection.patch | 18 ++++ dev-libs/libpcre/libpcre-8.41-r1.ebuild | 104 +++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 dev-libs/libpcre/files/libpcre-8.41-fix-stack-size-detection.patch create mode 100644 dev-libs/libpcre/libpcre-8.41-r1.ebuild diff --git a/dev-libs/libpcre/files/libpcre-8.41-fix-stack-size-detection.patch b/dev-libs/libpcre/files/libpcre-8.41-fix-stack-size-detection.patch new file mode 100644 index 000000000000..0fd6b5f3b22f --- /dev/null +++ b/dev-libs/libpcre/files/libpcre-8.41-fix-stack-size-detection.patch @@ -0,0 +1,18 @@ +https://bugs.exim.org/show_bug.cgi?id=2173#c4 + +diff --git a/pcre/pcre_exec.c b/pcre/pcre_exec.c +--- a/pcre/pcre_exec.c ++++ b/pcre/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__((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/dev-libs/libpcre/libpcre-8.41-r1.ebuild b/dev-libs/libpcre/libpcre-8.41-r1.ebuild new file mode 100644 index 000000000000..eed796ef4bf4 --- /dev/null +++ b/dev-libs/libpcre/libpcre-8.41-r1.ebuild @@ -0,0 +1,104 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +inherit eutils multilib libtool flag-o-matic toolchain-funcs multilib-minimal + +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 + 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 + +LICENSE="BSD" +SLOT="3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="bzip2 +cxx +jit libedit pcre16 pcre32 +readline +recursion-limit static-libs unicode zlib" +REQUIRED_USE="readline? ( !libedit ) + libedit? ( !readline )" + +RDEPEND=" + bzip2? ( app-arch/bzip2 ) + zlib? ( sys-libs/zlib ) + libedit? ( dev-libs/libedit ) + readline? ( sys-libs/readline:0= ) +" +DEPEND=" + ${RDEPEND} + virtual/pkgconfig +" +RDEPEND=" + ${RDEPEND} + abi_x86_32? ( + !<=app-emulation/emul-linux-x86-baselibs-20131008-r2 + !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] + ) +" + +S="${WORKDIR}/${MY_P}" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/pcre-config +) + +PATCHES=( + "${FILESDIR}"/${PN}-8.41-sljit_mips-label-statement-fix.patch + "${FILESDIR}"/${PN}-8.41-fix-stack-size-detection.patch +) + +src_prepare() { + epatch "${PATCHES[@]}" + sed -i -e "s:-lpcre ::" libpcrecpp.pc.in || die + elibtoolize +} + +multilib_src_configure() { + local myeconfargs=( + --with-match-limit-recursion=$(usex recursion-limit 8192 MATCH_LIMIT) + $(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 zlib pcregrep-libz) + --enable-pcre8 + --enable-shared + --htmldir="${EPREFIX}"/usr/share/doc/${PF}/html + --docdir="${EPREFIX}"/usr/share/doc/${PF} + ) + 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() { + prune_libtool_files +} + +pkg_preinst() { + preserve_old_lib /$(get_libdir)/libpcre.so.0 +} + +pkg_postinst() { + preserve_old_lib_notify /$(get_libdir)/libpcre.so.0 +} -- cgit v1.2.3-65-gdbad