mariadb-connector-c/private_library.patch

90 lines
3.6 KiB
Diff
Raw Normal View History

Author: Adam Majer <amajer@suse.de>
Date: Thu Mar 23 11:54:11 CET 2017
Summary: Build private symbols library
Some of the private symbols have very generic names and are required
by other connectors, like the ODBC connector. Instead of using
static linking, create a private shared library that simply
exports all symbols. With the exception of exported symbols, it is
identical to the regular library.
Index: mariadb-connector-c-3.2.6-src/libmariadb/CMakeLists.txt
===================================================================
--- mariadb-connector-c-3.2.6-src.orig/libmariadb/CMakeLists.txt
+++ mariadb-connector-c-3.2.6-src/libmariadb/CMakeLists.txt
@@ -416,6 +416,12 @@ TARGET_LINK_LIBRARIES(libmariadb LINK_PR
SIGN_TARGET(libmariadb)
+ADD_LIBRARY(libmariadbprivate SHARED ${libmariadb_RC} $<TARGET_OBJECTS:mariadb_obj> ${EMPTY_FILE} ${EXPORT_LINK})
+TARGET_LINK_LIBRARIES(libmariadbprivate ${SYSTEM_LIBS})
+IF(UNIX)
+ SET_TARGET_PROPERTIES(libmariadbprivate PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}")
+ENDIF()
+
IF(CMAKE_SYSTEM_NAME MATCHES "Linux" OR
CMAKE_SYSTEM_NAME MATCHES "kFreeBSD" OR
CMAKE_SYSTEM_NAME MATCHES "GNU")
@@ -423,11 +429,13 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux" OR
TARGET_LINK_LIBRARIES (libmariadb LINK_PRIVATE "-Wl,--no-undefined")
ENDIF()
SET_TARGET_PROPERTIES(libmariadb PROPERTIES LINK_FLAGS "${CC_BINARY_DIR}/libmariadb/mariadbclient.def")
+ SET_TARGET_PROPERTIES(libmariadbprivate PROPERTIES LINK_FLAGS "-Wl,--no-undefined")
ENDIF()
SET_TARGET_PROPERTIES(mariadbclient PROPERTIES IMPORTED_INTERFACE_LINK_LIBRARIES "${SYSTEM_LIBS}")
SET_TARGET_PROPERTIES(libmariadb PROPERTIES IMPORTED_INTERFACE_LINK_LIBRARIES "${SYSTEM_LIBS}")
+SET_TARGET_PROPERTIES(libmariadbprivate PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES(libmariadb PROPERTIES PREFIX "")
Accepting request 623451 from home:kstreitova:branches:server:database - New upstream version 3.0.5 - 3.0.5 important changes: * CONC-336: Allow multiple initialization of client library * Fixed string to MYSQL_TIME conversion (prepared statements) * CONC-334: Copy all members of MYSQL_FIELD to internal statement structure * Fixed double free in dynamic column library * Added checks for corrupted packets in protocol * MDEV-15450: Added default connection attribute _server_host * CONC-326: fixed wrong openssl thread id callback - 3.0.4 important changes: * Added option MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS for mysql_options()/mysql_optionsv(): * New plugin configuration interface: The default configuration for a specific plugin can be specified via cmake parameter -DCLIENT_PLUGIN_${PLUGIN}=[DYNAMIC|STATIC|OFF]. * Added support for linux abstract socket (MDEV-15655). * CONC-320: Added asynchronous/non-blocking support for OpenSSL and GnuTLS * CONC-294: Access violation in mysql_close when using a connection plugin. * MDEV-14977: If built dynamically the old_password plugin could not be located due to wrong filename (must be mysql_old_password.so instead of old_password.so). * CONC-315: If no default client character set was specified, the utf8 character set will be used by default (instead of setting the client character set to server character set) * CONC-317: Parsing of configuration file fails if key/value pairs contain white spaces. * CONC-322: Correct handling of EAGAIN and EINPROGRESS in OBS-URL: https://build.opensuse.org/request/show/623451 OBS-URL: https://build.opensuse.org/package/show/server:database/mariadb-connector-c?expand=0&rev=30
2018-07-17 15:41:22 +02:00
#
@@ -469,6 +477,9 @@ INSTALL(TARGETS libmariadb LIBRARY DESTI
COMPONENT SharedLibraries NAMELINK_SKIP)
INSTALL(TARGETS libmariadb LIBRARY DESTINATION ${INSTALL_LIBDIR}
COMPONENT Development NAMELINK_ONLY)
+INSTALL(TARGETS libmariadbprivate
+ COMPONENT SharedLibraries
+ DESTINATION ${INSTALL_LIBDIR})
ENDIF()
IF(MSVC)
Index: mariadb-connector-c-3.2.6-src/mariadb_config/mariadb_config.c.in
===================================================================
--- mariadb-connector-c-3.2.6-src.orig/mariadb_config/mariadb_config.c.in
+++ mariadb-connector-c-3.2.6-src/mariadb_config/mariadb_config.c.in
@@ -33,6 +33,7 @@ static char *mariadb_progname;
#define INCLUDE "-I%s/@INSTALL_INCLUDEDIR@ -I%s/@INSTALL_INCLUDEDIR@/mysql"
#define LIBS "-L%s/@INSTALL_LIBDIR@/ -lmariadb"
#define LIBS_SYS "@extra_dynamic_LDFLAGS@"
+#define PRIVATE_LIBS "-L%s/@INSTALL_LIBDIR@ -lmariadbprivate " LIBS_SYS
#define CFLAGS INCLUDE
#define VERSION "@MARIADB_CLIENT_VERSION@"
#define CC_VERSION "@CPACK_PACKAGE_VERSION@"
@@ -72,6 +73,7 @@ static struct option long_options[]=
{OPT_STRING_TYPE "plugindir", no_argument, 0, 'j'},
{OPT_STRING_TYPE "tlsinfo", no_argument, 0, 'k'},
{OPT_STRING_TYPE "variable", 2, 0, 'm'},
+ {OPT_STRING_TYPE "privatelibs", no_argument, 0, 'z'},
#ifdef HAVE_EMBEDDED
{OPT_STRING_TYPE "libmysqld-libs", no_argument, 0, 'n' },
{OPT_STRING_TYPE "embedded-libs", no_argument, 0, 'n' },
@@ -104,6 +106,7 @@ static const char *values[]=
Accepting request 598524 from home:kstreitova:branches:server:database - New upstream version 3.0.3 * Added support for new utf8mb4 character sets * MDEV-9059: Bundle first command with authentication packet * Build: support static OpenSSL on Windows * MDEV-14101: Add support for tls-version, via mysql_options(mysql, MARIADB_OPT_TLS_VERSION, value), where value must be "TLSv1.1", "TLSv1.2" or "TLSv1.3". * CONC-275: New indicator type STMT_INDICATOR_IGNORE_ROW for skipping particular parameter set in bulk operation (prepared statements). * MDEV-10361: Don't try to reconnect twice if mysql_ping failed. * Build fix for TSAN build with Clang * CONC-302: Fix output of mariadb_config * CONC-301: In case of a truncation the statement status was not updated correctly and further calls to mysql_stmt_fetch_column failed * MDEV-14647: Fixed crash when client receives extended ok packet with SESSION_TRACK_STATE_CHANGE information flag * CONC-297: setting MYSQL_OPT_LOCAL_INFILE failed on big endian systems. * MDEV-14514: mariadb_config returned wrong exit code when specifying an invalid option * MDEV-11546: Fixed timeout problem in Schannel * CONC-277: Allow reinitialization of the library if mysql_server_end() was called. * CONC-292: Fixed malloc result check in dynamic columns * MDEV-14165: The metadata length value for a column with a zerofill flag was calculated with a fixed length instead of using the reported length. * CONC-286: Force TLS/SSL usage if fingerprint parameters were OBS-URL: https://build.opensuse.org/request/show/598524 OBS-URL: https://build.opensuse.org/package/show/server:database/mariadb-connector-c?expand=0&rev=26
2018-04-19 13:51:02 +02:00
CC_VERSION,
SOCKET,
PORT,
+ PRIVATE_LIBS,
PLUGIN_DIR,
TLS_LIBRARY_VERSION,
"VAR VAR is one of:"
@@ -303,6 +306,9 @@ int main(int argc, char **argv)
}
break;
}
+ case 'z':
+ puts(PRIVATE_LIBS);
+ break;
#ifdef HAVE_EMBEDDED
case 'n':
puts(EMBEDDED_LIBS);