mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 17:09:10 -07:00
sci-libs/tensorflow: build with -std=c++14 in 2.5.0-r1
TensorFlow is not yet compatible with the C++17 dialect. Allow it to build with gcc:11 by appending -std=c++14 to CXXFLAGS, prior to composing bazelrc. The flag doesn't encompass the building of the ruy library, so this is accompanied by a patch to include the <limits> header in the one place that ruy needs it. Filter out the -fvtable-verify=@(std|preinit) flag, if present. While ostensibly useful for hardening, it prevents TensorFlow from building successfully. Note that, while the pattern is in the form of an extglob, the accompanying shopt does _not_ need to be enabled. Have src_install localise "l", rather than "j", because the function in question never employs the latter. Closes: https://bugs.gentoo.org/787938 Signed-off-by: Kerin Millar <kfm@plushkava.net> Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
37
sci-libs/tensorflow/files/0008-patch-ruy-for-gcc-11.patch
Normal file
37
sci-libs/tensorflow/files/0008-patch-ruy-for-gcc-11.patch
Normal file
@@ -0,0 +1,37 @@
|
||||
diff --git a/third_party/ruy/commit-3c93cda.patch b/third_party/ruy/commit-3c93cda.patch
|
||||
new file mode 100644
|
||||
index 00000000000..e530a842717
|
||||
--- /dev/null
|
||||
+++ b/third_party/ruy/commit-3c93cda.patch
|
||||
@@ -0,0 +1,21 @@
|
||||
+From 3c93cda8211efa01128d48950f0d6ee5233c5b9b Mon Sep 17 00:00:00 2001
|
||||
+From: stha09 <51720730+stha09@users.noreply.github.com>
|
||||
+Date: Thu, 6 May 2021 18:31:30 +0200
|
||||
+Subject: [PATCH] IWYU: include limits for std::numeric_limits (#253)
|
||||
+
|
||||
+---
|
||||
+ ruy/block_map.cc | 1 +
|
||||
+ 1 file changed, 1 insertion(+)
|
||||
+
|
||||
+diff --git a/ruy/block_map.cc b/ruy/block_map.cc
|
||||
+index 6c01e52a02..e04e7aff4a 100644
|
||||
+--- a/ruy/block_map.cc
|
||||
++++ b/ruy/block_map.cc
|
||||
+@@ -17,6 +17,7 @@ limitations under the License.
|
||||
+
|
||||
+ #include <algorithm>
|
||||
+ #include <cstdint>
|
||||
++#include <limits>
|
||||
+
|
||||
+ #ifdef RUY_MAKEBLOCKMAP_DEBUG
|
||||
+ #include <cstdio>
|
||||
diff --git a/third_party/ruy/workspace.bzl b/third_party/ruy/workspace.bzl
|
||||
index 50769621770..7e91d640469 100644
|
||||
--- a/third_party/ruy/workspace.bzl
|
||||
+++ b/third_party/ruy/workspace.bzl
|
||||
@@ -12,4 +12,5 @@ def repo():
|
||||
"https://github.com/google/ruy/archive/54774a7a2cf85963777289193629d4bd42de4a59.zip",
|
||||
],
|
||||
build_file = "//third_party/ruy:BUILD",
|
||||
+ patch_file = "//third_party/ruy:commit-3c93cda.patch"
|
||||
)
|
||||
@@ -145,6 +145,9 @@ REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/0008-patch-ruy-for-gcc-11.patch"
|
||||
)
|
||||
DOCS=( AUTHORS CONTRIBUTING.md ISSUE_TEMPLATE.md README.md RELEASE.md )
|
||||
CHECKREQS_MEMORY="5G"
|
||||
CHECKREQS_DISK_BUILD="10G"
|
||||
@@ -187,6 +190,8 @@ src_prepare() {
|
||||
export JAVA_HOME=$(java-config --jre-home) # so keepwork works
|
||||
|
||||
append-flags $(get-cpu-flags)
|
||||
append-cxxflags -std=c++14 # bug 787938
|
||||
filter-flags '-fvtable-verify=@(std|preinit)'
|
||||
bazel_setup_bazelrc
|
||||
|
||||
eapply "${WORKDIR}"/patches/*.patch
|
||||
@@ -356,7 +361,7 @@ src_compile() {
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local i j
|
||||
local i l
|
||||
export JAVA_HOME=$(java-config --jre-home) # so keepwork works
|
||||
export KERAS_HOME="${T}/.keras" # otherwise sandbox violation writing ~/.keras
|
||||
|
||||
|
||||
Reference in New Issue
Block a user