X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=ld%2Fplugin.h;h=002562677503bccc4c8d13520fe8b5b9d06ecf27;hb=250d07de5cf6efc81ed934c25292beb63c7e3129;hp=cd8c0643f8b9bf98d8f2c2e937d37ad3565390f4;hpb=a48d02c9a70f4fd8bf0331db06141c3c7b400998;p=thirdparty%2Fbinutils-gdb.git diff --git a/ld/plugin.h b/ld/plugin.h index cd8c0643f8b..00256267750 100644 --- a/ld/plugin.h +++ b/ld/plugin.h @@ -1,5 +1,5 @@ /* Plugin control for the GNU linker. - Copyright 2010 Free Software Foundation, Inc. + Copyright (C) 2010-2021 Free Software Foundation, Inc. This file is part of the GNU Binutils. @@ -21,54 +21,37 @@ #ifndef GLD_PLUGIN_H #define GLD_PLUGIN_H +/* Report plugin symbols. */ +extern bfd_boolean report_plugin_symbols; + +/* Set at all symbols read time, to avoid recursively offering the plugin + its own newly-added input files and libs to claim. */ +extern bfd_boolean no_more_claiming; /* This is the only forward declaration we need to avoid having to include the plugin-api.h header in order to use this file. */ struct ld_plugin_input_file; -/* Handle -plugin arg: find and load plugin, or return error. */ -extern int plugin_opt_plugin (const char *plugin); +/* Handle -plugin arg: find and load plugin. */ +extern void plugin_opt_plugin (const char *plugin); /* Accumulate option arguments for last-loaded plugin, or return error if none. */ extern int plugin_opt_plugin_arg (const char *arg); -/* Return true if any plugins are active this run. Only valid - after options have been processed. */ -extern bfd_boolean plugin_active_plugins_p (void); - /* Load up and initialise all plugins after argument parsing. */ -extern int plugin_load_plugins (void); +extern void plugin_load_plugins (void); /* Return name of plugin which caused an error in any of the above. */ extern const char *plugin_error_plugin (void); /* Call 'claim file' hook for all plugins. */ -extern int plugin_call_claim_file (const struct ld_plugin_input_file *file, - int *claimed); +extern void plugin_maybe_claim (lang_input_statement_type *); /* Call 'all symbols read' hook for all plugins. */ extern int plugin_call_all_symbols_read (void); -/* Call 'cleanup' hook for all plugins. */ -extern int plugin_call_cleanup (void); - -/* Generate a dummy BFD to represent an IR file, for any callers of - plugin_call_claim_file to use as the handle in the ld_plugin_input_file - struct that they build to pass in. The BFD is initially writable, so - that symbols can be added to it; it must be made readable after the - add_symbols hook has been called so that it can be read when linking. */ -extern bfd *plugin_get_ir_dummy_bfd (const char *name, bfd *template); - -/* Notice-symbol bfd linker callback hook. */ -extern bfd_boolean plugin_notice (struct bfd_link_info *info, - const char *name, bfd *abfd, asection *section, - bfd_vma value); - -/* Multiple-definition bfd linker callback hook. */ -extern bfd_boolean plugin_multiple_definition (struct bfd_link_info *info, - const char *name, - bfd *obfd, asection *osec, bfd_vma oval, - bfd *nbfd, asection *nsec, bfd_vma nval); +/* Call 'cleanup' hook for all plugins at exit. */ +extern void plugin_call_cleanup (void); #endif /* !def GLD_PLUGIN_H */