Description:
With recent g++ (6.1.1, on Debian testing), MySQL now fails to link:
[9/9] Linking CXX executable client/mysqlpump
FAILED: client/mysqlpump
: && /usr/lib/ccache/c++ -Wall -Wextra -Wformat-security -Wvla -Wmissing-format-attribute -Wundef -Woverloaded-virtual -Wno-unused-parameter -Wlogical-op -O3 -g -fno-omit-frame-pointer -fno-strict-aliasing -std=c++11 -DDBUG_OFF -fuse-ld=gold client/dump/CMakeFiles/mysqlpump.dir/program.cc.o -o client/mysqlpump -lpthread client/dump/libmysqlpump_lib.a client/dump/libboost_lib.a client/base/libclient_base.a libmysql/libmysqlclient.a -lm -lrt -latomic -ldl extra/liblz4_lib.a -lpthread && :
../client/dump/program.cc:175: error: undefined reference to 'boost::chrono::steady_clock::now()'
../client/dump/program.cc:216: error: undefined reference to 'boost::chrono::steady_clock::now()'
../client/dump/sql_formatter.cc:275: error: undefined reference to 'boost::chrono::system_clock::now()'
../client/dump/sql_formatter.cc:274: error: undefined reference to 'boost::chrono::system_clock::to_time_t(boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long, boost::ratio<1l, 1000000000l> > > const&)'
../client/dump/sql_formatter.cc:250: error: undefined reference to 'boost::chrono::system_clock::now()'
../client/dump/sql_formatter.cc:249: error: undefined reference to 'boost::chrono::system_clock::to_time_t(boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long, boost::ratio<1l, 1000000000l> > > const&)'
../client/dump/abstract_progress_watcher.cc:31: error: undefined reference to 'boost::chrono::system_clock::now()'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
boost::chrono was never in the allowed Boost subset, so we should just remove its use rather than to spend time on figuring out what went wrong.
How to repeat:
cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=$WITH_BOOST -DENABLE_DOWNLOADS=1 -G Ninja
ninja
Suggested fix:
N/A