Source: pcre3 Version: 1:8.35-3.1 Severity: wishlist Tags: patch Hi Mark,
In Ubuntu we've been carrying this diff to add a symbols file for a little while. I thought you might like to have it in Debian too. There's a bit of weirdness around generating it because of the dynamic nature of pcre_jit_exec. You could have a list of arches there but since the configure switch is worked out dynamically this felt right to me. Cheers, -- Iain Lane [ i...@orangesquash.org.uk ] Debian Developer [ la...@debian.org ] Ubuntu Developer [ la...@ubuntu.com ]
diff -Nru pcre3-8.35/debian/changelog pcre3-8.35/debian/changelog --- pcre3-8.35/debian/changelog 2014-09-29 00:03:27.000000000 +0100 +++ pcre3-8.35/debian/changelog 2014-10-30 16:22:46.000000000 +0000 @@ -1,3 +1,11 @@ +pcre3 (1:8.35-4) UNRELEASED; urgency=medium + + * Add a symbols file + + Dynamically generated as pcre_jit_exec is not available on all arches, + and this is determined at build time. + + -- Iain Lane <la...@debian.org> Thu, 30 Oct 2014 16:22:06 +0000 + pcre3 (1:8.35-3.1) unstable; urgency=medium * Non-maintainer upload. diff -Nru pcre3-8.35/debian/libpcre3.symbols.in pcre3-8.35/debian/libpcre3.symbols.in --- pcre3-8.35/debian/libpcre3.symbols.in 1970-01-01 01:00:00.000000000 +0100 +++ pcre3-8.35/debian/libpcre3.symbols.in 2014-10-30 16:22:01.000000000 +0000 @@ -0,0 +1,39 @@ +libpcre.so.3 libpcre3 + pcre_assign_jit_stack@Base 8.10 + pcre_callout@Base 8.10 + pcre_compile2@Base 8.10 + pcre_compile@Base 8.10 + pcre_config@Base 8.10 + pcre_copy_named_substring@Base 8.10 + pcre_copy_substring@Base 8.10 + pcre_dfa_exec@Base 8.10 + pcre_exec@Base 8.10 + pcre_free@Base 8.10 + pcre_free_study@Base 8.20 + pcre_free_substring@Base 8.10 + pcre_free_substring_list@Base 8.10 + pcre_fullinfo@Base 8.10 + pcre_get_named_substring@Base 8.10 + pcre_get_stringnumber@Base 8.10 + pcre_get_stringtable_entries@Base 8.10 + pcre_get_substring@Base 8.10 + pcre_get_substring_list@Base 8.10 + pcre_info@Base 8.10 +JIT pcre_jit_exec@Base 1:8.35 + pcre_jit_free_unused_memory@Base 1:8.35 + pcre_jit_stack_alloc@Base 8.10 + pcre_jit_stack_free@Base 8.10 + pcre_maketables@Base 8.10 + pcre_malloc@Base 8.10 + pcre_pattern_to_host_byte_order@Base 8.10 + pcre_refcount@Base 8.10 + pcre_stack_free@Base 8.10 + pcre_stack_guard@Base 1:8.35 + pcre_stack_malloc@Base 8.10 + pcre_study@Base 8.10 + pcre_version@Base 8.10 +libpcreposix.so.3 libpcre3 + pcreposix_regcomp@Base 8.10 + pcreposix_regerror@Base 8.10 + pcreposix_regexec@Base 8.10 + pcreposix_regfree@Base 8.10 diff -Nru pcre3-8.35/debian/libpcrecpp0.symbols pcre3-8.35/debian/libpcrecpp0.symbols --- pcre3-8.35/debian/libpcrecpp0.symbols 1970-01-01 01:00:00.000000000 +0100 +++ pcre3-8.35/debian/libpcrecpp0.symbols 2014-10-30 16:38:10.000000000 +0000 @@ -0,0 +1,86 @@ +libpcrecpp.so.0 libpcrecpp0 #MINVER# + (c++)"pcrecpp::RE::Init(char const*, pcrecpp::RE_Options const*)@Base" 7.7 + (c++)"pcrecpp::RE::Init(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pcrecpp::RE_Options const*)@Base" 7.7 + (c++)"pcrecpp::RE::no_arg@Base" 7.7 + (c++)"pcrecpp::RE::Cleanup()@Base" 7.7 + (c++)"pcrecpp::RE::Compile(pcrecpp::RE::Anchor)@Base" 7.7 + (c++)"pcrecpp::RE::QuoteMeta(pcrecpp::StringPiece const&)@Base" 7.7 + (c++)"pcrecpp::RE::~RE()@Base" 7.7 + (c++)"pcrecpp::RE::~RE()@Base" 7.7 + (c++)"pcrecpp::Arg::parse_char(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_long(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_null(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_uint(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_float(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_short(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_uchar(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ulong(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_double(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_string(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ushort(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_int_hex(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_long_hex(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_longlong(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_uint_hex(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_int_octal(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_int_radix(char const*, int, void*, int)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_short_hex(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ulong_hex(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ulonglong(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_int_cradix(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_long_octal(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_long_radix(char const*, int, void*, int)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_uint_octal(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_uint_radix(char const*, int, void*, int)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ushort_hex(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_long_cradix(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_short_octal(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_short_radix(char const*, int, void*, int)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_stringpiece(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_uint_cradix(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ulong_octal(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ulong_radix(char const*, int, void*, int)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_longlong_hex(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_short_cradix(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ulong_cradix(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ushort_octal(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ushort_radix(char const*, int, void*, int)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ulonglong_hex(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ushort_cradix(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_longlong_octal(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_longlong_radix(char const*, int, void*, int)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_longlong_cradix(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ulonglong_octal(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ulonglong_radix(char const*, int, void*, int)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_ulonglong_cradix(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Arg::parse_int(char const*, int, void*)@Base" 7.7 + (c++)"pcrecpp::Scanner::EnableSkip()@Base" 7.7 + (c++)"pcrecpp::Scanner::ConsumeSkip()@Base" 7.7 + (c++)"pcrecpp::Scanner::DisableSkip()@Base" 7.7 + (c++)"pcrecpp::Scanner::GetComments(int, int, std::vector<pcrecpp::StringPiece, std::allocator<pcrecpp::StringPiece> >*)@Base" 7.7 + (c++)"pcrecpp::Scanner::GetNextComments(std::vector<pcrecpp::StringPiece, std::allocator<pcrecpp::StringPiece> >*)@Base" 7.7 + (c++)"pcrecpp::Scanner::SetSkipExpression(char const*)@Base" 7.7 + (c++)"pcrecpp::Scanner::Skip(char const*)@Base" 7.7 + (c++)"pcrecpp::Scanner::Consume(pcrecpp::RE const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&)@Base" 7.7 + (c++)"pcrecpp::Scanner::Scanner(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 7.7 + (c++)"pcrecpp::Scanner::Scanner()@Base" 7.7 + (c++)"pcrecpp::Scanner::Scanner(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 7.7 + (c++)"pcrecpp::Scanner::Scanner()@Base" 7.7 + (c++)"pcrecpp::Scanner::~Scanner()@Base" 7.7 + (c++)"pcrecpp::Scanner::~Scanner()@Base" 7.7 + (c++)"pcrecpp::RE::DoMatchImpl(pcrecpp::StringPiece const&, pcrecpp::RE::Anchor, int*, pcrecpp::Arg const* const*, int, int*, int) const@Base" 7.7 + (c++)"pcrecpp::RE::PartialMatch(pcrecpp::StringPiece const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&) const@Base" 7.7 + (c++)"pcrecpp::RE::GlobalReplace(pcrecpp::StringPiece const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const@Base" 7.7 + (c++)"pcrecpp::RE::FindAndConsume(pcrecpp::StringPiece*, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&) const@Base" 7.7 + (c++)"pcrecpp::RE::NumberOfCapturingGroups() const@Base" 7.7 + (c++)"pcrecpp::RE::Consume(pcrecpp::StringPiece*, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&) const@Base" 7.7 + (c++)"pcrecpp::RE::DoMatch(pcrecpp::StringPiece const&, pcrecpp::RE::Anchor, int*, pcrecpp::Arg const* const*, int) const@Base" 7.7 + (c++)"pcrecpp::RE::Extract(pcrecpp::StringPiece const&, pcrecpp::StringPiece const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const@Base" 7.7 + (c++)"pcrecpp::RE::Replace(pcrecpp::StringPiece const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const@Base" 7.7 + (c++)"pcrecpp::RE::Rewrite(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*, pcrecpp::StringPiece const&, pcrecpp::StringPiece const&, int*, int) const@Base" 7.7 + (c++)"pcrecpp::RE::TryMatch(pcrecpp::StringPiece const&, int, pcrecpp::RE::Anchor, bool, int*, int) const@Base" 7.7 + (c++)"pcrecpp::RE::FullMatch(pcrecpp::StringPiece const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&, pcrecpp::Arg const&) const@Base" 7.7 + (c++)"pcrecpp::Scanner::LineNumber() const@Base" 7.7 + (c++)"pcrecpp::Scanner::Offset() const@Base" 7.7 + (c++)"pcrecpp::Scanner::LookingAt(pcrecpp::RE const&) const@Base" 7.7 + (c++)"std::vector<pcrecpp::StringPiece, std::allocator<pcrecpp::StringPiece> >::_M_insert_aux(__gnu_cxx::__normal_iterator<pcrecpp::StringPiece*, std::vector<pcrecpp::StringPiece, std::allocator<pcrecpp::StringPiece> > >, pcrecpp::StringPiece const&)@Base" 7.7 diff -Nru pcre3-8.35/debian/rules pcre3-8.35/debian/rules --- pcre3-8.35/debian/rules 2014-09-29 00:03:27.000000000 +0100 +++ pcre3-8.35/debian/rules 2014-10-30 16:27:21.000000000 +0000 @@ -21,6 +21,8 @@ INSTALL_PROGRAM += -s endif +ENABLE_JIT=$(shell . debian/jit-test) + configure-stamp: dh_testdir # Add here commands to configure the package. @@ -32,7 +34,7 @@ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ --enable-utf8 --enable-unicode-properties \ --disable-silent-rules \ - $(shell . debian/jit-test) \ + $(ENABLE_JIT) \ $(shell DEB_CFLAGS_MAINT_APPEND=-Wall DEB_BUILD_MAINT_OPTIONS=hardening=+all dpkg-buildflags --export=configure) touch configure-stamp @@ -61,6 +63,7 @@ ### -test -r /usr/share/misc/config.guess && \ ### cp -f /usr/share/misc/config.guess config.guess rm -f dftables testsavedregex + rm -f debian/libpcre3.symbols dh_autoreconf_clean dh_clean @@ -110,8 +113,13 @@ rm debian/libpcre3-dbg/usr/lib/debug/usr/lib/libpcre* dh_compress -a dh_fixperms -a - dh_makeshlibs -plibpcre3 --add-udeb="libpcre3-udeb" -V 'libpcre3 (>= 8.10)' - dh_makeshlibs -plibpcrecpp0 -V 'libpcrecpp0 (>= 7.7)' +ifneq (,$(ENABLE_JIT)) + sed -e 's/JIT//' debian/libpcre3.symbols.in > debian/libpcre3.symbols +else + sed -e 's/JIT/#/' debian/libpcre3.symbols.in > debian/libpcre3.symbols +endif + dh_makeshlibs -plibpcre3 --add-udeb="libpcre3-udeb" -- -c4 + dh_makeshlibs -plibpcrecpp0 -- -c4 dh_installdeb -a # dh_perl -a dh_shlibdeps -a -ldebian/libpcre3/usr/lib/$(DEB_HOST_MULTIARCH)