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