2017-03-23 12:15:46 +00:00
|
|
|
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.
|
|
|
|
|
2021-05-28 07:35:43 +00:00
|
|
|
Index: mariadb-connector-c-3.1.13-src/libmariadb/CMakeLists.txt
|
2017-03-23 12:15:46 +00:00
|
|
|
===================================================================
|
2021-05-28 07:35:43 +00:00
|
|
|
--- mariadb-connector-c-3.1.13-src.orig/libmariadb/CMakeLists.txt
|
|
|
|
+++ mariadb-connector-c-3.1.13-src/libmariadb/CMakeLists.txt
|
2020-11-05 15:57:23 +00:00
|
|
|
@@ -414,6 +414,12 @@ IF(CMAKE_SIZEOF_VOID_P EQUAL 8 AND MSVC)
|
2017-09-12 14:29:43 +00:00
|
|
|
SET_TARGET_PROPERTIES(mariadbclient PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
|
2017-03-23 12:15:46 +00:00
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
+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()
|
|
|
|
+
|
2019-07-04 15:05:50 +00:00
|
|
|
IF(CMAKE_SYSTEM_NAME MATCHES "Linux" OR
|
2020-07-06 12:48:44 +00:00
|
|
|
CMAKE_SYSTEM_NAME MATCHES "kFreeBSD" OR
|
2019-07-04 15:05:50 +00:00
|
|
|
CMAKE_SYSTEM_NAME MATCHES "GNU")
|
2020-11-05 15:57:23 +00:00
|
|
|
@@ -421,11 +427,13 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux" OR
|
2020-05-22 19:50:54 +00:00
|
|
|
TARGET_LINK_LIBRARIES (libmariadb LINK_PRIVATE "-Wl,--no-undefined")
|
2017-09-12 14:29:43 +00:00
|
|
|
ENDIF()
|
2018-08-09 10:28:56 +00:00
|
|
|
SET_TARGET_PROPERTIES(libmariadb PROPERTIES LINK_FLAGS "${CC_BINARY_DIR}/libmariadb/mariadbclient.def")
|
|
|
|
+ SET_TARGET_PROPERTIES(libmariadbprivate PROPERTIES LINK_FLAGS "-Wl,--no-undefined")
|
2017-03-23 12:15:46 +00:00
|
|
|
ENDIF()
|
|
|
|
|
2017-09-12 14:29:43 +00:00
|
|
|
SET_TARGET_PROPERTIES(mariadbclient PROPERTIES IMPORTED_INTERFACE_LINK_LIBRARIES "${SYSTEM_LIBS}")
|
|
|
|
SET_TARGET_PROPERTIES(libmariadb PROPERTIES IMPORTED_INTERFACE_LINK_LIBRARIES "${SYSTEM_LIBS}")
|
|
|
|
|
2017-03-23 12:15:46 +00:00
|
|
|
+SET_TARGET_PROPERTIES(libmariadbprivate PROPERTIES PREFIX "")
|
|
|
|
SET_TARGET_PROPERTIES(libmariadb PROPERTIES PREFIX "")
|
|
|
|
|
2018-07-17 13:41:22 +00:00
|
|
|
#
|
2020-11-05 15:57:23 +00:00
|
|
|
@@ -461,7 +469,9 @@ INSTALL(TARGETS mariadbclient
|
2017-09-12 14:29:43 +00:00
|
|
|
INSTALL(TARGETS libmariadb
|
|
|
|
COMPONENT SharedLibraries
|
|
|
|
DESTINATION ${INSTALL_LIBDIR})
|
2018-08-09 10:28:56 +00:00
|
|
|
-
|
2017-09-12 14:29:43 +00:00
|
|
|
+INSTALL(TARGETS libmariadbprivate
|
|
|
|
+ COMPONENT SharedLibraries
|
|
|
|
+ DESTINATION ${INSTALL_LIBDIR})
|
2017-03-23 12:15:46 +00:00
|
|
|
|
2020-05-22 19:50:54 +00:00
|
|
|
IF(MSVC)
|
2019-01-07 09:50:38 +00:00
|
|
|
# On Windows, install PDB
|
2021-05-28 07:35:43 +00:00
|
|
|
Index: mariadb-connector-c-3.1.13-src/mariadb_config/mariadb_config.c.in
|
2017-03-23 12:15:46 +00:00
|
|
|
===================================================================
|
2021-05-28 07:35:43 +00:00
|
|
|
--- mariadb-connector-c-3.1.13-src.orig/mariadb_config/mariadb_config.c.in
|
|
|
|
+++ mariadb-connector-c-3.1.13-src/mariadb_config/mariadb_config.c.in
|
2020-11-05 15:57:23 +00:00
|
|
|
@@ -30,6 +30,7 @@ static char *mariadb_progname;
|
|
|
|
#define INCLUDE "-I%s/@INSTALL_INCLUDEDIR@ -I%s/@INSTALL_INCLUDEDIR@/mysql"
|
|
|
|
#define LIBS "-L%s/@INSTALL_LIBDIR@/ -lmariadb"
|
2017-09-12 14:29:43 +00:00
|
|
|
#define LIBS_SYS "@extra_dynamic_LDFLAGS@"
|
2021-05-28 07:35:43 +00:00
|
|
|
+#define PRIVATE_LIBS "-L%s/@INSTALL_LIBDIR@ -lmariadbprivate " LIBS_SYS
|
2017-09-12 14:29:43 +00:00
|
|
|
#define CFLAGS INCLUDE
|
|
|
|
#define VERSION "@MARIADB_CLIENT_VERSION@"
|
2020-11-05 15:57:23 +00:00
|
|
|
#define CC_VERSION "@CPACK_PACKAGE_VERSION@"
|
|
|
|
@@ -65,6 +66,7 @@ static struct option long_options[]=
|
2020-05-22 19:50:54 +00:00
|
|
|
{OPT_STRING_TYPE "plugindir", no_argument, 0, 'j'},
|
|
|
|
{OPT_STRING_TYPE "tlsinfo", no_argument, 0, 'k'},
|
2020-11-05 15:57:23 +00:00
|
|
|
{OPT_STRING_TYPE "variable", 2, 0, 'm'},
|
|
|
|
+ {OPT_STRING_TYPE "privatelibs", no_argument, 0, 'z'},
|
2017-03-23 12:15:46 +00:00
|
|
|
{NULL, 0, 0, 0}
|
2018-04-19 11:51:02 +00:00
|
|
|
};
|
|
|
|
|
2020-11-05 15:57:23 +00:00
|
|
|
@@ -92,6 +94,7 @@ static const char *values[]=
|
2018-04-19 11:51:02 +00:00
|
|
|
CC_VERSION,
|
2017-03-23 12:15:46 +00:00
|
|
|
SOCKET,
|
|
|
|
PORT,
|
|
|
|
+ PRIVATE_LIBS,
|
2017-09-12 14:29:43 +00:00
|
|
|
PLUGIN_DIR,
|
2020-11-05 15:57:23 +00:00
|
|
|
TLS_LIBRARY_VERSION,
|
|
|
|
"VAR VAR is one of:"
|
|
|
|
@@ -288,6 +291,9 @@ int main(int argc, char **argv)
|
|
|
|
}
|
2017-03-23 12:15:46 +00:00
|
|
|
break;
|
2020-11-05 15:57:23 +00:00
|
|
|
}
|
|
|
|
+ case 'z':
|
2017-03-23 12:15:46 +00:00
|
|
|
+ puts(PRIVATE_LIBS);
|
|
|
|
+ break;
|
2018-04-19 11:51:02 +00:00
|
|
|
default:
|
|
|
|
exit((c != -1));
|
|
|
|
}
|