[PATCH] D28439: [libFuzzer] Specify the CRT considered (MT or MD) to the linker.
Marcos Pividori via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 12 14:09:33 PST 2017
mpividori retitled this revision from "[libFuzzer] Always use MD for tests." to "[libFuzzer] Specify the CRT considered (MT or MD) to the linker.".
mpividori removed rL LLVM as the repository for this revision.
mpividori updated this revision to Diff 84176.
https://reviews.llvm.org/D28439
Files:
lib/Fuzzer/test/CMakeLists.txt
Index: lib/Fuzzer/test/CMakeLists.txt
===================================================================
--- lib/Fuzzer/test/CMakeLists.txt
+++ lib/Fuzzer/test/CMakeLists.txt
@@ -28,6 +28,13 @@
set(CMAKE_CXX_FLAGS "${LIBFUZZER_FLAGS_BASE} -fsanitize-coverage=trace-pc-guard,indirect-calls,trace-cmp,trace-div,trace-gep -gline-tables-only")
if(MSVC)
+ # For tests use the CRT specified for release build
+ # (asan doesn't support MDd and MTd)
+ if ("${LLVM_USE_CRT_RELEASE}" STREQUAL "")
+ set(CRT_FLAG " /MD ")
+ else()
+ set(CRT_FLAG " /${LLVM_USE_CRT_RELEASE} ")
+ endif()
# In order to use the sanitizers in Windows, we need to link against many
# runtime libraries which will depend on the target being created
# (executable or dll) and the c runtime library used (MT/MD).
@@ -38,8 +45,8 @@
# the rules for linking executables and shared libraries, using the compiler
# instead of link.exe. Clang will consider the sanitizer flags, and
# automatically provide the required libraries to the liker.
- set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <FLAGS> ${CMAKE_CXX_FLAGS} <OBJECTS> -o <TARGET> <LINK_LIBRARIES> /link <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS>")
- set(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_CXX_COMPILER> ${CMAKE_CXX_FLAGS} /LD <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG> <TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES> /link <LINK_FLAGS>")
+ set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <FLAGS> ${CMAKE_CXX_FLAGS} ${CRT_FLAG} <OBJECTS> -o <TARGET> <LINK_LIBRARIES> /link <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS>")
+ set(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_CXX_COMPILER> ${CMAKE_CXX_FLAGS} ${CRT_FLAG} /LD <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG> <TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES> /link <LINK_FLAGS>")
endif()
# add_libfuzzer_test(<name>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28439.84176.patch
Type: text/x-patch
Size: 1973 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170112/7124ff62/attachment.bin>
More information about the llvm-commits
mailing list