[CMake] Don't add -lstdc++ to LDFLAGS

If the target includes a C++ source file, CMake will automatically link
the C++ standard library. This is useful when building on platforms where
libstdc++.so does not exist (e.g. CheriBSD since we only use libc++.so).

Reviewed By: smeenai
Differential Revision: https://reviews.llvm.org/D89555
diff --git a/External/Nurbs/CMakeLists.txt b/External/Nurbs/CMakeLists.txt
index 0a90282..e1e33fd 100644
--- a/External/Nurbs/CMakeLists.txt
+++ b/External/Nurbs/CMakeLists.txt
@@ -4,7 +4,6 @@
   llvm_externals_find(TEST_SUITE_NURBS_ROOT "nurbs" "Nurbs")
 
   if(TEST_SUITE_NURBS_ROOT)
-    list(APPEND LDFLAGS -lstdc++)
     if(CMAKE_SIZEOF_VOID_P EQUAL 8)
       list(APPEND CPPFLAGS -DDWORD_IS_ULL)
     endif()
diff --git a/MultiSource/Applications/ALAC/decode/CMakeLists.txt b/MultiSource/Applications/ALAC/decode/CMakeLists.txt
index f0a0ef5..a591011 100644
--- a/MultiSource/Applications/ALAC/decode/CMakeLists.txt
+++ b/MultiSource/Applications/ALAC/decode/CMakeLists.txt
@@ -5,7 +5,6 @@
   list(APPEND CFLAGS -DTARGET_RT_BIG_ENDIAN=1)
   list(APPEND CXXFLAGS -DTARGET_RT_BIG_ENDIAN=1)
 endif()
