• Vladislav Vaintroub's avatar
    MDEV-3842, MDEV-3923 : · 76400fcc
    Vladislav Vaintroub authored
    Miscellaneous workarounds for  drop-in compatibility problems with Linux distributions, arounf versioning of the 
    MySQL 5.5 client shared library. There seems to be 3 different ways major distributions handle versioning
    
    1. Fedora  (also Mageia, and likely  other Redhat descendants) way 
       old, 5.1 API functions are given version libmysqlclient_16
       new API functions  (client plugins, mysql_stmt_next ) are given version libmysqlclient_18
       some extra functions beyond API are exported.
       some functions are renamed.
    
    2.Debian Wheezy way 
      all functions are given libmysqlclient_18 version
    
    3. Ubuntu  way (or MySQL/MariaDB download packages)
      no versioning
    
    UIp to this fix, MariaDB distributions did not have any versioning in the libraries, this rendered client library incompatible to distributions 
    thus exchanging  distribution's libmysqlclient.so.18.0.0  with MariaDB's did not work nicely (anywhere but on Ubuntu)
    
    
    THE FIX  
    is to build libraries the same way as distributions do it 
    - when building RPMs, use  same version script as Fedora does, Make sure to export extra-symbols, the same as Fedora exports.
    - when building DEBs, use the same version script as Debian Wheezy
    - do not use version scripts otherwise
    
    
    Also, makes sure that extensions of  MySQL APIs (asynchronous client functionality) is exported by  the shared libraries.
    76400fcc
CMakeLists.txt 10.4 KB