Fix static build with mysql When building static binaries, the order of libraries in the link command line is significant. Use $LIBS for mysql libraries, so that mysql appear after the object files that depends on it. This fixes build failures like the following. /home/buildroot/build/instance-1/output/host/usr/bin/arm-linux-g++ -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -static -static -I/home/buildroot/build/instance-1/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/mysql -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -static -DUNIV_LINUX -DUNIV_LINUX -static -static -rdynamic -L/home/buildroot/build/instance-1/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib -lmysqlclient_r -lz -lpthread -lcrypt -lnsl -lm -lpthread -o linknx linknx.o logger.o ruleserver.o objectcontroller.o eibclient.o threads.o timermanager.o persistentstorage.o xmlserver.o smsgateway.o emailgateway.o knxconnection.o services.o suncalc.o luacondition.o ioport.o ../ticpp/libticpp.a -L/home/buildroot/build/instance-1/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib -lpthsem -lm -largp persistentstorage.o: In function `MysqlPersistentStorage::~MysqlPersistentStorage()': persistentstorage.cpp:(.text+0x2c): undefined reference to `mysql_close' persistentstorage.o: In function `MysqlPersistentStorage::MysqlPersistentStorage(ticpp::Element*)': persistentstorage.cpp:(.text+0x518): undefined reference to `mysql_init' persistentstorage.cpp:(.text+0x570): undefined reference to `mysql_options' persistentstorage.cpp:(.text+0x5a8): undefined reference to `mysql_real_connect' persistentstorage.cpp:(.text+0x5c0): undefined reference to `mysql_options' persistentstorage.cpp:(.text+0x618): undefined reference to `mysql_error' persistentstorage.cpp:(.text+0x6c0): undefined reference to `mysql_options' persistentstorage.o: In function `MysqlPersistentStorage::write(std::string const&, std::string const&)': persistentstorage.cpp:(.text+0xb70): undefined reference to `mysql_real_query' persistentstorage.cpp:(.text+0xbcc): undefined reference to `mysql_error' persistentstorage.o: In function `MysqlPersistentStorage::read(std::string const&, std::string const&)': persistentstorage.cpp:(.text+0xd14): undefined reference to `mysql_real_query' persistentstorage.cpp:(.text+0xd38): undefined reference to `mysql_store_result' persistentstorage.cpp:(.text+0xd40): undefined reference to `mysql_num_rows' persistentstorage.cpp:(.text+0xd50): undefined reference to `mysql_fetch_row' persistentstorage.cpp:(.text+0xd68): undefined reference to `mysql_free_result' persistentstorage.cpp:(.text+0xdc8): undefined reference to `mysql_error' persistentstorage.o: In function `MysqlPersistentStorage::writelog(std::string const&, std::string const&)': persistentstorage.cpp:(.text+0xf74): undefined reference to `mysql_real_query' persistentstorage.cpp:(.text+0xfd0): undefined reference to `mysql_error' collect2: error: ld returned 1 exit status Signed-off-by: Baruch Siach --- Patch status: sent to jef2000@users.sourceforge.net diff -Nuar linknx-0.0.1.32-orig/acinclude.m4 linknx-0.0.1.32/acinclude.m4 --- linknx-0.0.1.32-orig/acinclude.m4 2011-01-09 16:47:32.000000000 +0200 +++ linknx-0.0.1.32/acinclude.m4 2016-03-15 12:41:19.983861719 +0200 @@ -36,7 +36,7 @@ CFLAGS="$CFLAGS $ADDFLAGS" CXXFLAGS="$CXXFLAGS $ADDFLAGS" - LDFLAGS="$LDFLAGS "`$MYSQL_CONFIG --libs_r` + LIBS="$LIBS "`$MYSQL_CONFIG --libs_r` AC_MSG_RESULT($MYSQL_CONFIG) AC_DEFINE([HAVE_MYSQL], [1], [Build with MySQL support.])