| Bug #53022 | Compilation of "embedded" is broken | ||
|---|---|---|---|
| Submitted: | 21 Apr 2010 10:45 | Modified: | 28 Apr 2010 2:12 |
| Reporter: | Joerg Bruehe | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Compiling | Severity: | S1 (Critical) |
| Version: | 6.0.14 | OS: | Any |
| Assigned to: | Alexander Nozdrin | CPU Architecture: | Any |
[21 Apr 2010 12:03]
Joerg Bruehe
Removing the "trunk" cersion reference - I can compile current "trunk-bugfixing" (including "embedded") without issues. There is no changeset in current "trunk-bugfixing" which would be missing in "6.0-codebase-bugfixing", so the bug seems to have arisen after "trunk" only.
[22 Apr 2010 8:34]
Alexander Nozdrin
Patch pushed into trunk-bugfixing.
[22 Apr 2010 9:11]
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/106329 3012 Alexander Nozdrin 2010-04-21 Patch for Bug#53022: Compilation of "embedded" is broken. The bug was a side effect of WL#5030 (fix header files) and WL#5161 (CMake). The problem was that CMake-generated config.h (and my_config.h as a copy of it) had a header guard. GNU autotools-generated [my_]config.h did not. During WL#5030 the order of header files was changed, so the following started to happen (using GNU autotools, in embedded server): - my_config.h included, defining HAVE_OPENSSL - my_global.h included, un-defining HAVE_OPENSSL - zlib.h included, including config.h, defining HAVE_OPENSSL again. The fix is to change the order of header file, moving zlib.h to the top of the header list. More proper fix would be to wrap unguarded auto-generated [my_]config.h by guarded non-generated header file.
[22 Apr 2010 9:11]
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/106330 3013 Alexander Nozdrin 2010-04-21 Patch for Bug#53022: Compilation of "embedded" is broken. The bug was a side effect of WL#5030 (fix header files) and WL#5161 (CMake). The problem was that CMake-generated config.h (and my_config.h as a copy of it) had a header guard. GNU autotools-generated [my_]config.h did not. During WL#5030 the order of header files was changed, so the following started to happen (using GNU autotools, in embedded server): - my_config.h included, defining HAVE_OPENSSL - my_global.h included, un-defining HAVE_OPENSSL - zlib.h included, including config.h, defining HAVE_OPENSSL again. The fix is to change the order of header file, moving zlib.h to the top of the header list. More proper fix would be to wrap unguarded auto-generated [my_]config.h by guarded non-generated header file.
[22 Apr 2010 18:54]
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/106392 3015 Alexander Nozdrin 2010-04-22 Patch for Bug#53022: Compilation of "embedded" is broken. The bug was a side effect of WL#5030 (fix header files) and WL#5161 (CMake). The problem was that CMake-generated config.h (and my_config.h as a copy of it) had a header guard. GNU autotools-generated [my_]config.h did not. During WL#5030 the order of header files was changed, so the following started to happen (using GNU autotools, in embedded server): - my_config.h included, defining HAVE_OPENSSL - my_global.h included, un-defining HAVE_OPENSSL - zlib.h included, including config.h, defining HAVE_OPENSSL again. The fix is to check HAVE_OPENSSL in conjuction with EMBEDDED_LIBRARY. More common fix would be to define a macros as HAVE_OPENSSL && !EMBEDDED_LIBRARY and use it instead of HAVE_OPENSSL.
[27 Apr 2010 9:47]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100427094135-5s49ecp3ckson6e2) (version source revid:alik@sun.com-20100427093843-uekr85qkd7orx12t) (merge vers: 6.0.14-alpha) (pib:16)
[27 Apr 2010 9:49]
Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100427093804-a2k3rrjpwu5jegu8) (version source revid:alik@sun.com-20100427093804-a2k3rrjpwu5jegu8) (merge vers: 5.5.5-m3) (pib:16)
[27 Apr 2010 9:53]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100427094036-38frbg3famdlvjup) (version source revid:alik@sun.com-20100427093825-92wc8b22d4yg34ju) (pib:16)
[28 Apr 2010 2:12]
Paul DuBois
Not in any released version. No changelog entry needed.

