diff options
author | Dave Korn <dave.korn@artimi.com> | 2011-03-10 10:25:02 +0000 |
---|---|---|
committer | Dave Korn <dave.korn@artimi.com> | 2011-03-10 10:25:02 +0000 |
commit | 73bf2d19b9d0ed88f5b424ec2a605d98c2e7b08c (patch) | |
tree | 677ab0ba78ef44ea080d180b5cf42e898a8a4f61 /ld/ldmain.c | |
parent | a13be087f47368832095a9cd36a2cdb5dcf9b61b (diff) | |
download | binutils-redhat-73bf2d19b9d0ed88f5b424ec2a605d98c2e7b08c.tar.gz |
[PATCH] Revise linker plugin API to better preserve link order.
ld/ChangeLog:
2011-03-10 Dave Korn <dave.korn.cygwin@gmail.com>
* ldlang.h (lang_input_statement_type): Add new 'claim_archive' flag,
wrapping both it and 'claim' flag in #ifdef ENABLE_PLUGINS.
* ldmain.c (add_archive_element): Set it if the member is claimed.
* ldlang.c (new_afile): Initialise claim_archive and claimed members.
(find_replacements_insert_point): New helper function.
(lang_process): After adding and opening replacement files passed
from plugin, splice them into correct place in statement list and
file chains to preserve critical link order.
(lang_list_insert_after): New helper function.
(lang_list_remove_tail): Likewise.
Diffstat (limited to 'ld/ldmain.c')
-rw-r--r-- | ld/ldmain.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c index 6e86c3d996..005a894069 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -833,6 +833,7 @@ add_archive_element (struct bfd_link_info *info, /* Substitute the dummy BFD. */ input->the_bfd = file.handle; input->claimed = TRUE; + input->claim_archive = TRUE; bfd_make_readable (input->the_bfd); *subsbfd = input->the_bfd; } |