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)

Reply via email to