[PATCH] Revise linker plugin API to better preserve link order.
commit73bf2d19b9d0ed88f5b424ec2a605d98c2e7b08c
authorDave Korn <dave.korn@artimi.com>
Thu, 10 Mar 2011 10:25:02 +0000 (10 10:25 +0000)
committerDave Korn <dave.korn@artimi.com>
Thu, 10 Mar 2011 10:25:02 +0000 (10 10:25 +0000)
tree677ab0ba78ef44ea080d180b5cf42e898a8a4f61
parenta13be087f47368832095a9cd36a2cdb5dcf9b61b
[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.
ld/ChangeLog
ld/ldlang.c
ld/ldlang.h
ld/ldmain.c