Bug #79365 make failed with error on compiling from source 5.7.9
Submitted: 20 Nov 2015 17:14 Modified: 23 Nov 2015 15:36
Reporter: arasu b (OCA) Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:MySQL 5.7.9 OS:MacOS (version 10.9.5)
Assigned to: CPU Architecture:Any
Tags: make, mysql-compile, mysql-server

[20 Nov 2015 17:14] arasu b
Description:

$ cmake . -DDOWNLOAD_BOOST=1 -DWITH_BOOST=.
-- Running cmake version 3.2.2
-- Configuring with MAX_INDEXES = 64U
-- SIZEOF_VOIDP 8
getconf: no such configuration parameter `LEVEL1_DCACHE_LINESIZE'
-- MySQL 5.7.9
-- Packaging as: mysql-5.7.9-osx10.9-x86_64
-- Local boost dir /Users/abc/mysql_source/boost_1_59_0
-- Local boost zip /Users/abc/mysql_source/boost_1_59_0.tar.gz
-- Found /Users/abc/mysql_source/boost_1_59_0/boost/version.hpp 
-- BOOST_VERSION_NUMBER is #define BOOST_VERSION 105900
-- BOOST_INCLUDE_DIR /Users/abc/mysql_source/boost_1_59_0
-- Using cmake version 3.2.2
-- Not building NDB
-- INSTALL mysqlclient.pc lib/pkgconfig
-- CMAKE_BUILD_TYPE: RelWithDebInfo
-- COMPILE_DEFINITIONS: HAVE_CONFIG_H;GTEST_USE_OWN_TR1_TUPLE=1
-- CMAKE_C_FLAGS:  -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement
-- CMAKE_CXX_FLAGS:  -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter -Wno-null-conversion -Wno-unused-private-field
-- CMAKE_C_FLAGS_RELWITHDEBINFO: -O3 -g -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O3 -g -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/abc/mysql_source
$ make
[  0%] Built target INFO_BIN
.
.
.
.
[ 72%] Built target clientlib
[ 72%] Built target libmysql
[ 72%] Built target libmysql_api_test
Linking C static library libmysqlclient.a
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libmysqlclient.a(mysqlclient_depends.c.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libmysqlclient.a(mysqlclient_depends.c.o) has no symbols
warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: warning for library: libmysqlclient.a the table of contents is empty (no object file members in the library define global symbols)
libtool: unrecognized option `-static'
Try `libtool --help' for more information.
make[2]: *** [libmysql/libmysqlclient.a] Error 1
make[1]: *** [libmysql/CMakeFiles/mysqlclient.dir/all] Error 2
make: *** [all] Error 2

How to repeat:

1. Download the latest mysql version.
2. Run cmake 
3. Run make

Note:- my system details=> OS X 10.9.5 with 8 GB ram
[20 Nov 2015 18:47] arasu b
I fixed this by editing the file "vi libmysql/CMakeFiles/mysqlclient.dir/build.make "

below command

    cd /Users/abc/mysql_source/libmysql && /usr/bin/libtool -static -o /Users/abc/mysql_source/libmysql/libmysqlclient.a /Users/abc/mysql_source/libmysql/libclientlib.a /Users/abc/mysql_source/dbug/libdbug.a /Users/abc/mysql_source/strings/libstrings.a /Users/abc/mysql_source/vio/libvio.a /Users/abc/mysql_source/mysys/libmysys.a /Users/abc/mysql_source/mysys_ssl/libmysys_ssl.a /Users/abc/mysql_source/zlib/libzlib.a /Users/abc/mysql_source/extra/yassl/libyassl.a /Users/abc/mysql_source/extra/yassl/taocrypt/libtaocrypt.a

to 

    cd /Users/abc/mysql_source/libmysql && /usr/bin/libtool  --mode=link cc -static -o /Users/abc/mysql_source/libmysql/libmysqlclient.a /Users/abc/mysql_source/libmysql/libclientlib.a /Users/abc/mysql_source/dbug/libdbug.a /Users/abc/mysql_source/strings/libstrings.a /Users/abc/mysql_source/vio/libvio.a /Users/abc/mysql_source/mysys/libmysys.a /Users/abc/mysql_source/mysys_ssl/libmysys_ssl.a /Users/abc/mysql_source/zlib/libzlib.a /Users/abc/mysql_source/extra/yassl/libyassl.a /Users/abc/mysql_source/extra/yassl/taocrypt/libtaocrypt.a
[21 Nov 2015 18:37] arasu b
Followed by the above fix the next error, is below. 

Scanning dependencies of target mysql
[ 73%] Building CXX object client/CMakeFiles/mysql.dir/completion_hash.cc.o
[ 73%] Building CXX object client/CMakeFiles/mysql.dir/mysql.cc.o
[ 73%] Building CXX object client/CMakeFiles/mysql.dir/readline.cc.o
[ 73%] Building CXX object client/CMakeFiles/mysql.dir/__/sql-common/sql_string.cc.o
Linking CXX executable mysql
ld: warning: ignoring file ../libmysql/libmysqlclient.a, file was built for archive which is not the architecture being linked (x86_64): ../libmysql/libmysqlclient.a
Undefined symbols for architecture x86_64:
  "__dig_vec_upper", referenced from:
      convert_to_printable(char*, unsigned long, char const*, unsigned long, charset_info_st const*, unsigned long) in sql_string.cc.o
      bin_to_hex_str(char*, unsigned long, char*, unsigned long) in sql_string.cc.o]
      ...
 .
.
.
      ...
  "_mysql_ssl_set", referenced from:
      init_connection_options(st_mysql*) in mysql.cc.o
  "_mysql_stat", referenced from:
      com_status(String*, char*) in mysql.cc.o
  "_mysql_store_result", referenced from:
      mysql_store_result_for_lazy(st_mysql_res**) in mysql.cc.o
      build_completion_hash(bool, bool) in mysql.cc.o
      com_help(String*, char*) in mysql.cc.o
      com_go(String*, char*) in mysql.cc.o
      com_status(String*, char*) in mysql.cc.o
      print_warnings() in mysql.cc.o
  "_mysql_thread_id", referenced from:
      _main in mysql.cc.o
      read_and_execute(bool) in mysql.cc.o
      kill_query(char const*) in mysql.cc.o
      com_connect(String*, char*) in mysql.cc.o
      com_status(String*, char*) in mysql.cc.o
      add_filtered_history(char const*) in mysql.cc.o
  "_mysql_use_result", referenced from:
      server_version_string(st_mysql*) in mysql.cc.o
      com_go(String*, char*) in mysql.cc.o
      com_use(String*, char*) in mysql.cc.o
      get_current_db() in mysql.cc.o
      init_username() in mysql.cc.o
  "_mysql_warning_count", referenced from:
      com_go(String*, char*) in mysql.cc.o
      com_use(String*, char*) in mysql.cc.o
  "_print_defaults", referenced from:
      usage(int) in mysql.cc.o
  "_sql_protocol_typelib", referenced from:
      _get_one_option in mysql.cc.o
  "_str2int", referenced from:
      com_status(String*, char*) in mysql.cc.o
  "_strcend", referenced from:
      read_and_execute(bool) in mysql.cc.o
  "_strcont", referenced from:
      find_command(char*) in mysql.cc.o
  "_strdup_root", referenced from:
      build_completion_hash(bool, bool) in mysql.cc.o
  "_strend", referenced from:
      com_help(String*, char*) in mysql.cc.o
      com_go(String*, char*) in mysql.cc.o
  "_strmake", referenced from:
      _get_one_option in mysql.cc.o
      com_connect(String*, char*) in mysql.cc.o
      com_delimiter(String*, char*) in mysql.cc.o
      com_pager(String*, char*) in mysql.cc.o
      com_source(String*, char*) in mysql.cc.o
      com_tee(String*, char*) in mysql.cc.o
      com_use(String*, char*) in mysql.cc.o
      ...
  "_strxmov", referenced from:
      com_edit(String*, char*) in mysql.cc.o
  "_strxnmov", referenced from:
      com_help(String*, char*) in mysql.cc.o
  "_unpack_filename", referenced from:
      com_source(String*, char*) in mysql.cc.o
  "_wild_many", referenced from:
      add_filtered_history(char const*) in mysql.cc.o
  "_wild_one", referenced from:
      add_filtered_history(char const*) in mysql.cc.o
  "_wild_prefix", referenced from:
      add_filtered_history(char const*) in mysql.cc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [client/mysql] Error 1
make[1]: *** [client/CMakeFiles/mysql.dir/all] Error 2
make: *** [all] Error 2
[23 Nov 2015 11:30] MySQL Verification Team
Are you tried using the cmake-gui?

[100%] Linking CXX executable mysql_embedded
[100%] Built target mysql_embedded
Scanning dependencies of target mysqltest_embedded
[100%] Building CXX object libmysqld/examples/CMakeFiles/mysqltest_embedded.dir/__/__/client/mysqltest.cc.o
[100%] Linking CXX executable mysqltest_embedded
[100%] Built target mysqltest_embedded
Scanning dependencies of target my_safe_process
[100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.o
[100%] Linking CXX executable my_safe_process
[100%] Built target my_safe_process
miguel:mysql-5.7.9 miguel$ sql/mysqld --version
sql/mysqld  Ver 5.7.9 for osx10.11 on x86_64 (Source distribution)
[23 Nov 2015 15:08] arasu b
Hi Miguel Solorzano ,

  Actually i'm stuck while doing "make" not on "cmake"

thanks
arasu.b
[23 Nov 2015 15:33] MySQL Verification Team
Compiling log

Attachment: compilation_5_7_9_on_mac.txt (text/plain), 167.32 KiB.

[23 Nov 2015 15:36] MySQL Verification Team
Thank you for the bug report. I could not repeat on El Capitan

miguel:mysql-5.7.9 miguel$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.0 (clang-700.1.76)
Target: x86_64-apple-darwin15.0.0
Thread model: posix
miguel:mysql-5.7.9 miguel$ cmake --version
cmake version 3.4.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).