aboutsummaryrefslogtreecommitdiff
path: root/binutils/binemul.h
diff options
context:
space:
mode:
authorHoward Chu <hyc@symas.com>2020-11-03 15:12:47 +0000
committerNick Clifton <nickc@redhat.com>2020-11-03 15:12:47 +0000
commitf3016d6ce178b76002edde12c30ebe7f608a8e21 (patch)
treec8c1943182747f75bafa7c34c4b7562ea7dfbbce /binutils/binemul.h
parentfd65497db4098140490e59e3dbf4709da5536081 (diff)
downloadbinutils-f3016d6ce178b76002edde12c30ebe7f608a8e21.zip
binutils-f3016d6ce178b76002edde12c30ebe7f608a8e21.tar.gz
binutils-f3016d6ce178b76002edde12c30ebe7f608a8e21.tar.bz2
Add an option to the archiver to add a section recording library dependencies.
* ar.c (long_options): Add --record-libdeps. (usage): Mention the new option. (decode_options): Handle the new option. (replace_members): If necessary, create a bfd to hold the libdeps description. * binemul.c (ar_emul_append_bfd): New function. (ar_emul_replace_bfd): New function. (ar_emul_default_append): Replace file_name and target arguments with new_bfd argument. (ar_emul_default_replace): Likewise. * binemul.h: Update prototypes. (struct bin_emulation_xfer_struct): Update fields. * doc/binutils.texi: Document the new option. * NEWS: Mention the new feature. * emul_aix.c (ar_emul_aix_append): Update. (ar_emul_aix_replace): Likewise. * testsuite/binutils-all/ar.exp: Add test of new feature.
Diffstat (limited to 'binutils/binemul.h')
-rw-r--r--binutils/binemul.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/binutils/binemul.h b/binutils/binemul.h
index d4a14ed..57b2e20 100644
--- a/binutils/binemul.h
+++ b/binutils/binemul.h
@@ -30,15 +30,19 @@ extern void ar_emul_usage (FILE *);
extern void ar_emul_default_usage (FILE *);
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 *,
+extern bfd_boolean ar_emul_append_bfd (bfd **, bfd *,
+ bfd_boolean, bfd_boolean);
+extern bfd_boolean ar_emul_default_append (bfd **, bfd *,
bfd_boolean, bfd_boolean);
extern bfd_boolean do_ar_emul_append (bfd **, bfd *,
bfd_boolean, bfd_boolean,
bfd_boolean (*)(bfd *));
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_replace_bfd (bfd **, bfd *,
+ bfd_boolean);
+extern bfd_boolean ar_emul_default_replace (bfd **, bfd *,
+ bfd_boolean);
extern bfd_boolean ar_emul_parse_arg (char *);
extern bfd_boolean ar_emul_default_parse_arg (char *);
@@ -61,9 +65,8 @@ typedef struct bin_emulation_xfer_struct
{
/* Print out the extra options. */
void (* ar_usage) (FILE *fp);
- 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_append) (bfd **, bfd *, bfd_boolean, bfd_boolean);
+ bfd_boolean (* ar_replace) (bfd **, bfd *, bfd_boolean);
bfd_boolean (* ar_parse_arg) (char *);
}
bin_emulation_xfer_type;