From: Date: October 26 2007 6:19am Subject: bk commit into 5.1 tree (antony:1.2596) BUG#30296 List-Archive: http://lists.mysql.com/commits/36398 X-Bug: 30296 Message-Id: <20071026041942.49B161754489@pcg5ppc.xiphis.org> Below is the list of changes that have just been committed into a local 5.1 repository of antony. When antony does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2007-10-25 21:19:28-07:00, antony@stripped +3 -0 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. config/ac-macros/plugins.m4@stripped, 2007-10-25 21:19:20-07:00, antony@stripped +11 -0 Do not build plugins when building all-static configure.in@stripped, 2007-10-25 21:19:19-07:00, antony@stripped +12 -1 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. sql/sql_yacc.yy@stripped, 2007-10-25 21:19:20-07:00, antony@stripped +1 -1 build fix - surplus semicolon diff -Nrup a/config/ac-macros/plugins.m4 b/config/ac-macros/plugins.m4 --- a/config/ac-macros/plugins.m4 2006-12-27 21:42:02 -08:00 +++ b/config/ac-macros/plugins.m4 2007-10-25 21:19:20 -07:00 @@ -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 -Nrup a/configure.in b/configure.in --- a/configure.in 2007-10-19 13:03:16 -07:00 +++ b/configure.in 2007-10-25 21:19:19 -07:00 @@ -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 -Nrup a/sql/sql_yacc.yy b/sql/sql_yacc.yy --- a/sql/sql_yacc.yy 2007-10-16 19:47:04 -07:00 +++ b/sql/sql_yacc.yy 2007-10-25 21:19:20 -07:00 @@ -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: