summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartell Malone <martellmalone@gmail.com>2017-05-25 22:37:15 +0000
committerMartell Malone <martellmalone@gmail.com>2017-05-25 22:37:15 +0000
commit8fd2d37b0b0e28154c339f4e61dbf0c31ee31da8 (patch)
tree5550b8479123b5e852e708144954e060bbc55f92
parent9f8669461db2de41087a1d5b0563c32b9b8f0a92 (diff)
downloadbcm5719-llvm-8fd2d37b0b0e28154c339f4e61dbf0c31ee31da8.tar.gz
bcm5719-llvm-8fd2d37b0b0e28154c339f4e61dbf0c31ee31da8.zip
libcxx: fix bootstrapping for mingw-w64
Differential Revision: https://reviews.llvm.org/D33388 llvm-svn: 303928
-rw-r--r--libcxx/cmake/config-ix.cmake10
-rw-r--r--libcxx/include/__threading_support2
-rw-r--r--libcxx/lib/CMakeLists.txt7
3 files changed, 12 insertions, 7 deletions
diff --git a/libcxx/cmake/config-ix.cmake b/libcxx/cmake/config-ix.cmake
index c425c31ea09..6c99c4c03f1 100644
--- a/libcxx/cmake/config-ix.cmake
+++ b/libcxx/cmake/config-ix.cmake
@@ -41,7 +41,15 @@ if (LIBCXX_SUPPORTS_NODEFAULTLIBS_FLAG)
if (MINGW)
# Mingw64 requires quite a few "C" runtime libraries in order for basic
# programs to link successfully with -nodefaultlibs.
- list(APPEND CMAKE_REQUIRED_LIBRARIES mingw32 gcc gcc_eh mingwex msvcrt gcc)
+ if (LIBCXX_USE_COMPILER_RT)
+ set(MINGW_RUNTIME ${LIBCXXABI_BUILTINS_LIBRARY})
+ else ()
+ set(MINGW_RUNTIME gcc_s gcc)
+ endif()
+ set(MINGW_LIBRARIES mingw32 ${MINGW_RUNTIME} moldname mingwex msvcrt advapi32
+ shell32 user32 kernel32 mingw32 ${MINGW_RUNTIME}
+ moldname mingwex msvcrt)
+ list(APPEND CMAKE_REQUIRED_LIBRARIES ${MINGW_LIBRARIES})
endif()
if (CMAKE_C_FLAGS MATCHES -fsanitize OR CMAKE_CXX_FLAGS MATCHES -fsanitize)
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fno-sanitize=all")
diff --git a/libcxx/include/__threading_support b/libcxx/include/__threading_support
index 385fff32b35..afd7cb50649 100644
--- a/libcxx/include/__threading_support
+++ b/libcxx/include/__threading_support
@@ -27,7 +27,7 @@
# include <pthread.h>
# include <sched.h>
#elif defined(_LIBCPP_HAS_THREAD_API_WIN32)
-#include <Windows.h>
+#include <windows.h>
#include <process.h>
#include <fibersapi.h>
#include <__undef_min_max>
diff --git a/libcxx/lib/CMakeLists.txt b/libcxx/lib/CMakeLists.txt
index 6161838d0df..fe45f5ac0fe 100644
--- a/libcxx/lib/CMakeLists.txt
+++ b/libcxx/lib/CMakeLists.txt
@@ -242,14 +242,11 @@ endif()
if (LIBCXX_ENABLE_STATIC)
add_library(cxx_static STATIC $<TARGET_OBJECTS:cxx_objects>)
target_link_libraries(cxx_static ${LIBCXX_LIBRARIES})
- set(STATIC_OUTPUT_NAME "c++")
- if (WIN32)
- set(STATIC_OUTPUT_NAME "libc++")
- endif()
+ set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
set_target_properties(cxx_static
PROPERTIES
LINK_FLAGS "${LIBCXX_LINK_FLAGS}"
- OUTPUT_NAME "${STATIC_OUTPUT_NAME}"
+ OUTPUT_NAME "c++"
)
list(APPEND LIBCXX_TARGETS "cxx_static")
OpenPOWER on IntegriCloud