Bug #69813 build error
Submitted: 22 Jul 2013 17:08 Modified: 29 Apr 2014 7:33
Reporter: Kemin Zhou Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Compiling Severity:S1 (Critical)
Version:5.6.12 OS:Linux (failed to compile)
Assigned to: CPU Architecture:Any
Tags: compiler error

[22 Jul 2013 17:08] Kemin Zhou
Description:
GNU gcc 4.8.1

This program built for x86_64-redhat-linux-gnu
Reading makefiles...
Updating goal targets....
 File `extra/yassl/CMakeFiles/yassl.dir/build' does not exist.
   File `extra/yassl/libyassl.a' does not exist.
     File `extra/yassl/CMakeFiles/yassl.dir/src/timer.cpp.o' does not exist.
    Must remake target `extra/yassl/CMakeFiles/yassl.dir/src/timer.cpp.o'.
[  0%] Building CXX object extra/yassl/CMakeFiles/yassl.dir/src/timer.cpp.o
/home/zhouke/download/mysql-5.6.12/extra/yassl/src/timer.cpp:61:5: error: ‘timer_d’ does not name a type
     timer_d timer()
     ^
make[2]: *** [extra/yassl/CMakeFiles/yassl.dir/src/timer.cpp.o] Error 1
make[1]: *** [extra/yassl/CMakeFiles/yassl.dir/all] Error 2

How to repeat:
Use a gnu 4.8.1 c and c++ compiler

Suggested fix:
I experimented with the combination of CFLAGS, some of the options caused the typedefed 'double timer_d' not visible in the *.cpp file.  
Could be not conforming to the C++ 11 version.

The compiler option is the source of the problem.
[30 Jul 2013 13:56] Valeriy Kravchuk
Would you mind to share exact CFLAGS and build steps that lead to this problem?
[29 Aug 2013 9:21] MySQL Verification Team
Hello Kemin,

Thank you for your bug report.
Would you please share exact CFLAGS and build steps that lead to this problem?
Also, if possible could you try to build GA version 5.6.13? Let us know if you have any issues..

Thanks,
Umesh
[29 Aug 2013 14:28] Kemin Zhou
Sorry, just joint a new job.  I gave up on compiling and don't have time to revisit.
build was done in a separate directory.
I am using straight make, no arguments:

[  1%] Building CXX object extra/yassl/CMakeFiles/yassl.dir/src/timer.cpp.o
/home/zhouke/download/mysql-5.6.12/extra/yassl/src/timer.cpp:61:5: error: ‘timer_d’ does not name a type
     timer_d timer()
     ^
make[2]: *** [extra/yassl/CMakeFiles/yassl.dir/src/timer.cpp.o] Error 1
make[1]: *** [extra/yassl/CMakeFiles/yassl.dir/all] Error 2
make: *** [all] Error 2

zhouke@europa[~/download/mysqlbuild]$ make -n | grep timer.cpp
/usr/bin/cmake -E cmake_echo_color --switch= --green "Building CXX object extra/yassl/CMakeFiles/yassl.dir/src/timer.cpp.o"
cd /home/zhouke/download/mysqlbuild/extra/yassl && /usr/local/bin/c++   -DHAVE_CONFIG_H -Dget_tty_password_ext=yassl_mysql_get_tty_password_ext -Dget_tty_password=yassl_mysql_get_tty_password -I/usr/local/include/boost -I/usr/local/include/c++/4.8.1  -Wall -Wno-unused-parameter -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF -I/home/zhouke/download/mysqlbuild/include -I/home/zhouke/download/mysql-5.6.12/include -I/home/zhouke/download/mysql-5.6.12/extra/yassl/include -I/home/zhouke/download/mysql-5.6.12/extra/yassl/taocrypt/include -I/home/zhouke/download/mysql-5.6.12/extra/yassl/taocrypt/mySTL   -DHAVE_YASSL -DYASSL_PREFIX -DHAVE_OPENSSL -DMULTI_THREADED -fPIC -fvisibility=hidden -o CMakeFiles/yassl.dir/src/timer.cpp.o -c /home/zhouke/download/mysql-5.6.12/extra/yassl/src/timer.cpp
[29 Apr 2014 7:33] MySQL Verification Team
Hello Kemin,

I cannot reproduce this issue with latest MySQL 5.6.17 source, could you please try with latest source and get back to us with exact commands that you are using along with clfags details?

Thanks,
Umesh