sys-devel/llvm: Backport upstream Sphinx race fix to 3.9, #606858
authorMichał Górny <mgorny@gentoo.org>
Mon, 23 Jan 2017 08:28:47 +0000 (09:28 +0100)
committerMichał Górny <mgorny@gentoo.org>
Mon, 23 Jan 2017 08:38:46 +0000 (09:38 +0100)
It seems that we have only applied the patch fixing race condition
between LLVM Sphinx targets and not between clang's. To fix that, just
switch to the upstream patch that fixes both at the root.

sys-devel/llvm/files/3.8.1/0004-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch [moved from sys-devel/llvm/files/3.9.1/0004-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch with 100% similarity]
sys-devel/llvm/files/3.9.1/0004-cmake-Use-separate-doctrees-to-prevent-races-between.patch [new file with mode: 0644]
sys-devel/llvm/llvm-3.7.1-r3.ebuild
sys-devel/llvm/llvm-3.8.1-r2.ebuild
sys-devel/llvm/llvm-3.8.1.ebuild
sys-devel/llvm/llvm-3.9.0-r1.ebuild
sys-devel/llvm/llvm-3.9.1-r1.ebuild
sys-devel/llvm/llvm-3.9.1.ebuild

diff --git a/sys-devel/llvm/files/3.9.1/0004-cmake-Use-separate-doctrees-to-prevent-races-between.patch b/sys-devel/llvm/files/3.9.1/0004-cmake-Use-separate-doctrees-to-prevent-races-between.patch
new file mode 100644 (file)
index 0000000..1e01e64
--- /dev/null
@@ -0,0 +1,35 @@
+From 40960f63616f62c8ac52eeeddf68bdb441b8be3e Mon Sep 17 00:00:00 2001
+From: Michal Gorny <mgorny@gentoo.org>
+Date: Tue, 4 Oct 2016 06:09:14 +0000
+Subject: [PATCH] [cmake] Use separate doctrees to prevent races between Sphinx
+ instances
+
+Use separate doctrees between different Sphinx builders in order to
+prevent race condition issues due to multiple Sphinx instances accessing
+the same doctree cache in parallel.
+
+Bug: https://llvm.org/bugs/show_bug.cgi?id=23781
+
+Differential Revision: https://reviews.llvm.org/D23755
+
+git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283188 91177308-0d34-0410-b5e6-96231b3b80d8
+---
+ cmake/modules/AddSphinxTarget.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
+index a968555aa06..ca9f4c38ffd 100644
+--- a/cmake/modules/AddSphinxTarget.cmake
++++ b/cmake/modules/AddSphinxTarget.cmake
+@@ -6,7 +6,7 @@
+ # ``project`` should be the project name
+ function (add_sphinx_target builder project)
+   set(SPHINX_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/${builder}")
+-  set(SPHINX_DOC_TREE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees")
++  set(SPHINX_DOC_TREE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees-${builder}")
+   set(SPHINX_TARGET_NAME docs-${project}-${builder})
+   if (SPHINX_WARNINGS_AS_ERRORS)
+-- 
+2.11.0
+
index b1e9ceb1ddc48d36841fb8de5bb17b68e80857c5..edebcba3c61eb7beeaf18362fb1d47d08488d4cb 100644 (file)
@@ -167,7 +167,7 @@ src_prepare() {
 
        # Prevent race conditions with parallel Sphinx runs
        # https://llvm.org/bugs/show_bug.cgi?id=23781
-       eapply "${FILESDIR}"/3.9.1/0004-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch
+       eapply "${FILESDIR}"/3.8.1/0004-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch
 
        # Prevent installing libgtest
        # https://llvm.org/bugs/show_bug.cgi?id=18341
index 5ba7822d0e65ef9210f882634c52a341c6861e41..fd640fc15259a5c1051e5ce6b35560b3bfc9732c 100644 (file)
@@ -167,7 +167,7 @@ src_prepare() {
 
        # Prevent race conditions with parallel Sphinx runs
        # https://llvm.org/bugs/show_bug.cgi?id=23781
-       eapply "${FILESDIR}"/3.9.1/0004-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch
+       eapply "${FILESDIR}"/3.8.1/0004-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch
 
        # Prevent installing libgtest
        # https://llvm.org/bugs/show_bug.cgi?id=18341
index dcc83531c0d2e643a4be00772b3c393d54efadac..86a8fe9e685a0cfb2406f7eb038854b71e6ee2bd 100644 (file)
@@ -168,7 +168,7 @@ src_prepare() {
 
        # Prevent race conditions with parallel Sphinx runs
        # https://llvm.org/bugs/show_bug.cgi?id=23781
-       eapply "${FILESDIR}"/3.9.1/0004-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch
+       eapply "${FILESDIR}"/3.8.1/0004-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch
 
        # Prevent installing libgtest
        # https://llvm.org/bugs/show_bug.cgi?id=18341
index 814931bd5b3b2c9ec76c4f7003233336a793cc69..f33c557a99af0d7f30769d6b15d9fe598d637d7e 100644 (file)
@@ -178,7 +178,7 @@ src_prepare() {
 
        # Prevent race conditions with parallel Sphinx runs
        # https://llvm.org/bugs/show_bug.cgi?id=23781
-       eapply "${FILESDIR}"/3.9.1/0004-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch
+       eapply "${FILESDIR}"/3.9.1/0004-cmake-Use-separate-doctrees-to-prevent-races-between.patch
 
        # Allow custom cmake build types (like 'Gentoo')
        eapply "${FILESDIR}"/3.9.1/0006-cmake-Remove-the-CMAKE_BUILD_TYPE-assertion.patch
index 20bee28c2882184bd16508efed161416bd71d5cb..5bae5d3b965f74fc450aa0879d54f884f359640e 100644 (file)
@@ -178,7 +178,7 @@ src_prepare() {
 
        # Prevent race conditions with parallel Sphinx runs
        # https://llvm.org/bugs/show_bug.cgi?id=23781
-       eapply "${FILESDIR}"/3.9.1/0004-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch
+       eapply "${FILESDIR}"/3.9.1/0004-cmake-Use-separate-doctrees-to-prevent-races-between.patch
 
        # Allow custom cmake build types (like 'Gentoo')
        eapply "${FILESDIR}"/3.9.1/0006-cmake-Remove-the-CMAKE_BUILD_TYPE-assertion.patch
index 6fbfcd8817205fe62d9234ffaae559cce5457918..c24c19f7b5f0c6bbc74c94ae2ebb3a5da4d3948c 100644 (file)
@@ -178,7 +178,7 @@ src_prepare() {
 
        # Prevent race conditions with parallel Sphinx runs
        # https://llvm.org/bugs/show_bug.cgi?id=23781
-       eapply "${FILESDIR}"/3.9.1/0004-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch
+       eapply "${FILESDIR}"/3.9.1/0004-cmake-Use-separate-doctrees-to-prevent-races-between.patch
 
        # Allow custom cmake build types (like 'Gentoo')
        eapply "${FILESDIR}"/3.9.1/0006-cmake-Remove-the-CMAKE_BUILD_TYPE-assertion.patch