https://bugzilla.redhat.com/show_bug.cgi?id=1309199
Petr Pisar <ppisar(a)redhat.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hhorak(a)redhat.com,
| |jstanek(a)redhat.com,
| |mmuzila(a)redhat.com
Component|perl-DBD-MySQL |mariadb
Assignee|jplesnik(a)redhat.com |jdornak(a)redhat.com
--- Comment #3 from Petr Pisar <ppisar(a)redhat.com> ---
As described in
<
http://www.scoberlin.de/content/media/http/informatik/gcc_docs/ld_3.html#...;:
When you have multiple definitions of a given symbol, there needs to
be some
way to specify a default version to which external references to this symbol
will be bound. You can do this with the `foo@(a)VERS_2.0' type of `.symver'
directive. You can only declare one version of a symbol as the default in
this manner; otherwise you would effectively have multiple definitions of
the same symbol.
At most one default version of a symbol makes sense.
The old libmysqlclient.so.18 declares only libmysqlclient_18 as the default:
mysql_read_query_result@libmysqlclient_16
mysql_read_query_result@@libmysqlclient_18
while the new libmysqlclient.so.18 declares both versions as default:
mysql_read_query_result@@libmysqlclient_16
mysql_read_query_result@@libmysqlclient_18
I think this is the reason why newly built libmysqlclient.so.18 application
selects libmysqlclient_16 instead of the libmysqlclient_18.
I still don't understand why dynamic linker cannot found the libmysqlclient_16
versioned symbol in the library.
--
You are receiving this mail because:
You are on the CC list for the bug.