List:Commits« Previous MessageNext Message »
From:Alexey Botchkov Date:November 19 2008 11:08am
Subject:bzr push into mysql-5.1 branch (holyfoot:2715 to 2717)
View as plain text  
 2717 Alexey Botchkov	2008-11-19 [merge]
      merging
modified:
  dbug/dbug.c
  include/my_dbug.h
  libmysqld/examples/CMakeLists.txt
  libmysqld/libmysqld.def
  mysys/mf_tempdir.c
  mysys/my_getopt.c
  sql/mysqld.cc

 2716 Alexey Botchkov	2008-11-19 [merge]
      merging
modified:
  include/my_global.h

 2715 Chad MILLER	2008-11-18 [merge]
      Merge fix for bug 39178.
modified:
  extra/yassl/include/cert_wrapper.hpp
  extra/yassl/include/openssl/prefix_ssl.h
  extra/yassl/include/openssl/ssl.h
  extra/yassl/include/yassl_imp.hpp
  extra/yassl/include/yassl_int.hpp
  extra/yassl/include/yassl_types.hpp
  extra/yassl/src/cert_wrapper.cpp
  extra/yassl/src/ssl.cpp
  extra/yassl/src/yassl_error.cpp
  extra/yassl/src/yassl_imp.cpp
  extra/yassl/src/yassl_int.cpp
  mysql-test/mysql-test-run.pl
  mysql-test/r/openssl_1.result
  mysql-test/t/openssl_1.test

=== modified file 'dbug/dbug.c'
--- a/dbug/dbug.c	2008-05-02 17:42:34 +0000
+++ b/dbug/dbug.c	2008-11-19 09:57:23 +0000
@@ -2407,4 +2407,13 @@ int i_am_a_dummy_function() {
        return 0;
 }
 
+#ifdef __WIN__
+char _db_doprnt_;
+char _db_enter_;
+char _db_pargs_;
+char _db_process_;
+char _db_push_;
+char _db_return_;
+#endif /*__WIN__*/
+
 #endif

=== modified file 'include/my_dbug.h'
--- a/include/my_dbug.h	2008-03-31 07:40:39 +0000
+++ b/include/my_dbug.h	2008-11-19 09:57:23 +0000
@@ -108,6 +108,22 @@ extern FILE *_db_fp_(void);
 #define DBUG_EXPLAIN(buf,len)
 #define DBUG_EXPLAIN_INITIAL(buf,len)
 #define IF_DBUG(A)
+
+#ifdef __WIN__
+/*
+   On windows all the dll export has to be declared in the *.def file
+   so as we export these symbols in DEBUG mode we have to export
+   these in the RELEASE mode also. So below are the dummy symbols
+   for the RELEASE export
+*/
+extern  char _db_doprnt_;
+extern  char _db_enter_;
+extern  char _db_pargs_;
+extern  char _db_process_;
+extern  char _db_push_;
+extern  char _db_return_;
+#endif /*__WIN__*/
+
 #endif
 #ifdef	__cplusplus
 }

=== modified file 'include/my_global.h'
--- a/include/my_global.h	2008-05-20 07:38:17 +0000
+++ b/include/my_global.h	2008-06-16 03:04:45 +0000
@@ -18,11 +18,6 @@
 #ifndef _global_h
 #define _global_h
 
-#ifndef EMBEDDED_LIBRARY
-#define HAVE_REPLICATION
-#define HAVE_EXTERNAL_CLIENT
-#endif
-
 /*
   InnoDB depends on some MySQL internals which other plugins should not
   need.  This is because of InnoDB's foreign key support, "safe" binlog
@@ -101,6 +96,11 @@
 #endif
 #endif /* !EMBEDDED_LIBRARY */
 
+#ifndef EMBEDDED_LIBRARY
+#define HAVE_REPLICATION
+#define HAVE_EXTERNAL_CLIENT
+#endif
+
 /* Some defines to avoid ifdefs in the code */
 #ifndef NETWARE_YIELD
 #define NETWARE_YIELD

=== modified file 'libmysqld/examples/CMakeLists.txt'
--- a/libmysqld/examples/CMakeLists.txt	2007-11-02 08:27:38 +0000
+++ b/libmysqld/examples/CMakeLists.txt	2008-11-19 09:57:23 +0000
@@ -29,13 +29,13 @@ ADD_DEFINITIONS(-DEMBEDDED_LIBRARY)
 ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc
                ../../client/mysql.cc ../../client/readline.cc
                ../../client/sql_string.cc)
-TARGET_LINK_LIBRARIES(mysql_embedded mysys yassl taocrypt zlib debug dbug regex strings wsock32)
+TARGET_LINK_LIBRARIES(mysql_embedded debug wsock32)
 ADD_DEPENDENCIES(mysql_embedded libmysqld)
 
 ADD_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.c)
