Bug #28381 | Building the "embedded" server fails, due to a recent code change | ||
---|---|---|---|
Submitted: | 11 May 2007 15:37 | Modified: | 8 Aug 2007 16:28 |
Reporter: | Joerg Bruehe | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Compiling | Severity: | S1 (Critical) |
Version: | 5.1.18 | OS: | Linux (ICC / IA64) |
Assigned to: | Antony Curtis | CPU Architecture: | Any |
[11 May 2007 15:37]
Joerg Bruehe
[12 May 2007 14:12]
Antony Curtis
I see the compiler warnings - in fact there are a lot of compiler warnings - in particular warnings against gcc-specific syntax such as the 'pragma implementation' etc.but every attempt to build completes successfully. However. embedded test run failes - looks like system vars not initialised correctly as results are consistantly missing system vars whenever 'SHOW VARIABLES' is executed. Is this the faulure that needs to be fixed?
[12 May 2007 15:01]
Joerg Bruehe
In the release builds, I don't get so far as to try the tests - linking fails. Look at the file with the log differences (left: working test build / right: failing release build, after the push): rx2620b-diff-work-fail.log The warnings about the missing constructor are the new ones (from the push), and I assume it it this which causes the final link failure. I agree that the linker error message is not very helpful. When you write "building completes", are you sure you configured using "--with-embedded-server" ? In the release builds, this option is what caused it to fail. Using "--without-embedded-server", I also could build - but that is not the configuration to be published.
[14 May 2007 5:09]
Antony Curtis
I have been doing some research and it appears that this error message is an old bug in GNU binutils which was much discussed during 2003. On the machine in question, I can see... [mysqldev@rx2620b mysqldev]$ ld --version GNU ld version 2.14.90.0.4 20030523 It is quite possible that gnu binutils needs to be upgraded on this machine.
[14 May 2007 18:29]
Joerg Bruehe
I checked the RedHat web site: they have binutils-2.14.90.0.4-42 for this platform, our machine is running binutils-2.14.90.0.4-39. I filed a sys request about an update.
[15 May 2007 15:00]
Joerg Bruehe
The machine has bee upgraded to binutils-2.14.90.0.4-42 but the linker error persists. That binutils version is the highest one available for RedHat EL AS 3, so there is no chance for a further upgrade.
[8 Jun 2007 15:28]
Antony Curtis
Ok, I have examined this bug.... and it is definitely the bug reported at http://sources.redhat.com/ml/binutils/2003-11/msg00054.html However, I was successfully able to compile the code... > [mysqldev@rx2620b examples]$ PATH=/users/acurtis/ia64tools/bin:$PATH > [mysqldev@rx2620b examples]$ export PATH > [mysqldev@rx2620b examples]$ make > make all-am > make[1]: Entering directory `/data/home/mysqldev/tmp-200705311919-5.1.20-beta-17729/rx2620b-icc-glibc23/mysql-5.1.20-beta/libmysqld/examples' > /bin/sh ../../libtool --preserve-dup-deps --tag=CXX --mode=link icpc -static-libgcc -static-libcxa -i-static -O3 -unroll2 -ip -mp -restrict -no-ftz -fno-implicit-templates -fno-exceptions -fno-rtti -rdynamic -o mysql_client_test_embedded mysql_client_test.o ../libmysqld.a -ldl -lpthread -lrt -lcrypt -lnsl -lm -lpthread -lrt -lcrypt -lnsl -lm ../../zlib/libzlt.la > icpc -static-libgcc -static-libcxa -i-static -O3 -unroll2 -ip -mp -restrict -no-ftz -fno-implicit-templates -fno-exceptions -fno-rtti -rdynamic -o mysql_client_test_embedded mysql_client_test.o ../libmysqld.a -ldl -lpthread -lrt -lcrypt -lnsl -lm -lpthread -lrt -lcrypt -lnsl -lm ../../zlib/.libs/libzlt.a -lrt -lcrypt -lnsl -lm > if icpc -static-libgcc -static-libcxa -i-static -DEMBEDDED_LIBRARY -I. -I. -I../.. -I../../include -I../../include -I. -I../.. -I../../client -I../../regex -O3 -unroll2 -ip -mp -restrict -no-ftz -fno-implicit-templates -fno-exceptions -fno-rtti -MT mysql.o -MD -MP -MF ".deps/mysql.Tpo" -c -o mysql.o mysql.cc; \ > then mv -f ".deps/mysql.Tpo" ".deps/mysql.Po"; else rm -f ".deps/mysql.Tpo"; exit 1; fi > if icpc -static-libgcc -static-libcxa -i-static -DEMBEDDED_LIBRARY -I. -I. -I../.. -I../../include -I../../include -I. -I../.. -I../../client -I../../regex -O3 -unroll2 -ip -mp -restrict -no-ftz -fno-implicit-templates -fno-exceptions -fno-rtti -MT readline.o -MD -MP -MF ".deps/readline.Tpo" -c -o readline.o readline.cc; \ > then mv -f ".deps/readline.Tpo" ".deps/readline.Po"; else rm -f ".deps/readline.Tpo"; exit 1; fi > if icpc -static-libgcc -static-libcxa -i-static -DEMBEDDED_LIBRARY -I. -I. -I../.. -I../../include -I../../include -I. -I../.. -I../../client -I../../regex -O3 -unroll2 -ip -mp -restrict -no-ftz -fno-implicit-templates -fno-exceptions -fno-rtti -MT completion_hash.o -MD -MP -MF ".deps/completion_hash.Tpo" -c -o completion_hash.o completion_hash.cc; \ > then mv -f ".deps/completion_hash.Tpo" ".deps/completion_hash.Po"; else rm -f ".deps/completion_hash.Tpo"; exit 1; fi > /bin/sh ../../libtool --preserve-dup-deps --tag=CXX --mode=link icpc -static-libgcc -static-libcxa -i-static -O3 -unroll2 -ip -mp -restrict -no-ftz -fno-implicit-templates -fno-exceptions -fno-rtti -rdynamic -o mysql mysql.o readline.o completion_hash.o ../../cmd-line-utils/readline/libreadline.a -lncurses ../libmysqld.a -ldl -lpthread -lrt -lcrypt -lnsl -lm -lpthread -lrt -lcrypt -lnsl -lm ../../zlib/libzlt.la > icpc -static-libgcc -static-libcxa -i-static -O3 -unroll2 -ip -mp -restrict -no-ftz -fno-implicit-templates -fno-exceptions -fno-rtti -rdynamic -o mysql mysql.o readline.o completion_hash.o ../../cmd-line-utils/readline/libreadline.a -lncurses ../libmysqld.a -ldl -lpthread -lrt -lcrypt -lnsl -lm -lpthread -lrt -lcrypt -lnsl -lm ../../zlib/.libs/libzlt.a -lrt -lcrypt -lnsl -lm > make[1]: Leaving directory `/data/home/mysqldev/tmp-200705311919-5.1.20-beta-17729/rx2620b-icc-glibc23/mysql-5.1.20-beta/libmysqld/examples' > [mysqldev@rx2620b examples]$ ./mysql_client_test_embedded > mysql_embedded: Unknown error 1146 > 070608 12:39:45 InnoDB: Operating system error number 2 in a file operation. > InnoDB: The error means the system cannot find the path specified. > InnoDB: If you are installing InnoDB, remember that you must create > InnoDB: directories yourself, InnoDB does not create them. > InnoDB: File name /usr/local/mysql/data/ibdata1 > InnoDB: File operation call: 'create'. > InnoDB: Cannot continue operation. > [mysqldev@rx2620b examples]$ ld --version > GNU ld version 2.17 > Copyright 2005 Free Software Foundation, Inc. > This program is free software; you may redistribute it under the terms of > the GNU General Public License. This program has absolutely no warranty. GNU ld version 2.17 appears to be able to link it just fine. As best as I can tell (looking at changelogs), the bug is a linker error which was fixed by GNU ld version 2.15... so I cannot reasonably suggest any solution which does not involve moving away from ld ver 2.14.x
[8 Jul 2007 23:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[8 Aug 2007 16:28]
Joerg Bruehe
The build host as a whole could not be upgraded, but a newer version of "ld" (2.17 ?) is installed below "/usr/local", and local configuration files have been changed to use it when a server is built. This way, linking succeeds.