Subject: Re: Building mysql 4.0.17 under latest Cygwin (1.5.7)
From: "Gerrit P. Haase" <[email-masked]>
To: Mikael Åsberg <[email-masked]>
Cc: [email-masked]
Date: Wed, 11 Feb 2004 13:25:45 +0100

Hallo Mikael,

Am Mittwoch, 11. Februar 2004 um 10:52 schriebst du:

> Hello Mr Haase! I am trying to build mysql 4.0.17 under the latest
> offical Cygwin (1.5.7). I am following your instructions found at
> http://anfaenger.de/cygwin-1.5/mysql/.
> However, I am getting a compilation error during make (an error that
> occurs after it has been compiling for some time). I made a script
> that looks like this:
> #!/bin/bash
> patch -p1 <../mysql-4.0.17.diff
> export CFLAGS="-O3"
> export CC=gcc
> export CXX=gcc
> export CXXFLAGS="-O3 -mcpu=pentiumpro -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"
> ./configure \
> --prefix=/usr \
> --sysconfdir=/etc \
> --localstatedir=/var/mysql/data \
> --libexecdir=/usr/sbin \
> --enable-thread-safe-client \
> --with-unix-socket-path=/var/mysql/mysql.sock \
> --with-mysqld-user=mysqld \
> --with-berkeley-db \
> --with-innodb \
> --without-debug \
> --without-openssl \
> --with-mysqld-ldflags=-all-static \
> --with-vio \
> --with-embedded-server

> As you can, all it does is applying the patch found at your site,
> exporting some variables and then running ./configure
> with the options you suggested. The script completes without any errors.
> Then I run $ make
> I get:
> mysqld.cc: In function `void* signal_hand(void*)':
> mysqld.cc:1779: error: `sigwait' undeclared (first use this function)
> mysqld.cc:1779: error: (Each undeclared identifier is reported only once for
>    each function it appears in.)
> make[4]: *** [mysqld.o] Error 1
> make[4]: Leaving directory `/home/Administrator/mysql-4.0.17/sql'
> make[3]: *** [all-recursive] Error 1
> make[3]: Leaving directory `/home/Administrator/mysql-4.0.17/sql'
> make[2]: *** [all] Error 2
> make[2]: Leaving directory `/home/Administrator/mysql-4.0.17/sql'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/Administrator/mysql-4.0.17'
> make: *** [all] Error 2

> Now I was wondering if you might have an idea what I did do wrong?
> I haven't been using cygwin or the gnu tools very long so this is
> all very new to me.

> If you have any ideas, I would love to hear them!

> Best regards

The command to compile mysqld.cc in my build was:

make[4]: Entering directory `/ftproot/pub/mysql/mysql-4.0.17/sql'
if gcc -DMYSQL_SERVER -DDEFAULT_MYSQL_HOME="\"/usr\"" -DDATADIR="\"/var/mysql/data\"" -DSHAREDIR="\"/usr/share/mysql\"" -DHAVE_CONFIG_H -I. -I. -I.. -I../bdb/build_unix -I../innobase/include -I./../include -I./../regex -I. -I../include -I.     -O3 -DDBUG_OFF -O3 -mcpu=pentiumpro -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti  -fno-implicit-templates -fno-exceptions -fno-rtti -DUSE_MYSYS_NEW -DDEFINE_CXA_PURE_VIRTUAL -MT mysqld.o -MD -MP -MF ".deps/mysqld.Tpo" \
  -c -o mysqld.o `test -f 'mysqld.cc' || echo './'`mysqld.cc; \
then mv -f ".deps/mysqld.Tpo" ".deps/mysqld.Po"; \
else rm -f ".deps/mysqld.Tpo"; exit 1; \
fi

This finishes without error under cygwin-1.5.5.

In my my_config.h is defined:
/* sigwait with one argument */
/* #undef HAVE_NONPOSIX_SIGWAIT */
[...]
/* POSIX sigwait */
/* #undef HAVE_SIGWAIT */

then this define in my_pthread.h is used:
#ifndef HAVE_NONPOSIX_SIGWAIT
#define my_sigwait(A,B) sigwait((A),(B))
#else
[...]

where sigwait is defined in <sys/signal.h>.

Maybe there was something changed in later Cygwin releases?

Gerrit
-- 
=^..^=

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/