-TARGET_LINK_LIBRARIES(mysqltest_embedded mysys yassl taocrypt zlib debug dbug regex strings wsock32)
+TARGET_LINK_LIBRARIES(mysqltest_embedded debug wsock32)
 ADD_DEPENDENCIES(mysqltest_embedded libmysqld)
 
 ADD_EXECUTABLE(mysql_client_test_embedded ../../tests/mysql_client_test.c)
-TARGET_LINK_LIBRARIES(mysql_client_test_embedded debug dbug mysys yassl taocrypt zlib strings wsock32)
+TARGET_LINK_LIBRARIES(mysql_client_test_embedded debug wsock32)
 ADD_DEPENDENCIES(mysql_client_test_embedded libmysqld)

=== modified file 'libmysqld/libmysqld.def'
--- a/libmysqld/libmysqld.def	2007-11-26 18:10:26 +0000
+++ b/libmysqld/libmysqld.def	2008-11-19 09:57:23 +0000
@@ -2,6 +2,66 @@ LIBRARY		LIBMYSQLD
 DESCRIPTION	'MySQL 5.1 Embedded Server Library'
 VERSION		5.1
 EXPORTS
+	_db_process_
+	_db_enter_
+	_db_return_
+	_db_push_
+	_db_doprnt_
+	_db_pargs_
+	strnmov
+	get_charset
+	my_memmem
+	my_snprintf
+	pthread_exit
+	pthread_cond_signal
+	dynstr_append_mem
+	init_dynamic_string
+	dynstr_free
+	hash_free
+	my_vsnprintf
+	dynstr_append
+	my_close
+	my_open
+	dynstr_set
+	dynstr_append_os_quoted
+	my_delete
+	my_seek
+	my_write
+	create_temp_file
+	fn_format
+	dirname_part
+	my_hash_insert
+	hash_search
+	test_if_hard_path
+	my_copy
+	my_mkdir
+	my_sleep
+	my_strtod
+	pthread_cond_wait
+	my_strnncoll_simple
+	get_dynamic
+	my_regerror
+	init_dynamic_array2
+	pthread_create
+	pthread_cond_init
+	my_regcomp
+	my_regexec
+	my_regex_end
+	my_regfree
+	longlong2str
+	my_set_exception_pointers
+	my_print_stacktrace
+	my_thread_stack_size
+	my_safe_print_str
+	my_stat
+	_hash_init
+	pthread_attr_setstacksize
+	pthread_attr_init
+	my_dirend
+	wild_compare
+	my_dir
+	my_micro_time
+	find_type_or_exit
 	_dig_vec_upper
 	_dig_vec_lower
 	bmove_upp

=== modified file 'mysys/mf_tempdir.c'
--- a/mysys/mf_tempdir.c	2007-05-10 09:59:39 +0000
+++ b/mysys/mf_tempdir.c	2008-11-19 09:57:23 +0000
@@ -85,6 +85,8 @@ char *my_tmpdir(MY_TMPDIR *tmpdir)
 void free_tmpdir(MY_TMPDIR *tmpdir)
 {
   uint i;
+  if (!tmpdir->full_list.elements)
+    return;
   for (i=0; i<=tmpdir->max; i++)
     my_free(tmpdir->list[i], MYF(0));
   delete_dynamic(&tmpdir->full_list);

=== modified file 'mysys/my_getopt.c'
--- a/mysys/my_getopt.c	2008-02-18 22:29:39 +0000
+++ b/mysys/my_getopt.c	2008-11-19 09:57:23 +0000
@@ -397,9 +397,10 @@ invalid value '%s'",
 				       my_progname, optp->name, optend);
 	      continue;
 	    }
-	    get_one_option(optp->id, optp,
-			   *((my_bool*) value) ?
-			   (char*) "1" : disabled_my_option);
+	    if (get_one_option(optp->id, optp,
+                               *((my_bool*) value) ?
+                               (char*) "1" : disabled_my_option))
+              return EXIT_ARGUMENT_INVALID;
 	    continue;
 	  }
 	  argument= optend;
@@ -457,7 +458,8 @@ invalid value '%s'",
 		  optp->arg_type == NO_ARG)
 	      {
 		*((my_bool*) optp->value)= (my_bool) 1;
-		get_one_option(optp->id, optp, argument);
+		if (get_one_option(optp->id, optp, argument))
+                  return EXIT_UNSPECIFIED_ERROR;
 		continue;
 	      }
 	      else if (optp->arg_type == REQUIRED_ARG ||
@@ -476,7 +478,8 @@ invalid value '%s'",
                   {
                     if (optp->var_type == GET_BOOL)
                       *((my_bool*) optp->value)= (my_bool) 1;
-                    get_one_option(optp->id, optp, argument);
+                    if (get_one_option(optp->id, optp, argument))
+                      return EXIT_UNSPECIFIED_ERROR;
                     continue;
                   }
 		  /* Check if there are more arguments after this one */
@@ -501,7 +504,8 @@ invalid value '%s'",
                                          my_progname, argument, optp->name);
 		return error;
 	      }