Description: Compile error in a local Linux build of current "mysql-6.0-codebase-bugfixing" ("configure.in" lists version 6.0.14). My last successful build of this tree was on March 25, no attempt in between, today it fails. Client and server get built, but compiling "embedded" ("libmysqld") fails with these messages: ===== +g++ -DEMBEDDED_LIBRARY -DMYSQL_SERVER -DDEFAULT_MYSQL_HOME="\"/usr/local/mysql\"" -DMYSQL_DATADIR="\"/usr/local/mysql/var\"" -DSHAREDIR="\"/usr/local/mysql/share/mysql\"" -DHAVE_CONFIG_H -DLIBDIR="\"/usr/local/mysql/lib\"" -DPLUGINDIR="\"/usr/local/mysql/lib/mysql/plugin\"" -DDISABLE_DTRACE -I. -I../include -I../include -I../sql -I../sql -I../sql/examples -I../regex -I../zlib -I../storage/federated/ -I../storage/heap/ -I../storage/myisammrg/ -I../storage/myisam/ -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -mtune=native -O3 -fno-omit-frame-pointer -g -fno-implicit-templates -fno-exceptions -fno-rtti -MT item_strfunc.o -MD -MP -MF .deps/item_strfunc.Tpo -c -o item_strfunc.o item_strfunc.cc +item_strfunc.cc: In member function ‘virtual String* Item_func_des_encrypt::val_str(String*)’: +item_strfunc.cc:639: error: ‘DES_cblock’ was not declared in this scope +item_strfunc.cc:639: error: expected `;' before ‘ivec’ +item_strfunc.cc:640: error: aggregate ‘st_des_keyblock keyblock’ has incomplete type and cannot be defined +item_strfunc.cc:641: error: aggregate ‘st_des_keyschedule keyschedule’ has incomplete type and cannot be defined +item_strfunc.cc:653: error: ‘LOCK_des_key_file’ was not declared in this scope +item_strfunc.cc:654: error: ‘des_keyschedule’ was not declared in this scope +item_strfunc.cc:654: error: ‘des_default_key’ was not declared in this scope +item_strfunc.cc:662: error: ‘LOCK_des_key_file’ was not declared in this scope +item_strfunc.cc:663: error: ‘des_keyschedule’ was not declared in this scope +item_strfunc.cc:674: error: ‘ivec’ was not declared in this scope +item_strfunc.cc:675: error: ‘EVP_des_ede3_cbc’ was not declared in this scope +item_strfunc.cc:675: error: ‘EVP_md5’ was not declared in this scope +item_strfunc.cc:677: error: ‘EVP_BytesToKey’ was not declared in this scope +item_strfunc.cc:678: error: ‘DES_set_key_unchecked’ was not declared in this scope +item_strfunc.cc:705: error: ‘ivec’ was not declared in this scope +item_strfunc.cc:712: error: ‘DES_ede3_cbc_encrypt’ was not declared in this scope +item_strfunc.cc: In member function ‘virtual String* Item_func_des_decrypt::val_str(String*)’: +item_strfunc.cc:734: error: ‘DES_cblock’ was not declared in this scope +item_strfunc.cc:734: error: expected `;' before ‘ivec’ +item_strfunc.cc:735: error: aggregate ‘st_des_keyblock keyblock’ has incomplete type and cannot be defined +item_strfunc.cc:736: error: aggregate ‘st_des_keyschedule keyschedule’ has incomplete type and cannot be defined +item_strfunc.cc:754: error: ‘LOCK_des_key_file’ was not declared in this scope +item_strfunc.cc:755: error: ‘des_keyschedule’ was not declared in this scope +item_strfunc.cc:765: error: ‘ivec’ was not declared in this scope +item_strfunc.cc:766: error: ‘EVP_des_ede3_cbc’ was not declared in this scope +item_strfunc.cc:766: error: ‘EVP_md5’ was not declared in this scope +item_strfunc.cc:768: error: ‘EVP_BytesToKey’ was not declared in this scope +item_strfunc.cc:770: error: ‘DES_set_key_unchecked’ was not declared in this scope +item_strfunc.cc:778: error: ‘ivec’ was not declared in this scope +item_strfunc.cc:785: error: ‘DES_ede3_cbc_encrypt’ was not declared in this scope ===== Alik just tells me in IRC that "trunk" has the same issue, I'll soon try that. How to repeat: Just try "BUILD/compile-pentium-max" on current "mysql-6.0-codebase-bugfixing".