------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugs.exim.org/show_bug.cgi?id=1275 Summary: pcrecpp library breaks ABI in 7.0 without soname bump Product: PCRE Version: 7.0 Platform: Other OS/Version: Linux Status: NEW Severity: bug Priority: medium Component: Code AssignedTo: [email protected] ReportedBy: [email protected] CC: [email protected] Hello, I got a report that libpcrecpp library between releases 6.6 and 7.8 are not binary compatible. If you compile simple C++ application against pcre < 7.0: #include <pcrecpp.h> #include <string> #include <iostream> using namespace::std; int main(int argc, char *argv[]) { pcrecpp::RE re("h.*o"); return 0; } and then try to run it against pcre >= 7.0, you get error from dynamic linker: ./test: symbol lookup error: ./test: undefined symbol: _ZN7pcrecpp2RE4InitEPKcPKNS_10RE_OptionsE This is because the signature of RE::Init() method has changed from: void Init(const char *pattern, const RE_Options* options); to: void Init(const string& pattern, const RE_Options* options); This can be verified by checking the libpcrecpp.so.0 symbol table (nm -DC libpcrecpp.so.0 | grep -F 'pcrecpp::RE::Init'). But checking the soname reveals both libraries have the same soname. I propose to bump the soname from libpcrecpp.so.0 to libpcrecpp.so.1. (Some distributors decided to re-introduce old symbol using a wrapper around the new RE::Init(), like <https://bugs.launchpad.net/ubuntu/+source/pcre3/+bug/130428>.) -- Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev
