Hi!
>>>>> "Michael" == Michael Stassen <[EMAIL PROTECTED]> writes: Michael> While I have your attention, let me take this opportunity to report that Michael> I've run into quite a few obstacles building MySQL from source. (I Michael> reported most of these at the end of October, but have received no Michael> response.) Sorry, I must have missed this. Michael> 1) Back in August (8-8-2001, in thread "Build problems (+solution) on Michael> HPUX10.20/gcc 2.95"), you wrote <cut> Michael> This differs from the manual. In particular, the manual leaves out the Michael> '-fpic' part of the CFLAGS. I ran into trouble building PHP and Michael> DBD::mysql before I saw your note. The manual should be fixed. I have now updated this. Michael> 2) While this worked for 3.23.41, I cannot believe it has worked for you Michael> since 3.23.43. It doesn't for me. The problem is that somewhere between Michael> 41 and 43, mysqlbinlog got moved to the client directory (though this is Michael> not mentioned in the change log). We don't document all internal changes in the changelog. (We didn't think this was important). Michael> As far as I can see, mysqlbinlog is Michael> threaded, unlike the rest of client. That is, mysqlbinlog needs -ldce Michael> (--with-named-thread-libs=). Hence, make dies with mysqlbinlog is not threaded. Michael> /bin/sh ../libtool --mode=link gcc -O3 -DDBUG_OFF -DHPUX Michael> -I/opt/dce/include -felide-constructors -fno-exceptions -fno-rtti -O3 Michael> -fno-implicit-templates -fno-exceptions -fno-rtti -DHAVE_BROKEN_SNPRINTF Michael> -D_INCLUDE_LONGLONG -DSIGNALS_DONT_BREAK_READ -o mysqlbinlog mysqlbinlog.o Michael> ../libmysql/libmysqlclient.la -lz -lcrypt -lm Michael> gcc -O3 -DDBUG_OFF -DHPUX -I/opt/dce/include -felide-constructors Michael> -fno-exceptions -fno-rtti -O3 -fno-implicit-templates -fno-exceptions -fno-rtti> -DHAVE_BROKEN_SNPRINTF -D_INCLUDE_LONGLONG Michael> -DSIGNALS_DONT_BREAK_READ -o mysqlbinlog mysqlbinlog.o Michael> ../libmysql/.libs/libmysqlclient.a -lz -lcrypt -lm -lz> -lcrypt -lm Michael> /usr/ccs/bin/ld: Unsatisfied symbols: Michael> pthread_once (code) Michael> pthread_setspecific (code) Michael> pthread_getspecific (code) Michael> pthread_keycreate (code) Michael> collect2: ld returned 1 exit status Michael> make[2]: *** [mysqlbinlog] Error 1 Michael> make[2]: Leaving directory `/scr/src/mysql-3.23.46/client' Michael> make[1]: *** [all-recursive] Error 1 Michael> make[1]: Leaving directory `/scr/src/mysql-3.23.46' Michael> make: *** [all-recursive-am] Error 2 Michael> every time. I have to copy that last command, cd into client, paste the Michael> last command and add '-ldce', then cd back up, and rerun make. Michael> Configure/make should have taken care of this. That is, Michael> --with-named-thread-libs=-ldce must be propagated to client/Makefile for Michael> mysqlbinlog. This is strange; I have built mysqlbinlog on HPUX 10.x and many other OS without having to add -lpthread (or similar) to the link line. Here is the link line on our HPUX 10.20 machine: /bin/sh ../libtool --mode=link gcc -O3 -DDBUG_OFF -DHPUX -I/opt/dce/include -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-implicit-templates -fno-exceptions -fno-rtti -DHAVE_BROKEN_SNPRINTF -D_INCLUDE_LONGLONG -DSIGNALS_DONT_BREAK_READ -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHPUX -DSIGNAL_WITH_VIO_CLOSE -o mysqlbinlog mysqlbinlog.o ../libmysql/libmysqlclient.la -lcrypt -lm gcc -O3 -DDBUG_OFF -DHPUX -I/opt/dce/include -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-implicit-templates -fno-exceptions -fno-rtti -DHAVE_BROKEN_SNPRINTF -D_INCLUDE_LONGLONG -DSIGNALS_DONT_BREAK_READ -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHPUX -DSIGNAL_WITH_VIO_CLOSE -o mysqlbinlog mysqlbinlog.o ../libmysql/.libs/libmysqlclient.a -lcrypt -lm -lcrypt -lm No problem here... Michael> 3) (A minor thing I discovered by accident -- I don't need it.) If you Michael> use configure option --datadir (say --datadir=DATADIR), make test fails Michael> immediately because mysqld needs the contents of mysql-test/share but is Michael> looking for mysql-test/DATADIR. Michael> $make test Michael> cd mysql-test ; ./mysql-test-run Michael> Installing Test Databases Michael> Removing Stale Files Michael> Installing Master Databases Michael> ../sql/mysqld: Fatal error: Can't find Michael> messagefile'/src/mysql-3.23.46/mysql-test/DATADIR/mysql/english/errmsg.sys' Michael> Error: Could not install master test DBs Michael> make: *** [test] Error 1 Michael> Configure/make should either rename mysql-test/share to the value of Michael> datadir or symlink datadir to share in mysql-test, or at least a note Michael> should be added to the install docs. Sasha, can you please fix this. Michael> 4) Test rpl000001 fails immediately because: >> The file '../../std_data/words.dat' must be in the database directory >> or be readable by all Michael> Clearly, configure/make should have made std_data/words.dat readable by all. I checked our distribution: monty@mysql-work$ gtar tvfz binary/mysql-4.0.1-alpha.tar.gz | grep words.dat -rw-r--r-- 102/234 81 2001-12-20 06:03:01 mysql-4.0.1-alpha/mysql-test/std_data/words.dat Looks ok to me. Michael> 5) This is new as of 3.23.46: mysqld won't shut down. For example, make Michael> test ends with Michael> Ending Tests Michael> Shutting-down MySQL daemon Michael> Warning; Aborted waiting on pid file:'/src/mysql-3.23.46/mysql-test/var/run/mysqld.pid' after 20 seconds Michael> Master shutdown finished Michael> Warning; Aborted waiting on pid file:'/src/mysql-3.23.46/mysql-test/var/run/mysqld-slave.pid' after 20 seconds Michael> Slave shutdown finished Michael> but ps shows mysqld still running, and kill -9 is required to get rid of Michael> it. I note that one of the changes from .45 to .46 was to fix this exact Michael> problem for Mac OSX, so I wonder if this change broke things for HPUX Michael> 10.20. Yes, it this; This will be fixed in 4.0.1 and 3.23.47. Here is a patch for this. ===== sql/mysqld.cc 1.222 vs edited ===== *** /tmp/mysqld.cc-1.222-5078 Sat Dec 15 04:40:08 2001 --- edited/sql/mysqld.cc Tue Dec 18 12:49:42 2001 *************** *** 610,622 **** { DBUG_PRINT("error",("Got error %d from pthread_kill",errno)); /* purecov: inspected */ } ! #else kill(current_pid,MYSQL_KILL_SIGNAL); #endif DBUG_PRINT("quit",("After pthread_kill")); shutdown_in_progress=1; // Safety if kill didn't work #ifdef SIGNALS_DONT_BREAK_READ abort_loop=1; #endif DBUG_VOID_RETURN; } --- 610,629 ---- { DBUG_PRINT("error",("Got error %d from pthread_kill",errno)); /* purecov: inspected */ } ! #elif !defined(SIGNALS_DONT_BREAK_READ) kill(current_pid,MYSQL_KILL_SIGNAL); #endif DBUG_PRINT("quit",("After pthread_kill")); shutdown_in_progress=1; // Safety if kill didn't work #ifdef SIGNALS_DONT_BREAK_READ + if (!abort_loop) + { + pthread_t tmp; abort_loop=1; + if (pthread_create(&tmp,&connection_attrib, kill_server_thread, + (void*) 0)) + sql_print_error("Error: Can't create thread to kill server"); + } #endif DBUG_VOID_RETURN; } Regards, Monty --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php