summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/clang/files/9999/0003-driver-Support-checking-for-rlimits-via-cmake-when-b.patch')
-rw-r--r--sys-devel/clang/files/9999/0003-driver-Support-checking-for-rlimits-via-cmake-when-b.patch84
1 files changed, 84 insertions, 0 deletions
diff --git a/sys-devel/clang/files/9999/0003-driver-Support-checking-for-rlimits-via-cmake-when-b.patch b/sys-devel/clang/files/9999/0003-driver-Support-checking-for-rlimits-via-cmake-when-b.patch
new file mode 100644
index 000000000000..16d63ec7f61c
--- /dev/null
+++ b/sys-devel/clang/files/9999/0003-driver-Support-checking-for-rlimits-via-cmake-when-b.patch
@@ -0,0 +1,84 @@
+From 27b65490c9764d18fa02274bbb4f75dd5a688506 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sun, 21 Aug 2016 23:30:17 +0200
+Subject: [PATCH 3/7] driver: Support checking for rlimits via cmake (when
+ bootstrapping)
+
+Add a cmake check for sys/resource.h and replace the __has_include()
+check with its result, in order to make it possible to use rlimits when
+building with compilers not supporting __has_include() -- i.e. when
+bootstrapping.
+
+Patch: https://reviews.llvm.org/D23744
+---
+ CMakeLists.txt | 3 +++
+ include/clang/Config/config.h.cmake | 3 +++
+ tools/driver/cc1_main.cpp | 8 +++-----
+ 3 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e6dde85..aee0d0a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -177,6 +177,9 @@ if (LIBXML2_FOUND)
+ set(CLANG_HAVE_LIBXML 1)
+ endif()
+
++include(CheckIncludeFile)
++check_include_file(sys/resource.h CLANG_HAVE_RLIMITS)
++
+ set(CLANG_RESOURCE_DIR "" CACHE STRING
+ "Relative directory from the Clang binary to its resource files.")
+
+diff --git a/include/clang/Config/config.h.cmake b/include/clang/Config/config.h.cmake
+index 9200ed9..9bf9ea5 100644
+--- a/include/clang/Config/config.h.cmake
++++ b/include/clang/Config/config.h.cmake
+@@ -35,6 +35,9 @@
+ /* Define if we have libxml2 */
+ #cmakedefine CLANG_HAVE_LIBXML ${CLANG_HAVE_LIBXML}
+
++/* Define if we have sys/resource.h (rlimits) */
++#cmakedefine CLANG_HAVE_RLIMITS ${CLANG_HAVE_RLIMITS}
++
+ /* The LLVM product name and version */
+ #define BACKEND_PACKAGE_STRING "${BACKEND_PACKAGE_STRING}"
+
+diff --git a/tools/driver/cc1_main.cpp b/tools/driver/cc1_main.cpp
+index b8cea41..45d44a0 100644
+--- a/tools/driver/cc1_main.cpp
++++ b/tools/driver/cc1_main.cpp
+@@ -15,6 +15,7 @@
+
+ #include "llvm/Option/Arg.h"
+ #include "clang/CodeGen/ObjectFilePCHContainerOperations.h"
++#include "clang/Config/config.h"
+ #include "clang/Driver/DriverDiagnostic.h"
+ #include "clang/Driver/Options.h"
+ #include "clang/Frontend/CompilerInstance.h"
+@@ -37,12 +38,9 @@
+ #include "llvm/Support/raw_ostream.h"
+ #include <cstdio>
+
+-#ifdef __has_include
+-#if __has_include(<sys/resource.h>)
+-#define HAVE_RLIMITS
++#ifdef CLANG_HAVE_RLIMITS
+ #include <sys/resource.h>
+ #endif
+-#endif
+
+ using namespace clang;
+ using namespace llvm::opt;
+@@ -73,7 +71,7 @@ void initializePollyPasses(llvm::PassRegistry &Registry);
+ }
+ #endif
+
+-#ifdef HAVE_RLIMITS
++#ifdef CLANG_HAVE_RLIMITS
+ // The amount of stack we think is "sufficient". If less than this much is
+ // available, we may be unable to reach our template instantiation depth
+ // limit and other similar limits.
+--
+2.9.3
+