binutils: Add lib output

Some packages depend on libbfd. This prevents them from having all of
binutils in their closure (which is 29 MiB).
This commit is contained in:
Eelco Dolstra 2016-10-14 17:52:14 +02:00
parent 1ded0cb24c
commit bbc204cd98
2 changed files with 26 additions and 1 deletions

View file

@ -32,9 +32,15 @@ stdenv.mkDerivation rec {
# This is needed, for instance, so that running "ldd" on a binary that is
# PaX-marked to disable mprotect doesn't fail with permission denied.
./pt-pax-flags.patch
# Bfd looks in BINDIR/../lib for some plugins that don't
# exist. This is pointless (since users can't install plugins
# there) and causes a cycle between the lib and bin outputs, so
# get rid of it.
./no-plugins.patch
];
outputs = [ "out" "info" ] ++ (optional (cross == null) "dev");
outputs = [ "out" "lib" "info" ] ++ (optional (cross == null) "dev");
nativeBuildInputs = [ bison ];
buildInputs = [ zlib ];

View file

@ -0,0 +1,19 @@
diff -ru binutils-2.27-orig/bfd/plugin.c binutils-2.27/bfd/plugin.c
--- binutils-2.27-orig/bfd/plugin.c 2016-10-14 17:46:30.791315555 +0200
+++ binutils-2.27/bfd/plugin.c 2016-10-14 17:46:38.583298765 +0200
@@ -333,6 +333,7 @@
if (plugin_program_name == NULL)
return found;
+#if 0
plugin_dir = concat (BINDIR, "/../lib/bfd-plugins", NULL);
p = make_relative_prefix (plugin_program_name,
BINDIR,
@@ -364,6 +365,7 @@
free (p);
if (d)
closedir (d);
+#endif
return found;
}