summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2013-03-27 20:21:18 +0000
committermiod <miod@openbsd.org>2013-03-27 20:21:18 +0000
commitd84485d6308a38b1dda38c38733c0932f9fe5aad (patch)
tree6691b2b58a095af87325c9bc686ba4471df859ae
parentfix wrapped line that snuck in an extra \n in a question. (diff)
downloadwireguard-openbsd-d84485d6308a38b1dda38c38733c0932f9fe5aad.tar.xz
wireguard-openbsd-d84485d6308a38b1dda38c38733c0932f9fe5aad.zip
Revert the --as-needed logic to match the 2.15 logic. It is now aggressively
trying to avoid symbols needed by inter-library dependencies, assuming that libraries are built with inter-library dependency information. Such is not the case under OpenBSD and there are currently no plans to change this.
-rw-r--r--gnu/usr.bin/binutils-2.17/bfd/elflink.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gnu/usr.bin/binutils-2.17/bfd/elflink.c b/gnu/usr.bin/binutils-2.17/bfd/elflink.c
index 9645bdb32ed..96790f0a90d 100644
--- a/gnu/usr.bin/binutils-2.17/bfd/elflink.c
+++ b/gnu/usr.bin/binutils-2.17/bfd/elflink.c
@@ -3079,8 +3079,11 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
bfd_boolean add_needed;
struct elf_link_hash_table *htab;
bfd_size_type amt;
+#if 0
void *alloc_mark = NULL;
+#endif
void *old_tab = NULL;
+#if 0
void *old_hash;
void *old_ent;
struct bfd_link_hash_entry *old_undefs = NULL;
@@ -3088,6 +3091,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
long old_dynsymcount = 0;
size_t tabsize = 0;
size_t hashsize = 0;
+#endif
htab = elf_hash_table (info);
bed = get_elf_backend_data (abfd);
@@ -3462,6 +3466,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
}
}
+#if 0
/* If we are loading an as-needed shared lib, save the symbol table
state before we start adding symbols. If the lib turns out
to be unneeded, restore the state. */
@@ -3524,6 +3529,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
}
}
}
+#endif
weaks = NULL;
ever = extversym != NULL ? extversym + extsymoff : NULL;
@@ -4133,6 +4139,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
isymbuf = NULL;
}
+#if 0
if ((elf_dyn_lib_class (abfd) & DYN_AS_NEEDED) != 0)
{
unsigned int i;
@@ -4176,6 +4183,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
free (nondeflt_vers);
return TRUE;
}
+#endif
if (old_tab != NULL)
{