Merge pull request #28557 from obsidiansystems/binutils-wrapper
Binutils-wrapper: Init by refactoring out of cc-wrapper
This commit is contained in:
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
|
||||
buildCommand = ''
|
||||
mkdir -p $out
|
||||
tar -C $out -xjf ${dist}
|
||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
patchelf --set-interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
|
||||
$out/bin/lisp
|
||||
'';
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
|
||||
--suffix DYLD_LIBRARY_PATH : $libPath
|
||||
''
|
||||
else ''
|
||||
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
patchelf --set-interpreter $(cat $NIX_BINUTILS/nix-support/dynamic-linker) \
|
||||
crystal-${version}-1/embedded/bin/crystal
|
||||
patchelf --set-rpath ${ stdenv.lib.makeLibraryPath [ stdenv.cc.cc ] } \
|
||||
crystal-${version}-1/embedded/bin/crystal
|
||||
|
||||
@@ -49,7 +49,7 @@ let
|
||||
echo "patching $i..."
|
||||
if [[ ! $i =~ \.so ]]; then
|
||||
patchelf \
|
||||
--set-interpreter "''$(cat $NIX_CC/nix-support/dynamic-linker)" $i
|
||||
--set-interpreter "''$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" $i
|
||||
fi
|
||||
rpath2=$rpath:$lib/lib:$out/jre/lib/amd64/jli:$out/lib:$out/lib64:$out/nvvm/lib:$out/nvvm/lib64
|
||||
patchelf --set-rpath $rpath2 --force-rpath $i
|
||||
|
||||
@@ -25,7 +25,7 @@ if test "$noSysDirs" = "1"; then
|
||||
# Figure out what extra flags to pass to the gcc compilers
|
||||
# being generated to make sure that they use our glibc.
|
||||
extraFlags="$(cat $NIX_CC/nix-support/libc-cflags)"
|
||||
extraLDFlags="$(cat $NIX_CC/nix-support/libc-ldflags) $(cat $NIX_CC/nix-support/libc-ldflags-before || true)"
|
||||
extraLDFlags="$(cat $NIX_BINUTILS/nix-support/libc-ldflags) $(cat $NIX_BINUTILS/nix-support/libc-ldflags-before || true)"
|
||||
|
||||
# Use *real* header files, otherwise a limits.h is generated
|
||||
# that does not include Glibc's limits.h (notably missing
|
||||
|
||||
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
|
||||
# find editline/gmp.
|
||||
(if stdenv.isLinux then ''
|
||||
find . -type f -perm -0100 \
|
||||
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
-exec patchelf --interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
|
||||
--set-rpath "${lib.makeLibraryPath [ libedit ncurses5 gmp ]}" {} \;
|
||||
for prog in ld ar gcc strip ranlib; do
|
||||
find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
|
||||
|
||||
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
|
||||
# find editline/gmp.
|
||||
stdenv.lib.optionalString stdenv.isLinux ''
|
||||
find . -type f -perm -0100 \
|
||||
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
-exec patchelf --interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
|
||||
--set-rpath "${stdenv.lib.makeLibraryPath [ ncurses5 gmp ]}" {} \;
|
||||
sed -i "s|/usr/bin/perl|perl\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
|
||||
sed -i "s|/usr/bin/gcc|gcc\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
|
||||
|
||||
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
|
||||
mkdir -p "$out/lib"
|
||||
ln -sv "${ncurses5.out}/lib/libncurses.so" "$out/lib/libncurses${stdenv.lib.optionalString stdenv.is64bit "w"}.so.5"
|
||||
find . -type f -perm -0100 \
|
||||
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
-exec patchelf --interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
|
||||
--set-rpath "${stdenv.lib.makeLibraryPath [ "$out" gmp ]}" {} \;
|
||||
|
||||
paxmark m ./ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
|
||||
|
||||
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
|
||||
cp -R * $out
|
||||
set +e
|
||||
for a in $out/bin/* ; do
|
||||
patchelf --interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
patchelf --interpreter $(cat $NIX_BINUTILS/nix-support/dynamic-linker) \
|
||||
--set-rpath $(cat $NIX_CC/nix-support/orig-libc)/lib:$(cat $NIX_CC/nix-support/orig-cc)/lib64:$(cat $NIX_CC/nix-support/orig-cc)/lib $a
|
||||
done
|
||||
set -e
|
||||
|
||||
@@ -50,7 +50,7 @@ in stdenv.mkDerivation rec {
|
||||
"-DLLVM_BUILD_TESTS=ON"
|
||||
"-DLLVM_ENABLE_FFI=ON"
|
||||
"-DLLVM_REQUIRES_RTTI=1"
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.dev or binutils}/include"
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.binutils.dev or binutils.binutils}/include"
|
||||
"-DCMAKE_CXX_FLAGS=-std=c++11"
|
||||
] ++ stdenv.lib.optional (!stdenv.isDarwin) "-DBUILD_SHARED_LIBS=ON";
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ in stdenv.mkDerivation rec {
|
||||
] ++ stdenv.lib.optional enableSharedLibraries
|
||||
"-DBUILD_SHARED_LIBS=ON"
|
||||
++ stdenv.lib.optional (!isDarwin)
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.dev}/include"
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.binutils.dev}/include"
|
||||
++ stdenv.lib.optionals ( isDarwin) [
|
||||
"-DCMAKE_CXX_FLAGS=-stdlib=libc++"
|
||||
"-DCAN_TARGET_i386=false"
|
||||
|
||||
@@ -67,7 +67,7 @@ in stdenv.mkDerivation rec {
|
||||
] ++ stdenv.lib.optional enableSharedLibraries
|
||||
"-DBUILD_SHARED_LIBS=ON"
|
||||
++ stdenv.lib.optional (!isDarwin)
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.dev}/include"
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.binutils.dev}/include"
|
||||
++ stdenv.lib.optionals ( isDarwin) [
|
||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||
"-DCAN_TARGET_i386=false"
|
||||
|
||||
@@ -62,7 +62,7 @@ in stdenv.mkDerivation rec {
|
||||
] ++ stdenv.lib.optional enableSharedLibraries [
|
||||
"-DLLVM_LINK_LLVM_DYLIB=ON"
|
||||
] ++ stdenv.lib.optional (!isDarwin)
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.dev}/include"
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.binutils.dev}/include"
|
||||
++ stdenv.lib.optionals ( isDarwin) [
|
||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||
"-DCAN_TARGET_i386=false"
|
||||
|
||||
@@ -106,7 +106,7 @@ in stdenv.mkDerivation rec {
|
||||
] ++ stdenv.lib.optional enableSharedLibraries [
|
||||
"-DLLVM_LINK_LLVM_DYLIB=ON"
|
||||
] ++ stdenv.lib.optional (!isDarwin)
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.dev}/include"
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.binutils.dev}/include"
|
||||
++ stdenv.lib.optionals (isDarwin) [
|
||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||
"-DCAN_TARGET_i386=false"
|
||||
|
||||
@@ -90,7 +90,7 @@ in stdenv.mkDerivation rec {
|
||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||
]
|
||||
++ stdenv.lib.optional (!isDarwin)
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.dev}/include"
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.binutils.dev}/include"
|
||||
++ stdenv.lib.optionals (isDarwin) [
|
||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||
"-DCAN_TARGET_i386=false"
|
||||
|
||||
@@ -18,7 +18,7 @@ let
|
||||
tar --strip-components=1 -xjf "$src" -C "$out"
|
||||
|
||||
# Patch binaries
|
||||
interpreter="$(cat "$NIX_CC"/nix-support/dynamic-linker)"
|
||||
interpreter="$(cat "$NIX_BINUTILS/nix-support/dynamic-linker")"
|
||||
for file in "$out"/bin/* "$out"/libexec/gcc/*/*/* "$out"/*/bin/*; do
|
||||
# Skip non-executable files
|
||||
case "$file" in
|
||||
|
||||
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
cmakeFlags = with stdenv; [
|
||||
"-DLLVM_ENABLE_FFI=ON"
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.dev}/include"
|
||||
"-DLLVM_BINUTILS_INCDIR=${binutils.binutils.dev}/include"
|
||||
"-DCMAKE_CXX_FLAGS=-std=c++11"
|
||||
] ++ stdenv.lib.optional (!isDarwin) "-DBUILD_SHARED_LIBS=ON";
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
|
||||
tar xvf $src -C $out --strip-components=1
|
||||
|
||||
for exe in $out/bin/{ozemulator,ozwish} ; do
|
||||
patchelf --set-interpreter $(< $NIX_CC/nix-support/dynamic-linker) \
|
||||
patchelf --set-interpreter $(< $NIX_BINUTILS/nix-support/dynamic-linker) \
|
||||
--set-rpath $libPath \
|
||||
$exe
|
||||
done
|
||||
|
||||
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
|
||||
mkdir -p "$out"
|
||||
tar --strip-components=1 -xjf "$src" -C "$out"
|
||||
|
||||
interpreter="$(cat "$NIX_CC"/nix-support/dynamic-linker)"
|
||||
interpreter="$(cat "$NIX_BINUTILS/nix-support/dynamic-linker")"
|
||||
for a in "$out"/bin/*; do
|
||||
patchelf --set-interpreter "$interpreter" "$a"
|
||||
patchelf --set-rpath "$out/lib:${boehmgc.out}/lib" "$a"
|
||||
|
||||
@@ -5,7 +5,7 @@ unzip ${src} || true
|
||||
|
||||
# set the dynamic linker of unpack200, necessary for construct script
|
||||
echo "patching unpack200"
|
||||
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "" */bin/unpack200
|
||||
patchelf --interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" --set-rpath "" */bin/unpack200
|
||||
|
||||
echo "constructing JDK and JRE installations"
|
||||
if test -z "$installjdk"; then
|
||||
@@ -46,7 +46,7 @@ rpath=$rpath${rpath:+:}$jrePath/lib/$architecture/jli
|
||||
|
||||
# set all the dynamic linkers
|
||||
find $out -type f -perm -0100 \
|
||||
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
-exec patchelf --interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
|
||||
--set-rpath "$rpath" {} \;
|
||||
|
||||
find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
|
||||
|
||||
@@ -179,7 +179,7 @@ let result = stdenv.mkDerivation rec {
|
||||
|
||||
# set all the dynamic linkers
|
||||
find $out -type f -perm -0100 \
|
||||
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
-exec patchelf --interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
|
||||
--set-rpath "$rpath" {} \;
|
||||
|
||||
find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
|
||||
|
||||
@@ -42,17 +42,17 @@ rec {
|
||||
|
||||
${optionalString (needsPatchelf && bootstrapping) ''
|
||||
patchelf \
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
--set-interpreter $(cat $NIX_BINUTILS/nix-support/dynamic-linker) \
|
||||
"$out/bin/rustdoc"
|
||||
patchelf \
|
||||
--set-rpath "${stdenv.lib.makeLibraryPath [ curl zlib ]}" \
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
--set-interpreter $(cat $NIX_BINUTILS/nix-support/dynamic-linker) \
|
||||
"$out/bin/cargo"
|
||||
''}
|
||||
|
||||
${optionalString needsPatchelf ''
|
||||
patchelf \
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
--set-interpreter $(cat $NIX_BINUTILS/nix-support/dynamic-linker) \
|
||||
"$out/bin/rustc"
|
||||
|
||||
# Do NOT, I repeat, DO NOT use `wrapProgram` on $out/bin/rustc
|
||||
@@ -88,7 +88,7 @@ rec {
|
||||
${optionalString needsPatchelf ''
|
||||
patchelf \
|
||||
--set-rpath "${stdenv.lib.makeLibraryPath [ curl zlib ]}" \
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
--set-interpreter $(cat $NIX_BINUTILS/nix-support/dynamic-linker) \
|
||||
"$out/bin/cargo"
|
||||
''}
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
postFixup = stdenv.lib.optionalString (!stdenv.isArm && stdenv.isLinux) ''
|
||||
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/share/sbcl/sbcl
|
||||
patchelf --set-interpreter $(cat $NIX_BINUTILS/nix-support/dynamic-linker) $out/share/sbcl/sbcl
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
||||
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||
echo ${version} > VERSION
|
||||
|
||||
configureFlagsArray+=("--cc=cc")
|
||||
configureFlagsArray+=("--elfinterp=$(< $NIX_CC/nix-support/dynamic-linker)")
|
||||
configureFlagsArray+=("--elfinterp=$(< $NIX_BINUTILS/nix-support/dynamic-linker)")
|
||||
configureFlagsArray+=("--crtprefix=${getLib stdenv.cc.libc}/lib")
|
||||
configureFlagsArray+=("--sysincludepaths=${getDev stdenv.cc.libc}/include:{B}/include")
|
||||
configureFlagsArray+=("--libpaths=${getLib stdenv.cc.libc}/lib")
|
||||
|
||||
@@ -48,7 +48,7 @@ in stdenv.mkDerivation rec {
|
||||
|
||||
# set all the dynamic linkers
|
||||
find $out -type f -perm -0100 \
|
||||
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
-exec patchelf --interpreter "$(cat $NIX_BINUTILS/nix-support/dynamic-linker)" \
|
||||
--set-rpath "$rpath" {} \;
|
||||
|
||||
find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
|
||||
|
||||
Reference in New Issue
Block a user