From fc74d67fab3c88cbd51efb0bca76004b70c7e8bc Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 13 Jan 2018 20:56:28 -0500 Subject: Correct handling of elf symbol versioning We were putting the value of LT_CURRENT in the versioned symbol map instead of the soname major version, which was creating binary incompatibility where none was present. Unfortunately, this bug is already out there for qpdf 7.0.0, so we'll have to work around it for now. --- configure.ac | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index cd395d91..c28fedc6 100644 --- a/configure.ac +++ b/configure.ac @@ -35,6 +35,20 @@ LT_REVISION=0 AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) +LT_SONAME=$(expr $LT_CURRENT - $LT_AGE) +# BEGIN LT_SONAME WORKAROUND +# For elf versioned symbols, get the soname version. Unfortunately, +# there was a mistake at one point where we had 19 when we should have +# had 18, so make this a special case until the next ABI change. At +# that point, just remove the code deliminated by the LT_SONAME +# WORKAROUND comments. +if test $LT_SONAME = 18; then + LT_SONAME=19 +elif test $LT_SONAME -gt 18; then + AC_MSG_ERROR(Remove LT_SONAME workaround in configure.ac) +fi +# END LT_SONAME WORKAROUND +AC_SUBST(LT_SONAME) AC_ARG_ENABLE(insecure-random, AS_HELP_STRING([--enable-insecure-random], -- cgit v1.2.3-54-g00ecf