Patch binutils to produce more deterministic output
This commit is contained in:
parent
f22880408e
commit
0889bbe88f
@ -1,4 +1,6 @@
|
||||
{ stdenv, fetchurl, noSysDirs, zlib, cross ? null, gold ? false, bison ? null, flex2535 ? null, bc ? null, dejagnu ? null }:
|
||||
{ stdenv, fetchurl, noSysDirs, zlib
|
||||
, cross ? null, gold ? false, bison ? null, flex2535 ? null, bc ? null, dejagnu ? null
|
||||
, deterministic ? false }:
|
||||
|
||||
let basename = "binutils-2.23.1"; in
|
||||
stdenv.mkDerivation rec {
|
||||
@ -19,7 +21,7 @@ stdenv.mkDerivation rec {
|
||||
# That requires upstream changes for things to work. So we can patch it to
|
||||
# get the old behaviour by now.
|
||||
./dtneeded.patch
|
||||
];
|
||||
] ++ (stdenv.lib.optional deterministic ./deterministic.patch);
|
||||
|
||||
buildInputs =
|
||||
[ zlib ]
|
||||
@ -48,7 +50,8 @@ stdenv.mkDerivation rec {
|
||||
+ stdenv.lib.optionalString (stdenv.system == "mips64el-linux")
|
||||
" --enable-fix-loongson2f-nop"
|
||||
+ stdenv.lib.optionalString (cross != null) " --target=${cross.config}"
|
||||
+ stdenv.lib.optionalString gold " --enable-gold";
|
||||
+ stdenv.lib.optionalString gold " --enable-gold"
|
||||
+ stdenv.lib.optionalString deterministic " --enable-deterministic-archives";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
12
pkgs/development/tools/misc/binutils/deterministic.patch
Normal file
12
pkgs/development/tools/misc/binutils/deterministic.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -ur orig/binutils-2.23.1/ld/ldlang.c binutils-2.23.1/ld/ldlang.c
|
||||
--- orig/ld/ldlang.c
|
||||
+++ new/ld/ldlang.c
|
||||
@@ -3095,6 +3095,8 @@
|
||||
ldfile_output_machine))
|
||||
einfo (_("%P%F:%s: can not set architecture: %E\n"), name);
|
||||
|
||||
+ link_info.output_bfd->flags |= BFD_DETERMINISTIC_OUTPUT;
|
||||
+
|
||||
link_info.hash = bfd_link_hash_table_create (link_info.output_bfd);
|
||||
if (link_info.hash == NULL)
|
||||
einfo (_("%P%F: can not create hash table: %E\n"));
|
@ -3206,6 +3206,8 @@ let
|
||||
inherit noSysDirs;
|
||||
};
|
||||
|
||||
binutils_deterministic = binutils.override { deterministic = true; };
|
||||
|
||||
binutils_gold = lowPrio (callPackage ../development/tools/misc/binutils {
|
||||
inherit noSysDirs;
|
||||
gold = true;
|
||||
|
Loading…
Reference in New Issue
Block a user