-list(APPEND LDFLAGS -lstdc++)
 set(RUN_OPTIONS - - < tune.caf)
 llvm_multisource(alacconvert-decode
   EndianPortable.c
diff --git a/MultiSource/Applications/ALAC/encode/CMakeLists.txt b/MultiSource/Applications/ALAC/encode/CMakeLists.txt
index 37da56b..e2af09d 100644
--- a/MultiSource/Applications/ALAC/encode/CMakeLists.txt
+++ b/MultiSource/Applications/ALAC/encode/CMakeLists.txt
@@ -5,7 +5,6 @@
   list(APPEND CFLAGS -DTARGET_RT_BIG_ENDIAN=1)
   list(APPEND CXXFLAGS -DTARGET_RT_BIG_ENDIAN=1)
 endif()
-list(APPEND LDFLAGS -lstdc++)
 set(RUN_OPTIONS - - < tune.wav)
 llvm_multisource(alacconvert-encode
   EndianPortable.c
diff --git a/MultiSource/Applications/Burg/CMakeLists.txt b/MultiSource/Applications/Burg/CMakeLists.txt
index 4647cde..1fe14c5 100644
--- a/MultiSource/Applications/Burg/CMakeLists.txt
+++ b/MultiSource/Applications/Burg/CMakeLists.txt
@@ -1,6 +1,5 @@
 list(APPEND CPPFLAGS -DDEBUG)
 list(APPEND CFLAGS -std=gnu89)
-list(APPEND LDFLAGS -lstdc++)
 set(RUN_OPTIONS < sample.gr)
 
 include_directories(${CMAKE_CURRENT_BINARY_DIR})
diff --git a/MultiSource/Applications/hbd/CMakeLists.txt b/MultiSource/Applications/hbd/CMakeLists.txt
index b4e4ed7..f084562 100644
--- a/MultiSource/Applications/hbd/CMakeLists.txt
+++ b/MultiSource/Applications/hbd/CMakeLists.txt
@@ -1,5 +1,4 @@
 list(APPEND CPPFLAGS -DHAVE_CONFIG_H)
-list(APPEND LDFLAGS -lstdc++)
 set(RUN_OPTIONS Sort.class)
 llvm_multisource(hbd)
 llvm_test_data(hbd Sort.class)
diff --git a/MultiSource/Applications/hexxagon/CMakeLists.txt b/MultiSource/Applications/hexxagon/CMakeLists.txt
index 85e2c70..264deca 100644
--- a/MultiSource/Applications/hexxagon/CMakeLists.txt
+++ b/MultiSource/Applications/hexxagon/CMakeLists.txt
@@ -1,4 +1,3 @@
-list(APPEND LDFLAGS -lstdc++)
 set(RUN_OPTIONS < input)
 llvm_multisource(hexxagon)
 target_include_directories(hexxagon PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/MultiSource/Applications/kimwitu++/CMakeLists.txt b/MultiSource/Applications/kimwitu++/CMakeLists.txt
index 04c95c7..4cfbcdd 100644
--- a/MultiSource/Applications/kimwitu++/CMakeLists.txt
+++ b/MultiSource/Applications/kimwitu++/CMakeLists.txt
@@ -1,5 +1,4 @@
 list(APPEND CPPFLAGS -I${CMAKE_CURRENT_SOURCE_DIR} -DYYDEBUG=1)
-list(APPEND LDFLAGS -lstdc++)
 set(RUN_OPTIONS -f test  -o -v -s kcc inputs/f3.k inputs/f2.k inputs/f1.k)
 set(HASH_PROGRAM_OUTPUT 1)
 llvm_multisource(kc)
diff --git a/MultiSource/Applications/lambda-0.1.3/CMakeLists.txt b/MultiSource/Applications/lambda-0.1.3/CMakeLists.txt
index e071769..b00b62a 100644
--- a/MultiSource/Applications/lambda-0.1.3/CMakeLists.txt
+++ b/MultiSource/Applications/lambda-0.1.3/CMakeLists.txt
@@ -1,4 +1,3 @@
-list(APPEND LDFLAGS -lstdc++)
 set(RUN_OPTIONS < input)
 llvm_multisource(lambda)
 target_include_directories(lambda PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/MultiSource/Applications/minisat/CMakeLists.txt b/MultiSource/Applications/minisat/CMakeLists.txt
index 4076248..6b23d61 100644
--- a/MultiSource/Applications/minisat/CMakeLists.txt
+++ b/MultiSource/Applications/minisat/CMakeLists.txt
@@ -1,4 +1,4 @@
-list(APPEND LDFLAGS -lstdc++ -lm)
+list(APPEND LDFLAGS -lm)
 if(SMALL_PROBLEM_SIZE)
   set(INPUT small.cnf)
 else()
diff --git a/MultiSource/Benchmarks/7zip/CMakeLists.txt b/MultiSource/Benchmarks/7zip/CMakeLists.txt
index 4a4e8a2..6504fda 100644
--- a/MultiSource/Benchmarks/7zip/CMakeLists.txt
+++ b/MultiSource/Benchmarks/7zip/CMakeLists.txt
@@ -1,7 +1,7 @@
 set(RUN_OPTIONS b)
 list(APPEND CFLAGS -DBREAK_HANDLER -DUNICODE -D_UNICODE -I${CMAKE_CURRENT_SOURCE_DIR}/C -I${CMAKE_CURRENT_SOURCE_DIR}/CPP/myWindows -I${CMAKE_CURRENT_SOURCE_DIR}/CPP/include_windows -I${CMAKE_CURRENT_SOURCE_DIR}/CPP -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -pthread)
 list(APPEND CXXFLAGS -Wno-error=c++11-narrowing -DBREAK_HANDLER -DUNICODE -D_UNICODE -I${CMAKE_CURRENT_SOURCE_DIR}/C -I${CMAKE_CURRENT_SOURCE_DIR}/CPP/myWindows -I${CMAKE_CURRENT_SOURCE_DIR}/CPP/include_windows -I${CMAKE_CURRENT_SOURCE_DIR}/CPP -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -pthread)
-list(APPEND LDFLAGS -lstdc++ -pthread)
+list(APPEND LDFLAGS -pthread)
 set(NO_REFERENCE_OUTPUT 1)
 llvm_multisource(7zip-benchmark
   CPP/myWindows/myGetTickCount.cpp
diff --git a/MultiSource/Benchmarks/Bullet/CMakeLists.txt b/MultiSource/Benchmarks/Bullet/CMakeLists.txt
index a5545eb..0241f5f 100644
--- a/MultiSource/Benchmarks/Bullet/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Bullet/CMakeLists.txt
@@ -1,3 +1,3 @@
 list(APPEND CPPFLAGS -I${CMAKE_CURRENT_SOURCE_DIR}/include -std=gnu++98 -DNO_TIME)
-list(APPEND LDFLAGS -lstdc++ -lm)
+list(APPEND LDFLAGS -lm)
 llvm_multisource(bullet)
diff --git a/MultiSource/Benchmarks/PAQ8p/CMakeLists.txt b/MultiSource/Benchmarks/PAQ8p/CMakeLists.txt
index e6abe2b..f3ea4b8 100644
--- a/MultiSource/Benchmarks/PAQ8p/CMakeLists.txt
+++ b/MultiSource/Benchmarks/PAQ8p/CMakeLists.txt
@@ -1,5 +1,5 @@
 list(APPEND CPPFLAGS -DNOASM -DLLVM)
-list(APPEND LDFLAGS -lstdc++ -lm)
+list(APPEND LDFLAGS -lm)
 if(SMALL_PROBLEM_SIZE)
   set(INPUTS small.in)
   set(RUN_OPTIONS -1 ${INPUTS})
diff --git a/MultiSource/Benchmarks/Prolangs-C++/NP/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/NP/CMakeLists.txt
index 373f40f..60d757f 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/NP/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/NP/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(np)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/city/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/city/CMakeLists.txt
index f8cb247..239e463 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/city/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/city/CMakeLists.txt
@@ -1,3 +1,2 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(city)
 target_include_directories(city PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/MultiSource/Benchmarks/Prolangs-C++/deriv1/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/deriv1/CMakeLists.txt
index 515427e..10e9c7f 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/deriv1/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/deriv1/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(deriv1)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/deriv2/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/deriv2/CMakeLists.txt
index 601bb05..8c77872 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/deriv2/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/deriv2/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(deriv2)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/employ/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/employ/CMakeLists.txt
index bbe59b2..b592473 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/employ/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/employ/CMakeLists.txt
@@ -1,4 +1,3 @@
-list(APPEND LDFLAGS -lstdc++)
 set(RUN_OPTIONS 400 < input.txt)
 set(HASH_PROGRAM_OUTPUT 1)
 llvm_multisource(employ)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/family/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/family/CMakeLists.txt
index 0bb0171..12b064c 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/family/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/family/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(family)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/fsm/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/fsm/CMakeLists.txt
index f941398..9b2e83a 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/fsm/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/fsm/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(fsm)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/garage/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/garage/CMakeLists.txt
index 5b06275..3336d60 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/garage/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/garage/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(garage)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/life/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/life/CMakeLists.txt
index cde994a..b51cbaa 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/life/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/life/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(life)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/objects/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/objects/CMakeLists.txt
index 9bc9ab9..56e3514 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/objects/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/objects/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(objects)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/ocean/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/ocean/CMakeLists.txt
index bba19a8..6228dd1 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/ocean/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/ocean/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(ocean)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/office/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/office/CMakeLists.txt
index 4db3b35..51841c7 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/office/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/office/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(office)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/primes/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/primes/CMakeLists.txt
index d1f79c0..e928e89 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/primes/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/primes/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(primes)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/shapes/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/shapes/CMakeLists.txt
index 9d9baab..0aed7c4 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/shapes/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/shapes/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(shapes)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/simul/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/simul/CMakeLists.txt
index ce0a3a1..245f0e6 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/simul/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/simul/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(simul)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/trees/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/trees/CMakeLists.txt
index c6b74b2..a677174 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/trees/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/trees/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(trees)
diff --git a/MultiSource/Benchmarks/Prolangs-C++/vcirc/CMakeLists.txt b/MultiSource/Benchmarks/Prolangs-C++/vcirc/CMakeLists.txt
index 5b8f7e1..2cc8414 100644
--- a/MultiSource/Benchmarks/Prolangs-C++/vcirc/CMakeLists.txt
+++ b/MultiSource/Benchmarks/Prolangs-C++/vcirc/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_multisource(vcirc)
diff --git a/MultiSource/Benchmarks/tramp3d-v4/CMakeLists.txt b/MultiSource/Benchmarks/tramp3d-v4/CMakeLists.txt
index aa9016d..2117617 100644
--- a/MultiSource/Benchmarks/tramp3d-v4/CMakeLists.txt
+++ b/MultiSource/Benchmarks/tramp3d-v4/CMakeLists.txt
@@ -1,5 +1,4 @@
 list(APPEND CXXFLAGS -fno-exceptions)
-list(APPEND LDFLAGS -lstdc++)
 if(SMALL_PROBLEM_SIZE)
   set(RUN_OPTIONS --cartvis 1.0 0.0 --rhomin 1e-8 -n 4 --domain 32 32 32)
 else()
diff --git a/SingleSource/Benchmarks/Adobe-C++/CMakeLists.txt b/SingleSource/Benchmarks/Adobe-C++/CMakeLists.txt
index 5481a3a..4a274a8 100644
--- a/SingleSource/Benchmarks/Adobe-C++/CMakeLists.txt
+++ b/SingleSource/Benchmarks/Adobe-C++/CMakeLists.txt
@@ -1,3 +1,3 @@
-list(APPEND LDFLAGS -lm -lstdc++)
+list(APPEND LDFLAGS -lm)
 set(FP_ABSTOLERANCE 0.01)
 llvm_singlesource()
diff --git a/SingleSource/Benchmarks/CoyoteBench/CMakeLists.txt b/SingleSource/Benchmarks/CoyoteBench/CMakeLists.txt
index 3c46ceb..dfe246f 100644
--- a/SingleSource/Benchmarks/CoyoteBench/CMakeLists.txt
+++ b/SingleSource/Benchmarks/CoyoteBench/CMakeLists.txt
@@ -1,2 +1,2 @@
-list(APPEND LDFLAGS -lm -lstdc++)
+list(APPEND LDFLAGS -lm)
 llvm_singlesource()
diff --git a/SingleSource/Benchmarks/Misc-C++-EH/CMakeLists.txt b/SingleSource/Benchmarks/Misc-C++-EH/CMakeLists.txt
index a3642c6..b318757 100644
--- a/SingleSource/Benchmarks/Misc-C++-EH/CMakeLists.txt
+++ b/SingleSource/Benchmarks/Misc-C++-EH/CMakeLists.txt
@@ -1,3 +1,3 @@
 list(APPEND CXXFLAGS -pthread)
-list(APPEND LDFLAGS -lm -lstdc++ -pthread)
+list(APPEND LDFLAGS -lm -pthread)
 llvm_singlesource()
diff --git a/SingleSource/Benchmarks/Misc-C++/CMakeLists.txt b/SingleSource/Benchmarks/Misc-C++/CMakeLists.txt
index ed1cd19..72c8dc6 100644
--- a/SingleSource/Benchmarks/Misc-C++/CMakeLists.txt
+++ b/SingleSource/Benchmarks/Misc-C++/CMakeLists.txt
@@ -1,5 +1,5 @@
 add_subdirectory(Large)
 
-list(APPEND LDFLAGS -lm -lstdc++)
+list(APPEND LDFLAGS -lm)
 set(FP_ABSTOLERANCE 0.01)
 llvm_singlesource()
diff --git a/SingleSource/Benchmarks/Misc-C++/Large/CMakeLists.txt b/SingleSource/Benchmarks/Misc-C++/Large/CMakeLists.txt
index 1701995..e729985 100644
--- a/SingleSource/Benchmarks/Misc-C++/Large/CMakeLists.txt
+++ b/SingleSource/Benchmarks/Misc-C++/Large/CMakeLists.txt
@@ -1,4 +1,4 @@
-list(APPEND LDFLAGS -lm -lstdc++)
+list(APPEND LDFLAGS -lm)
 set(FP_ABSTOLERANCE 0.01)
 set(HASH_PROGRAM_OUTPUT 1)
 llvm_singlesource()
diff --git a/SingleSource/Benchmarks/Shootout-C++/CMakeLists.txt b/SingleSource/Benchmarks/Shootout-C++/CMakeLists.txt
index 0a26c1e..a155458 100644
--- a/SingleSource/Benchmarks/Shootout-C++/CMakeLists.txt
+++ b/SingleSource/Benchmarks/Shootout-C++/CMakeLists.txt
@@ -32,7 +32,7 @@
     wordfreq.cpp
   )
 endif()
-list(APPEND LDFLAGS -lstdc++ -lm)
+list(APPEND LDFLAGS -lm)
 if(TARGET_OS STREQUAL "Darwin")
   # Necessary for ackermann on iOS
   list(APPEND LDFLAGS -Xlinker -stack_size -Xlinker 0x800000)
diff --git a/SingleSource/Benchmarks/Shootout-C++/EH/CMakeLists.txt b/SingleSource/Benchmarks/Shootout-C++/EH/CMakeLists.txt
index c12632e..f191ce5 100644
--- a/SingleSource/Benchmarks/Shootout-C++/EH/CMakeLists.txt
+++ b/SingleSource/Benchmarks/Shootout-C++/EH/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_singlesource(PREFIX "Shootout-C++-")
diff --git a/SingleSource/Benchmarks/SmallPT/CMakeLists.txt b/SingleSource/Benchmarks/SmallPT/CMakeLists.txt
index 8b98cb4..7f5fd22 100644
--- a/SingleSource/Benchmarks/SmallPT/CMakeLists.txt
+++ b/SingleSource/Benchmarks/SmallPT/CMakeLists.txt
@@ -1,4 +1,4 @@
 list(APPEND CXXFLAGS -std=gnu++98)
-list(APPEND LDFLAGS -lm -lstdc++)
+list(APPEND LDFLAGS -lm)
 set(FP_TOLERANCE 0.001)
 llvm_singlesource()
diff --git a/SingleSource/Regression/C++/CMakeLists.txt b/SingleSource/Regression/C++/CMakeLists.txt
index 60b5c0d..1222a06 100644
--- a/SingleSource/Regression/C++/CMakeLists.txt
+++ b/SingleSource/Regression/C++/CMakeLists.txt
@@ -1,4 +1,3 @@
 add_subdirectory(EH)
 
-list(APPEND LDFLAGS -lstdc++)
 llvm_singlesource(PREFIX "Regression-C++-")
diff --git a/SingleSource/Regression/C++/EH/CMakeLists.txt b/SingleSource/Regression/C++/EH/CMakeLists.txt
index 401d9a3..3a330d1 100644
--- a/SingleSource/Regression/C++/EH/CMakeLists.txt
+++ b/SingleSource/Regression/C++/EH/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_singlesource(PREFIX "Regression-C++-")
diff --git a/SingleSource/UnitTests/C++11/CMakeLists.txt b/SingleSource/UnitTests/C++11/CMakeLists.txt
index 87e50f2..9f0a3d7 100644
--- a/SingleSource/UnitTests/C++11/CMakeLists.txt
+++ b/SingleSource/UnitTests/C++11/CMakeLists.txt
@@ -1,5 +1,5 @@
 list(APPEND CXXFLAGS -std=c++11 -pthread)
-list(APPEND LDFLAGS -lstdc++ -pthread)
+list(APPEND LDFLAGS -pthread)
 
 file(GLOB Source RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.c *.cpp)
 if(${CMAKE_EXE_LINKER_FLAGS} MATCHES "-static")
diff --git a/SingleSource/UnitTests/CMakeLists.txt b/SingleSource/UnitTests/CMakeLists.txt
index 2d8c549..86310a3 100644
--- a/SingleSource/UnitTests/CMakeLists.txt
+++ b/SingleSource/UnitTests/CMakeLists.txt
@@ -36,7 +36,6 @@
   list(REMOVE_ITEM Source AtomicOps.c)
   list(REMOVE_ITEM Source initp1.cpp)
 endif()
-list(APPEND LDFLAGS -lstdc++)
 if(NOT ARCH STREQUAL "x86")
   list(REMOVE_ITEM Source
     ms_struct-bitfield.c
diff --git a/SingleSource/UnitTests/EH/CMakeLists.txt b/SingleSource/UnitTests/EH/CMakeLists.txt
index b616c17..630458a 100644
--- a/SingleSource/UnitTests/EH/CMakeLists.txt
+++ b/SingleSource/UnitTests/EH/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_singlesource()
diff --git a/SingleSource/UnitTests/Integer/CMakeLists.txt b/SingleSource/UnitTests/Integer/CMakeLists.txt
index e81d65e..9769528 100644
--- a/SingleSource/UnitTests/Integer/CMakeLists.txt
+++ b/SingleSource/UnitTests/Integer/CMakeLists.txt
@@ -1,3 +1,2 @@
 set(RUN_OPTIONS 31415926)
-list(APPEND LDFLAGS -lstdc++)
 llvm_singlesource()
diff --git a/SingleSource/UnitTests/ObjC++/CMakeLists.txt b/SingleSource/UnitTests/ObjC++/CMakeLists.txt
index 905af59..fb7dc73 100644
--- a/SingleSource/UnitTests/ObjC++/CMakeLists.txt
+++ b/SingleSource/UnitTests/ObjC++/CMakeLists.txt
@@ -1,3 +1,3 @@
-list(APPEND LDFLAGS -lstdc++ -lobjc -framework Foundation)
+list(APPEND LDFLAGS -lobjc -framework Foundation)
 file(GLOB Source *.mm)
 llvm_singlesource()
diff --git a/SingleSource/UnitTests/SetjmpLongjmp/C++/CMakeLists.txt b/SingleSource/UnitTests/SetjmpLongjmp/C++/CMakeLists.txt
index b616c17..630458a 100644
--- a/SingleSource/UnitTests/SetjmpLongjmp/C++/CMakeLists.txt
+++ b/SingleSource/UnitTests/SetjmpLongjmp/C++/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_singlesource()
diff --git a/SingleSource/UnitTests/SignlessTypes/CMakeLists.txt b/SingleSource/UnitTests/SignlessTypes/CMakeLists.txt
index 03da227..3bc4c1d 100644
--- a/SingleSource/UnitTests/SignlessTypes/CMakeLists.txt
+++ b/SingleSource/UnitTests/SignlessTypes/CMakeLists.txt
@@ -1,5 +1,4 @@
 add_subdirectory(Large)
 
 set(RUN_OPTIONS 31415926)
-list(APPEND LDFLAGS -lstdc++)
 llvm_singlesource()
diff --git a/SingleSource/UnitTests/SignlessTypes/Large/CMakeLists.txt b/SingleSource/UnitTests/SignlessTypes/Large/CMakeLists.txt
index 7af3149..a08ae23 100644
--- a/SingleSource/UnitTests/SignlessTypes/Large/CMakeLists.txt
+++ b/SingleSource/UnitTests/SignlessTypes/Large/CMakeLists.txt
@@ -1,4 +1,3 @@
 set(RUN_OPTIONS 31415926)
-list(APPEND LDFLAGS -lstdc++)
 set(HASH_PROGRAM_OUTPUT 1)
 llvm_singlesource()
diff --git a/SingleSource/UnitTests/Vectorizer/CMakeLists.txt b/SingleSource/UnitTests/Vectorizer/CMakeLists.txt
index b616c17..630458a 100644
--- a/SingleSource/UnitTests/Vectorizer/CMakeLists.txt
+++ b/SingleSource/UnitTests/Vectorizer/CMakeLists.txt
@@ -1,2 +1 @@
-list(APPEND LDFLAGS -lstdc++)
 llvm_singlesource()