From f312872c2cfd6ab33581359e1be84d88cda4c6e4 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 9 Dec 2024 17:47:00 +0100 Subject: [PATCH 1/3] tbb_2022_0: init at 2022.0.0 --- pkgs/development/libraries/tbb/2022_0.nix | 67 +++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 68 insertions(+) create mode 100644 pkgs/development/libraries/tbb/2022_0.nix diff --git a/pkgs/development/libraries/tbb/2022_0.nix b/pkgs/development/libraries/tbb/2022_0.nix new file mode 100644 index 0000000000000..10d844516c9da --- /dev/null +++ b/pkgs/development/libraries/tbb/2022_0.nix @@ -0,0 +1,67 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, cmake +}: + +stdenv.mkDerivation rec { + pname = "tbb"; + version = "2022.0.0"; + + outputs = [ "out" "dev" ]; + + src = fetchFromGitHub { + owner = "oneapi-src"; + repo = "oneTBB"; + tag = "v${version}"; + hash = "sha256-XOlC1+rf65oEGKDba9N561NuFo1YJhn3Q1CTGtvkn7A="; + }; + + nativeBuildInputs = [ + cmake + ]; + + patches = [ + # Fix musl build from https://github.com/oneapi-src/oneTBB/pull/899 + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/oneapi-src/oneTBB/pull/899.patch"; + hash = "sha256-kU6RRX+sde0NrQMKlNtW3jXav6J4QiVIUmD50asmBPU="; + }) + ]; + + # Fix build with modern gcc + # In member function 'void std::__atomic_base<_IntTp>::store(__int_type, std::memory_order) [with _ITp = bool]', + NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isGNU [ "-Wno-error=array-bounds" "-Wno-error=stringop-overflow" ] ++ + # error: variable 'val' set but not used + lib.optionals stdenv.cc.isClang [ "-Wno-error=unused-but-set-variable" ] ++ + # Workaround for gcc-12 ICE when using -O3 + # https://gcc.gnu.org/PR108854 + lib.optionals (stdenv.cc.isGNU && stdenv.hostPlatform.isx86_32) [ "-O2" ]; + + # Fix undefined reference errors with version script under LLVM. + NIX_LDFLAGS = lib.optionalString (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") "--undefined-version"; + + # Disable failing test on musl + # test/conformance/conformance_resumable_tasks.cpp:37:24: error: ‘suspend’ is not a member of ‘tbb::v1::task’; did you mean ‘tbb::detail::r1::suspend’? + postPatch = lib.optionalString stdenv.hostPlatform.isMusl '' + substituteInPlace test/CMakeLists.txt \ + --replace-fail 'tbb_add_test(SUBDIR conformance NAME conformance_resumable_tasks DEPENDENCIES TBB::tbb)' "" + ''; + + meta = with lib; { + description = "Intel Thread Building Blocks C++ Library"; + homepage = "http://threadingbuildingblocks.org/"; + license = licenses.asl20; + longDescription = '' + Intel Threading Building Blocks offers a rich and complete approach to + expressing parallelism in a C++ program. It is a library that helps you + take advantage of multi-core processor performance without having to be a + threading expert. Intel TBB is not just a threads-replacement library. It + represents a higher-level, task-based parallelism that abstracts platform + details and threading mechanisms for scalability and performance. + ''; + platforms = platforms.unix; + maintainers = with maintainers; [ thoughtpolice tmarkus ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 30ebb0e1755db..897952d35989c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6975,6 +6975,7 @@ with pkgs; tbb_2020_3 = callPackage ../development/libraries/tbb/2020_3.nix { }; tbb_2021_5 = callPackage ../development/libraries/tbb/2021_5.nix { } ; tbb_2021_11 = callPackage ../development/libraries/tbb { }; + tbb_2022_0 = callPackage ../development/libraries/tbb/2022_0.nix { }; # many packages still fail with latest version tbb = tbb_2020_3; From 09b61573f1d5e96532a7acd9fbd85b27c2f77654 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 9 Dec 2024 17:47:33 +0100 Subject: [PATCH 2/3] openvino: return to default stdenv, upgrade to tbb_2022_0 --- pkgs/by-name/op/openvino/package.nix | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/op/openvino/package.nix b/pkgs/by-name/op/openvino/package.nix index 7641287ebfffa..dcbf5f65af0d8 100644 --- a/pkgs/by-name/op/openvino/package.nix +++ b/pkgs/by-name/op/openvino/package.nix @@ -1,5 +1,5 @@ { lib -, gcc12Stdenv +, stdenv , fetchFromGitHub , fetchurl , cudaSupport ? opencv.cudaSupport or false @@ -27,7 +27,7 @@ , protobuf , pugixml , snappy -, tbb_2021_5 +, tbb_2022_0 , cudaPackages }: @@ -36,8 +36,6 @@ let cmakeBool ; - stdenv = gcc12Stdenv; - # prevent scons from leaking in the default python version scons' = scons.override { inherit python3Packages; }; @@ -153,7 +151,7 @@ stdenv.mkDerivation rec { opencv.cxxdev pugixml snappy - tbb_2021_5 + tbb_2022_0 ] ++ lib.optionals cudaSupport [ cudaPackages.cuda_cudart ]; From 77e9ee746302f7783d54d01305c984fe216c1ced Mon Sep 17 00:00:00 2001 From: Yureka Date: Mon, 9 Dec 2024 18:02:31 +0100 Subject: [PATCH 3/3] tbb_2021_5: remove --- pkgs/development/libraries/tbb/2021_5.nix | 71 ------------------- .../libraries/tbb/gcc13-fixes-2021.5.0.patch | 13 ---- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 1 - 4 files changed, 1 insertion(+), 85 deletions(-) delete mode 100644 pkgs/development/libraries/tbb/2021_5.nix delete mode 100644 pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch diff --git a/pkgs/development/libraries/tbb/2021_5.nix b/pkgs/development/libraries/tbb/2021_5.nix deleted file mode 100644 index 90e7aa2a9f2f3..0000000000000 --- a/pkgs/development/libraries/tbb/2021_5.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, cmake -}: - -stdenv.mkDerivation rec { - pname = "tbb"; - version = "2021.5.0"; - - outputs = [ "out" "dev" ]; - - src = fetchFromGitHub { - owner = "oneapi-src"; - repo = "oneTBB"; - rev = "v${version}"; - hash = "sha256-TJ/oSSMvgtKuz7PVyIoFEbBW6EZz7t2wr/kP093HF/w="; - }; - - nativeBuildInputs = [ - cmake - ]; - - patches = [ - # port of https://github.com/oneapi-src/oneTBB/pull/1031 - ./gcc13-fixes-2021.5.0.patch - - (fetchpatch { - # Fix "field used uninitialized" on modern gcc versions (https://github.com/oneapi-src/oneTBB/pull/958) - url = "https://github.com/oneapi-src/oneTBB/commit/3003ec07740703e6aed12b028af20f4b0f16adae.patch"; - hash = "sha256-l4+9IxIEdRX/q8JyDY9CPKWzSLatpIVSiNjmIM7ilj0="; - }) - ]; - - # Disable failing test on musl - # test/conformance/conformance_resumable_tasks.cpp:37:24: error: ‘suspend’ is not a member of ‘tbb::v1::task’; did you mean ‘tbb::detail::r1::suspend’? - postPatch = lib.optionalString stdenv.hostPlatform.isMusl '' - substituteInPlace test/CMakeLists.txt \ - --replace-fail 'conformance_resumable_tasks' "" - ''; - - # Fix build with modern gcc - # In member function 'void std::__atomic_base<_IntTp>::store(__int_type, std::memory_order) [with _ITp = bool]', - NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isGNU [ "-Wno-error=array-bounds" "-Wno-error=stringop-overflow" "-Wno-address" ] ++ - # error: variable 'val' set but not used - lib.optionals stdenv.cc.isClang [ "-Wno-error=unused-but-set-variable" ] ++ - # Workaround for gcc-12 ICE when using -O3 - # https://gcc.gnu.org/PR108854 - lib.optionals (stdenv.cc.isGNU && stdenv.hostPlatform.isx86_32) [ "-O2" ]; - - # Fix undefined reference errors with version script under LLVM. - NIX_LDFLAGS = lib.optionalString (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") "--undefined-version"; - - - meta = with lib; { - description = "Intel Thread Building Blocks C++ Library"; - homepage = "http://threadingbuildingblocks.org/"; - license = licenses.asl20; - longDescription = '' - Intel Threading Building Blocks offers a rich and complete approach to - expressing parallelism in a C++ program. It is a library that helps you - take advantage of multi-core processor performance without having to be a - threading expert. Intel TBB is not just a threads-replacement library. It - represents a higher-level, task-based parallelism that abstracts platform - details and threading mechanisms for scalability and performance. - ''; - platforms = platforms.unix; - maintainers = with maintainers; [ thoughtpolice tmarkus ]; - }; -} diff --git a/pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch b/pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch deleted file mode 100644 index 28b5a0e695f70..0000000000000 --- a/pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/test/common/utils_assert.h b/test/common/utils_assert.h -index 33bc8ab4..a3d21baf 100644 ---- a/test/common/utils_assert.h -+++ b/test/common/utils_assert.h -@@ -20,6 +20,8 @@ - #include "config.h" - #include "utils_report.h" - -+#include -+ - #define REPORT_FATAL_ERROR REPORT - - namespace utils { diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index eec94d3f0505c..d2290b3c9ef19 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1259,6 +1259,7 @@ mapAliases { taplo-cli = taplo; # Added 2022-07-30 taplo-lsp = taplo; # Added 2022-07-30 taro = taproot-assets; # Added 2023-07-04 + tbb_2021_5 = throw "tbb_2021_5 has been removed from nixpkgs, as it broke with GCC 14"; tcl-fcgi = tclPackages.tcl-fcgi; # Added 2024-10-02 tclcurl = tclPackages.tclcurl; # Added 2024-10-02 tcllib = tclPackages.tcllib; # Added 2024-10-02 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 897952d35989c..1cc36f89b5536 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6973,7 +6973,6 @@ with pkgs; swi-prolog-gui = swi-prolog.override { withGui = true; }; tbb_2020_3 = callPackage ../development/libraries/tbb/2020_3.nix { }; - tbb_2021_5 = callPackage ../development/libraries/tbb/2021_5.nix { } ; tbb_2021_11 = callPackage ../development/libraries/tbb { }; tbb_2022_0 = callPackage ../development/libraries/tbb/2022_0.nix { }; # many packages still fail with latest version