diff --git a/configure.in b/configure.in index baed56cb914..372417973dc 100644 --- a/configure.in +++ b/configure.in @@ -2548,9 +2548,12 @@ AC_SUBST(CC) AC_SUBST(GXX) # Set configuration options for make_binary_distribution + +CONF_ARGS= case $SYSTEM_TYPE in *netware*) MAKE_BINARY_DISTRIBUTION_OPTIONS=--no-strip + CONF_ARGS=--host="$MACHINE_TYPE-$SYSTEM_TYPE" ;; *) MAKE_BINARY_DISTRIBUTION_OPTIONS= @@ -2558,7 +2561,7 @@ case $SYSTEM_TYPE in esac for CONF in $other_configures; do - (cd `dirname $CONF`; ./`basename $CONF` --build=$build_alias) + (cd `dirname $CONF`; ./`basename $CONF` $CONF_ARGS --build=$build_alias) done AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS) diff --git a/include/config-netware.h b/include/config-netware.h index 5a8b926a669..e2fc75ab90d 100644 --- a/include/config-netware.h +++ b/include/config-netware.h @@ -19,6 +19,14 @@ #ifndef _config_netware_h #define _config_netware_h +#define __event_h__ +#define _EVENT_H_ +/* + These two #define(s) are needed as both libc of NetWare and MySQL have + files named event.h which causes compilation errors. +*/ + + /* required headers */ #include #include @@ -35,6 +43,12 @@ #include #include +#undef _EVENT_H_ +/* + This #undef exists here because both libc of NetWare and MySQL have + files named event.h which causes compilation errors. +*/ + #ifdef __cplusplus extern "C" { #endif @@ -65,6 +79,13 @@ extern "C" { #undef HAVE_STPCPY /* changes end */ +/* Changes made to make use of LibC-June-2005 for building purpose */ +#undef HAVE_GETPASS +#undef HAVE_GETRLIMIT +#undef HAVE_GETRUSAGE +#undef HAVE_INITGROUPS +/* Changes end - LibC-June-2005 */ + /* no libc crypt() function */ #ifdef HAVE_OPENSSL #define HAVE_CRYPT 1 diff --git a/netware/BUILD/compile-AUTOTOOLS b/netware/BUILD/compile-AUTOTOOLS index 57213b1b3d0..20e506aa683 100755 --- a/netware/BUILD/compile-AUTOTOOLS +++ b/netware/BUILD/compile-AUTOTOOLS @@ -6,7 +6,7 @@ # stop on errors set -e -for package in . ./innobase +for package in . ./storage/innobase do (cd $package rm -rf config.cache autom4te.cache diff --git a/netware/BUILD/compile-linux-tools b/netware/BUILD/compile-linux-tools index fab92b8d4df..02c11998365 100755 --- a/netware/BUILD/compile-linux-tools +++ b/netware/BUILD/compile-linux-tools @@ -37,11 +37,11 @@ make (cd dbug; make libdbug.a) (cd strings; make libmystrings.a) (cd mysys; make libmysys.a) -(cd heap; make libheap.a) +(cd storage/heap; make libheap.a) (cd vio; make libvio.a) (cd regex; make libregex.a) -(cd myisam; make libmyisam.a) -(cd myisammrg; make libmyisammrg.a) +(cd storage/myisam; make libmyisam.a) +(cd storage/myisammrg; make libmyisammrg.a) (cd extra; make comp_err) (cd libmysql; make conf_to_src) (cd libmysql_r; make conf_to_src) @@ -57,7 +57,7 @@ make cp extra/comp_err extra/comp_err.linux cp libmysql/conf_to_src libmysql/conf_to_src.linux #cp libmysql_r/conf_to_src libmysql_r/conf_to_src.linux -cp sql/.libs/gen_lex_hash sql/gen_lex_hash.linux +cp sql/gen_lex_hash sql/gen_lex_hash.linux cp strings/conf_to_src strings/conf_to_src.linux # Delete mysql_version.h diff --git a/netware/BUILD/compile-netware-END b/netware/BUILD/compile-netware-END index f7da0d9596e..0bb4e808b63 100755 --- a/netware/BUILD/compile-netware-END +++ b/netware/BUILD/compile-netware-END @@ -22,9 +22,8 @@ rm -rf Makefile.in.bk . $path/compile-AUTOTOOLS # For NetWare there is no comp_err but comp_err.linux -sed -e "s/comp_err/comp_err.linux/g" extra/Makefile.am > extra/Makefile.am.$$ -sed -e "s/replace comp_err.linux/replace comp_err/g" extra/Makefile.am.$$ > extra/Makefile.am -rm extra/Makefile.am.$$ +sed -e "s/comp_err\$(EXEEXT)/comp_err.linux/g" extra/Makefile.am > extra/Makefile.am.$$ +mv extra/Makefile.am.$$ extra/Makefile.am # configure ./configure $base_configs $extra_configs diff --git a/netware/BUILD/mwenv b/netware/BUILD/mwenv index fa52568fcd6..b88b6347668 100755 --- a/netware/BUILD/mwenv +++ b/netware/BUILD/mwenv @@ -4,10 +4,10 @@ # This values are normally changed by the nwbootstrap script # the default is "F:/mydev" -export MYDEV="F:/mydev" +export MYDEV=WINE_BUILD_DIR -export MWCNWx86Includes="$MYDEV/libc/include;$MYDEV/fs64/headers;$MYDEV/zlib-1.1.4;$MYDEV/mysql-VERSION/include;$MYDEV" -export MWNWx86Libraries="$MYDEV/libc/imports;$MYDEV/mw/lib;$MYDEV/fs64/imports;$MYDEV/zlib-1.1.4;$MYDEV/openssl;$MYDEV/mysql-VERSION/netware/BUILD" +export MWCNWx86Includes="$MYDEV/libc/include;$MYDEV/fs64/headers;$MYDEV/zlib-1.2.3;$MYDEV/mysql-VERSION/include;$MYDEV" +export MWNWx86Libraries="$MYDEV/libc/imports;$MYDEV/mw/lib;$MYDEV/fs64/imports;$MYDEV/zlib-1.2.3;$MYDEV/openssl;$MYDEV/mysql-VERSION/netware/BUILD" export MWNWx86LibraryFiles="libcpre.o;libc.imp;netware.imp;mwcrtl.lib;mwcpp.lib;libz.a;neb.imp;zPublics.imp;knetware.imp" export WINEPATH="$MYDEV/mw/bin" diff --git a/netware/BUILD/nwbootstrap b/netware/BUILD/nwbootstrap index 48ff2a49667..22e1569e7ca 100755 --- a/netware/BUILD/nwbootstrap +++ b/netware/BUILD/nwbootstrap @@ -160,6 +160,11 @@ sed -e "s;WINE_BUILD_DIR;$wine_build_dir;g" \ -e "s;VERSION;$version;g" $mwenv.org > $mwenv chmod +rwx $mwenv +PWD=`pwd` +SRC_DIR=`grep "^export MYDEV=" $mwenv | cut -d'=' -f2 | \ + sed -e 's;";;g' -e "s;^;echo ;g" -e "s;$;/\`basename $PWD\`;g" | /bin/sh` + + # edit the def file versions echo "updating *.def file versions..." nlm_version=`echo "$version" | sed -e "s;\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*;\1, \2, \3;"` @@ -167,13 +172,14 @@ nlm_version=`echo "$version" | sed -e "s;\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*;\1 for file in ./netware/*.def do mv -f $file $file.org - sed -e "s;VERSION.*;VERSION $nlm_version;g" $file.org > $file + sed -e "s;VERSION.*;VERSION $nlm_version;g" \ + -e "s;XDCDATA.*;XDCDATA $SRC_DIR/netware/mysql.xdc;g" $file.org > $file rm $file.org done # create the libmysql.imp file in netware folder from libmysql/libmysql.def # file -echo "generating llibmysql.imp file..." +echo "generating libmysql.imp file..." awk 'BEGIN{x=0;} END{printf("\n");} x==1 {printf(" %s",$1); x++; next} x>1 {printf(",\n %s", $1);next} /EXPORTS/{x=1}' libmysql/libmysql.def > netware/libmysql.imp # build linux tools echo "compiling linux tools..." diff --git a/netware/Makefile.am b/netware/Makefile.am index fdf4023aef2..e1c2eedc2b7 100644 --- a/netware/Makefile.am +++ b/netware/Makefile.am @@ -30,13 +30,16 @@ netware_build_files = client/mysql.def client/mysqladmin.def \ client/mysqldump.def client/mysqlimport.def \ client/mysqlshow.def client/mysqltest.def \ client/mysqlslap.def \ + sql/mysqld.def extra/mysql_waitpid.def \ extra/mysql_install.def extra/my_print_defaults.def \ extra/perror.def extra/replace.def \ extra/resolveip.def extra/comp_err.def \ - libmysqld/libmysqld.def myisam/myisamchk.def \ - myisam/myisamlog.def myisam/myisampack.def \ - sql/mysqld.def extra/mysql_waitpid.def \ - extra/resolve_stack_dump.def myisam/myisam_ftdump.def + extra/resolve_stack_dump.def \ + libmysqld/libmysqld.def \ + storage/myisam/myisamchk.def \ + storage/myisam/myisamlog.def \ + storage/myisam/myisampack.def \ + storage/myisam/myisam_ftdump.def link_sources: set -x; \ diff --git a/netware/my_manage.h b/netware/my_manage.h index 480eefbe55a..360f2f104be 100644 --- a/netware/my_manage.h +++ b/netware/my_manage.h @@ -54,7 +54,8 @@ bool skip_first_param; #define ARG_BUF 10 -#define TRY_MAX 5 +#define TRY_MAX 5 +#define NULL (char) 0 #ifdef __NETWARE__ #define strstr(A,B) strindex(A,B) diff --git a/netware/mysql_test_run.c b/netware/mysql_test_run.c index 6bab2f0149c..9b02f897a60 100644 --- a/netware/mysql_test_run.c +++ b/netware/mysql_test_run.c @@ -1189,7 +1189,7 @@ void setup(char *file) ******************************************************************************/ int main(int argc, char **argv) { - int is_ignore_list = 0; + int is_ignore_list= 0, autoclose= 0, individual_execution= 0; // setup setup(argv[0]); @@ -1236,16 +1236,22 @@ int main(int argc, char **argv) { int i; - // single test - single_test = TRUE; - for (i = 1 + is_ignore_list; i < argc; i++) { + if (!strncasecmp(argv[i], "--autoclose", 11)) + { + autoclose= 1; + continue; + } + // single test + single_test= TRUE; + individual_execution= 1; + // run given test run_test(argv[i]); } } - else + if (!individual_execution) { // run all tests DIR *dir = opendir(test_dir); @@ -1297,7 +1303,8 @@ int main(int argc, char **argv) if (log_fd) fclose(log_fd); // keep results up - pressanykey(); + if (!autoclose) + pressanykey(); return 0; } diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh index f1ed07382b6..2f59c3e1d4c 100644 --- a/scripts/make_binary_distribution.sh +++ b/scripts/make_binary_distribution.sh @@ -129,8 +129,8 @@ copyfileto $BASE COPYING COPYING.LIB README Docs/INSTALL-BINARY \ BIN_FILES="extra/comp_err$BS extra/replace$BS extra/perror$BS \ extra/resolveip$BS extra/my_print_defaults$BS \ extra/resolve_stack_dump$BS extra/mysql_waitpid$BS \ - myisam/myisamchk$BS myisam/myisampack$BS myisam/myisamlog$BS \ - myisam/myisam_ftdump$BS \ + storage/myisam/myisamchk$BS storage/myisam/myisampack$BS \ + storage/myisam/myisamlog$BS storage/myisam/myisam_ftdump$BS \ sql/mysqld$BS sql/mysql_tzinfo_to_sql$BS \ server-tools/instance-manager/mysqlmanager$BS \ client/mysql$BS client/mysqlshow$BS client/mysqladmin$BS \ diff --git a/sql/mysqld.cc b/sql/mysqld.cc index f5b93e6a5e5..5ae0295d427 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -134,6 +134,13 @@ int deny_severity = LOG_WARNING; #define zVOLSTATE_DEACTIVE 2 #define zVOLSTATE_MAINTENANCE 3 +#undef __event_h__ +#include <../include/event.h> +/* + This #undef exists here because both libc of NetWare and MySQL have + files named event.h which causes compilation errors. +*/ + #include #include #include @@ -3305,6 +3312,10 @@ server."); mysql_bin_log.purge_logs_before_date(purge_time); } #endif +#ifdef __NETWARE__ + /* Increasing stacksize of threads on NetWare */ + pthread_attr_setstacksize(&connection_attrib, NW_THD_STACKSIZE); +#endif if (opt_myisam_log) (void) mi_log(1); @@ -3538,7 +3549,6 @@ int main(int argc, char **argv) #endif #ifdef __NETWARE__ /* Increasing stacksize of threads on NetWare */ - pthread_attr_setstacksize(&connection_attrib, NW_THD_STACKSIZE); #endif diff --git a/sql/set_var.cc b/sql/set_var.cc index 1a86cd1aef7..fd54d5a2916 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -215,8 +215,9 @@ sys_var_long_ptr sys_delayed_insert_timeout("delayed_insert_timeout", &delayed_insert_timeout); sys_var_long_ptr sys_delayed_queue_size("delayed_queue_size", &delayed_queue_size); -sys_var_event_executor sys_event_executor("event_scheduler", - (my_bool *)&event_executor_running_global_var); +sys_var_event_executor sys_event_executor("event_scheduler", + (my_bool *) + &event_executor_running_global_var); sys_var_long_ptr sys_expire_logs_days("expire_logs_days", &expire_logs_days); sys_var_bool_ptr sys_flush("flush", &myisam_flush); diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 959e4912c1c..5833842f660 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -2264,6 +2264,7 @@ THD::binlog_prepare_pending_rows_event(TABLE* table, uint32 serv_id, return pending; /* This is the current pending event */ } +#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION /* Instansiate the versions we need, we have -fno-implicit-template as compiling option. @@ -2282,6 +2283,7 @@ template Rows_log_event* THD::binlog_prepare_pending_rows_event(TABLE*, uint32, MY_BITMAP const*, my_size_t colcnt, my_size_t, bool, Update_rows_log_event *); +#endif static char const* field_type_name(enum_field_types type) { diff --git a/storage/innobase/os/os0thread.c b/storage/innobase/os/os0thread.c index 1d1cb77b336..c0e66ff2b7e 100644 --- a/storage/innobase/os/os0thread.c +++ b/storage/innobase/os/os0thread.c @@ -156,6 +156,15 @@ os_thread_create( "InnoDB: Error: pthread_attr_setstacksize returned %d\n", ret); exit(1); } +#endif +#ifdef __NETWARE__ + ret = pthread_attr_setstacksize(&attr, + (size_t)NW_THD_STACKSIZE); + if (ret) { + fprintf(stderr, + "InnoDB: Error: pthread_attr_setstacksize returned %d\n", ret); + exit(1); + } #endif os_mutex_enter(os_sync_mutex); os_thread_count++; diff --git a/storage/myisam/mi_locking.c b/storage/myisam/mi_locking.c index c7f8c8d6e7f..7c418cb9531 100644 --- a/storage/myisam/mi_locking.c +++ b/storage/myisam/mi_locking.c @@ -84,14 +84,16 @@ int mi_lock_database(MI_INFO *info, int lock_type) (uint) share->changed, share->w_locks)); if (share->changed && !share->w_locks) { - if (info->s->mmaped_length != info->s->state.state.data_file_length) - { - if (info->s->concurrent_insert) - rw_wrlock(&info->s->mmap_lock); - mi_remap_file(info, info->s->state.state.data_file_length); - if (info->s->concurrent_insert) - rw_unlock(&info->s->mmap_lock); - } +#ifdef HAVE_MMAP + if (info->s->mmaped_length != info->s->state.state.data_file_length) + { + if (info->s->concurrent_insert) + rw_wrlock(&info->s->mmap_lock); + mi_remap_file(info, info->s->state.state.data_file_length); + if (info->s->concurrent_insert) + rw_unlock(&info->s->mmap_lock); + } +#endif share->state.process= share->last_process=share->this_process; share->state.unique= info->last_unique= info->this_unique; share->state.update_count= info->last_loop= ++info->this_loop;