diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake index a0a7995d54d4..79f4fc9a05a5 100644 --- a/cmake/modules/HandleLLVMOptions.cmake +++ b/cmake/modules/HandleLLVMOptions.cmake @@ -102,9 +102,12 @@ endif() # Pass -Wl,-z,defs. This makes sure all symbols are defined. Otherwise a DSO # build might work on ELF but fail on MachO/COFF. -if(NOT (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR WIN32 OR CYGWIN OR - ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR - ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") AND +if(NOT (${TARGET_TRIPLE} MATCHES "darwin" OR + ${TARGET_TRIPLE} MATCHES "windows" OR + ${TARGET_TRIPLE} MATCHES "mingw" OR + ${TARGET_TRIPLE} MATCHES "freebsd" OR + ${TARGET_TRIPLE} MATCHES "netbsd" OR + ${TARGET_TRIPLE} MATCHES "openbsd") AND NOT LLVM_USE_SANITIZER) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,defs") endif() diff --git a/tools/dsymutil/DwarfLinker.cpp b/tools/dsymutil/DwarfLinker.cpp index bea30ded591f..73bd66ee42e3 100644 --- a/tools/dsymutil/DwarfLinker.cpp +++ b/tools/dsymutil/DwarfLinker.cpp @@ -1645,7 +1645,7 @@ PointerIntPair DeclContextTree::getChildDeclContext( if (!ResolvedPath.empty()) { FileRef = ResolvedPath; } else { -#ifdef HAVE_REALPATH +#if defined(HAVE_REALPATH) && defined(PATH_MAX) char RealPath[PATH_MAX + 1]; RealPath[PATH_MAX] = 0; if (::realpath(File.c_str(), RealPath))