Skip to content

Commit

Permalink
Merge pull request #28557 from obsidiansystems/binutils-wrapper
Browse files Browse the repository at this point in the history
Binutils-wrapper: Init by refactoring out of cc-wrapper
  • Loading branch information
Ericson2314 committed Sep 3, 2017
2 parents 61733ed + 44cc709 commit 0a944b3
Show file tree
Hide file tree
Showing 183 changed files with 876 additions and 543 deletions.
50 changes: 37 additions & 13 deletions doc/stdenv.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="chap-stdenv">
Expand Down Expand Up @@ -1343,36 +1342,61 @@ someVar=$(stripHash $name)
<variablelist>

<varlistentry>
<term>CC Wrapper</term>
<term>Binutils Wrapper</term>
<listitem>
<para>
CC Wrapper wraps a C toolchain for a bunch of miscellaneous purposes.
Specifically, a C compiler (GCC or Clang), Binutils (or the CCTools + binutils mashup when targetting Darwin), and a C standard library (glibc or Darwin's libSystem) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by CC Wrapper.
Packages typically depend on only CC Wrapper, instead of those 3 inputs directly.
Binutils Wrapper wraps the binary utilities for a bunch of miscellaneous purposes.
Specifically, GNU Binutils (for Linux, but a mix of cctools and GNU Binutils for Darwin), and a C standard library (glibc or Darwin's libSystem, just for the dynamic loader) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by Binutils Wrapper.
Packages typically depend on CC Wrapper, which in turn (at run time) depends on binutils-wrapper.
</para>
<para>
Dependency finding is undoubtedly the main task of CC wrapper.
Binutils Wrapper was only just recently split off from CC Wrapper, so the division of labor is still being worked out.
For example, it shouldn't care about about the C standard library, but just take a derivation with the dynamic loader (which happens to be the glibc on linux).
Dependency finding however is a task both wrappers will continue to need to share, and probably the most important to understand.
It is currently accomplished by collecting directories of host-platform dependencies (i.e. <varname>buildInputs</varname> and <varname>nativeBuildInputs</varname>) in environment variables.
CC wrapper's setup hook causes any <filename>include</filename> subdirectory of such a dependency to be added to <envar>NIX_CFLAGS_COMPILE</envar>, and any <filename>lib</filename> and <filename>lib64</filename> subdirectories to <envar>NIX_LDFLAGS</envar>.
The setup hook itself contains some lengthy comments describing the exact convoluted mechanism by which this is accomplished.
Binutils Wrapper's setup hook causes any <filename>lib</filename> and <filename>lib64</filename> subdirectories to <envar>NIX_LDFLAGS</envar>.
Sine CC Wrapper and Binutils Wrapper use the same strategy, most of the Binutils Wrapper code is sparsely commented and refers to CC Wrapper.
But CC Wrapper's code, by contrast, has quite lengthy comments.
Binutils Wrapper merely cites those, rather than repeating them, to avoid falling out of sync.
</para>
<para>
A final task of the setup hook is defining a number of standard environment variables to tell build systems which executables full-fill which purpose.
They are defined to just be the base name of the tools, under the assumption that CC Wrapper's binaries will be on the path.
They are defined to just be the base name of the tools, under the assumption that Binutils Wrapper's binaries will be on the path.
Firstly, this helps poorly-written packages, e.g. ones that look for just <command>gcc</command> when <envar>CC</envar> isn't defined yet <command>clang</command> is to be used.
Secondly, this helps packages not get confused when cross-compiling, in which case multiple CC wrappers may be simultaneous in use (targeting different platforms).
<envar>BUILD_</envar>- and <envar>TARGET_</envar>-prefixed versions of the normal environment variable are defined for the additional CC Wrappers, properly disambiguating them.
Secondly, this helps packages not get confused when cross-compiling, in which case multiple Binutils Wrappers may be simultaneous in use (targeting different platforms).
<envar>BUILD_</envar>- and <envar>TARGET_</envar>-prefixed versions of the normal environment variable are defined for the additional Binutils Wrappers, properly disambiguating them.
</para>
<para>
A problem with this final task is that CC Wrapper is honest and defines <envar>LD</envar> as <command>ld</command>.
A problem with this final task is that Binutils Wrapper is honest and defines <envar>LD</envar> as <command>ld</command>.
Most packages, however, firstly use the C compiler for linking, secondly use <envar>LD</envar> anyways, defining it as the C compiler, and thirdly, only so define <envar>LD</envar> when it is undefined as a fallback.
This triple-threat means CC Wrapper will break those packages, as LD is already defined as the actually linker which the package won't override yet doesn't want to use.
This triple-threat means Binutils Wrapper will break those packages, as LD is already defined as the actually linker which the package won't override yet doesn't want to use.
The workaround is to define, just for the problematic package, <envar>LD</envar> as the C compiler.
A good way to do this would be <command>preConfigure = "LD=$CC"</command>.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>CC Wrapper</term>
<listitem>
<para>
CC Wrapper wraps a C toolchain for a bunch of miscellaneous purposes.
Specifically, a C compiler (GCC or Clang), Binutils (or the CCTools + binutils mashup when targetting Darwin), and a C standard library (glibc or Darwin's libSystem, just for the dynamic loader) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by Binutils Wrapper.
Packages typically depend on CC Wrapper, which in turn (at run time) depends on Binutils Wrapper.
</para>
<para>
Dependency finding is undoubtedly the main task of CC Wrapper.
This works just like Binutils Wrapper, except the any <filename>include</filename> subdirectory of any relevant dependency is added to <envar>NIX_CFLAGS_COMPILE</envar>.
The setup hook itself contains some lengthy comments describing the exact convoluted mechanism by which this is accomplished.
</para>
<para>
CC Wrapper also like Binutils Wrapper defines standard environment variables with the names of the tools it wraps, for the same reasons described above.
Importantly, while it includes a <command>cc</command> symlink to the c compiler for portability, the <envar>CC</envar> will be defined using the compiler's "real name" (i.e. <command>gcc</command> or <command>clang</command>).
This helps lousy build systems that inspect on the name of the compiler rather than run it.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Perl</term>
<listitem><para>Adds the <filename>lib/site_perl</filename> subdirectory
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/audio/google-musicmanager/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ stdenv.mkDerivation rec {

buildPhase = ''
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath "$out/opt/google/musicmanager:${stdenv.lib.makeLibraryPath [ readline ncurses stdenv.cc.libc.out qt48 stdenv.cc.cc libidn expat flac libvorbis ]}" opt/google/musicmanager/MusicManager
'';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ stdenv.mkDerivation {
cp -r ./usr/share $out
cp -r ./usr/bin $out
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
"$out/share/google-play-music-desktop-player/Google Play Music Desktop Player"
wrapProgram $out/bin/google-play-music-desktop-player \
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/audio/renoise/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
mkdir $out/bin
ln -s $out/renoise $out/bin/renoise
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --set-rpath $out/lib $out/renoise
patchelf --set-interpreter $(cat $NIX_BINUTILS/nix-support/dynamic-linker) --set-rpath $out/lib $out/renoise
'';

meta = {
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/audio/spotify/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ stdenv.mkDerivation {
rpath="$out/share/spotify:$libdir"
patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath $rpath $out/share/spotify/spotify
librarypath="${stdenv.lib.makeLibraryPath deps}:$libdir"
Expand Down
4 changes: 2 additions & 2 deletions pkgs/applications/editors/atom/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ stdenv.mkDerivation rec {
fixupPhase
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}:$out/share/atom" \
$out/share/atom/atom
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}" \
$out/share/atom/resources/app/apm/bin/node
Expand Down
4 changes: 2 additions & 2 deletions pkgs/applications/editors/brackets/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ stdenv.mkDerivation rec {
'';

postFixup = ''
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath "${bracketsLibs}:$out/opt/brackets/lib" \
$out/opt/brackets/Brackets
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath "${bracketsLibs}" \
$out/opt/brackets/Brackets-node
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/editors/jetbrains/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ let
ln -s ${cmake} bin/cmake
lldbLibPath=$out/clion-${version}/bin/lldb/lib
interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
interp="$(cat $NIX_BINUTILS/nix-support/dynamic-linker)"
ln -s ${ncurses.out}/lib/libncurses.so $lldbLibPath/libtinfo.so.5
patchelf --set-interpreter $interp \
Expand Down
14 changes: 7 additions & 7 deletions pkgs/applications/editors/kodestudio/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -50,31 +50,31 @@ in
postFixup = lib.optionalString (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") ''
# Patch Binaries
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath "$out:${atomEnv.libPath}" \
$out/kodestudio
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath ".:${stdenv.cc.libc}/lib:${xorg.libXinerama}/lib:${xorg.libX11}/lib:${alsaLib}/lib:${mesa}/lib:${openssl.out}/lib" \
$out/resources/app/extensions/krom/Krom/linux/Krom
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath ".:${stdenv.cc.libc}/lib" \
$out/resources/app/extensions/kha/Kha/Kore/Tools/krafix/krafix-linux64
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath ".:${stdenv.cc.libc}/lib" \
$out/resources/app/extensions/kha/Kha/Kore/Tools/kraffiti/kraffiti-linux64
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" \
$out/resources/app/extensions/kha/Kha/Tools/kravur/kravur-linux64
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath ".:${stdenv.cc.libc}/lib:${zlib}/lib" \
$out/resources/app/extensions/kha/Kha/Tools/haxe/haxe-linux64
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath ".:${stdenv.cc.libc}/lib:${libvorbis}/lib:${libogg}/lib:${flac.out}/lib" \
$out/resources/app/extensions/kha/Kha/Tools/oggenc/oggenc-linux64
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/editors/lighttable/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
mv ./${name}-linux/* $out/share/LightTable
patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath ${libPath}:${libPath}/lib64:$out/share/LightTable \
$out/share/LightTable/LightTable
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/editors/sublime/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
echo ${libPath}
patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \
$out/sublime/sublime_text
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/editors/sublime3/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ in let
buildPhase = ''
for i in sublime_text plugin_host crash_reporter; do
patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \
$i
done
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/editors/typora/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ stdenv.mkDerivation rec {

postFixup = ''
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath "$out/share/typora:${rpath}" "$out/share/typora/Typora"
ln -s "$out/share/typora/Typora" "$out/bin/typora"
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/editors/vscode/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ in

postFixup = lib.optionalString (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") ''
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath "${rpath}" \
$out/lib/vscode/code
'';
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/graphics/draftsight/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ stdenv.mkDerivation {
mkdir $out/bin
for exe in DraftSight dsHttpApiController dsHttpApiService FxCrashRptApp HelpGuide; do
echo "Patching $exe..."
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
patchelf --interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath $libPath:\$ORIGIN/../Libraries \
$out/draftsight/opt/dassault-systemes/DraftSight/Linux/$exe
makeWrapper $out/draftsight/opt/dassault-systemes/DraftSight/Linux/$exe \
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/misc/adobe-reader/builder.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ rm $p/Reader/intellinux/plug_ins/PPKLite.api
# More pointless files.
rm $p/bin/UNINSTALL

patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
patchelf --interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath $libPath \
$p/Reader/intellinux/bin/acroread

Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/misc/googleearth/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
rm $out/bin/google-earth $out/opt/google/earth/free/google-earth
ln -s $out/opt/google/earth/free/googleearth $out/bin/google-earth
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
patchelf --interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath "${fullPath}:\$ORIGIN" \
$out/opt/google/earth/free/googleearth-bin
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/misc/houdini/runtime.nix
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
echo "export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"" >> $out/houdini/sbin/app_init.sh
'';
postFixup = ''
INTERPRETER="$(cat "$NIX_CC"/nix-support/dynamic-linker)"
INTERPRETER="$(cat "$NIX_BINUTILS/nix-support/dynamic-linker")"
for BIN in $(find $out/bin -type f -executable); do
if patchelf $BIN 2>/dev/null ; then
echo "Patching ELF $BIN"
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/misc/hyper/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
mkdir -p "$out/bin"
mv opt "$out/"
ln -s "$out/opt/Hyper/hyper" "$out/bin/hyper"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${libPath}:\$ORIGIN" "$out/opt/Hyper/hyper"
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" --set-rpath "${libPath}:\$ORIGIN" "$out/opt/Hyper/hyper"
mv usr/* "$out/"
'';
dontPatchELF = true;
Expand Down
4 changes: 2 additions & 2 deletions pkgs/applications/misc/ipmiview/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ stdenv.mkDerivation rec {
buildPhase = with xorg; ''
patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libX11 libXext libXrender libXtst libXi ]}" ./jre/lib/amd64/xawt/libmawt.so
patchelf --set-rpath "${gcc.cc}/lib" ./libiKVM64.so
patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libXcursor libX11 libXext libXrender libXtst libXi ]}" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/javaws
patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java
patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libXcursor libX11 libXext libXrender libXtst libXi ]}" --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" ./jre/bin/javaws
patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" ./jre/bin/java
'';

installPhase = ''
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/misc/kdbplus/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin $out/libexec
patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath ${libPath} \
./q/l32/q
mv ./q/l32/q $out/libexec/q
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/misc/kiwix/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
postInstall = ''
cp -r src/dependencies/xulrunner $out/lib/kiwix
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/lib/kiwix/xulrunner/xulrunner
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" $out/lib/kiwix/xulrunner/xulrunner
rm $out/bin/kiwix
makeWrapper $out/lib/kiwix/kiwix-launcher $out/bin/kiwix \
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/misc/rescuetime/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ stdenv.mkDerivation {
cp usr/bin/rescuetime $out/bin
${patchelf}/bin/patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
$out/bin/rescuetime
wrapProgram $out/bin/rescuetime \
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/misc/simplenote/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
fixupPhase
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-rpath "${libPath}:$out/share/simplenote" \
$out/share/simplenote/simplenote
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/networking/bittorrentsync/generic.nix
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ stdenv.mkDerivation rec {

installPhase = ''
install -D btsync "$out/bin/btsync"
patchelf --interpreter "$(< $NIX_CC/nix-support/dynamic-linker)" --set-rpath ${libPath} "$out/bin/btsync"
patchelf --interpreter "$(< $NIX_BINUTILS/nix-support/dynamic-linker)" --set-rpath ${libPath} "$out/bin/btsync"
'';

meta = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ stdenv.mkDerivation {
updater crashreporter webapprt-stub
do
if [ -e "$out/usr/lib/firefox-bin-${version}/$executable" ]; then
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
patchelf --interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
"$out/usr/lib/firefox-bin-${version}/$executable"
fi
done
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ in stdenv.mkDerivation rec {
for elf in $out/share/google/$appname/{chrome,chrome-sandbox,nacl_helper}; do
patchelf --set-rpath $rpath $elf
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" $elf
done
'';

Expand Down
Loading

0 comments on commit 0a944b3

Please sign in to comment.