Bug #13892 Compile error while "Making all in strings"
Submitted: 10 Oct 2005 10:04 Modified: 24 Oct 2005 9:47
Reporter: Sebastian Nohn Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S1 (Critical)
Version:5.0-HEAD OS:Cygwin
Assigned to: CPU Architecture:Any

[10 Oct 2005 10:04] Sebastian Nohn
Description:
With a fresh BK checkout:

Making all in strings
make[2]: Entering directory `/tmp/mysql-5.0/strings'
/bin/sh ../libtool --preserve-dup-deps --tag=CC --mode=link gcc  -O3 -DDBUG_OFF      -o conf_to_src.exe  conf_to_src.o xml.o ctype.o bcmp.o  -lcrypt -lm  
/bin/sh: ../libtool: No such file or directory
make[2]: *** [conf_to_src.exe] Error 127
make[2]: Leaving directory `/tmp/mysql-5.0/strings'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/mysql-5.0'
make: *** [all] Error 2

$ libtool --version
ltmain.sh (GNU libtool) 1.5.20 (1.1220.2.287 2005/08/31 18:54:15)

Copyright (C) 2005  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

How to repeat:
./configure; make
[10 Oct 2005 18:54] Sergei Golubchik
libtool file (in the source tree root) is not under bk control, that is it's not a part of the source, it's generated file. ./configure does not create it, you need to run BUILD/autorun.sh before ./configure. (or use one of the BUILD/compile-* scripts)
[11 Oct 2005 6:20] Hartmut Holzgraefe
The original report seems to have been caused by running "make distclean" on the source 
(not reproduced yet), running BUILD/compile-pentium fixes this one but leads to:

make[2]: Entering directory `/home/hartmut/mysql-5.0/strings'
gcc -c  -o strings-x86.o strings-x86.s
strings-x86.s: Assembler messages:
strings-x86.s:27: Warning: .type pseudo-op used outside of .def/.endef ignored.
strings-x86.s:27: Error: junk at end of line, first unrecognized character is `b'
strings-x86.s:48: Warning: .size pseudo-op used outside of .def/.endef ignored.
strings-x86.s:48: Error: junk at end of line, first unrecognized character is `b'
[...]

running "configure; make" after that fixes this one so it seems to be caused
by the '--enable-assembler' configure option used by the build script

looks as if the cygwin gcc uses a different inline assembly format than the
unix one even though both compile for x86?
[11 Oct 2005 8:26] Sebastian Nohn
BUILD/compile-pentium; ./configure; make

comes further but building stops with

if g++ -DMYSQL_SERVER -DDEFAULT_MYSQL_HOME="\"/usr/local\"" -DDATADIR="\"/usr/local/var\"" -DSHAREDIR="\"/usr/local/share/mysql\"" -DHAVE_CONFIG_H -I. -I. -I.. -I../innobase/include -I../include -I../include -I../regex -I.     -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions -fno-rtti -MT sql_map.o -MD -MP -MF ".deps/sql_map.Tpo" -c -o sql_map.o sql_map.cc; \
then mv -f ".deps/sql_map.Tpo" ".deps/sql_map.Po"; else rm -f ".deps/sql_map.Tpo"; exit 1; fi
if g++ -DMYSQL_SERVER -DDEFAULT_MYSQL_HOME="\"/usr/local\"" -DDATADIR="\"/usr/local/var\"" -DSHAREDIR="\"/usr/local/share/mysql\"" -DHAVE_CONFIG_H -I. -I. -I.. -I../innobase/include -I../include -I../include -I../regex -I.     -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions -fno-rtti -MT mysqld.o -MD -MP -MF ".deps/mysqld.Tpo" -c -o mysqld.o mysqld.cc; \
then mv -f ".deps/mysqld.Tpo" ".deps/mysqld.Po"; else rm -f ".deps/mysqld.Tpo"; exit 1; fi
mysqld.cc: In function `void* signal_hand(void*)':
mysqld.cc:2171: error: `void* signal_hand(void*)' was declared `extern' and later `static'
mysqld.cc:590: error: previous declaration of `void* signal_hand(void*)'
make[4]: *** [mysqld.o] Error 1
make[4]: Leaving directory `/tmp/mysql-5.0/sql'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/tmp/mysql-5.0/sql'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/mysql-5.0/sql'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/mysql-5.0'
make: *** [all] Error 2
[12 Oct 2005 10:59] Sergei Golubchik
The latter error should've been fixed already, pull again.