mariadb-connector-c/private_library.patch
Adam Majer b74fa8e0a7 - Update to release 3.1.11:
* CONC-513: MSAN use-of-uninitialized-value in strstr()
  * CONC-512: truncation check for float values fails on i386 due
  * to Intel FPU optimization bug in gcc
  * CONC-510: Fix crash when loading plugins in mysql_server_init()
  * CONC-508: Added support for passwords > 255 characters
  * CONC-507: Fixed race condition in ma_net_init
  * CONC-501: Added support for TLS v1.3 cipher suites
  * MDEV-21612: Removed unused command COM_MULTI
- changes in release 3.1.10:
  * CONC-500: Fixed error when loading intermediate chained certificates
  * MDEV-18818: Fixed wrong zlib in mariadb_config when building
    inside server package
  * CONC-498: MYSQL_UNIX_ADDR and MYSQL_PORT are now defined
  * Added new build option WIITH_ICONV=ON/OFF. When set to OFF (default)
    API function mariadb_convert_string will always return -1 and
    sets errorcode to ENOTSUP.
  * mariadb_config now tries to determine the path of execution or
    uses MARIADB_CONFIG environment variable before falling back and
    using CMAKE_INSTALL_PREFIX for location of libraries and include files
  * added --variables option for mariadb_config.
    Supported values are pkgincludedir, pkglibdir and pkgplugindir.
- absolute_path_fix.patch, private_library.patch: refreshed

OBS-URL: https://build.opensuse.org/package/show/server:database/mariadb-connector-c?expand=0&rev=59
2020-11-05 15:57:23 +00:00

91 lines
3.5 KiB
Diff

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.1.11-src/libmariadb/CMakeLists.txt
===================================================================
--- mariadb-connector-c-3.1.11-src.orig/libmariadb/CMakeLists.txt
+++ mariadb-connector-c-3.1.11-src/libmariadb/CMakeLists.txt
@@ -414,6 +414,12 @@ IF(CMAKE_SIZEOF_VOID_P EQUAL 8 AND MSVC)
SET_TARGET_PROPERTIES(mariadbclient PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
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()
+
IF(CMAKE_SYSTEM_NAME MATCHES "Linux" OR
CMAKE_SYSTEM_NAME MATCHES "kFreeBSD" OR
CMAKE_SYSTEM_NAME MATCHES "GNU")
@@ -421,11 +427,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 "")
#
@@ -461,7 +469,9 @@ INSTALL(TARGETS mariadbclient
INSTALL(TARGETS libmariadb
COMPONENT SharedLibraries
DESTINATION ${INSTALL_LIBDIR})
-
+INSTALL(TARGETS libmariadbprivate
+ COMPONENT SharedLibraries
+ DESTINATION ${INSTALL_LIBDIR})
IF(MSVC)
# On Windows, install PDB
Index: mariadb-connector-c-3.1.11-src/mariadb_config/mariadb_config.c.in
===================================================================
--- mariadb-connector-c-3.1.11-src.orig/mariadb_config/mariadb_config.c.in
+++ mariadb-connector-c-3.1.11-src/mariadb_config/mariadb_config.c.in
@@ -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"
#define LIBS_SYS "@extra_dynamic_LDFLAGS@"
+#define PRIVATE_LIBS "-L@INSTALL_LIBDIR@ -lmariadbprivate " LIBS_SYS
#define CFLAGS INCLUDE
#define VERSION "@MARIADB_CLIENT_VERSION@"
#define CC_VERSION "@CPACK_PACKAGE_VERSION@"
@@ -65,6 +66,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'},
{NULL, 0, 0, 0}
};
@@ -92,6 +94,7 @@ static const char *values[]=
CC_VERSION,
SOCKET,
PORT,
+ PRIVATE_LIBS,
PLUGIN_DIR,
TLS_LIBRARY_VERSION,
"VAR VAR is one of:"
@@ -288,6 +291,9 @@ int main(int argc, char **argv)
}
break;
}
+ case 'z':
+ puts(PRIVATE_LIBS);
+ break;
default:
exit((c != -1));
}