Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 runCommand, 4 stdenv, 5 llvm, 6 lld, 7 version, 8 release_version, 9}: 10 11let 12 targetPrefix = lib.optionalString ( 13 stdenv.hostPlatform != stdenv.targetPlatform 14 ) "${stdenv.targetPlatform.config}-"; 15in 16runCommand "llvm-binutils-${version}" 17 { 18 preferLocalBuild = true; 19 passthru = { 20 isLLVM = true; 21 inherit targetPrefix; 22 inherit llvm lld; 23 }; 24 } 25 ( 26 '' 27 mkdir -p $out/bin 28 for prog in ${lld}/bin/*; do 29 ln -s $prog $out/bin/${targetPrefix}$(basename $prog) 30 done 31 for prog in ${llvm}/bin/*; do 32 ln -sf $prog $out/bin/${targetPrefix}$(basename $prog) 33 done 34 35 llvmBin="${llvm}/bin" 36 37 ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ar 38 ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}dlltool 39 ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ranlib 40 ln -s $llvmBin/llvm-cxxfilt $out/bin/${targetPrefix}c++filt 41 ln -s $llvmBin/llvm-dwp $out/bin/${targetPrefix}dwp 42 ln -s $llvmBin/llvm-nm $out/bin/${targetPrefix}nm 43 ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}objcopy 44 ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}strip 45 ln -s $llvmBin/llvm-objdump $out/bin/${targetPrefix}objdump 46 ln -s $llvmBin/llvm-readobj $out/bin/${targetPrefix}readelf 47 ln -s $llvmBin/llvm-size $out/bin/${targetPrefix}size 48 ln -s $llvmBin/llvm-strings $out/bin/${targetPrefix}strings 49 ln -s $llvmBin/llvm-symbolizer $out/bin/${targetPrefix}addr2line 50 51 if [ -e "$llvmBin/llvm-debuginfod" ]; then 52 ln -s $llvmBin/llvm-debuginfod $out/bin/${targetPrefix}debuginfod 53 ln -s $llvmBin/llvm-debuginfod-find $out/bin/${targetPrefix}debuginfod-find 54 fi 55 56 ln -s ${lld}/bin/lld $out/bin/${targetPrefix}ld 57 58 # Only >=13 show GNU windres compatible in help 59 '' 60 + lib.optionalString (lib.versionAtLeast release_version "13") '' 61 ln -s $llvmBin/llvm-rc $out/bin/${targetPrefix}windres 62 '' 63 )