Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pcre2 for openSUSE:Factory checked in at 2021-04-19 21:05:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pcre2 (Old) and /work/SRC/openSUSE:Factory/.pcre2.new.12324 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pcre2" Mon Apr 19 21:05:39 2021 rev:20 rq:885691 version:10.36 Changes: -------- --- /work/SRC/openSUSE:Factory/pcre2/pcre2.changes 2020-12-18 19:52:33.897624893 +0100 +++ /work/SRC/openSUSE:Factory/.pcre2.new.12324/pcre2.changes 2021-04-19 21:05:48.512012207 +0200 @@ -1,0 +2,6 @@ +Wed Apr 14 09:57:53 UTC 2021 - Jan Engelhardt <[email protected]> + +- Remove regcomp, regexec etc. from libpcre2-posix. + (Add pcre2-symbol-clash.patch) + +------------------------------------------------------------------- New: ---- pcre2-symbol-clash.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pcre2.spec ++++++ --- /var/tmp/diff_new_pack.NRXpVL/_old 2021-04-19 21:05:48.960012880 +0200 +++ /var/tmp/diff_new_pack.NRXpVL/_new 2021-04-19 21:05:48.964012885 +0200 @@ -1,7 +1,7 @@ # # spec file for package pcre2 # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -31,6 +31,7 @@ Source4: baselibs.conf #PATCH-FIX-OPENSUSE [email protected] upstream thinks it is good idea to use rpath, taken from RH Patch1: pcre2-10.10-multilib.patch +Patch2: pcre2-symbol-clash.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: gcc-c++ @@ -164,8 +165,7 @@ API. %prep -%setup -q -%patch1 -p1 +%autosetup -p1 %build %define _lto_cflags %{nil} ++++++ pcre2-symbol-clash.patch ++++++ From: Jan Engelhardt <[email protected]> Date: 2021-04-14 11:42:14.750408048 If libpcre2-posix.so makes it into a process image somehow before libc.so (which is easy: gcc something.c -lpcre2-posix), pcre2's "regcomp" symbol wins a race over libc's "regcomp" symbol. There are likely more situations as well, because libc's "regcomp" is _also_ marked as weak. Anyway, because the functions two are not behavior-compatible, problems arise. To stay ABI compatible, we could make a new library without regcomp etc., and edit the .pc file to point to the new library, but that would not capture the case someone uses plain gcc -l without pkg-config. Since regcomp is "#defined" to pcre2_regcomp, any programs that were source-compiled are fine. Removing the reg* symbols from the library hence only breaks the case of dlsym(libpcre2-posix, "regcomp"), which, I will argue, is an absolute niche use of the PCRE libraries and something we are willing to break. --- src/pcre2posix.c | 2 ++ 1 file changed, 2 insertions(+) Index: pcre2-10.36/src/pcre2posix.c =================================================================== --- pcre2-10.36.orig/src/pcre2posix.c +++ pcre2-10.36/src/pcre2posix.c @@ -185,6 +185,7 @@ This also ensures that the POSIX names a include pcre2posix.h. It is vital to #undef the macro definitions from pcre2posix.h! */ +#if 0 #undef regerror PCRE2POSIX_EXP_DECL size_t regerror(int, const regex_t *, char *, size_t); PCRE2POSIX_EXP_DEFN size_t PCRE2_CALL_CONVENTION @@ -218,6 +219,7 @@ regexec(const regex_t *preg, const char { return pcre2_regexec(preg, string, nmatch, pmatch, eflags); } +#endif
