mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Bug#30296
"Dynamic plugins fail to load on FreeBSD" ELF executables need to be linked using the -export-dynamic option to ld(1) for symbols defined in the executable to become visible to dlsym(). Also, do not build plugins on an all-static build.
This commit is contained in:
parent
e21b150a59
commit
ada0b49328
3 changed files with 24 additions and 2 deletions
|
@ -360,6 +360,17 @@ AC_DEFUN([__MYSQL_EMIT_CHECK_PLUGIN],[
|
|||
AC_MSG_ERROR([cannot disable mandatory plugin])
|
||||
fi
|
||||
[mysql_plugin_]$2=yes
|
||||
],[
|
||||
case "$with_mysqld_ldflags " in
|
||||
*"-all-static "*)
|
||||
# No need to build shared plugins when mysqld is linked with
|
||||
# -all-static as it won't be able to load them.
|
||||
if test "X[$mysql_plugin_]$2" != Xyes -a \
|
||||
"X[$with_plugin_]$2" != Xyes; then
|
||||
[with_plugin_]$2=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
])
|
||||
if test "X[$with_plugin_]$2" = Xno; then
|
||||
AC_MSG_RESULT([no])
|
||||
|
|
13
configure.in
13
configure.in
|
@ -1745,7 +1745,18 @@ then
|
|||
LDFLAGS="$LDFLAGS -rdynamic"
|
||||
AC_MSG_RESULT("-rdynamic")
|
||||
else
|
||||
AC_MSG_RESULT("none")
|
||||
case "$SYSTEM_TYPE$with_mysqld_ldflags " in
|
||||
*freebsd*"-all-static "*|*dragonfly*"-all-static "*)
|
||||
AC_MSG_RESULT("none")
|
||||
;;
|
||||
*freebsd*|*dragonfly*)
|
||||
MYSQLD_EXTRA_LDFLAGS="$MYSQLD_EXTRA_LDFLAGS -export-dynamic"
|
||||
AC_MSG_RESULT("-export-dynamic")
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT("none")
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
|
|
|
@ -6492,7 +6492,7 @@ bool_pri:
|
|||
{ $$= (*$2)(0)->create($1,$3); }
|
||||
| bool_pri comp_op all_or_any '(' subselect ')' %prec EQ
|
||||
{ $$= all_any_subquery_creator($1, $2, $3, $5); }
|
||||
| predicate ;
|
||||
| predicate
|
||||
;
|
||||
|
||||
predicate:
|
||||
|
|
Loading…
Reference in a new issue