diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers')
60 files changed, 460 insertions, 166 deletions
diff --git a/nixpkgs/pkgs/development/compilers/cairo/default.nix b/nixpkgs/pkgs/development/compilers/cairo/default.nix index 0e7283e52caa..51b6c641da94 100644 --- a/nixpkgs/pkgs/development/compilers/cairo/default.nix +++ b/nixpkgs/pkgs/development/compilers/cairo/default.nix @@ -6,21 +6,16 @@ rustPlatform.buildRustPackage rec { pname = "cairo"; - version = "2.4.0"; + version = "2.5.4"; src = fetchFromGitHub { owner = "starkware-libs"; repo = "cairo"; rev = "v${version}"; - hash = "sha256-5bCPklk9u21/9cZYisszK0Lo7is9+iFrQxve41Fy5hg="; + hash = "sha256-ctb5VingMczzHLyyEjKgFKNAZI3/fqzjFW/RQGDSsyQ="; }; - cargoPatches = [ - # Upstream Cargo.lock is not up-to-date. - # https://github.com/starkware-libs/cairo/issues/4530 - ./ensure-consistency-of-cargo-lock.patch - ]; - cargoHash = "sha256-YCW6nwmUXMiP65QHCH6k29672gIkuz+MCmTqI+qaOyA="; + cargoHash = "sha256-T21GuGQaX/VD907MEGp68bQPXrRK0it4o1nLEdHwTsE="; nativeCheckInputs = [ rustfmt diff --git a/nixpkgs/pkgs/development/compilers/cakelisp/default.nix b/nixpkgs/pkgs/development/compilers/cakelisp/default.nix index 52e486c4ee60..422611cf2b86 100644 --- a/nixpkgs/pkgs/development/compilers/cakelisp/default.nix +++ b/nixpkgs/pkgs/development/compilers/cakelisp/default.nix @@ -1,13 +1,14 @@ -{ lib, stdenv, fetchgit, gcc }: +{ lib, stdenv, fetchgit, fetchpatch, gcc, unstableGitUpdater }: stdenv.mkDerivation rec { pname = "cakelisp"; - version = "0.1.0"; + # using unstable as it's the only version that builds against gcc-13 + version = "0.3.0-unstable-2023-12-18"; src = fetchgit { url = "https://macoy.me/code/macoy/cakelisp"; - rev = "v${version}"; - sha256 = "sha256-r7Yg8+2U8qQTYRP3KFET7oBRCZHIZS6Y8TsfL1NR24g="; + rev = "866fa2806d3206cc9dd398f0e86640db5be42bd6"; + hash = "sha256-vwMZUNy+updwk69ahA/D9LhO68eV6wH0Prq+o/i1Q/A="; }; buildInputs = [ gcc ]; @@ -35,6 +36,10 @@ stdenv.mkDerivation rec { runHook postInstall ''; + passthru.updateScript = unstableGitUpdater { + url = "https://macoy.me/code/macoy/cakelisp"; + }; + meta = with lib; { description = "A performance-oriented Lisp-like language"; homepage = "https://macoy.me/code/macoy/cakelisp"; diff --git a/nixpkgs/pkgs/development/compilers/chez/default.nix b/nixpkgs/pkgs/development/compilers/chez/default.nix index fc7dfa78cefe..c0448a7e6d4f 100644 --- a/nixpkgs/pkgs/development/compilers/chez/default.nix +++ b/nixpkgs/pkgs/development/compilers/chez/default.nix @@ -1,15 +1,15 @@ { lib, stdenv, fetchurl , coreutils, cctools -, ncurses, libiconv, libX11, libuuid +, ncurses, libiconv, libX11, libuuid, testers }: stdenv.mkDerivation (finalAttrs: { pname = "chez-scheme"; - version = "9.6.4"; + version = "10.0.0"; src = fetchurl { url = "https://github.com/cisco/ChezScheme/releases/download/v${finalAttrs.version}/csv${finalAttrs.version}.tar.gz"; - hash = "sha256-9YJ2gvolnEeXX/4Hh4X7Vh5KXFT3ZDMe9mwyEyhDaF0="; + hash = "sha256-03GZASte0ZhcQGnWqH/xjl4fWi3yfkApkfr0XcTyIyw="; }; nativeBuildInputs = lib.optional stdenv.isDarwin cctools; @@ -28,18 +28,11 @@ stdenv.mkDerivation (finalAttrs: { ** NixOS or in any chroot build. */ patchPhase = '' - substituteInPlace ./configure \ - --replace "git submodule init && git submodule update || exit 1" "true" - - substituteInPlace ./workarea \ - --replace "/bin/ln" ln \ - --replace "/bin/cp" cp - substituteInPlace ./makefiles/installsh \ - --replace "/usr/bin/true" "${coreutils}/bin/true" + --replace-warn "/usr/bin/true" "${coreutils}/bin/true" substituteInPlace zlib/configure \ - --replace "/usr/bin/libtool" libtool + --replace-warn "/usr/bin/libtool" libtool ''; /* @@ -52,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: { ** for. */ configurePhase = '' - ./configure --threads --installprefix=$out --installman=$out/share/man + ./configure --as-is --threads --installprefix=$out --installman=$out/share/man ''; /* @@ -64,12 +57,18 @@ stdenv.mkDerivation (finalAttrs: { setupHook = ./setup-hook.sh; + passthru.tests = { + version = testers.testVersion { + package = finalAttrs.finalPackage; + }; + }; + meta = { description = "A powerful and incredibly fast R6RS Scheme compiler"; homepage = "https://cisco.github.io/ChezScheme/"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ thoughtpolice ]; platforms = lib.platforms.unix; - badPlatforms = [ "aarch64-linux" "aarch64-darwin" ]; + mainProgram = "scheme"; }; }) diff --git a/nixpkgs/pkgs/development/compilers/circt/default.nix b/nixpkgs/pkgs/development/compilers/circt/default.nix index bef2c568de13..6d4a0356482a 100644 --- a/nixpkgs/pkgs/development/compilers/circt/default.nix +++ b/nixpkgs/pkgs/development/compilers/circt/default.nix @@ -17,12 +17,12 @@ let in stdenv.mkDerivation rec { pname = "circt"; - version = "1.65.0"; + version = "1.66.0"; src = fetchFromGitHub { owner = "llvm"; repo = "circt"; rev = "firtool-${version}"; - sha256 = "sha256-RYQAnvU+yoHGrU9zVvrD1/O80ioHEq2Cvo/MIjI6uTo="; + sha256 = "sha256-7O2YUZq0GBS2xvsXg0v55XZXAzqsbHjeKNgqMbNRT8E="; fetchSubmodules = true; }; diff --git a/nixpkgs/pkgs/development/compilers/dart/sources.nix b/nixpkgs/pkgs/development/compilers/dart/sources.nix index 865a75bbff5f..5e19aba467fe 100644 --- a/nixpkgs/pkgs/development/compilers/dart/sources.nix +++ b/nixpkgs/pkgs/development/compilers/dart/sources.nix @@ -1,24 +1,24 @@ -let version = "3.2.6"; in +let version = "3.3.0"; in { fetchurl }: { versionUsed = version; "${version}-x86_64-darwin" = fetchurl { url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-x64-release.zip"; - sha256 = "05w5v6f302gwwpa3my8baz4spmdmqrimmc659wgki1h64ch1yrlp"; + sha256 = "1cwxvn7321444mkpcv1vix5bi2ianiadvrjib6z5irdj8pbwlkih"; }; "${version}-aarch64-darwin" = fetchurl { url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-arm64-release.zip"; - sha256 = "1dmd70jjpfi19rmlvj2hbggw92z03jm8irrwx6r0bk7r748cj11f"; + sha256 = "1clang815wwy6szwl1rkjzl9d6zard15d1c2p6i7xpvvk3rb6m5j"; }; "${version}-aarch64-linux" = fetchurl { url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-arm64-release.zip"; - sha256 = "1hs1mvk90qb0nijm8wcvv6xkd79z44i2bpcv2nh933lysdys664q"; + sha256 = "00mjnzld4zbk37x7g7428by3dwpkc7nhja4p6dlhl1xj2lb4qs0r"; }; "${version}-x86_64-linux" = fetchurl { url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-x64-release.zip"; - sha256 = "0j0xmyxdmzn4ii24j27yw6l3074ay4n2qjyzh967cpbg9yhr0cr5"; + sha256 = "1bdwdjjnfjrwcfg2iy76bh939kkgw25130if7fxl3jay0sj6pgry"; }; "${version}-i686-linux" = fetchurl { url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-ia32-release.zip"; - sha256 = "0ml9dvnd7f0rld3wfnnmv7arfs821zg8rqaq1c7zvqhkj3i0dwci"; + sha256 = "0r9ypqd5b0l31bklm9q3g1aw9i1qyfkxr9vdn5wwfkicvqjiffs2"; }; } diff --git a/nixpkgs/pkgs/development/compilers/ecl/default.nix b/nixpkgs/pkgs/development/compilers/ecl/default.nix index a9a7471275e5..a7611cba6168 100644 --- a/nixpkgs/pkgs/development/compilers/ecl/default.nix +++ b/nixpkgs/pkgs/development/compilers/ecl/default.nix @@ -65,6 +65,11 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; + # ECL’s ‘make check’ only works after install, making it a de-facto + # installCheck. + doInstallCheck = true; + installCheckTarget = "check"; + postInstall = '' sed -e 's/@[-a-zA-Z_]*@//g' -i $out/bin/ecl-config wrapProgram "$out/bin/ecl" --prefix PATH ':' "${ diff --git a/nixpkgs/pkgs/development/compilers/edk2/default.nix b/nixpkgs/pkgs/development/compilers/edk2/default.nix index 4cfe823e59d9..17151cf9f947 100644 --- a/nixpkgs/pkgs/development/compilers/edk2/default.nix +++ b/nixpkgs/pkgs/development/compilers/edk2/default.nix @@ -33,7 +33,7 @@ buildType = if stdenv.isDarwin then edk2 = stdenv.mkDerivation rec { pname = "edk2"; - version = "202311"; + version = "202402"; patches = [ # pass targetPrefix as an env var @@ -48,7 +48,7 @@ edk2 = stdenv.mkDerivation rec { repo = "edk2"; rev = "edk2-stable${edk2.version}"; fetchSubmodules = true; - hash = "sha256-gC/If8U9qo70rGvNl3ld/mmZszwY0w/5Ge/K21mhzYw="; + hash = "sha256-Nurm6QNKCyV6wvbj0ELdYAL7mbZ0yg/tTwnEJ+N18ng="; }; # We don't want EDK2 to keep track of OpenSSL, diff --git a/nixpkgs/pkgs/development/compilers/go/1.21.nix b/nixpkgs/pkgs/development/compilers/go/1.21.nix index 06391b1740a6..1debcd433b9b 100644 --- a/nixpkgs/pkgs/development/compilers/go/1.21.nix +++ b/nixpkgs/pkgs/development/compilers/go/1.21.nix @@ -46,11 +46,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "go"; - version = "1.21.6"; + version = "1.21.7"; src = fetchurl { url = "https://go.dev/dl/go${finalAttrs.version}.src.tar.gz"; - hash = "sha256-Ekkmpi5F942qu67bnAEdl2MxhqM8I4/8HiUyDAIEYkg="; + hash = "sha256-ABl6sg8zgTgyv/Yv2TzKHEKgjMaJoypmcspJWRlZv/Y="; }; strictDeps = true; diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix index 5ddecd1f47e9..a31d0422f52b 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix @@ -50,7 +50,7 @@ let # https://reviews.llvm.org/D51899 ./gnu-install-dirs.patch (substituteAll { - src = ../../clang-11-15-LLVMgold-path.patch; + src = ../../common/clang/clang-11-15-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/default.nix index 3e77e03b124b..10b8c00dd16a 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation { }) ./gnu-install-dirs.patch ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - ../../libcxx-0001-musl-hacks.patch + ../../common/libcxx/libcxx-0001-musl-hacks.patch ]; # Prevent errors like "error: 'foo' is unavailable: introduced in macOS yy.zz" diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/default.nix index 8a0a18f67822..6c8487a2eb99 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation { '' + lib.optionalString stdenv.isDarwin '' export TRIPLE=x86_64-apple-darwin '' + lib.optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -d libcxx -i ${../../libcxx-0001-musl-hacks.patch} + patch -p1 -d libcxx -i ${../../common/libcxx/libcxx-0001-musl-hacks.patch} '' + lib.optionalString stdenv.hostPlatform.isWasm '' patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch} ''; diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix index 423b08396666..e71d63859a06 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix @@ -86,7 +86,7 @@ in stdenv.mkDerivation (rec { # of the flags used for the normal LLVM build. To avoid the need for building # a native libLLVM.so (which would fail) we force llvm-config to be linked # statically against the necessary LLVM components always. - ../../llvm-config-link-static.patch + ../../common/llvm/llvm-config-link-static.patch ./gnu-install-dirs.patch # On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test. @@ -149,7 +149,7 @@ in stdenv.mkDerivation (rec { --replace "Path.cpp" "" rm unittests/Support/Path.cpp '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../TLI-musl.patch} + patch -p1 -i ${../../common/llvm/TLI-musl.patch} substituteInPlace unittests/Support/CMakeLists.txt \ --replace "add_subdirectory(DynamicLibrary)" "" rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix index 28f976a26bdb..c482a8ee6875 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix @@ -47,7 +47,7 @@ let # https://reviews.llvm.org/D51899 ./gnu-install-dirs.patch (substituteAll { - src = ../../clang-11-15-LLVMgold-path.patch; + src = ../../common/clang/clang-11-15-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix index 40bff3c1168b..67e2aed35cb6 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation { patches = [ ./gnu-install-dirs.patch ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - ../../libcxx-0001-musl-hacks.patch + ../../common/libcxx/libcxx-0001-musl-hacks.patch ]; preConfigure = lib.optionalString stdenv.hostPlatform.isMusl '' diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix index 78a4a68d6a16..5ebb77ad3880 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation { '' + lib.optionalString stdenv.isDarwin '' export TRIPLE=x86_64-apple-darwin '' + lib.optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -d libcxx -i ${../../libcxx-0001-musl-hacks.patch} + patch -p1 -d libcxx -i ${../../common/libcxx/libcxx-0001-musl-hacks.patch} '' + lib.optionalString stdenv.hostPlatform.isWasm '' patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch} ''; diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix index 3263c4ddaf35..3ac3ee24aec4 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix @@ -87,7 +87,7 @@ in stdenv.mkDerivation (rec { # of the flags used for the normal LLVM build. To avoid the need for building # a native libLLVM.so (which would fail) we force llvm-config to be linked # statically against the necessary LLVM components always. - ../../llvm-config-link-static.patch + ../../common/llvm/llvm-config-link-static.patch # Fix llvm being miscompiled by some gccs. See llvm/llvm-project#49955 # Fix llvm being miscompiled by some gccs. See https://github.com/llvm/llvm-project/issues/49955 ./fix-llvm-issue-49955.patch @@ -138,7 +138,7 @@ in stdenv.mkDerivation (rec { # TODO: Fix failing tests: rm test/DebugInfo/X86/vla-multi.ll '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../TLI-musl.patch} + patch -p1 -i ${../../common/llvm/TLI-musl.patch} substituteInPlace unittests/Support/CMakeLists.txt \ --replace "add_subdirectory(DynamicLibrary)" "" rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp diff --git a/nixpkgs/pkgs/development/compilers/llvm/13/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/13/clang/default.nix index 7673c903e71c..2d02ffb60b36 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/13/clang/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/13/clang/default.nix @@ -43,7 +43,7 @@ let ./revert-malloc-alignment-assumption.patch ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { - src = ../../clang-11-15-LLVMgold-path.patch; + src = ../../common/clang/clang-11-15-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/nixpkgs/pkgs/development/compilers/llvm/13/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/13/libcxx/default.nix index 994ec7dd5a56..2974fc80e191 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/13/libcxx/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/13/libcxx/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { patches = [ ./gnu-install-dirs.patch ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - ../../libcxx-0001-musl-hacks.patch + ../../common/libcxx/libcxx-0001-musl-hacks.patch ]; preConfigure = lib.optionalString stdenv.hostPlatform.isMusl '' diff --git a/nixpkgs/pkgs/development/compilers/llvm/13/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/13/llvm/default.nix index 1e71cdd89c6c..faebfb6e2bfd 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/13/llvm/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/13/llvm/default.nix @@ -81,7 +81,7 @@ in stdenv.mkDerivation (rec { # of the flags used for the normal LLVM build. To avoid the need for building # a native libLLVM.so (which would fail) we force llvm-config to be linked # statically against the necessary LLVM components always. - ../../llvm-config-link-static.patch + ../../common/llvm/llvm-config-link-static.patch ./gnu-install-dirs.patch @@ -128,7 +128,7 @@ in stdenv.mkDerivation (rec { rm unittests/IR/PassBuilderCallbacksTest.cpp rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../TLI-musl.patch} + patch -p1 -i ${../../common/llvm/TLI-musl.patch} substituteInPlace unittests/Support/CMakeLists.txt \ --replace "add_subdirectory(DynamicLibrary)" "" rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp diff --git a/nixpkgs/pkgs/development/compilers/llvm/14/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/14/clang/default.nix index f63f55cfa546..829edb15d600 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/14/clang/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/14/clang/default.nix @@ -46,7 +46,7 @@ let ./gnu-install-dirs.patch ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { - src = ../../clang-11-15-LLVMgold-path.patch; + src = ../../common/clang/clang-11-15-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/nixpkgs/pkgs/development/compilers/llvm/14/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/14/libcxx/default.nix index 3e42a8b1e43c..ad9e82291cde 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/14/libcxx/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/14/libcxx/default.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { patches = [ ./gnu-install-dirs.patch ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - ../../libcxx-0001-musl-hacks.patch + ../../common/libcxx/libcxx-0001-musl-hacks.patch ]; preConfigure = lib.optionalString stdenv.hostPlatform.isMusl '' diff --git a/nixpkgs/pkgs/development/compilers/llvm/14/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/14/llvm/default.nix index eab49d326ad4..ed7d238ddaee 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/14/llvm/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/14/llvm/default.nix @@ -94,6 +94,12 @@ in stdenv.mkDerivation (rec { relative = "llvm"; hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA="; }) + # fix RuntimeDyld usage on aarch64-linux (e.g. python312Packages.numba tests) + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/2e1b838a889f9793d4bcd5dbfe10db9796b77143.patch"; + relative = "llvm"; + hash = "sha256-Ot45P/iwaR4hkcM3xtLwfryQNgHI6pv6ADjv98tgdZA="; + }) ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch; postPatch = optionalString stdenv.isDarwin '' @@ -110,7 +116,7 @@ in stdenv.mkDerivation (rec { rm unittests/IR/PassBuilderCallbacksTest.cpp rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../TLI-musl.patch} + patch -p1 -i ${../../common/llvm/TLI-musl.patch} substituteInPlace unittests/Support/CMakeLists.txt \ --replace "add_subdirectory(DynamicLibrary)" "" rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp diff --git a/nixpkgs/pkgs/development/compilers/llvm/15/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/15/clang/default.nix index 9ec15a393004..de789edaa9ff 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/15/clang/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/15/clang/default.nix @@ -52,7 +52,7 @@ let ./gnu-install-dirs.patch ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { - src = ../../clang-11-15-LLVMgold-path.patch; + src = ../../common/clang/clang-11-15-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/nixpkgs/pkgs/development/compilers/llvm/15/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/15/libcxx/default.nix index be56770039d8..6a055581fffd 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/15/libcxx/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/15/libcxx/default.nix @@ -65,7 +65,7 @@ stdenv.mkDerivation rec { relative = "libcxx"; }) ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - ../../libcxx-0001-musl-hacks.patch + ../../common/libcxx/libcxx-0001-musl-hacks.patch ]; postPatch = '' diff --git a/nixpkgs/pkgs/development/compilers/llvm/15/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/15/llvm/default.nix index 4f17678ba14f..7f1232d57a18 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/15/llvm/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/15/llvm/default.nix @@ -230,7 +230,7 @@ in stdenv.mkDerivation (rec { # timing-based tests are trouble rm utils/lit/tests/googletest-timeout.py '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../TLI-musl.patch} + patch -p1 -i ${../../common/llvm/TLI-musl.patch} substituteInPlace unittests/Support/CMakeLists.txt \ --replace "add_subdirectory(DynamicLibrary)" "" rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp diff --git a/nixpkgs/pkgs/development/compilers/llvm/16/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/16/clang/default.nix index 43c497b92761..c5d9af356d9e 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/16/clang/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/16/clang/default.nix @@ -52,7 +52,7 @@ let ./gnu-install-dirs.patch ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { - src = ../../clang-at-least-16-LLVMgold-path.patch; + src = ../../common/clang/clang-at-least-16-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/nixpkgs/pkgs/development/compilers/llvm/16/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/16/llvm/default.nix index 73fb6a785413..661866c1890b 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/16/llvm/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/16/llvm/default.nix @@ -223,7 +223,7 @@ in # timing-based tests are trouble rm utils/lit/tests/googletest-timeout.py '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../TLI-musl.patch} + patch -p1 -i ${../../common/llvm/TLI-musl.patch} substituteInPlace unittests/Support/CMakeLists.txt \ --replace "add_subdirectory(DynamicLibrary)" "" rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp diff --git a/nixpkgs/pkgs/development/compilers/llvm/17/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/17/clang/default.nix index f2f114233c28..f7922f3d9951 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/17/clang/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/17/clang/default.nix @@ -53,7 +53,7 @@ let ./gnu-install-dirs.patch ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { - src = ../../clang-at-least-16-LLVMgold-path.patch; + src = ../../common/clang/clang-at-least-16-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/nixpkgs/pkgs/development/compilers/llvm/17/default.nix b/nixpkgs/pkgs/development/compilers/llvm/17/default.nix index 95281df892e5..60cae920945b 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/17/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/17/default.nix @@ -144,6 +144,10 @@ in let inherit llvm_meta; }; + mlir = callPackage ../common/mlir { + inherit llvm_meta; + }; + lldb = callPackage ../common/lldb.nix { src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} '' mkdir -p "$out" diff --git a/nixpkgs/pkgs/development/compilers/llvm/17/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/17/llvm/default.nix index 627679ce812f..2c5d6aeb5cec 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/17/llvm/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/17/llvm/default.nix @@ -220,7 +220,7 @@ stdenv.mkDerivation (rec { rm unittests/IR/PassBuilderCallbacksTest.cpp rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../TLI-musl.patch} + patch -p1 -i ${../../common/llvm/TLI-musl.patch} substituteInPlace unittests/Support/CMakeLists.txt \ --replace "add_subdirectory(DynamicLibrary)" "" rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/clang/default.nix index e8a2a4bd0db1..37138b13bd4c 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/9/clang/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/9/clang/default.nix @@ -52,7 +52,7 @@ let ./HIP-use-PATH-9.patch ./gnu-install-dirs.patch (substituteAll { - src = ../../clang-6-10-LLVMgold-path.patch; + src = ../../common/clang/clang-6-10-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/libcxx/default.nix index ec09998ed37d..65f0e19225a5 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/9/libcxx/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/9/libcxx/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { patches = [ ./gnu-install-dirs.patch ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - ../../libcxx-0001-musl-hacks.patch + ../../common/libcxx/libcxx-0001-musl-hacks.patch ]; # Prevent errors like "error: 'foo' is unavailable: introduced in macOS yy.zz" diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/default.nix index 24d89b1a2da5..7d4a83db390b 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation { '' + lib.optionalString stdenv.isDarwin '' export TRIPLE=x86_64-apple-darwin '' + lib.optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch} + patch -p1 -d $(ls -d libcxx-*) -i ${../../common/libcxx/libcxx-0001-musl-hacks.patch} '' + lib.optionalString stdenv.hostPlatform.isWasm '' patch -p1 -d $(ls -d llvm-*) -i ${../../common/libcxxabi/wasm.patch} ''; diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix index c0ef7801c348..7d5e8389eba9 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix @@ -86,12 +86,12 @@ in stdenv.mkDerivation (rec { # of the flags used for the normal LLVM build. To avoid the need for building # a native libLLVM.so (which would fail) we force llvm-config to be linked # statically against the necessary LLVM components always. - ../../llvm-config-link-static.patch + ../../common/llvm/llvm-config-link-static.patch ./gnu-install-dirs.patch # Force a test to evaluate the saved benchmark for a CPU for which LLVM has # an execution model. See NixOS/nixpkgs#119673. - ../../exegesis-force-bdver2.patch + ./exegesis-force-bdver2.patch # Fix missing includes for GCC 11 (fetchpatch { @@ -137,7 +137,7 @@ in stdenv.mkDerivation (rec { --replace "Path.cpp" "" rm unittests/Support/Path.cpp '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../TLI-musl.patch} + patch -p1 -i ${../../common/llvm/TLI-musl.patch} substituteInPlace unittests/Support/CMakeLists.txt \ --replace "add_subdirectory(DynamicLibrary)" "" rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp diff --git a/nixpkgs/pkgs/development/compilers/llvm/exegesis-force-bdver2.patch b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/exegesis-force-bdver2.patch index c2654153ed5a..c2654153ed5a 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/exegesis-force-bdver2.patch +++ b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/exegesis-force-bdver2.patch diff --git a/nixpkgs/pkgs/development/compilers/llvm/clang-11-15-LLVMgold-path.patch b/nixpkgs/pkgs/development/compilers/llvm/common/clang/clang-11-15-LLVMgold-path.patch index 8f8991976f33..8f8991976f33 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/clang-11-15-LLVMgold-path.patch +++ b/nixpkgs/pkgs/development/compilers/llvm/common/clang/clang-11-15-LLVMgold-path.patch diff --git a/nixpkgs/pkgs/development/compilers/llvm/clang-6-10-LLVMgold-path.patch b/nixpkgs/pkgs/development/compilers/llvm/common/clang/clang-6-10-LLVMgold-path.patch index 93504316edf3..93504316edf3 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/clang-6-10-LLVMgold-path.patch +++ b/nixpkgs/pkgs/development/compilers/llvm/common/clang/clang-6-10-LLVMgold-path.patch diff --git a/nixpkgs/pkgs/development/compilers/llvm/clang-at-least-16-LLVMgold-path.patch b/nixpkgs/pkgs/development/compilers/llvm/common/clang/clang-at-least-16-LLVMgold-path.patch index 74cdbacc8a71..74cdbacc8a71 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/clang-at-least-16-LLVMgold-path.patch +++ b/nixpkgs/pkgs/development/compilers/llvm/common/clang/clang-at-least-16-LLVMgold-path.patch diff --git a/nixpkgs/pkgs/development/compilers/llvm/libcxx-0001-musl-hacks.patch b/nixpkgs/pkgs/development/compilers/llvm/common/libcxx/libcxx-0001-musl-hacks.patch index bcb5ad8cfb87..bcb5ad8cfb87 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/libcxx-0001-musl-hacks.patch +++ b/nixpkgs/pkgs/development/compilers/llvm/common/libcxx/libcxx-0001-musl-hacks.patch diff --git a/nixpkgs/pkgs/development/compilers/llvm/TLI-musl.patch b/nixpkgs/pkgs/development/compilers/llvm/common/llvm/TLI-musl.patch index 1a6908086637..1a6908086637 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/TLI-musl.patch +++ b/nixpkgs/pkgs/development/compilers/llvm/common/llvm/TLI-musl.patch diff --git a/nixpkgs/pkgs/development/compilers/llvm/llvm-config-link-static.patch b/nixpkgs/pkgs/development/compilers/llvm/common/llvm/llvm-config-link-static.patch index 3881cc5206e2..3881cc5206e2 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/llvm-config-link-static.patch +++ b/nixpkgs/pkgs/development/compilers/llvm/common/llvm/llvm-config-link-static.patch diff --git a/nixpkgs/pkgs/development/compilers/llvm/common/mlir/default.nix b/nixpkgs/pkgs/development/compilers/llvm/common/mlir/default.nix new file mode 100644 index 000000000000..8e99fa0fe337 --- /dev/null +++ b/nixpkgs/pkgs/development/compilers/llvm/common/mlir/default.nix @@ -0,0 +1,71 @@ +{ lib, stdenv, llvm_meta +, buildLlvmTools +, monorepoSrc, runCommand +, cmake +, ninja +, libxml2 +, libllvm +, version +, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl) +}: + +stdenv.mkDerivation rec { + pname = "mlir"; + inherit version doCheck; + + # Blank llvm dir just so relative path works + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + cp -r ${monorepoSrc}/third-party "$out/third-party" + + mkdir -p "$out/llvm" + ''; + + sourceRoot = "${src.name}/${pname}"; + + patches = [ + ./gnu-install-dirs.patch + ]; + + nativeBuildInputs = [ cmake ninja ]; + buildInputs = [ libllvm libxml2 ]; + + ninjaFlags = [ "-v " ]; + cmakeFlags = [ + "-DLLVM_BUILD_TOOLS=ON" + # Install headers as well + "-DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF" + "-DMLIR_TOOLS_INSTALL_DIR=${placeholder "out"}/bin/" + "-DLLVM_ENABLE_IDE=OFF" + "-DLLD_INSTALL_PACKAGE_DIR=${placeholder "out"}/lib/cmake/mlir" + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] ++ lib.optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + "-DLLVM_LINK_LLVM_DYLIB=off" + ] ++ lib.optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [ + "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" + "-DMLIR_TABLEGEN_EXE=${buildLlvmTools.mlir}/bin/mlir-tblgen" + ]; + + outputs = [ "out" "dev" ]; + + meta = llvm_meta // { + homepage = "https://mlir.llvm.org/"; + description = "Multi-Level IR Compiler Framework"; + longDescription = '' + The MLIR project is a novel approach to building reusable and extensible + compiler infrastructure. MLIR aims to address software fragmentation, + improve compilation for heterogeneous hardware, significantly reduce + the cost of building domain specific compilers, and aid in connecting + existing compilers together. + ''; + }; +} diff --git a/nixpkgs/pkgs/development/compilers/llvm/common/mlir/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/common/mlir/gnu-install-dirs.patch new file mode 100644 index 000000000000..95191022d1a3 --- /dev/null +++ b/nixpkgs/pkgs/development/compilers/llvm/common/mlir/gnu-install-dirs.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c91e9cd93dc8..23b6032a46b7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -32,8 +32,8 @@ if(MLIR_STANDALONE_BUILD) + endif() + + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY +- "${CMAKE_CURRENT_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}") +- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin") ++ "${CMAKE_INSTALL_LIBDIR}/${LLVM_LIBDIR_SUFFIX}") ++ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_INSTALL_BINDIR}") + + set(LLVM_LIT_ARGS "-sv" CACHE STRING "Default options for lit") + endif() diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix index eea346ef22ef..01b33c540ca2 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix @@ -54,7 +54,7 @@ let ./gnu-install-dirs.patch ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { - src = ../../clang-at-least-16-LLVMgold-path.patch; + src = ../../common/clang/clang-at-least-16-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix index 0f15a9e12cde..7b44a872adc4 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix @@ -116,7 +116,7 @@ stdenv.mkDerivation { --replace "#include <stdlib.h>" "" substituteInPlace lib/builtins/clear_cache.c \ --replace "#include <assert.h>" "" - substituteInPlace lib/builtins/cpu_model.c \ + substituteInPlace lib/builtins/cpu_model${lib.optionalString (lib.versionAtLeast version "18") "/x86"}.c \ --replace "#include <assert.h>" "" ''; diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/default.nix index 7dfec234104d..1efaa0402fc7 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/git/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/git/default.nix @@ -17,12 +17,7 @@ else pkgs.bintools , darwin # LLVM release information; specify one of these but not both: -, gitRelease ? { - version = "18.0.0"; - rev = "2fd7657b6609454af7adb75765d164ec7d1bb80b"; - rev-version = "18.0.0-unstable-2023-12-13"; - sha256 = "sha256-/sMQzzFid0tAnreOIV9SUm2H6QbEGhpNcizl3LDPM5s="; -} +, gitRelease ? null # i.e.: # { # version = /* i.e. "15.0.0" */; @@ -30,7 +25,7 @@ # rev-version = /* human readable version; i.e. "unstable-2022-26-07" */; # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -, officialRelease ? null +, officialRelease ? { version = "18.1.0-rc3"; sha256 = "sha256-qRzY2kTLeRxXQCSuVP592Awafm5wjVeFY60d6082mSc="; } # i.e.: # { # version = /* i.e. "15.0.0" */; @@ -149,6 +144,10 @@ in let inherit llvm_meta; }; + mlir = callPackage ../common/mlir { + inherit llvm_meta; + }; + lldb = callPackage ../common/lldb.nix { src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} '' mkdir -p "$out" diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch new file mode 100644 index 000000000000..0a2e8db07391 --- /dev/null +++ b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch @@ -0,0 +1,31 @@ +From 9c1cb26c1dd3f92d1c1177e548107d2cd3c5e616 Mon Sep 17 00:00:00 2001 +From: annalee <150648636+a-n-n-a-l-e-e@users.noreply.github.com> +Date: Fri, 23 Feb 2024 22:58:58 +0000 +Subject: [PATCH] darwin 10.12 mbstate_t fix + +https://github.com/llvm/llvm-project/issues/64226 + +removes space from +https://github.com/macports/macports-ports/raw/acd8acb171f1658596ed1cf25da48d5b932e2d19/lang/llvm-17/files/0042-mbstate_t-not-defined.patch +so it applies cleanly +--- + include/__mbstate_t.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/include/__mbstate_t.h b/include/__mbstate_t.h +index bfa6d61..5f51112 100644 +--- a/include/__mbstate_t.h ++++ b/include/__mbstate_t.h +@@ -42,6 +42,9 @@ + #elif __has_include(<bits/types/mbstate_t.h>) + # include <bits/types/mbstate_t.h> // works on most Unixes + #elif __has_include(<sys/_types/_mbstate_t.h>) ++# if __has_include(<machine/_types.h>) ++# include <machine/_types.h> ++# endif + # include <sys/_types/_mbstate_t.h> // works on Darwin + #elif !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS) && __has_include_next(<wchar.h>) + # include_next <wchar.h> // fall back to the C standard provider of mbstate_t +-- +2.43.0 + diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix index 8a5272ea07af..11f4c6fe5fd1 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix @@ -45,15 +45,9 @@ stdenv.mkDerivation rec { chmod -R u+w . ''; - patches = [ - # fix for https://github.com/NixOS/nixpkgs/issues/269548 - # https://github.com/llvm/llvm-project/pull/77218 - (fetchpatch { - name = "darwin-system-libcxxabi-link-flags.patch"; - url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch"; - hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ="; - relative = "libcxx"; - }) + patches = lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [ + # https://github.com/llvm/llvm-project/issues/64226 + ./0001-darwin-10.12-mbstate_t-fix.patch ]; postPatch = '' @@ -82,7 +76,9 @@ stdenv.mkDerivation rec { "-DLIBCXX_CXX_ABI=${if headersOnly then "none" else libcxx_cxx_abi_opt}" ] ++ lib.optional (!headersOnly && cxxabi.libName == "c++abi") "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi.dev}/include/c++/v1" ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1" - ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [ + ++ lib.optionals (lib.versionAtLeast version "18" && !(stdenv.hostPlatform.useLLVM or false) && stdenv.hostPlatform.libc == "glibc" && !stdenv.hostPlatform.isStatic) [ + "-DLIBCXX_ADDITIONAL_LIBRARIES=gcc_s" + ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [ "-DLIBCXX_USE_COMPILER_RT=ON" # There's precedent for this in llvm-project/libcxx/cmake/caches. # In a monorepo build you might do the following in the libcxxabi build: diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix index 0a795da44ae4..8e1979654325 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix @@ -44,6 +44,20 @@ stdenv.mkDerivation rec { sha256 = "1xyjd56m4pfwq8p3xh6i8lhkk9kq15jaml7qbhxdf87z4jjkk63a"; stripLen = 1; }) + ] ++ lib.optionals (lib.versionAtLeast version "18") [ + # Allow building libcxxabi alone when using LLVM unwinder + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/77610dd10454e87bb387040d2b51100a17ac5755.patch"; + stripLen = 1; + revert = true; + hash = "sha256-Jogx/cvTJ6fdyprTD1QzMIeRWcBlZZMWE/y9joOtVH0="; + }) + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/48e5b5ea92674ded69b998cf35724d9012c0f57d.patch"; + stripLen = 1; + revert = true; + hash = "sha256-7VeBFjG7CnEMWn0hpBvyNOyhRfz50PnD3zyQNDhNChk="; + }) ]; postPatch = '' @@ -63,6 +77,8 @@ stdenv.mkDerivation rec { # CMake however checks for this anyways; this flag tells it not to. See: # https://github.com/llvm/llvm-project/blob/4bd3f3759259548e159aeba5c76efb9a0864e6fa/llvm/runtimes/CMakeLists.txt#L243 "-DCMAKE_CXX_COMPILER_WORKS=ON" + ] ++ lib.optionals (lib.versionAtLeast version "18" && !(stdenv.hostPlatform.useLLVM or false && !stdenv.hostPlatform.isWasm)) [ + "-DLIBCXXABI_USE_LLVM_UNWINDER=OFF" ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false && !stdenv.hostPlatform.isWasm) [ "-DLLVM_ENABLE_LIBCXX=ON" "-DLIBCXXABI_USE_LLVM_UNWINDER=ON" @@ -110,8 +126,5 @@ stdenv.mkDerivation rec { # the UIUC License (a BSD-like license)": license = with lib.licenses; [ mit ncsa ]; maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ]; - # Broken until https://github.com/llvm/llvm-project/issues/64226 is resolved - # We should check if the version is not 10.13 but that is currently broken. - broken = stdenv.isDarwin && stdenv.isx86_64; }; } diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix index 3c52b7a9bb0b..b8cef2287806 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix @@ -224,7 +224,7 @@ stdenv.mkDerivation (rec { rm unittests/IR/PassBuilderCallbacksTest.cpp rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../TLI-musl.patch} + patch -p1 -i ${../../common/llvm/TLI-musl.patch} substituteInPlace unittests/Support/CMakeLists.txt \ --replace "add_subdirectory(DynamicLibrary)" "" rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch index b01363e98aa0..442ebddad3f6 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch +++ b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch @@ -6,14 +6,14 @@ diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macr index 518a09b45a42..bd9d6f5542ad 100644 --- a/tools/polly/cmake/polly_macros.cmake +++ b/tools/polly/cmake/polly_macros.cmake -@@ -44,8 +44,8 @@ macro(add_polly_library name) - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly") +@@ -45,8 +45,8 @@ macro(add_polly_library name) install(TARGETS ${name} + COMPONENT ${name} EXPORT LLVMExports - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} - ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) + add_llvm_install_targets(install-${name} + COMPONENT ${name}) endif() - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) - endmacro(add_polly_library) diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/openmp/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/openmp/gnu-install-dirs.patch index 77a93208832a..0d0d4130c761 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/git/openmp/gnu-install-dirs.patch +++ b/nixpkgs/pkgs/development/compilers/llvm/git/openmp/gnu-install-dirs.patch @@ -6,17 +6,17 @@ index b6ddbe90516d..311ab1d50e7f 100644 set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING "Suffix of lib installation directory, e.g. 64 => lib64") # Do not use OPENMP_LIBDIR_SUFFIX directly, use OPENMP_INSTALL_LIBDIR. -- set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}") -+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}") +- set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}" CACHE STRING ++ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}" CACHE STRING + "Path where built OpenMP libraries should be installed.") # Group test settings. - set(OPENMP_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING -@@ -40,7 +40,7 @@ if (OPENMP_STANDALONE_BUILD) +@@ -47,7 +47,7 @@ if (OPENMP_STANDALONE_BUILD) else() set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR}) # If building in tree, we honor the same install suffix LLVM uses. -- set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}") -+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") +- set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}" CACHE STRING ++ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" CACHE STRING + "Path where built OpenMP libraries should be installed.") if (NOT MSVC) - set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) diff --git a/nixpkgs/pkgs/development/compilers/orc/default.nix b/nixpkgs/pkgs/development/compilers/orc/default.nix index dd1ce9d14672..be01d49d5f5a 100644 --- a/nixpkgs/pkgs/development/compilers/orc/default.nix +++ b/nixpkgs/pkgs/development/compilers/orc/default.nix @@ -18,11 +18,11 @@ inherit (lib) optional optionals; in stdenv.mkDerivation rec { pname = "orc"; - version = "0.4.34"; + version = "0.4.36"; src = fetchurl { url = "https://gstreamer.freedesktop.org/src/orc/${pname}-${version}.tar.xz"; - sha256 = "sha256-j0ers/CXFx5E64B63Nq9hg+6Lv/TfY08T71fNByt1B8="; + sha256 = "sha256-g7B0y2cxfVi+8ejQzIYveuinekW7/wVqH5h8ZIiy9f0="; }; postPatch = lib.optionalString stdenv.isAarch32 '' diff --git a/nixpkgs/pkgs/development/compilers/qbe/default.nix b/nixpkgs/pkgs/development/compilers/qbe/default.nix index ee075ec04056..d9694c9b4bce 100644 --- a/nixpkgs/pkgs/development/compilers/qbe/default.nix +++ b/nixpkgs/pkgs/development/compilers/qbe/default.nix @@ -1,15 +1,15 @@ -{ lib, stdenv +{ lib +, stdenv , fetchzip , callPackage }: - -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "qbe"; - version = "1.1"; + version = "1.2"; src = fetchzip { - url = "https://c9x.me/compile/release/qbe-${version}.tar.xz"; - sha256 = "sha256-yFZ3cpp7eLjf7ythKFTY1YEJYyfeg2en4/D8+9oM1B4="; + url = "https://c9x.me/compile/release/qbe-${finalAttrs.version}.tar.xz"; + hash = "sha256-UgtJnZF/YtD54OBy9HzGRAEHx5tC9Wo2YcUidGwrv+s="; }; makeFlags = [ "PREFIX=$(out)" ]; @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { doCheck = true; passthru = { - tests.can-run-hello-world = callPackage ./test-can-run-hello-world.nix {}; + tests.can-run-hello-world = callPackage ./test-can-run-hello-world.nix { }; }; meta = with lib; { @@ -26,5 +26,6 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ fgaz ]; license = licenses.mit; platforms = platforms.all; + mainProgram = "qbe"; }; -} +}) diff --git a/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix b/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix index e23557c5a62f..d796b24e1d7e 100644 --- a/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix +++ b/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix @@ -26,4 +26,6 @@ stdenv.mkDerivation rec { postFixup = lib.optionalString (!stdenv.isAarch32 && stdenv.isLinux) '' patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/share/sbcl/sbcl ''; + + meta.sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; } diff --git a/nixpkgs/pkgs/development/compilers/sbcl/default.nix b/nixpkgs/pkgs/development/compilers/sbcl/default.nix index 2f18dcc78d4c..fbd0970848d1 100644 --- a/nixpkgs/pkgs/development/compilers/sbcl/default.nix +++ b/nixpkgs/pkgs/development/compilers/sbcl/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, callPackage, clisp, fetchurl, fetchpatch, writeText, zstd +{ lib, stdenv, callPackage, clisp, coreutils, fetchurl, strace, texinfo, which, writeText, zstd , threadSupport ? (stdenv.hostPlatform.isx86 || "aarch64-linux" == stdenv.hostPlatform.system || "aarch64-darwin" == stdenv.hostPlatform.system) , linkableRuntime ? stdenv.hostPlatform.isx86 , disableImmobileSpace ? false @@ -8,8 +8,13 @@ , purgeNixReferences ? false , coreCompression ? lib.versionAtLeast version "2.2.6" , markRegionGC ? lib.versionAtLeast version "2.4.0" -, texinfo , version + # Set this to a lisp binary to use a custom bootstrap lisp compiler for + # SBCL. Leave as null to use the default. This is useful for local development + # of SBCL, because you can use your existing stock SBCL as a boostrap. On Hydra + # of course we can’t do that because SBCL hasn’t been built yet, so we use + # CLISP, but that’s much slower. +, bootstrapLisp ? null }: let @@ -62,14 +67,16 @@ let sbclBootstrap = callPackage ./bootstrap.nix { cfg = bootstrapBinaries.${stdenv.hostPlatform.system}; }; - bootstrapLisp = - if (builtins.hasAttr stdenv.hostPlatform.system bootstrapBinaries) + bootstrapLisp' = + if bootstrapLisp != null + then bootstrapLisp + else if (builtins.hasAttr stdenv.hostPlatform.system bootstrapBinaries) then "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit" else "${clisp}/bin/clisp -E UTF-8 --silent -norc"; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (self: rec { pname = "sbcl"; inherit version; @@ -78,48 +85,62 @@ stdenv.mkDerivation rec { inherit (versionMap.${version}) sha256; }; - nativeBuildInputs = [ texinfo ]; + nativeBuildInputs = [ + texinfo + ] ++ lib.optionals self.doCheck ( + [ + which + ] ++ lib.optionals (builtins.elem stdenv.system strace.meta.platforms) [ + strace + ] + ); buildInputs = lib.optionals coreCompression [ zstd ]; - patches = lib.optionals (version == "2.4.0") [ + patches = [ + ./search-for-binaries-in-PATH.patch + ] ++ lib.optionals (version == "2.4.0") [ ./fix-2.4.0-aarch64-darwin.patch ]; - postPatch = '' - echo '"${version}.nixos"' > version.lisp-expr - - # SBCL checks whether files are up-to-date in many places.. - # Unfortunately, same timestamp is not good enough - sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp - #sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp - sed -i src/cold/slam.lisp -e \ - '/file-write-date input/a)' - sed -i src/cold/slam.lisp -e \ - '/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))' - sed -i src/code/target-load.lisp -e \ - '/date defaulted-fasl/a)' - sed -i src/code/target-load.lisp -e \ - '/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))' - - # Fix the tests - sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp - sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp + # I don’t know why these are failing (on ofBorg), and I’d rather just disable + # them and move forward with the succeeding tests than block testing + # altogether. One by one hopefully we can fix these (on ofBorg, + # upstream--somehow some way) in due time. + disabledTestFiles = lib.optionals (builtins.elem stdenv.hostPlatform.system [ + "x86_64-linux" + "aarch64-linux" + ]) [ + "foreign-stack-alignment.impure.lisp" + # Floating point tests are fragile + # https://sourceforge.net/p/sbcl/mailman/message/58728554/ + "compiler.pure.lisp" + "float.pure.lisp" + ] ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [ + # This is failing on aarch64-linux on ofBorg. Not on my local machine nor on + # a VM on my laptop. Not sure what’s wrong. + "traceroot.impure.lisp" + ]; + postPatch = lib.optionalString (self.disabledTestFiles != [ ]) '' + (cd tests ; rm -f ${lib.concatStringsSep " " self.disabledTestFiles}) '' - + (if purgeNixReferences - then - # This is the default location to look for the core; by default in $out/lib/sbcl - '' - sed 's@^\(#define SBCL_HOME\) .*$@\1 "/no-such-path"@' \ - -i src/runtime/runtime.c - '' - else - # Fix software version retrieval - '' - sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp \ - src/code/run-program.lisp - '' - ); - + + lib.optionalString purgeNixReferences '' + # This is the default location to look for the core; by default in $out/lib/sbcl + sed 's@^\(#define SBCL_HOME\) .*$@\1 "/no-such-path"@' \ + -i src/runtime/runtime.c + '' + + '' + ( + shopt -s nullglob + # Tests need patching regardless of purging of paths from the final + # binary. There are some tricky files in nested directories which should + # definitely NOT be patched this way, hence just a single * (and no + # globstar). + substituteInPlace ${if purgeNixReferences then "tests" else "{tests,src/code}"}/*.{lisp,sh} \ + --replace-quiet /usr/bin/env "${coreutils}/bin/env" \ + --replace-quiet /bin/uname "${coreutils}/bin/uname" \ + --replace-quiet /bin/sh "${stdenv.shell}" + ) + ''; preBuild = '' export INSTALL_ROOT=$out @@ -138,7 +159,16 @@ stdenv.mkDerivation rec { optional (!threadSupport) "sb-thread" ++ optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ]; - env.NIX_CFLAGS_COMPILE = toString (lib.optionals (lib.versionOlder version "2.1.10") [ + buildArgs = [ + "--prefix=$out" + "--xc-host=${lib.escapeShellArg bootstrapLisp'}" + ] ++ builtins.map (x: "--with-${x}") self.enableFeatures + ++ builtins.map (x: "--without-${x}") self.disableFeatures + ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-darwin") [ + "--arch=arm64" + ]; + + env.NIX_CFLAGS_COMPILE = toString (lib.optionals (lib.versionOlder self.version "2.1.10") [ # Workaround build failure on -fno-common toolchains like upstream # clang-13. Without the change build fails as: # duplicate symbol '_static_code_space_free_pointer' in: alloc.o traceroot.o @@ -151,22 +181,32 @@ stdenv.mkDerivation rec { buildPhase = '' runHook preBuild - sh make.sh --prefix=$out --xc-host="${bootstrapLisp}" ${ - lib.concatStringsSep " " - (builtins.map (x: "--with-${x}") enableFeatures ++ - builtins.map (x: "--without-${x}") disableFeatures) - } ${lib.optionalString (stdenv.hostPlatform.system == "aarch64-darwin") "--arch=arm64"} + sh make.sh ${lib.concatStringsSep " " self.buildArgs} (cd doc/manual ; make info) runHook postBuild ''; + # Tests on ofBorg’s x86_64-darwin platforms are so unstable that a random one + # will fail every other run. There’s a deeper problem here; we might as well + # disable them entirely so at least the other platforms get to benefit from + # testing. + doCheck = stdenv.hostPlatform.system != "x86_64-darwin"; + + # From the INSTALL docs + checkPhase = '' + runHook preCheck + + (cd tests && sh run-tests.sh) + + runHook postCheck + ''; + installPhase = '' runHook preInstall INSTALL_ROOT=$out sh install.sh - runHook postInstall '' + lib.optionalString (!purgeNixReferences) '' cp -r src $out/lib/sbcl @@ -176,6 +216,8 @@ stdenv.mkDerivation rec { '(("SYS:SRC;**;*.*.*" #P"$out/lib/sbcl/src/**/*.*") ("SYS:CONTRIB;**;*.*.*" #P"$out/lib/sbcl/contrib/**/*.*"))) EOF + '' + '' + runHook postInstall ''; setupHook = lib.optional purgeNixReferences (writeText "setupHook.sh" '' @@ -186,7 +228,7 @@ stdenv.mkDerivation rec { ''); meta = with lib; { - description = "Lisp compiler"; + description = "Common Lisp compiler"; homepage = "https://sbcl.org"; license = licenses.publicDomain; # and FreeBSD maintainers = lib.teams.lisp.members; @@ -198,4 +240,4 @@ stdenv.mkDerivation rec { "aarch64-linux" ]; }; -} +}) diff --git a/nixpkgs/pkgs/development/compilers/sbcl/search-for-binaries-in-PATH.patch b/nixpkgs/pkgs/development/compilers/sbcl/search-for-binaries-in-PATH.patch new file mode 100644 index 000000000000..95263ec85753 --- /dev/null +++ b/nixpkgs/pkgs/development/compilers/sbcl/search-for-binaries-in-PATH.patch @@ -0,0 +1,108 @@ +From 35856b09e3606361b17f21225c759632be1cdf34 Mon Sep 17 00:00:00 2001 +From: Hraban Luyat <hraban@0brg.net> +Date: Wed, 24 Jan 2024 14:58:53 -0500 +Subject: [PATCH] Search for binaries in tests in PATH, not /usr/bin +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Same as 8ed662fbfeb5dde35eb265f390b55b01f79f70c1 but for tests, and for more +than just ‘cat’. For the same reasons as that diff. +--- + tests/run-program.impure.lisp | 18 ++++++++++-------- + tests/run-program.test.sh | 9 ++++----- + 2 files changed, 14 insertions(+), 13 deletions(-) + +diff --git a/tests/run-program.impure.lisp b/tests/run-program.impure.lisp +index 0eab8884c..b07d1e4fb 100644 +--- a/tests/run-program.impure.lisp ++++ b/tests/run-program.impure.lisp +@@ -15,7 +15,7 @@ + + (defun bin-pwd-ignoring-result () + (let ((initially-open-fds (directory "/proc/self/fd/*" :resolve-symlinks nil))) +- (sb-ext:run-program "/usr/bin/pwd" nil :input :stream :output :stream :wait nil) ++ (sb-ext:run-program "pwd" nil :search t :input :stream :output :stream :wait nil) + (length initially-open-fds))) + + (with-test (:name (run-program :autoclose-streams) +@@ -49,7 +49,7 @@ + (with-test (:name (run-program :cat 2) + :skipped-on (or (not :sb-thread) :win32)) + ;; Tests that reading from a FIFO is interruptible. +- (let* ((process (run-program "/bin/cat" '() ++ (let* ((process (run-program "cat" '() :search t + :wait nil :output :stream :input :stream)) + (in (process-input process)) + (out (process-output process)) +@@ -167,7 +167,7 @@ + (defparameter *cat-out* (make-synonym-stream '*cat-out-pipe*))) + + (with-test (:name (run-program :cat 5) :fails-on :win32) +- (let ((cat (run-program "/bin/cat" nil :input *cat-in* :output *cat-out* ++ (let ((cat (run-program "cat" nil :search t :input *cat-in* :output *cat-out* + :wait nil))) + (dolist (test '("This is a test!" + "This is another test!" +@@ -310,14 +310,16 @@ + (let ((had-error-p nil)) + (flet ((barf (&optional (format :default)) + (with-output-to-string (stream) +- (run-program #-netbsd "/usr/bin/perl" #+netbsd "/usr/pkg/bin/perl" ++ (run-program #-netbsd "perl" #+netbsd "/usr/pkg/bin/perl" + '("-e" "print \"\\x20\\xfe\\xff\\x0a\"") ++ :search #-netbsd t #+netbsd nil + :output stream + :external-format format))) + (no-barf () + (with-output-to-string (stream) +- (run-program "/bin/echo" ++ (run-program "echo" + '("This is a test") ++ :search t + :output stream)))) + (handler-case + (barf :utf-8) +@@ -353,9 +355,9 @@ + ;; If the permitted inputs are :ANY then leave it be + (listp (symbol-value 'run-tests::*allowed-inputs*))) + (push (namestring file) (symbol-value 'run-tests::*allowed-inputs*))) +- (assert (null (run-program "/bin/cat" '() :input file))) +- (assert (null (run-program "/bin/cat" '() :output #.(or *compile-file-truename* +- *load-truename*) ++ (assert (null (run-program "cat" '() :search t :input file))) ++ (assert (null (run-program "cat" '() :search t :output #.(or *compile-file-truename* ++ *load-truename*) + :if-output-exists nil))))) + + +diff --git a/tests/run-program.test.sh b/tests/run-program.test.sh +index 48eaef889..c926e5a05 100755 +--- a/tests/run-program.test.sh ++++ b/tests/run-program.test.sh +@@ -39,9 +39,8 @@ run_sbcl --eval "(defvar *exit-ok* $EXIT_LISP_WIN)" <<'EOF' + (assert (not (zerop (sb-ext:process-exit-code + (sb-ext:run-program "false" () :search t :wait t))))) + (let ((string (with-output-to-string (stream) +- (our-run-program "/bin/echo" +- '("foo" "bar") +- :output stream)))) ++ (run-program "echo" '("foo" "bar") ++ :search t :output stream)))) + (assert (string= string "foo bar + "))) + (format t ";;; Smoke tests: PASS~%") +@@ -103,8 +102,8 @@ run_sbcl --eval "(defvar *exit-ok* $EXIT_LISP_WIN)" <<'EOF' + ;; make sure that a stream input argument is basically reasonable. + (let ((string (let ((i (make-string-input-stream "abcdef"))) + (with-output-to-string (stream) +- (our-run-program "/bin/cat" () +- :input i :output stream))))) ++ (run-program "cat" () ++ :search t :input i :output stream))))) + (assert (= (length string) 6)) + (assert (string= string "abcdef"))) + +-- +2.43.0 + diff --git a/nixpkgs/pkgs/development/compilers/temurin-bin/jdk-darwin-base.nix b/nixpkgs/pkgs/development/compilers/temurin-bin/jdk-darwin-base.nix index eff9eda73ed3..14871813273d 100644 --- a/nixpkgs/pkgs/development/compilers/temurin-bin/jdk-darwin-base.nix +++ b/nixpkgs/pkgs/development/compilers/temurin-bin/jdk-darwin-base.nix @@ -64,6 +64,7 @@ let meta = with lib; { license = licenses.gpl2Classpath; + sourceProvenance = with sourceTypes; [ binaryNativeCode binaryBytecode ]; description = "${brand-name}, prebuilt OpenJDK binary"; platforms = builtins.map (arch: arch + "-darwin") providedCpuTypes; # some inherit jre.meta.platforms maintainers = with maintainers; [ taku0 ]; diff --git a/nixpkgs/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix b/nixpkgs/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix index b8726749bef8..ba56518e15a6 100644 --- a/nixpkgs/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix +++ b/nixpkgs/pkgs/development/compilers/temurin-bin/jdk-linux-base.nix @@ -121,6 +121,7 @@ let meta = with lib; { license = licenses.gpl2Classpath; + sourceProvenance = with sourceTypes; [ binaryNativeCode binaryBytecode ]; description = "${brand-name}, prebuilt OpenJDK binary"; platforms = builtins.map (arch: arch + "-linux") providedCpuTypes; # some inherit jre.meta.platforms maintainers = with maintainers; [ taku0 ]; diff --git a/nixpkgs/pkgs/development/compilers/unison/default.nix b/nixpkgs/pkgs/development/compilers/unison/default.nix index 56ca3a0104cf..f9f1934bb566 100644 --- a/nixpkgs/pkgs/development/compilers/unison/default.nix +++ b/nixpkgs/pkgs/development/compilers/unison/default.nix @@ -11,17 +11,17 @@ stdenv.mkDerivation (finalAttrs: { pname = "unison-code-manager"; - version = "0.5.15"; + version = "0.5.17"; src = if stdenv.isDarwin then fetchurl { url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-macos.tar.gz"; - hash = "sha256-Umpu9WQhg6ln6aBb6bPVUZSax1Zeh6vcYHwmQuFRx2Y="; + hash = "sha256-ymnioW+phbwIshs8DZupfe14oPUuunxSsT8rmifh914="; } else fetchurl { url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-linux.tar.gz"; - hash = "sha256-cFucBQcyye4F6Vep6O9buENFzqJ96q8/2cVr9NFvHB8="; + hash = "sha256-vaK7dKkjCPCfEb9GvkOiJ3jY/Jxb31sf98de3WTMG/A="; }; # The tarball is just the prebuilt binary, in the archive root. |