On 01/08/2014 06:10 PM, Sergei Golubchik wrote:
Hi, Honza!
On Jan 08, Honza Horak wrote:
* change the versioning to be correct and debian-compatible, by having old symbols to appear under both libmysqlclient_16 and libmysqlclient_18 version.
I don't believe Debian will use Fedora-style versioning, it's an incompatible change after all. But they might want to use "correct-and-compatible" approach with symbol aliases and two versions per symbol.
Sergei, thanks a lot for both your advices, I'll try that. Anyway, do you happen to know from scratch how to define two versions for one symbol in the version script (what is the syntax)? I'm quite lost right now, but maybe you have experiences with it.
I didn't try it myself. But in the ld info pages they mention that it's possible. Info pages have an example, but it uses __asm__ and .symver, not a linker script. I think one can do the same with a linker script.
Our gcc/ld gurus told be we have to use __asm__ and .symver actually. Anyway, Oracle uses it already for their Fedora builds: http://bazaar.launchpad.net/~mysql/mysql-server/5.6/view/head:/packaging/rpm... Also, I tried to summarize what our options are in https://bugzilla.redhat.com/show_bug.cgi?id=1045013#c12 ..feel free to add your points there. Good thing is that if we start using "correct-and-compatible" approach with symbol aliases and two versions per symbol, we're not blocked by Debian approach, since adopting the same one would make things a bit better, but even non-adoption it doesn't make it much worse. Regards, Honza