summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarsh Bhatia <bhatia4@llnl.gov>2020-12-22 14:50:03 -0800
committerGitHub <noreply@github.com>2020-12-22 16:50:03 -0600
commita93f6ca619954e228767dc15e4b6bfd017845c0e (patch)
treec83ab938a2602bf53c91838a3ca4f26f72b85bb6
parent5f2a821183609234351223645bd15e23ec80435d (diff)
downloadspack-a93f6ca619954e228767dc15e4b6bfd017845c0e.tar.gz
spack-a93f6ca619954e228767dc15e4b6bfd017845c0e.tar.bz2
spack-a93f6ca619954e228767dc15e4b6bfd017845c0e.tar.xz
spack-a93f6ca619954e228767dc15e4b6bfd017845c0e.zip
Add patch to fix bazel build on power9 (#20512)
* fix bazel on power9 * small fix in tensorflow package * removed import not needed anymore
-rw-r--r--var/spack/repos/builtin/packages/bazel/linux_ppc-0.29.1.patch61
-rw-r--r--var/spack/repos/builtin/packages/bazel/package.py10
2 files changed, 71 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/bazel/linux_ppc-0.29.1.patch b/var/spack/repos/builtin/packages/bazel/linux_ppc-0.29.1.patch
new file mode 100644
index 0000000000..c3ed9ab254
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bazel/linux_ppc-0.29.1.patch
@@ -0,0 +1,61 @@
+From 9c9d27561780bc56d9f0867e325c7421a94ee1cb Mon Sep 17 00:00:00 2001
+From: Harsh Bhatia <bhatia4@llnl.gov>
+Date: Tue, 15 Dec 2020 15:56:10 -0800
+Subject: [PATCH] https://github.com/bazelbuild/bazel/commit/ab62a6e097590dac5ec946ad7a796ea0e8593ae0
+
+---
+ src/conditions/BUILD | 6 ++++++
+ third_party/BUILD | 8 ++++++--
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/src/conditions/BUILD b/src/conditions/BUILD
+index 2b28e28057..faa41a439d 100644
+--- a/src/conditions/BUILD
++++ b/src/conditions/BUILD
+@@ -10,6 +10,12 @@ filegroup(
+ visibility = ["//src:__pkg__"],
+ )
+
++config_setting(
++ name = "linux_ppc",
++ values = {"cpu": "ppc"},
++ visibility = ["//visibility:public"],
++)
++
+ config_setting(
+ name = "linux_x86_64",
+ values = {"cpu": "k8"},
+diff --git a/third_party/BUILD b/third_party/BUILD
+index 159006d741..4fcae54c00 100644
+--- a/third_party/BUILD
++++ b/third_party/BUILD
+@@ -523,12 +523,13 @@ UNNECESSARY_DYNAMIC_LIBRARIES = select({
+ "//src/conditions:darwin": "*.so *.dll",
+ "//src/conditions:darwin_x86_64": "*.so *.dll",
+ "//src/conditions:linux_x86_64": "*.jnilib *.dll",
++ "//src/conditions:linux_ppc": "*.so *.jnilib *.dll",
+ # The .so file is an x86 one, so we can just remove it if the CPU is not x86
+ "//src/conditions:arm": "*.so *.jnilib *.dll",
+ "//src/conditions:linux_aarch64": "*.so *.jnilib *.dll",
+ # Play it safe -- better have a big binary than a slow binary
+ # zip -d does require an argument. Supply something bogus.
+- "//conditions:default": "*.bogusextension",
++ "//conditions:default": "",
+ })
+
+ # Remove native libraries that are for a platform different from the one we are
+@@ -537,7 +538,10 @@ genrule(
+ name = "filter_netty_dynamic_libs",
+ srcs = ["netty_tcnative/netty-tcnative-boringssl-static-2.0.24.Final.jar"],
+ outs = ["netty_tcnative/netty-tcnative-filtered.jar"],
+- cmd = "cp $< $@ && zip -qd $@ " + UNNECESSARY_DYNAMIC_LIBRARIES,
++ cmd = "cp $< $@ && " +
++ # End successfully if there is nothing to be deleted from the archive
++ "if [ -n '" + UNNECESSARY_DYNAMIC_LIBRARIES + "' ]; then " +
++ "zip -qd $@ " + UNNECESSARY_DYNAMIC_LIBRARIES + "; fi",
+ )
+
+ java_import(
+--
+2.21.0 (Apple Git-122.2)
+
diff --git a/var/spack/repos/builtin/packages/bazel/package.py b/var/spack/repos/builtin/packages/bazel/package.py
index 2ec348240e..6c1380132b 100644
--- a/var/spack/repos/builtin/packages/bazel/package.py
+++ b/var/spack/repos/builtin/packages/bazel/package.py
@@ -108,6 +108,11 @@ class Bazel(Package):
depends_on('python', type=('build', 'run'))
depends_on('zip', when='platform=linux', type=('build', 'run'))
+ # make work on power9 (2x commits)
+ # https://github.com/bazelbuild/bazel/commit/5cff4f1edf8b95bf0612791632255852332f72b5
+ # https://github.com/bazelbuild/bazel/commit/ab62a6e097590dac5ec946ad7a796ea0e8593ae0
+ patch('linux_ppc-0.29.1.patch', when='@0.29.1')
+
# Pass Spack environment variables to the build
patch('bazelruleclassprovider-0.25.patch', when='@0.25:')
patch('bazelruleclassprovider-0.14.patch', when='@0.14:0.24')
@@ -163,6 +168,11 @@ class Bazel(Package):
return url.format(version)
def setup_build_environment(self, env):
+ # fix the broken linking (on power9)
+ # https://github.com/bazelbuild/bazel/issues/10327
+ env.set('BAZEL_LINKOPTS', '')
+ env.set('BAZEL_LINKLIBS', '-lstdc++')
+
env.set('EXTRA_BAZEL_ARGS',
# Spack's logs don't handle colored output well
'--color=no --host_javabase=@local_jdk//:jdk'