From 4aadd44044e291e0fdc529d97b46be152b1c3989 Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Fri, 30 May 2025 18:12:26 -0700 Subject: [PATCH] zig: fix cc and bintools --- pkgs/development/compilers/zig/bintools.nix | 8 ++++++-- pkgs/development/compilers/zig/cc.nix | 10 ++++++---- pkgs/development/compilers/zig/generic.nix | 3 ++- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/pkgs/development/compilers/zig/bintools.nix b/pkgs/development/compilers/zig/bintools.nix index db5803ef1865..c14817cbb375 100644 --- a/pkgs/development/compilers/zig/bintools.nix +++ b/pkgs/development/compilers/zig/bintools.nix @@ -4,6 +4,7 @@ zig, runCommand, makeWrapper, + coreutils, }: let targetPrefix = lib.optionalString ( @@ -26,9 +27,12 @@ runCommand "zig-bintools-${zig.version}" } '' mkdir -p $out/bin - for tool in ar objcopy ranlib; do - makeWrapper "$zig/bin/zig" "$out/bin/${targetPrefix}$tool" \ + for tool in ar objcopy ranlib ld.lld; do + makeWrapper "$zig/bin/zig" "$out/bin/$tool" \ --add-flags "$tool" \ + --suffix PATH : "${lib.makeBinPath [ coreutils ]}" \ --run "export ZIG_GLOBAL_CACHE_DIR=\$(mktemp -d)" done + + ln -s $out/bin/ld.lld $out/bin/ld '' diff --git a/pkgs/development/compilers/zig/cc.nix b/pkgs/development/compilers/zig/cc.nix index 71d1211d89fa..bfbfb49de365 100644 --- a/pkgs/development/compilers/zig/cc.nix +++ b/pkgs/development/compilers/zig/cc.nix @@ -4,6 +4,7 @@ zig, stdenv, makeWrapper, + coreutils, }: let targetPrefix = lib.optionalString ( @@ -27,12 +28,13 @@ runCommand "zig-cc-${zig.version}" '' mkdir -p $out/bin for tool in cc c++ ld.lld; do - makeWrapper "$zig/bin/zig" "$out/bin/${targetPrefix}$tool" \ + makeWrapper "$zig/bin/zig" "$out/bin/$tool" \ --add-flags "$tool" \ + --suffix PATH : "${lib.makeBinPath [ coreutils ]}" \ --run "export ZIG_GLOBAL_CACHE_DIR=\$(mktemp -d)" done - mv $out/bin/${targetPrefix}c++ $out/bin/${targetPrefix}clang++ - mv $out/bin/${targetPrefix}cc $out/bin/${targetPrefix}clang - mv $out/bin/${targetPrefix}ld.lld $out/bin/${targetPrefix}ld + ln -s $out/bin/c++ $out/bin/clang++ + ln -s $out/bin/cc $out/bin/clang + ln -s $out/bin/ld.lld $out/bin/ld '' diff --git a/pkgs/development/compilers/zig/generic.nix b/pkgs/development/compilers/zig/generic.nix index 8e0f8317f619..725aae552a25 100644 --- a/pkgs/development/compilers/zig/generic.nix +++ b/pkgs/development/compilers/zig/generic.nix @@ -155,10 +155,11 @@ stdenv.mkDerivation (finalAttrs: { cc = wrapCCWith { cc = finalAttrs.finalPackage.cc-unwrapped; bintools = finalAttrs.finalPackage.bintools; + extraPackages = [ ]; nixSupport.cc-cflags = [ "-target" - "${stdenv.targetPlatform.config}" + "${stdenv.targetPlatform.system}-${stdenv.targetPlatform.parsed.abi.name}" ] ++ lib.optional ( stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.isStatic or false)