-	      get_one_option(optp->id, optp, argument);
+	      if (get_one_option(optp->id, optp, argument))
+                return EXIT_UNSPECIFIED_ERROR;
 	      break;
 	    }
 	  }
@@ -524,7 +528,8 @@ invalid value '%s'",
                                  my_progname, argument, optp->name);
 	return error;
       }
-      get_one_option(optp->id, optp, argument);
+      if (get_one_option(optp->id, optp, argument))
+        return EXIT_UNSPECIFIED_ERROR;
 
       (*argc)--; /* option handled (short or long), decrease argument count */
     }

=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc	2008-11-04 10:00:26 +0000
+++ b/sql/mysqld.cc	2008-11-19 10:01:21 +0000
@@ -733,7 +733,7 @@ uint connection_count= 0;
 /* Function declarations */
 
 pthread_handler_t signal_hand(void *arg);
-static void mysql_init_variables(void);
+static int mysql_init_variables(void);
 static void get_options(int *argc,char **argv);
 extern "C" my_bool mysqld_get_one_option(int, const struct my_option *, char *);
 static void set_server_version(void);
@@ -3141,12 +3141,12 @@ static int init_common_variables(const c
   if (!rpl_filter || !binlog_filter)
   {
     sql_perror("Could not allocate replication and binlog filters");
-    exit(1);
+    return 1;
   }
 
-  if (init_thread_environment())
+  if (init_thread_environment() ||
+      mysql_init_variables())
     return 1;
-  mysql_init_variables();
 
 #ifdef HAVE_TZNAME
   {
@@ -3745,7 +3745,10 @@ version 5.0 and above. It is replaced by
       {
         /* as opt_bin_log==0, no need to free opt_bin_logname */
         if (!(opt_bin_logname= my_strdup(opt_update_logname, MYF(MY_WME))))
-          exit(EXIT_OUT_OF_MEMORY);
+        {
+          sql_print_error("Out of memory");
+          return EXIT_OUT_OF_MEMORY;
+        }
         sql_print_error("The update log is no longer supported by MySQL in \
 version 5.0 and above. It is replaced by the binary log. Now starting MySQL \
 with --log-bin='%s' instead.",opt_bin_logname);
@@ -7424,7 +7427,7 @@ To see what values a running MySQL serve
     as these are initialized by my_getopt.
 */
 
-static void mysql_init_variables(void)
+static int mysql_init_variables(void)
 {
   /* Things reset to zero */
   opt_skip_slave_start= opt_reckless_slave = 0;
@@ -7505,7 +7508,10 @@ static void mysql_init_variables(void)
   key_caches.empty();
   if (!(dflt_key_cache= get_or_create_key_cache(default_key_cache_base.str,
                                                 default_key_cache_base.length)))
-    exit(1);
+  {
+    sql_print_error("Cannot allocate the keycache");
+    return 1;
+  }
   /* set key_cache_hash.default_value = dflt_key_cache */
   multi_keycache_init();
 
@@ -7648,6 +7654,7 @@ static void mysql_init_variables(void)
     tmpenv = DEFAULT_MYSQL_HOME;
   (void) strmake(mysql_home, tmpenv, sizeof(mysql_home)-1);
 #endif
+  return 0;
 }
 
 
@@ -7708,9 +7715,11 @@ mysqld_get_one_option(int optid,
 #endif
     break;
 #include <sslopt-case.h>
+#ifndef EMBEDDED_LIBRARY
   case 'V':
     print_version();
     exit(0);
+#endif /*EMBEDDED_LIBRARY*/
   case 'W':
     if (!argument)
       global_system_variables.log_warnings++;
@@ -7939,14 +7948,14 @@ mysqld_get_one_option(int optid,
 	if (gethostname(myhostname,sizeof(myhostname)) < 0)
 	{
 	  sql_perror("Can't start server: cannot get my own hostname!");
-	  exit(1);
+          return 1;
 	}
 	ent=gethostbyname(myhostname);
       }
       if (!ent)
       {
 	sql_perror("Can't start server: cannot resolve hostname!");
-	exit(1);
+        return 1;
       }
       my_bind_addr = (ulong) ((in_addr*)ent->h_addr_list[0])->s_addr;
     }
@@ -8143,8 +8152,8 @@ mysqld_get_one_option(int optid,
   case OPT_FT_BOOLEAN_SYNTAX:
     if (ft_boolean_check_syntax_string((uchar*) argument))
     {
-      fprintf(stderr, "Invalid ft-boolean-syntax string: %s\n", argument);
-      exit(1);
+      sql_print_error("Invalid ft-boolean-syntax string: %s\n", argument);
+      return 1;
     }
     strmake(ft_boolean_syntax, argument, sizeof(ft_boolean_syntax)-1);
     break;

Thread
bzr push into mysql-5.1 branch (holyfoot:2715 to 2717) Alexey Botchkov19 Nov