Commit 29dcd861 authored by unknown's avatar unknown

Bug #21158 mysql_config doesn't include -lmygcc

Add -lmygcc to mysql_config output for libs, libs_r, and embedded_libs.

Required when linking against our static libs, if yassl is used, and gcc
used to build library is significantly different from that which is using
the library.


scripts/mysql_config.sh:
  Add -lmygcc to --libs, --libs_r, and --embedded-libs output, if libmygcc.a
  is found in the pkglibdir.
  
  This works around a problem when linking against the static client
  libs which were built with a different GCC than the current compiler.
  In this case, without -lmygcc, several builtin functions (e.g.,
  __pure_virtual, __builtin_delete) are left undefined.  Currently it
  is yassl which pulls in these symbols.
  
  This isn't a problem when linking against shared libraries, or when
  using the same compiler version.
  
  Currently it shows up with libs built on build.mysql.com with gcc 2.95.3,
  when using them on more recent systems.
  
  
  Also strip the -mcpu, -mtune, and -march cflags.  The calling package can
  determine what optimization parameters to choose.
parent 65c7d300
...@@ -107,6 +107,16 @@ libs="$libs @openssl_libs@ @STATIC_NSS_FLAGS@ " ...@@ -107,6 +107,16 @@ libs="$libs @openssl_libs@ @STATIC_NSS_FLAGS@ "
libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@ " libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@ "
embedded_libs=" $ldflags -L$pkglibdir -lmysqld @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ " embedded_libs=" $ldflags -L$pkglibdir -lmysqld @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ "
if [ -r "$pkglibdir/libmygcc.a" ]; then
# When linking against the static library with a different version of GCC
# from what was used to compile the library, some symbols may not be defined
# automatically. We package the libmygcc.a from the build host, to provide
# definitions for those. Bugs 4921, 19561, 19817, 21158, etc.
libs="$libs -lmygcc "
libs_r="$libs_r -lmygcc "
embedded_libs="$embedded_libs -lmygcc "
fi
cflags="-I$pkgincludedir @CFLAGS@ " #note: end space! cflags="-I$pkgincludedir @CFLAGS@ " #note: end space!
include="-I$pkgincludedir" include="-I$pkgincludedir"
...@@ -116,6 +126,7 @@ include="-I$pkgincludedir" ...@@ -116,6 +126,7 @@ include="-I$pkgincludedir"
for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \ for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \
DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \ DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \
DEXTRA_DEBUG DHAVE_purify O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \ DEXTRA_DEBUG DHAVE_purify O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \
'mtune=[-A-Za-z0-9]*' 'mcpu=[-A-Za-z0-9]*' 'march=[-A-Za-z0-9]*' \
Xa xstrconst "xc99=none" \ Xa xstrconst "xc99=none" \
unroll2 ip mp restrict unroll2 ip mp restrict
do do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment