Skip to content

Commit

Permalink
Revert "Merge pull request #28557 from obsidiansystems/binutils-wrapper"
Browse files Browse the repository at this point in the history
This reverts commit 0a944b3, reversing
changes made to 61733ed.

I dislike these massive stdenv changes with unclear motivation,
especially when they involve gratuitous mass renames like NIX_CC ->
NIX_BINUTILS. The previous such rename (NIX_GCC -> NIX_CC) caused
months of pain, so let's not do that again.

(cherry picked from commit ec8d41f)
  • Loading branch information
edolstra committed Sep 7, 2017
1 parent 2f5ee49 commit 460df30
Show file tree
Hide file tree
Showing 183 changed files with 543 additions and 876 deletions.
50 changes: 13 additions & 37 deletions doc/stdenv.xml
@@ -1,3 +1,4 @@

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

<varlistentry>
<term>Binutils Wrapper</term>
<term>CC Wrapper</term>
<listitem>
<para>
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.
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.
</para>
<para>
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.
Dependency finding is undoubtedly the main task of CC wrapper.
It is currently accomplished by collecting directories of host-platform dependencies (i.e. <varname>buildInputs</varname> and <varname>nativeBuildInputs</varname>) in environment variables.
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.
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.
</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 Binutils Wrapper's binaries will be on the path.
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.
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 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.
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.
</para>
<para>
A problem with this final task is that Binutils Wrapper is honest and defines <envar>LD</envar> as <command>ld</command>.
A problem with this final task is that CC 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 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.
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.
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
Expand Up @@ -35,7 +35,7 @@ stdenv.mkDerivation rec {

buildPhase = ''
patchelf \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_CC/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
Expand Up @@ -61,7 +61,7 @@ stdenv.mkDerivation {
cp -r ./usr/share $out
cp -r ./usr/bin $out
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_CC/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
Expand Up @@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
mkdir $out/bin
ln -s $out/renoise $out/bin/renoise
patchelf --set-interpreter $(cat $NIX_BINUTILS/nix-support/dynamic-linker) --set-rpath $out/lib $out/renoise
patchelf --set-interpreter $(cat $NIX_CC/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
Expand Up @@ -89,7 +89,7 @@ stdenv.mkDerivation {
rpath="$out/share/spotify:$libdir"
patchelf \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_CC/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
Expand Up @@ -25,10 +25,10 @@ stdenv.mkDerivation rec {
fixupPhase
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}:$out/share/atom" \
$out/share/atom/atom
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_CC/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
Expand Up @@ -36,11 +36,11 @@ stdenv.mkDerivation rec {
'';

postFixup = ''
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${bracketsLibs}:$out/opt/brackets/lib" \
$out/opt/brackets/Brackets
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_CC/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
Expand Up @@ -35,7 +35,7 @@ let
ln -s ${cmake} bin/cmake
lldbLibPath=$out/clion-${version}/bin/lldb/lib
interp="$(cat $NIX_BINUTILS/nix-support/dynamic-linker)"
interp="$(cat $NIX_CC/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
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_BINUTILS/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "$out:${atomEnv.libPath}" \
$out/kodestudio
patchelf \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_CC/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_BINUTILS/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_CC/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_BINUTILS/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_CC/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_BINUTILS/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_CC/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_BINUTILS/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_CC/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_BINUTILS/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_CC/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
Expand Up @@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
mv ./${name}-linux/* $out/share/LightTable
patchelf \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_CC/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
Expand Up @@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
echo ${libPath}
patchelf \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_CC/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
Expand Up @@ -50,7 +50,7 @@ in let
buildPhase = ''
for i in sublime_text plugin_host crash_reporter; do
patchelf \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_CC/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
Expand Up @@ -66,7 +66,7 @@ stdenv.mkDerivation rec {

postFixup = ''
patchelf \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_CC/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
Expand Up @@ -72,7 +72,7 @@ in

postFixup = lib.optionalString (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") ''
patchelf \
--set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--set-interpreter "$(cat $NIX_CC/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
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_BINUTILS/nix-support/dynamic-linker)" \
patchelf --interpreter "$(cat $NIX_CC/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
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_BINUTILS/nix-support/dynamic-linker)" \
patchelf --interpreter "$(cat $NIX_CC/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
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_BINUTILS/nix-support/dynamic-linker)" \
patchelf --interpreter "$(cat $NIX_CC/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
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_BINUTILS/nix-support/dynamic-linker")"
INTERPRETER="$(cat "$NIX_CC"/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
Expand Up @@ -28,7 +28,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_BINUTILS/nix-support/dynamic-linker)" --set-rpath "${libPath}:\$ORIGIN" "$out/opt/Hyper/hyper"
patchelf --set-interpreter "$(cat $NIX_CC/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
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_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
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
'';

installPhase = ''
Expand Down
2 changes: 1 addition & 1 deletion pkgs/applications/misc/kdbplus/default.nix
Expand Up @@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin $out/libexec
patchelf \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_CC/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
Expand Up @@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
postInstall = ''
cp -r src/dependencies/xulrunner $out/lib/kiwix
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" $out/lib/kiwix/xulrunner/xulrunner
patchelf --set-interpreter "$(cat $NIX_CC/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
Expand Up @@ -33,7 +33,7 @@ stdenv.mkDerivation {
cp usr/bin/rescuetime $out/bin
${patchelf}/bin/patchelf \
--interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
--interpreter "$(cat $NIX_CC/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
Expand Up @@ -47,7 +47,7 @@
fixupPhase
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
patchelf --set-interpreter "$(cat $NIX_CC/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
Expand Up @@ -27,7 +27,7 @@ stdenv.mkDerivation rec {

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

meta = {
Expand Down
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_BINUTILS/nix-support/dynamic-linker)" \
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
"$out/usr/lib/firefox-bin-${version}/$executable"
fi
done
Expand Down
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_BINUTILS/nix-support/dynamic-linker)" $elf
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf
done
'';

Expand Down

0 comments on commit 460df30

Please sign in to comment.