From b33969598aaa5ad59ed38f9fc8a17be2f57c1b9e Mon Sep 17 00:00:00 2001 From: Martin Aumüller Date: Wed, 25 Nov 2020 17:05:50 +0100 Subject: intel-tbb: patch for arm64 on macOS (#20039) * intel-tbb: patch for arm64 on macOS as submitted upstream and used in homebrew * intel-tbb: check patchable versions * intel-tbb: avoid patch breakage when 2021.1 is released 2021.1-beta05 would be considered newer than 2021.1 --- .../builtin/packages/intel-tbb/macos-arm64.patch | 32 ++++++++++++++++++++++ .../repos/builtin/packages/intel-tbb/package.py | 10 +++++-- 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 var/spack/repos/builtin/packages/intel-tbb/macos-arm64.patch diff --git a/var/spack/repos/builtin/packages/intel-tbb/macos-arm64.patch b/var/spack/repos/builtin/packages/intel-tbb/macos-arm64.patch new file mode 100644 index 0000000000..7169abed38 --- /dev/null +++ b/var/spack/repos/builtin/packages/intel-tbb/macos-arm64.patch @@ -0,0 +1,32 @@ +From 86f6dcdc17a8f5ef2382faaef860cfa5243984fe Mon Sep 17 00:00:00 2001 +From: Yining Karl Li +Date: Fri, 3 Jul 2020 06:23:18 -0700 +Subject: [PATCH] Add detection of arm64 architecture for macos builds + +This commit adds detection of arm64 for macos builds on arm64 hardware. +The only change necessary is an additional case in the code where +macos.inc queries and detects the system architecture. +--- + build/macos.inc | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/build/macos.inc b/build/macos.inc +index dde93216f5e7a9337dd83757df1ec734241d044e..2bdcde7e3042390b871fc601a930b3648ccaa124 100644 +--- a/build/macos.inc ++++ b/build/macos.inc +@@ -36,11 +36,15 @@ ifndef arch + export arch:=ppc32 + endif + else ++ ifeq ($(shell /usr/sbin/sysctl -n hw.machine),arm64) ++ export arch:=arm64 ++ else + ifeq ($(shell /usr/sbin/sysctl -n hw.optional.x86_64 2>/dev/null),1) + export arch:=intel64 + else + export arch:=ia32 + endif ++ endif + endif + endif + diff --git a/var/spack/repos/builtin/packages/intel-tbb/package.py b/var/spack/repos/builtin/packages/intel-tbb/package.py index 857e190eba..f283549e44 100644 --- a/var/spack/repos/builtin/packages/intel-tbb/package.py +++ b/var/spack/repos/builtin/packages/intel-tbb/package.py @@ -103,15 +103,21 @@ class IntelTbb(Package): patch("gcc_generic-pedantic-4.4.patch", level=1, when='@:2019.0') # Patch cmakeConfig.cmake.in to find the libraries where we install them. - patch("tbb_cmakeConfig-2019.5.patch", level=0, when='@2019.5:') + patch("tbb_cmakeConfig-2019.5.patch", level=0, when='@2019.5:2021.0') patch("tbb_cmakeConfig.patch", level=0, when='@2017.7:2019.4') # Restore the debug targets. - patch("makefile-debug.patch", when="@2020:") + patch("makefile-debug.patch", when="@2020:2021.0") # Some very old systems don't support transactional memory. patch("disable-tm.patch", when='~tm') + # Add support for building on arm64 macOS, + # also included in hombrew and already available upstream: + # https://github.com/oneapi-src/oneTBB/pull/258 + # https://github.com/oneapi-src/oneTBB/commit/86f6dcdc17a8f5ef2382faaef860cfa5243984fe.patch?full_index=1 + patch("macos-arm64.patch", when="@:2021.0") + # Version and tar file names: # 2020.0 --> v2020.0.tar.gz starting with 2020 # 2017.1 --> 2017_U1.tar.gz starting with 2017 -- cgit v1.2.3-70-g09d2