summaryrefslogtreecommitdiff
path: root/ld/plugin.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2011-10-20 09:50:58 +0000
committerAlan Modra <amodra@bigpond.net.au>2011-10-20 09:50:58 +0000
commit7f41a025abf49d120fda96d6d1e99d729d66cd6f (patch)
treed2ec5ecff75c3f7bbd73252d85698b23944aa22c /ld/plugin.c
parent3f58664422716b8195f2e56c81449603b359afbd (diff)
downloadbinutils-redhat-7f41a025abf49d120fda96d6d1e99d729d66cd6f.tar.gz
PR ld/13287
* plugin.c (plugin_should_reload): New function. * plugin.h (plugin_should_reload): Declare. * ldlang.c (open_input_bfds): Use above function.
Diffstat (limited to 'ld/plugin.c')
-rw-r--r--ld/plugin.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/ld/plugin.c b/ld/plugin.c
index 5f4aa8faa6..91fe48b9f2 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -1014,3 +1014,14 @@ plugin_notice (struct bfd_link_info *info,
abfd, section, value, flags, string);
return TRUE;
}
+
+/* Return true if bfd is a dynamic library that should be reloaded. */
+
+bfd_boolean
+plugin_should_reload (bfd *abfd)
+{
+ return ((abfd->flags & DYNAMIC) != 0
+ && bfd_get_flavour (abfd) == bfd_target_elf_flavour
+ && bfd_get_format (abfd) == bfd_object
+ && (elf_dyn_lib_class (abfd) & DYN_AS_NEEDED) != 0);
+}