summaryrefslogtreecommitdiff
path: root/binutils/patches/014_hash_style-both.patch
diff options
context:
space:
mode:
Diffstat (limited to 'binutils/patches/014_hash_style-both.patch')
-rw-r--r--binutils/patches/014_hash_style-both.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/binutils/patches/014_hash_style-both.patch b/binutils/patches/014_hash_style-both.patch
new file mode 100644
index 0000000..61c3e61
--- /dev/null
+++ b/binutils/patches/014_hash_style-both.patch
@@ -0,0 +1,30 @@
+# DP: Default to --hash-style=both in ld.bfd and ld.gold.
+
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -287,6 +288,14 @@
+ emulation = get_emulation (argc, argv);
+ ldemul_choose_mode (emulation);
+ default_target = ldemul_choose_target (argc, argv);
++
++ /* Default to --hash-style=gnu */
++ if (strcmp (default_target, "elf32-tradbigmips") != 0
++ && strcmp (default_target, "elf32-tradlittlemips") != 0)
++ {
++ link_info.emit_gnu_hash = TRUE;
++ }
++
+ config.maxpagesize = bfd_emul_get_maxpagesize (default_target);
+ config.commonpagesize = bfd_emul_get_commonpagesize (default_target);
+ lang_init ();
+--- a/gold/options.h
++++ b/gold/options.h
+@@ -794,7 +794,7 @@
+ N_("Min fraction of empty buckets in dynamic hash"),
+ N_("FRACTION"));
+
+- DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "sysv",
++ DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "both",
+ N_("Dynamic hash style"), N_("[sysv,gnu,both]"),
+ {"sysv", "gnu", "both"});
+