mariadb-connector-c/private_library.patch

108 lines
4.2 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-2.3.2-src/libmariadb/CMakeLists.txt
===================================================================
--- mariadb-connector-c-2.3.2-src.orig/libmariadb/CMakeLists.txt
+++ mariadb-connector-c-2.3.2-src/libmariadb/CMakeLists.txt
@@ -397,13 +397,22 @@ IF(UNIX)
ENDIF()
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")
TARGET_LINK_LIBRARIES (libmariadb "-Wl,--no-undefined")
TARGET_LINK_LIBRARIES (libmariadb "-Wl,--version-script=${EXPORT_FILE}")
TARGET_LINK_LIBRARIES (mariadbclient "-Wl,--no-undefined")
TARGET_LINK_LIBRARIES (mariadbclient "-Wl,--version-script=${EXPORT_FILE}")
+ TARGET_LINK_LIBRARIES (libmariadbprivate "-Wl,--no-undefined")
ENDIF()
+SET_TARGET_PROPERTIES(libmariadbprivate PROPERTIES PREFIX "")
+
SET_TARGET_PROPERTIES(libmariadb PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION
@@ -429,7 +438,7 @@ ENDIF()
INSTALL(TARGETS
- libmariadb mariadbclient
+ libmariadb libmariadbprivate mariadbclient
RUNTIME DESTINATION "${LIB_INSTALL_DIR}"
LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
ARCHIVE DESTINATION "${LIB_INSTALL_DIR}")
Index: mariadb-connector-c-2.3.2-src/mariadb_config/mariadb_config.c.in
===================================================================
--- mariadb-connector-c-2.3.2-src.orig/mariadb_config/mariadb_config.c.in
+++ mariadb-connector-c-2.3.2-src/mariadb_config/mariadb_config.c.in
@@ -6,6 +6,8 @@
#define INCLUDE "-I@INCLUDE_INSTALL_DIR@ -I@INCLUDE_INSTALL_DIR@/mariadb"
#define LIBS "-L@LIB_INSTALL_DIR@/mariadb -lmariadb" \
"@extra_dynamic_LDFLAGS@"
+#define PRIVATE_LIBS "-L@LIB_INSTALL_DIR@/mariadb -lmariadbprivate" \
+ "@extra_dynamic_LDFLAGS@"
#define CFLAGS INCLUDE " @CMAKE_C_FLAGS@"
#define VERSION "@MYSQL_CLIENT_VERSION@"
#define PLUGIN_DIR "@PLUGIN_INSTALL_DIR@"
@@ -22,6 +24,7 @@ static struct option long_options[]=
{"version", no_argument, 0, 'f'},
{"socket", no_argument, 0, 'g'},
{"port", no_argument, 0, 'h'},
+ {"privatelibs", no_argument, 0, 'i'},
{"plugindir", no_argument, 0, 'p'},
{NULL, 0, 0, 0}
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 11:51:02 +00:00
};
@@ -36,6 +39,7 @@ static char *values[]=
VERSION,
SOCKET,
PORT,
+ PRIVATE_LIBS,
PLUGIN_DIR
};
@@ -92,6 +96,9 @@ int main(int argc, char **argv)
case 'h':
puts(PORT);
break;
+ case 'i':
+ puts(PRIVATE_LIBS);
+ break;
case 'p':
puts(PLUGIN_DIR);
break;
Index: mariadb-connector-c-2.3.2-src/plugins/auth/CMakeLists.txt
===================================================================
--- mariadb-connector-c-2.3.2-src.orig/plugins/auth/CMakeLists.txt
+++ mariadb-connector-c-2.3.2-src/plugins/auth/CMakeLists.txt
@@ -10,7 +10,7 @@ IF(WIN32)
"FILE_DESCRIPTION:Authentication plugin")
SET(DIALOG_SOURCES ${DIALOG_SOURCES} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
ENDIF()
-ADD_LIBRARY(dialog SHARED ${dialog_RC} ${DIALOG_SOURCES})
+ADD_LIBRARY(dialog MODULE ${dialog_RC} ${DIALOG_SOURCES})
TARGET_LINK_LIBRARIES(dialog dl)
SET_TARGET_PROPERTIES(dialog PROPERTIES PREFIX "")
SIGN_TARGET(dialog)
@@ -32,7 +32,7 @@ IF(WIN32)
"FILE_DESCRIPTION:Authentication plugin")
SET(CTEXT_SOURCES ${CTEXT_SOURCES} ${CMAKE_SOURCE_DIR}/plugins/plugin.def)
ENDIF()
-ADD_LIBRARY(mysql_clear_password SHARED ${mysql_clear_password_RC} ${CTEXT_SOURCES})
+ADD_LIBRARY(mysql_clear_password MODULE ${mysql_clear_password_RC} ${CTEXT_SOURCES})
SET_TARGET_PROPERTIES(mysql_clear_password PROPERTIES PREFIX "")
SIGN_TARGET(mysql_clear_password)