From 3a50dfc27e0ae7e28ed9861646eb4a2ba63a67a6 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Tue, 1 Jun 2021 17:01:49 -0400 Subject: [PATCH] bump SONAME major to 8 In URCU 0.11, we introduced new symbols to clean up the library symbol namespacing, using the "alias" attribute to keep emitting the old symbols, expecting to preserve ABI backward compatibility. Unfortunately, it turns out that even though it works well for function symbols, it is broken for public global variables due to the way ELF copy relocation works. When building a non-PIC executable that uses an extern variable, a .bss symbol is emitted in the executable. This will take precedence over the symbol implemented within the library in the Global Symbol Table. Unfortunately, the alias within the library will not be aware that the actual GST symbol differs from its alias within the library, and the addresses for the symbol and its alias will differ at runtime. Considering that this compatibility issue affects official library releases, there is little we can do beyond documenting this issue, and bumping the Userspace RCU major soname for the next (0.13) release. Change-Id: I0ca8407dcffd871f025814923c6e329ec260133a Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 690fe8f..6067a57 100644 --- a/configure.ac +++ b/configure.ac @@ -14,9 +14,9 @@ m4_define([urcu_version], urcu_version_major[.]urcu_version_minor[.]urcu_version # Library version information of "liburcu" # Following the numbering scheme proposed by libtool for the library version # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html -m4_define([urcu_lib_version_current], [7]) +m4_define([urcu_lib_version_current], [8]) m4_define([urcu_lib_version_revision], [0]) -m4_define([urcu_lib_version_age], [1]) +m4_define([urcu_lib_version_age], [0]) m4_define([urcu_lib_version], urcu_lib_version_current[:]urcu_lib_version_revision[:]urcu_lib_version_age) -- 2.34.1