diff options
author | Denis Davydov <davydden@gmail.com> | 2017-10-12 20:41:57 +0200 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2017-10-12 11:41:57 -0700 |
commit | 1b53e82348b94105fa1ee01409a27970831de0f7 (patch) | |
tree | 3ca84e58c1a734f7086b92e39640e4b68945ead6 /var | |
parent | 0dad5b3ee517692ddb0afb32cb0e031d3ec4d78d (diff) | |
download | spack-1b53e82348b94105fa1ee01409a27970831de0f7.tar.gz spack-1b53e82348b94105fa1ee01409a27970831de0f7.tar.bz2 spack-1b53e82348b94105fa1ee01409a27970831de0f7.tar.xz spack-1b53e82348b94105fa1ee01409a27970831de0f7.zip |
various fixes for macOS high sierra (#5647)
* various fixes for macOS high sierra
* add macOS_version() helper function
* flake8 fixes
* update oce and trilinos
* fix bison
Diffstat (limited to 'var')
6 files changed, 42 insertions, 4 deletions
diff --git a/var/spack/repos/builtin/packages/bison/package.py b/var/spack/repos/builtin/packages/bison/package.py index 868268d42b..67b25441af 100644 --- a/var/spack/repos/builtin/packages/bison/package.py +++ b/var/spack/repos/builtin/packages/bison/package.py @@ -23,6 +23,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +from spack.operating_systems.mac_os import macOS_version +import sys class Bison(AutotoolsPackage): @@ -40,4 +42,7 @@ class Bison(AutotoolsPackage): patch('pgi.patch', when='@3.0.4') + if sys.platform == 'darwin' and macOS_version() >= Version('10.13'): + patch('secure_snprintf.patch', level=0, when='@3.0.4') + build_directory = 'spack-build' diff --git a/var/spack/repos/builtin/packages/bison/secure_snprintf.patch b/var/spack/repos/builtin/packages/bison/secure_snprintf.patch new file mode 100644 index 0000000000..0dff749f2a --- /dev/null +++ b/var/spack/repos/builtin/packages/bison/secure_snprintf.patch @@ -0,0 +1,15 @@ +With format string strictness, High Sierra also enforces that %n isn't used +in dynamic format strings, but we should just disable its use on darwin in +general. + +--- lib/vasnprintf.c.orig 2017-06-22 15:19:15.000000000 -0700 ++++ lib/vasnprintf.c 2017-06-22 15:20:20.000000000 -0700 +@@ -4869,7 +4869,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + #endif + *fbp = dp->conversion; + #if USE_SNPRINTF +-# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) ++# if !defined(__APPLE__) && !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) + fbp[1] = '%'; + fbp[2] = 'n'; + fbp[3] = '\0'; diff --git a/var/spack/repos/builtin/packages/gcc/darwin/apfs.patch b/var/spack/repos/builtin/packages/gcc/darwin/apfs.patch new file mode 100644 index 0000000000..d1f9d56667 --- /dev/null +++ b/var/spack/repos/builtin/packages/gcc/darwin/apfs.patch @@ -0,0 +1,12 @@ +diff -uNr gcc-7.2.0.orig/libstdc++-v3/include/Makefile.in gcc-7.2.0/libstdc++-v3/include/Makefile.in +--- gcc-7.2.0.orig/libstdc++-v3/include/Makefile.in 2017-07-25 14:05:07.000000000 -0400 ++++ gcc-7.2.0/libstdc++-v3/include/Makefile.in 2017-09-02 12:22:08.000000000 -0400 +@@ -1764,6 +1764,8 @@ + @GLIBCXX_HOSTED_TRUE@install-data-local: install-headers + @GLIBCXX_HOSTED_FALSE@install-data-local: install-freestanding-headers + ++.NOTPARALLEL: install-headers ++ + # This is a subset of the full install-headers rule. We only need <ciso646>, + # <cstddef>, <cfloat>, <limits>, <climits>, <cstdint>, <cstdlib>, <new>, + # <typeinfo>, <exception>, <initializer_list>, <cstdalign>, <cstdarg>, diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index d690e63683..f5a84873a0 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -23,6 +23,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +from spack.operating_systems.mac_os import macOS_version from llnl.util import tty import glob @@ -148,6 +149,10 @@ class Gcc(AutotoolsPackage): conflicts('languages=jit', when='@:4') if sys.platform == 'darwin': + # Fix parallel build on APFS filesystem + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797 + if macOS_version() >= Version('10.13'): + patch('darwin/apfs.patch', when='@7.2.0') patch('darwin/gcc-7.1.0-headerpad.patch', when='@5:') patch('darwin/gcc-6.1.0-jit.patch', when='@5:') patch('darwin/gcc-4.9.patch1', when='@4.9.0:4.9.3') diff --git a/var/spack/repos/builtin/packages/oce/package.py b/var/spack/repos/builtin/packages/oce/package.py index b6e016361e..15bc9ab39e 100644 --- a/var/spack/repos/builtin/packages/oce/package.py +++ b/var/spack/repos/builtin/packages/oce/package.py @@ -23,6 +23,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +from spack.operating_systems.mac_os import macOS_version import platform @@ -61,7 +62,7 @@ class Oce(Package): # fix build with Xcode 8 "previous definition of CLOCK_REALTIME" # reported 27 Sep 2016 https://github.com/tpaviot/oce/issues/643 if (platform.system() == "Darwin") and ( - '.'.join(platform.mac_ver()[0].split('.')[:2]) == '10.12'): + macOS_version() == Version('10.12')): patch('sierra.patch', when='@0.17.2:0.18.0') def install(self, spec, prefix): @@ -91,7 +92,7 @@ class Oce(Package): '-DOCE_OSX_USE_COCOA:BOOL=ON', ]) - if '.'.join(platform.mac_ver()[0].split('.')[:2]) == '10.12': + if macOS_version() >= Version('10.12'): # use @rpath on Sierra due to limit of dynamic loader options.append('-DCMAKE_MACOSX_RPATH=ON') else: diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index 375309207f..784253158f 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -23,9 +23,9 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +from spack.operating_systems.mac_os import macOS_version import os import sys -import platform # Trilinos is complicated to build, as an inspiration a couple of links to # other repositories which build it: @@ -586,7 +586,7 @@ class Trilinos(CMakePackage): '-DTrilinos_ENABLE_FEI=OFF' ]) - if '.'.join(platform.mac_ver()[0].split('.')[:2]) == '10.12': + if macOS_version() >= Version('10.12'): # use @rpath on Sierra due to limit of dynamic loader options.append('-DCMAKE_MACOSX_RPATH=ON') else: |