diff options
author | unknown <antony@pcg5ppc.xiphis.org> | 2007-10-25 21:19:28 -0700 |
---|---|---|
committer | unknown <antony@pcg5ppc.xiphis.org> | 2007-10-25 21:19:28 -0700 |
commit | 0bb55050d142a3408908ca4d7e8b3db0d698ebf0 (patch) | |
tree | c1bae9176eedaa7470e9c269563fbad377abe794 | |
parent | 957d8665068156583acf69c01890572e7604933d (diff) | |
download | mariadb-git-0bb55050d142a3408908ca4d7e8b3db0d698ebf0.tar.gz |
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
-rw-r--r-- | config/ac-macros/plugins.m4 | 11 | ||||
-rw-r--r-- | configure.in | 13 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 2 |
3 files changed, 24 insertions, 2 deletions
diff --git a/config/ac-macros/plugins.m4 b/config/ac-macros/plugins.m4 index 48754563992..8dfb698709f 100644 --- a/config/ac-macros/plugins.m4 +++ b/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]) diff --git a/configure.in b/configure.in index 0fe2f1b5510..0c5fe692edf 100644 --- a/configure.in +++ b/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. diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 30e62c5d7b5..16fda2886f8 100644 --- a/sql/sql_yacc.yy +++ b/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: |