at master 1.8 kB view raw
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 mkdir -p $out/bin 27 for prog in ${lld}/bin/*; do 28 ln -s $prog $out/bin/${targetPrefix}$(basename $prog) 29 done 30 for prog in ${llvm}/bin/*; do 31 ln -sf $prog $out/bin/${targetPrefix}$(basename $prog) 32 done 33 34 llvmBin="${llvm}/bin" 35 36 ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ar 37 ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}dlltool 38 ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ranlib 39 ln -s $llvmBin/llvm-cxxfilt $out/bin/${targetPrefix}c++filt 40 ln -s $llvmBin/llvm-dwp $out/bin/${targetPrefix}dwp 41 ln -s $llvmBin/llvm-nm $out/bin/${targetPrefix}nm 42 ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}objcopy 43 ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}strip 44 ln -s $llvmBin/llvm-objdump $out/bin/${targetPrefix}objdump 45 ln -s $llvmBin/llvm-readobj $out/bin/${targetPrefix}readelf 46 ln -s $llvmBin/llvm-size $out/bin/${targetPrefix}size 47 ln -s $llvmBin/llvm-strings $out/bin/${targetPrefix}strings 48 ln -s $llvmBin/llvm-symbolizer $out/bin/${targetPrefix}addr2line 49 50 if [ -e "$llvmBin/llvm-debuginfod" ]; then 51 ln -s $llvmBin/llvm-debuginfod $out/bin/${targetPrefix}debuginfod 52 ln -s $llvmBin/llvm-debuginfod-find $out/bin/${targetPrefix}debuginfod-find 53 fi 54 55 ln -s ${lld}/bin/lld $out/bin/${targetPrefix}ld 56 57 # Only >=13 show GNU windres compatible in help 58 ln -s $llvmBin/llvm-rc $out/bin/${targetPrefix}windres 59 ''