lol
at 24.11-pre 49 lines 1.8 kB view raw
1{ lib, runCommand, stdenv, llvm, lld, version, release_version }: 2 3let 4 targetPrefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; 5in 6runCommand "llvm-binutils-${version}" 7{ 8 preferLocalBuild = true; 9 passthru = { 10 isLLVM = true; 11 inherit targetPrefix; 12 }; 13} 14 ('' 15 mkdir -p $out/bin 16 for prog in ${lld}/bin/*; do 17 ln -s $prog $out/bin/${targetPrefix}$(basename $prog) 18 done 19 for prog in ${llvm}/bin/*; do 20 ln -sf $prog $out/bin/${targetPrefix}$(basename $prog) 21 done 22 23 llvmBin="${llvm}/bin" 24 25 ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ar 26 ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}dlltool 27 ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ranlib 28 ln -s $llvmBin/llvm-cxxfilt $out/bin/${targetPrefix}c++filt 29 ln -s $llvmBin/llvm-dwp $out/bin/${targetPrefix}dwp 30 ln -s $llvmBin/llvm-nm $out/bin/${targetPrefix}nm 31 ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}objcopy 32 ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}strip 33 ln -s $llvmBin/llvm-objdump $out/bin/${targetPrefix}objdump 34 ln -s $llvmBin/llvm-readobj $out/bin/${targetPrefix}readelf 35 ln -s $llvmBin/llvm-size $out/bin/${targetPrefix}size 36 ln -s $llvmBin/llvm-strings $out/bin/${targetPrefix}strings 37 ln -s $llvmBin/llvm-symbolizer $out/bin/${targetPrefix}addr2line 38 39 if [ -e "$llvmBin/llvm-debuginfod" ]; then 40 ln -s $llvmBin/llvm-debuginfod $out/bin/${targetPrefix}debuginfod 41 ln -s $llvmBin/llvm-debuginfod-find $out/bin/${targetPrefix}debuginfod-find 42 fi 43 44 ln -s ${lld}/bin/lld $out/bin/${targetPrefix}ld 45 46 # Only >=13 show GNU windres compatible in help 47 '' + lib.optionalString (lib.versionAtLeast release_version "13") '' 48 ln -s $llvmBin/llvm-rc $out/bin/${targetPrefix}windres 49 '')