boost: fix the bjam build for Cray (#10295)

Fixes issues #9613 and #3209.

Remove the spack wrapper directories from PATH for the bootstrap step.
This was breaking the build for Cray (and other cross-compile) because
bjam was built for the BE and died on SIGILL on the FE.

This only affects building bjam.  The boost libraries are still built
the normal spack way with the spack wrappers.
This commit is contained in:
Mark W. Krentel 2019-01-10 18:34:05 -06:00 committed by Peter Scheibel
parent 7e8b17b177
commit 08c4b9d47a
2 changed files with 36 additions and 0 deletions

View file

@ -0,0 +1,33 @@
Remove the spack wrapper directories from PATH for the bootstrap step.
This was breaking the build for Cray (and other cross-compile) because
bjam was built for the BE and died on SIGILL on the FE. See issue
#9613.
This only affects building bjam. The boost libraries are still built
the normal spack way with the spack wrappers.
diff -Naurb boost_1_66_0.orig/bootstrap.sh boost_1_66_0/bootstrap.sh
--- boost_1_66_0.orig/bootstrap.sh 2017-12-13 17:56:35.000000000 -0600
+++ boost_1_66_0/bootstrap.sh 2019-01-09 13:51:56.407553214 -0600
@@ -7,6 +7,20 @@
# boostinspect:notab - Tabs are required for the Makefile.
+NEWPATH=
+OLDIFS="$IFS"
+IFS=:
+
+for dir in $PATH ; do
+ case "x$dir" in
+ *lib*spack*env* ) ;;
+ * ) NEWPATH="${NEWPATH}:${dir}" ;;
+ esac
+done
+
+IFS="$OLDIFS"
+PATH="$NEWPATH"
+
BJAM=""
TOOLSET=""
BJAM_CONFIG=""

View file

@ -156,6 +156,9 @@ class Boost(Package):
patch('boost_1.63.0_pgi.patch', when='@1.63.0%pgi')
patch('boost_1.63.0_pgi_17.4_workaround.patch', when='@1.63.0%pgi@17.4')
# Fix the bootstrap/bjam build for Cray
patch('bootstrap-path.patch', when='@1.39.0: platform=cray')
def url_for_version(self, version):
if version >= Version('1.63.0'):
url = "https://dl.bintray.com/boostorg/release/{0}/source/boost_{1}.tar.bz2"