Bug #42730 | build failure after "./configure --with-debug" | ||
---|---|---|---|
Submitted: | 10 Feb 2009 13:43 | Modified: | 18 Mar 2009 8:49 |
Reporter: | Guilhem Bichot | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server: Compiling | Severity: | S3 (Non-critical) |
Version: | 6.0-bzr | OS: | Linux (32-bit) |
Assigned to: | CPU Architecture: | Any |
[10 Feb 2009 13:43]
Guilhem Bichot
[10 Feb 2009 13:44]
Guilhem Bichot
What the user got is: mysql.o: In function `build_completion_hash': /usr/local/mysql-6.0-build/client/mysql.cc:2516: undefined reference to `_db_enter_'
[17 Mar 2009 16:34]
Daniel Fischer
Can you please confirm that this happens even when you run "make clean" first?
[18 Mar 2009 8:49]
Guilhem Bichot
I took a fresh checkout of mysql-6.0: revision-id:alik@sun.com-20090313103922-a0lmerckkone8c97 and did: ./BUILD/autorun.sh ./configure --with-debug make and it compiled client/* without problem.
[18 Mar 2009 9:02]
Daniel Fischer
Okay, thanks for confirming. For the record, the cause of the original issue is that dbug.o, like many other object files, is not rebuilt automatically after running configure again. In the case of dbug.o, the file contains disjunct sets of symbols depending on whether debugging is turned on or off at the time dbug.o is built from dbug.c, and other parts of the source make assumptions about the symbols contained in dbug.o based on whether debugging is turned on or off at the time they are compiled. We could run make clean as a step in configure, but arguably, this is not always desired. Also, it will not always prevent these issues, e.g. when files are renamed after bzr pull, a make clean step in configure will not be able to remove the old files, thus giving a false sense of security.