Pass "plugin" as target for "ar --plugin" when opening a BFD file.

2010-09-15  H.J. Lu  <hongjiu.lu@intel.com>

	* ar.c (plugin_target): New.
	(main): Set plugin_target to "plugin" for --plugin.
	(open_inarch): Initialize target to plugin_target.
	(replace_members): Pass plugin_target to ar_emul_replace
	and ar_emul_append.

	* binemul.h (ar_emul_append): Add a target argument.
	(ar_emul_default_append): Likewise.
	(ar_emul_replace): Likewise.
	(ar_emul_default_replace): Likewise.
	(bin_emulation_xfer_struct): Add a target argument to
	ar_append and ar_replace.

	* binemul.c (ar_emul_append): Updated.  Pass target to bfd_openr.
	(do_ar_emul_default_append): Likewise.
	(ar_emul_default_append): Likewise.
	(ar_emul_replace): Likewise.
	(ar_emul_default_replace): Likewise.
This commit is contained in:
H.J. Lu
2010-09-15 17:10:15 +00:00
parent 349126ea35
commit 492d5973f0
4 changed files with 55 additions and 23 deletions

View File

@@ -28,11 +28,14 @@
extern void ar_emul_usage (FILE *);
extern void ar_emul_default_usage (FILE *);
extern bfd_boolean ar_emul_append (bfd **, char *, bfd_boolean, bfd_boolean);
extern bfd_boolean ar_emul_default_append (bfd **, char *, bfd_boolean,
bfd_boolean);
extern bfd_boolean ar_emul_replace (bfd **, char *, bfd_boolean);
extern bfd_boolean ar_emul_default_replace (bfd **, char *, bfd_boolean);
extern bfd_boolean ar_emul_append (bfd **, char *, const char *,
bfd_boolean, bfd_boolean);
extern bfd_boolean ar_emul_default_append (bfd **, char *, const char *,
bfd_boolean, bfd_boolean);
extern bfd_boolean ar_emul_replace (bfd **, char *, const char *,
bfd_boolean);
extern bfd_boolean ar_emul_default_replace (bfd **, char *,
const char *, bfd_boolean);
extern bfd_boolean ar_emul_parse_arg (char *);
extern bfd_boolean ar_emul_default_parse_arg (char *);
@@ -55,8 +58,9 @@ typedef struct bin_emulation_xfer_struct
{
/* Print out the extra options. */
void (* ar_usage) (FILE *fp);
bfd_boolean (* ar_append) (bfd **, char *, bfd_boolean, bfd_boolean);
bfd_boolean (* ar_replace) (bfd **, char *, bfd_boolean);
bfd_boolean (* ar_append) (bfd **, char *, const char *, bfd_boolean,
bfd_boolean);
bfd_boolean (* ar_replace) (bfd **, char *, const char *, bfd_boolean);
bfd_boolean (* ar_parse_arg) (char *);
}
bin_emulation_xfer_type;