Merge branch '7' of salsa.debian.org:pkg-llvm-team/llvm-toolchain into 7

This commit is contained in:
Sylvestre Ledru 2018-12-27 00:05:21 +01:00
commit 8de8f856be
3 changed files with 0 additions and 81 deletions

View File

@ -1,35 +0,0 @@
Index: llvm-toolchain-7-7/polly/CMakeLists.txt
===================================================================
--- llvm-toolchain-7-7.orig/polly/CMakeLists.txt
+++ llvm-toolchain-7-7/polly/CMakeLists.txt
@@ -91,6 +91,8 @@ else ()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti")
endif ()
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
+
# Add path for custom modules
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${POLLY_SOURCE_DIR}/cmake")
Index: llvm-toolchain-7-7/polly/lib/External/CMakeLists.txt
===================================================================
--- llvm-toolchain-7-7.orig/polly/lib/External/CMakeLists.txt
+++ llvm-toolchain-7-7/polly/lib/External/CMakeLists.txt
@@ -1,3 +1,6 @@
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
+
# External: Integer Set Library
if (POLLY_BUNDLED_ISL)
set(ISL_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/isl")
Index: llvm-toolchain-7-7/lib/Support/CMakeLists.txt
===================================================================
--- llvm-toolchain-7-7.orig/lib/Support/CMakeLists.txt
+++ llvm-toolchain-7-7/lib/Support/CMakeLists.txt
@@ -1,4 +1,6 @@
set(system_libs)
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+
if ( LLVM_ENABLE_ZLIB AND HAVE_LIBZ )
set(system_libs ${system_libs} ${ZLIB_LIBRARIES})
endif()

View File

View File

@ -1,46 +0,0 @@
libcxx atomic tests for old i386 fail with wrong Atomic inline width.
cmpxchg8b instruction is required for 8 byte atomics that clang was
assuming.
Too bad _GCC_ATOMIC_LLONG_LOCK_FREE 2 isn't supported even with this change
because llvm doesn't support unaligned atomic compare and exchange operation.
Fallback calls to libatomic.so should handle long long lock free but clang
can't tell program if libatomic is always lock free.
Related bug: https://llvm.org/bugs/show_bug.cgi?id=19355
Index: llvm-toolchain-snapshot_6.0~svn309319/clang/lib/Basic/Targets/X86.cpp
===================================================================
--- llvm-toolchain-snapshot_6.0~svn309319.orig/clang/lib/Basic/Targets/X86.cpp
+++ llvm-toolchain-snapshot_6.0~svn309319/clang/lib/Basic/Targets/X86.cpp
@@ -1133,7 +1133,7 @@ void X86TargetInfo::getTargetDefines(con
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
}
- if (CPU >= CK_i586)
+ if (isCmpXChg8Supported())
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
if (HasFloat128)
Index: llvm-toolchain-snapshot_6.0~svn309319/clang/lib/Basic/Targets/X86.h
===================================================================
--- llvm-toolchain-snapshot_6.0~svn309319.orig/clang/lib/Basic/Targets/X86.h
+++ llvm-toolchain-snapshot_6.0~svn309319/clang/lib/Basic/Targets/X86.h
@@ -281,6 +281,8 @@ class LLVM_LIBRARY_VISIBILITY X86TargetI
// acceptable.
// FIXME: This results in terrible diagnostics. Clang just says the CPU is
// invalid without explaining *why*.
+ if (!isCmpXChg8Supported())
+ MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 32;
switch (Kind) {
case CK_Generic:
// No processor selected!
@@ -548,8 +550,6 @@ public:
(1 << TargetInfo::LongDouble));
// x86-32 has atomics up to 8 bytes
- // FIXME: Check that we actually have cmpxchg8b before setting
- // MaxAtomicInlineWidth. (cmpxchg8b is an i586 instruction.)
MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64;
}