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

Reply via email to