Browse Source

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.


configure.in:
  Bug#30296
    Use "-export-dynamic" when building executable for use with plugins.
    Add required option using MYSQLD_EXTRA_LDFLAGS variable so we do not
    affect any other binary.
config/ac-macros/plugins.m4:
  Do not build plugins when building all-static
sql/sql_yacc.yy:
  build fix - surplus semicolon
pull/374/head
unknown 18 years ago
parent
commit
0bb55050d1
  1. 11
      config/ac-macros/plugins.m4
  2. 13
      configure.in
  3. 2
      sql/sql_yacc.yy

11
config/ac-macros/plugins.m4

@ -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

@ -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.

2
sql/sql_yacc.yy

@ -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…
Cancel
Save