From 15e9be7a86189013f9b76c2625c8da65045e75d1 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Dec 2011 22:58:01 +0200 Subject: [PATCH 1/3] Fixed valgrind problem: reference on deleted memory of temporary table name. Removed previous patch of this problem. --- sql/sql_derived.cc | 2 -- sql/sql_show.cc | 9 --------- 2 files changed, 11 deletions(-) diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc index 3eb89f65f40..713a9d86863 100644 --- a/sql/sql_derived.cc +++ b/sql/sql_derived.cc @@ -211,8 +211,6 @@ exit: } orig_table_list->derived_result= derived_result; orig_table_list->table= table; - orig_table_list->table_name= table->s->table_name.str; - orig_table_list->table_name_length= table->s->table_name.length; table->derived_select_number= first_select->select_number; table->s->tmp_table= NON_TRANSACTIONAL_TMP_TABLE; #ifndef NO_EMBEDDED_ACCESS_CHECKS diff --git a/sql/sql_show.cc b/sql/sql_show.cc index fccb071ccb3..f800a173672 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -729,7 +729,6 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list) Protocol *protocol= thd->protocol; char buff[2048]; String buffer(buff, sizeof(buff), system_charset_info); - char *save_db, *save_table_name; bool retval= TRUE; // Assume error List field_list; DBUG_ENTER("mysqld_show_create"); @@ -739,10 +738,6 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list) /* We want to preserve the tree for views. */ thd->lex->context_analysis_only|= CONTEXT_ANALYSIS_ONLY_VIEW; - /* Store original names if called from SP */ - save_db= table_list->db; - save_table_name= table_list->table_name; - { Show_create_error_handler view_error_suppressor(thd, table_list); thd->push_internal_handler(&view_error_suppressor); @@ -825,11 +820,7 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list) retval= FALSE; // ok error: - /* Restore table list if called by stored procedure */ - table_list->db= save_db; - table_list->table_name= save_table_name; DBUG_RETURN(retval); - } bool mysqld_show_create_db(THD *thd, char *dbname, From 6ad3179d6d7facbf55897088c7f0b4d2fcdbd675 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Dec 2011 13:37:18 +0100 Subject: [PATCH 2/3] Fix GCC build failure in PBXT in some cases/platforms. --- storage/pbxt/src/lock_xt.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/storage/pbxt/src/lock_xt.h b/storage/pbxt/src/lock_xt.h index 4e5af648c37..ec426354e4e 100644 --- a/storage/pbxt/src/lock_xt.h +++ b/storage/pbxt/src/lock_xt.h @@ -67,9 +67,9 @@ inline void xt_atomic_inc1(volatile xtWord1 *mptr) #elif defined(XT_ATOMIC_GNUC_X86) xtWord1 val; - asm volatile ("movb %1,%0" : "=r" (val) : "m" (*mptr) : "memory"); + asm volatile ("movb %1,%0" : "=q" (val) : "m" (*mptr) : "memory"); val++; - asm volatile ("xchgb %1,%0" : "=r" (val) : "m" (*mptr), "0" (val) : "memory"); + asm volatile ("xchgb %1,%0" : "=q" (val) : "m" (*mptr), "0" (val) : "memory"); #elif defined(XT_ATOMIC_SOLARIS_LIB) atomic_inc_8(mptr); #else @@ -91,9 +91,9 @@ inline xtWord1 xt_atomic_dec1(volatile xtWord1 *mptr) #elif defined(XT_ATOMIC_GNUC_X86) xtWord1 val2; - asm volatile ("movb %1, %0" : "=r" (val) : "m" (*mptr) : "memory"); + asm volatile ("movb %1, %0" : "=q" (val) : "m" (*mptr) : "memory"); val--; - asm volatile ("xchgb %1,%0" : "=r" (val2) : "m" (*mptr), "0" (val) : "memory"); + asm volatile ("xchgb %1,%0" : "=q" (val2) : "m" (*mptr), "0" (val) : "memory"); /* Should work, but compiler makes a mistake? * asm volatile ("xchgb %1, %0" : : "r" (val), "m" (*mptr) : "memory"); */ From a3e8ce275c9de6e01bce1c0d4a44e0a4b9a8b867 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 12 Dec 2011 16:28:16 +0100 Subject: [PATCH 3/3] new "./configure --disable-distribution" option --- config/ac-macros/readline.m4 | 39 +++++++++++++++++++++++++++--------- configure.in | 29 ++++++++++++++++++++++++--- 2 files changed, 56 insertions(+), 12 deletions(-) diff --git a/config/ac-macros/readline.m4 b/config/ac-macros/readline.m4 index e1ed8420bfb..9e62d9add3e 100644 --- a/config/ac-macros/readline.m4 +++ b/config/ac-macros/readline.m4 @@ -40,23 +40,44 @@ AC_DEFUN([MYSQL_CHECK_LIBEDIT_INTERFACE], [ ]) AC_DEFUN([MYSQL_CHECK_NEW_RL_INTERFACE], [ - AC_CACHE_CHECK([defined rl_compentry_func_t and rl_completion_func_t], mysql_cv_new_rl_interface, - AC_TRY_COMPILE( - [ + AC_CACHE_CHECK([for system libreadline], mysql_cv_new_rl_interface, + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([ #include "stdio.h" #include "readline/readline.h" - ], - [ rl_completion_func_t *func1= (rl_completion_func_t*)0; rl_compentry_func_t *func2= (rl_compentry_func_t*)0; - ], + ])], [ - mysql_cv_new_rl_interface=yes - AC_DEFINE_UNQUOTED([USE_NEW_READLINE_INTERFACE], [1], - [used new readline interface (are rl_completion_func_t and rl_compentry_func_t defined)]) + AC_PREPROC_IFELSE( + [AC_LANG_SOURCE([ + #include "stdio.h" + #include "readline/readline.h" + #if RL_VERSION_MAJOR > 5 + #error + #endif + ])], [ rl_v5=yes ], [ rl_v5=no ], + ) + if [test "$rl_v5" = "yes"] + then + mysql_cv_new_rl_interface=yes + else + if [test "$enable_distribution" = "yes"] + then + mysql_cv_new_rl_interface=no + else + mysql_cv_new_rl_interface=yes + enable_distribution=warn + fi + fi ], [mysql_cv_new_rl_interface=no] ) + if [test "$mysql_cv_new_rl_interface" = yes] + then + AC_DEFINE_UNQUOTED([USE_NEW_READLINE_INTERFACE], [1], + [used new readline interface (are rl_completion_func_t and rl_compentry_func_t defined)]) + fi ) ]) diff --git a/configure.in b/configure.in index 34ca4e171b2..179f4bfcce2 100644 --- a/configure.in +++ b/configure.in @@ -632,6 +632,14 @@ AC_ARG_WITH(other-libc, ) AC_SUBST(NOINST_LDFLAGS) +AC_ARG_ENABLE(distribution, + AC_HELP_STRING( + [--disable-distribution], + [Allow linking with system GPLv3 libraries. It may result in a binary that can not be legally distributed.]), + [ enable_distribution=$enableval ], + [ enable_distribution=yes ] + ) + # # Check if we are using Linux and a glibc compiled with static nss # (this is true on the MySQL build machines to avoid NSS problems) @@ -1573,7 +1581,7 @@ fi AC_MSG_CHECKING([for OpenSolaris Bug 6611808]) save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" -AC_COMPILE_IFELSE([ +AC_COMPILE_IFELSE([AC_LANG_SOURCE([ #include void dummy() {} int main() @@ -1582,7 +1590,7 @@ AC_COMPILE_IFELSE([ pthread_once(&once_control, dummy); return 0; } -], [ +])], [ AC_DEFINE([PTHREAD_ONCE_INITIALIZER], [{PTHREAD_ONCE_INIT}], [See OpenSolaris Bug 6611808]) AC_MSG_RESULT([yes]) @@ -2712,6 +2720,8 @@ case $SYSTEM_TYPE in compile_libedit=yes AC_DEFINE_UNQUOTED(HAVE_HIST_ENTRY, 1) AC_DEFINE_UNQUOTED(USE_LIBEDIT_INTERFACE, 1) + AC_MSG_CHECKING([for libedit/readline]) + AC_MSG_RESULT([libedit bundled]) elif test "$with_readline" = "yes" then readline_topdir="cmd-line-utils" @@ -2722,6 +2732,8 @@ case $SYSTEM_TYPE in compile_readline=yes want_to_use_readline="yes" AC_DEFINE_UNQUOTED(USE_NEW_READLINE_INTERFACE, 1) + AC_MSG_CHECKING([for libedit/readline]) + AC_MSG_RESULT([readline bundled]) else # Use system readline library AC_LANG_SAVE @@ -2736,12 +2748,16 @@ case $SYSTEM_TYPE in # this way we avoid linking commercial source with GPL readline readline_link="-lreadline" want_to_use_readline="yes" + AC_MSG_CHECKING([for libedit/readline]) + AC_MSG_RESULT([readline system]) elif [test "$mysql_cv_libedit_interface" = "yes"] then # Use libedit readline_link="-ledit" + AC_MSG_CHECKING([for libedit/readline]) + AC_MSG_RESULT([libedit system]) else - AC_MSG_ERROR([Could not find system readline or libedit libraries + AC_MSG_ERROR([Could not find usable system readline or libedit libraries Use --with-readline or --with-libedit to use the bundled versions of libedit or readline]) fi @@ -2987,6 +3003,13 @@ if test X"$with_plugin_ndbcluster" = Xyes ; then echo for more details. fi +if test "$enable_distribution" = "warn" +then + echo "You have linked MariaDB with GPLv3 libraries!" + echo "You may not distribute the resulting binary. If you do, you will " + echo "put yourself into a legal problem with Free Software Foundation." +fi + # The first line "Thank you ..." is checked in ./Do-compile to verify that configure # ended sucessfully - don't remove it. echo