summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jani@ua141d10.elisa.omakaista.fi>2006-02-02 16:22:31 +0200
committerunknown <jani@ua141d10.elisa.omakaista.fi>2006-02-02 16:22:31 +0200
commitd497966a18acd0a9fa58615ebb8ba67cbebc89fc (patch)
treef474cf6a431a38ad063fdb2f0bf85385e3a7f970
parentf0263ac452817f83d28047a20399fdef1e232e9a (diff)
downloadmariadb-git-d497966a18acd0a9fa58615ebb8ba67cbebc89fc.tar.gz
Several Netware specific fixes.
configure.in: To configure InnoDB for cross compilation. include/config-netware.h: NetWare specific change to fix the compilation errors caused by event.h NetWare specific change required for WINE PATH and for new versions LibC(Jun 05) and zlib(1.2.3) netware/BUILD/compile-AUTOTOOLS: Netware specific change reflecting the change in source code directory structure. netware/BUILD/compile-linux-tools: Netware specific change to fix the location where gen_lex_hash gets created. Fixed also directory structure reflecting changes. netware/BUILD/compile-netware-END: Netware specific change for creating mysqld_error.h netware/BUILD/mwenv: Netware specific change required for WINE PATH and for new versions LibC(Jun 05) and zlib(1.2.3). netware/BUILD/nwbootstrap: NetWare Specific change to produce absoulte path for XDC file. netware/Makefile.am: Netware specific changes to fix to match new directory structure. netware/my_manage.h: Netware specific change required for WINE PATH and for new versions LibC(Jun 05) and zlib(1.2.3). netware/mysql_test_run.c: Netware specific change, added --autoclose option for mysql_test_run.nlm. scripts/make_binary_distribution.sh: Fix to reflect change in directory structure. sql/mysqld.cc: Stacksize change for Netware. Netware specific change to fix the compilation errors caused by event.h sql/set_var.cc: Minor indending related fix. sql/sql_class.cc: Added #ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION macro. storage/innobase/os/os0thread.c: Netware specific change to increase the thread stack size. storage/myisam/mi_locking.c: Enclosed MMAP related code under HAVE_MMAP preprocessor directive.
-rw-r--r--configure.in5
-rw-r--r--include/config-netware.h21
-rwxr-xr-xnetware/BUILD/compile-AUTOTOOLS2
-rwxr-xr-xnetware/BUILD/compile-linux-tools8
-rwxr-xr-xnetware/BUILD/compile-netware-END5
-rwxr-xr-xnetware/BUILD/mwenv6
-rwxr-xr-xnetware/BUILD/nwbootstrap10
-rw-r--r--netware/Makefile.am11
-rw-r--r--netware/my_manage.h3
-rw-r--r--netware/mysql_test_run.c19
-rw-r--r--scripts/make_binary_distribution.sh4
-rw-r--r--sql/mysqld.cc12
-rw-r--r--sql/set_var.cc5
-rw-r--r--sql/sql_class.cc2
-rw-r--r--storage/innobase/os/os0thread.c9
-rw-r--r--storage/myisam/mi_locking.c18
16 files changed, 102 insertions, 38 deletions
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 <unistd.h>
#include <stdio.h>
@@ -35,6 +43,12 @@
#include <pthread.h>
#include <termios.h>
+#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 <nks/netware.h>
#include <nks/vm.h>
#include <library.h>
@@ -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
@@ -157,6 +157,15 @@ os_thread_create(
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++;
os_mutex_exit(os_sync_mutex);
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;