Bug #14685 | --without-server --with-embedded-library does not build | ||
---|---|---|---|
Submitted: | 6 Nov 2005 19:23 | Modified: | 27 Apr 2007 15:17 |
Reporter: | Philip Stoev | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Compiling | Severity: | S3 (Non-critical) |
Version: | 5.0.15 | OS: | Linux (linux) |
Assigned to: | Joerg Bruehe | CPU Architecture: | Any |
[6 Nov 2005 19:23]
Philip Stoev
[6 Nov 2005 22:44]
MySQL Verification Team
According with the Manual the option should be --with-embedded-server instead of with-embedded-library: http://dev.mysql.com/doc/refman/5.0/en/configure-options.html If you want to build the embedded MySQL library (libmysqld.a) you should use the --with-embedded-server option. However the configure process isn't aborted with invalid option when using with-embedded-library and in this way I got the issue reported: libmysql.c:28:26: mysqld_error.h: No such file or directory make[2]: *** [libmysql.lo] Error 1 make[2]: Leaving directory `/home/miguel/dbs/mysql-5.0/libmysql' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/miguel/dbs/mysql-5.0' make: *** [all] Error 2 miguel@hegel:~/dbs/mysql-5.0>
[7 Nov 2005 8:05]
Philip Stoev
Thank you very much for your response. I filed a separate bug http://bugs.mysql.com/?id=14685 about configure options in general.
[7 Nov 2005 12:10]
MySQL Verification Team
I changed to not a bug since you opened another bug regarding not valid configure options.
[7 Nov 2005 12:58]
Philip Stoev
I believe those are two separate bugs. The other bug that I have opened is about the configure script not doing enough checking. This bug is about the fact that ./configure with those two particular options produces a Makefile that does not build mysqld_error.h from the /extras directory. I believe that something in the Makefile system is wrong and is worth fixing.
[7 Nov 2005 13:02]
MySQL Verification Team
I was able for to build using the option --with-embedded-server. Did you try?
[7 Nov 2005 13:23]
Philip Stoev
Yes I understand the correct option is --with-embedded-server. This bug has nothing to do with the embedded library. See this: ./configure --witout-server -with-nothing-in-particular make Making all in libmysql make[2]: Entering directory `/usr/src/mysql-5.0.15/libmysql' if /bin/sh ../libtool --preserve-dup-deps --mode=compile gcc -DDEFAULT_CHARSET_HOME="\"/usr/local\"" -DDATADIR="\"/usr/local/var\"" -DDEFAULT_HOME_ENV=MYSQL_HOME -DDEFAULT_GROUP_SUFFIX_ENV=MYSQL_GROUP_SUFFIX -DSHAREDIR="\"/usr/local/share/mysql\"" -DUNDEF_THREADS_HACK -DDONT_USE_RAID -I. -I. -I.. -I../include -I../include -O3 -DDBUG_OFF -MT libmysql.lo -MD -MP -MF ".deps/libmysql.Tpo" -c -o libmysql.lo libmysql.c; \ then mv -f ".deps/libmysql.Tpo" ".deps/libmysql.Plo"; else rm -f ".deps/libmysql.Tpo"; exit 1; fi mkdir .libs gcc -DDEFAULT_CHARSET_HOME=\"/usr/local\" -DDATADIR=\"/usr/local/var\" -DDEFAULT_HOME_ENV=MYSQL_HOME -DDEFAULT_GROUP_SUFFIX_ENV=MYSQL_GROUP_SUFFIX -DSHAREDIR=\"/usr/local/share/mysql\" -DUNDEF_THREADS_HACK -DDONT_USE_RAID -I. -I. -I.. -I../include -I../include -O3 -DDBUG_OFF -MT libmysql.lo -MD -MP -MF .deps/libmysql.Tpo -c libmysql.c -fPIC -DPIC -o .libs/libmysql.o libmysql.c:28:26: error: mysqld_error.h: No such file or directory make[2]: *** [libmysql.lo] Error 1 make[2]: Leaving directory `/usr/src/mysql-5.0.15/libmysql' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/src/mysql-5.0.15' make: *** [all] Error 2 Therefore, it appears that any mistyped or wrong "--with-" option combined with "--without-server" causes the compilation to fail in a totally non-descriptive way. People could possibly waste hours trying to figure out why a misspelled configuration option that does not enable or disable any particular component results in a compilation error like this (as opposed to the compilation being successful however the executable missing the mis-spelled component) From my testing, it appears that the --without-server option is required to produce this behavoir. Therefore, I think that there is an dependency error in the Makefile system that will likely manifest itself under other circumstances, resulting in the same non-descriptive error message. I did a diff between the configured source trees with and without the option in question, however I could not immediately spot the culpit.
[30 Mar 2006 15:46]
Joerg Bruehe
I will take a look at it.
[11 Apr 2006 14:27]
Joerg Bruehe
Sorry about the delay, release builds took priority. Just an interim status: I could not reproduce the total failure to build, but it seems that a "configure --without-unknown-blabla --without-server" silently ignores the valid "--without-server" option and does a full build. I have to improve my tools for this, to get a log of exactly the interesting part, and will repeat these experiments. I cannot give an ETA, sorry - too much depends on parallel build requirements.
[11 Apr 2006 19:38]
Joerg Bruehe
Went much faster than I had feared: Using current sources (5.0.20), I could not reproduce the problem. All the following could be used successfully with a following "make" which (as instructed) did not build the server: configure --without-server configure --without-server --with-unknown-foobar configure --without-server --without-unknown-foobar configure --with-unknown-foobar --without-server configure --without-unknown-foobar --without-server configure --without-server --with-nothing-in-particular So "--with-*" as well as "--without-*", either before or after the "--without-server", did not cause problems. Test machine was Linux, Debian 3.1, with a PPC CPU ("Pegasos"). Please try with current sources, and re-open this bug if you still have problems.
[11 Apr 2006 20:40]
Philip Stoev
Thank you very much for your effort. I will try to provide a repeatable case using the current build and will re-open the bug if successfull.
[21 Jun 2006 20:05]
Leif Neve
FWIW, I just tried to build 5.0.22 on Solaris with the --without-server option as in: ./configure --without-server make and it generates this error: gcc -DDEFAULT_CHARSET_HOME=\"/usr/local\" -DDATADIR=\"/usr/local/var\" -DDEFAULT_HOME_ENV=MYSQL_HOME -DDEFAULT_GROUP_SUFFIX_ENV=MYSQL_GROUP_SUFFIX -DDEFAULT_SYSCONFDIR=\"/usr/local/etc\" -DSHAREDIR=\"/usr/local/share/mysql\" -DUNDEF_THREADS_HACK -DDONT_USE_RAID -I. -I. -I.. -I../include -I../include -I../zlib -O3 -DDBUG_OFF -DHAVE_RWLOCK_T -MT libmysql.lo -MD -MP -MF .deps/libmysql.Tpo -c libmysql.c -fPIC -DPIC -o .libs/libmysql.o libmysql.c:28:26: mysqld_error.h: No such file or directory *** Error code 1 make: Fatal error: Command failed for target `libmysql.lo' Current working directory /opt/mysql-5.0.22/libmysql
[25 Jun 2006 19:18]
Daniel Moellenbeck
I can reproduce the same on Debian Linux 3.1: ./configure --prefix=/usr/local/mysql-5.0.22 --without-server [...] gcc -DDEFAULT_CHARSET_HOME=\"/usr/local/mysql-5.0.22\" -DDATADIR=\"/usr/local/mysql-5.0.22/var\" -DDEFAULT_HOME_ENV=MYSQL_HOME -DDEFAULT_GROUP_SUFFIX_ENV=MYSQL_GROUP_SUFFIX -DDEFAULT_SYSCONFDIR=\"/usr/local/mysql-5.0.22/etc\" -DSHAREDIR=\"/usr/local/mysql-5.0.22/share/mysql\" -DUNDEF_THREADS_HACK -DDONT_USE_RAID -I. -I. -I.. -I../include -I../include -O3 -DDBUG_OFF -MT libmysql.lo -MD -MP -MF .deps/libmysql.Tpo -c libmysql.c -fPIC -DPIC -o .libs/libmysql.o libmysql.c:28:26: mysqld_error.h: No such file or directory make[2]: *** [libmysql.lo] Error 1 make[2]: Leaving directory `/usr/local/src/mysql-5.0.22/libmysql' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/mysql-5.0.22' make: *** [all] Error 2
[23 Apr 2007 11:01]
Joerg Bruehe
I re-tried with current sources on Debian 3.1 and still could not reproduce the symptom reported with "mysqld_error.h". However, I found an issue in "dbug/dbug_analyze.c" which I will fix.
[23 Apr 2007 11:36]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/25102 ChangeSet@1.2460, 2007-04-23 13:36:18+02:00, joerg@debian.(none) +1 -0 dbug/dbug_analyze.c : Avoid the unresolved symbol "my_thread_global_init()" in a build "--without-server". Fix for bug#14685
[23 Apr 2007 17:34]
Joerg Bruehe
Pushed to the team trees, expect it to be included in 5.0.42 and 5.1.18
[27 Apr 2007 9:22]
Bugs System
Pushed into 5.1.18-beta
[27 Apr 2007 9:24]
Bugs System
Pushed into 5.0.42
[27 Apr 2007 15:17]
Paul DuBois
No changelog entry needed.