Index: SingleSource/UnitTests/C++11/CMakeLists.txt =================================================================== --- SingleSource/UnitTests/C++11/CMakeLists.txt +++ SingleSource/UnitTests/C++11/CMakeLists.txt @@ -1,3 +1,9 @@ list(APPEND CXXFLAGS -std=c++11 -pthread) list(APPEND LDFLAGS -lstdc++ -pthread) + +file(GLOB Source RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.c *.cpp) +if(${CMAKE_EXE_LINKER_FLAGS} MATCHES "-static") + list(APPEND LDFLAGS -Wl,--whole-archive -lpthread -Wl,--no-whole-archive) +endif() + llvm_singlesource() Index: SingleSource/UnitTests/C++11/Makefile =================================================================== --- SingleSource/UnitTests/C++11/Makefile +++ SingleSource/UnitTests/C++11/Makefile @@ -6,6 +6,10 @@ ifdef BENCHMARKING_ONLY PROGRAMS_TO_SKIP += stdthreadbug +else +ifeq (-static, $(findstring -static, $(TARGET_FLAGS))) +LDFLAGS += -Wl,--whole-archive -lpthread -Wl,--no-whole-archive +endif endif LDFLAGS += -lstdc++ -pthread