/* Binutils emulation layer.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2021 Free Software Foundation, Inc.
Written by Tom Rix, Red Hat Inc.
This file is part of GNU Binutils.
bfd_boolean
ar_emul_append (bfd **after_bfd, char *file_name, const char *target,
bfd_boolean verbose, bfd_boolean flatten)
+{
+ bfd *new_bfd;
+
+ new_bfd = bfd_openr (file_name, target);
+ AR_EMUL_ELEMENT_CHECK (new_bfd, file_name);
+ if (bin_dummy_emulation.ar_append)
+ return bin_dummy_emulation.ar_append (after_bfd, new_bfd,
+ verbose, flatten);
+
+ return FALSE;
+}
+
+bfd_boolean
+ar_emul_append_bfd (bfd **after_bfd, bfd *new_bfd,
+ bfd_boolean verbose, bfd_boolean flatten)
{
if (bin_dummy_emulation.ar_append)
- return bin_dummy_emulation.ar_append (after_bfd, file_name, target,
+ return bin_dummy_emulation.ar_append (after_bfd, new_bfd,
verbose, flatten);
return FALSE;
if (!check (new_bfd))
return FALSE;
- AR_EMUL_APPEND_PRINT_VERBOSE (verbose, new_bfd->filename);
+ AR_EMUL_APPEND_PRINT_VERBOSE (verbose, bfd_get_filename (new_bfd));
new_bfd->archive_next = *after_bfd;
*after_bfd = new_bfd;
}
bfd_boolean
-ar_emul_default_append (bfd **after_bfd, char *file_name,
- const char *target, bfd_boolean verbose,
- bfd_boolean flatten)
+ar_emul_default_append (bfd **after_bfd, bfd *new_bfd,
+ bfd_boolean verbose, bfd_boolean flatten)
{
- bfd *new_bfd;
-
- new_bfd = bfd_openr (file_name, target);
- AR_EMUL_ELEMENT_CHECK (new_bfd, file_name);
return do_ar_emul_append (after_bfd, new_bfd, verbose, flatten, any_ok);
}
ar_emul_replace (bfd **after_bfd, char *file_name, const char *target,
bfd_boolean verbose)
{
+ bfd *new_bfd;
+
+ new_bfd = bfd_openr (file_name, target);
+ AR_EMUL_ELEMENT_CHECK (new_bfd, file_name);
+
if (bin_dummy_emulation.ar_replace)
- return bin_dummy_emulation.ar_replace (after_bfd, file_name,
- target, verbose);
+ return bin_dummy_emulation.ar_replace (after_bfd, new_bfd,
+ verbose);
return FALSE;
}
bfd_boolean
-ar_emul_default_replace (bfd **after_bfd, char *file_name,
- const char *target, bfd_boolean verbose)
+ar_emul_replace_bfd (bfd **after_bfd, bfd *new_bfd,
+ bfd_boolean verbose)
{
- bfd *new_bfd;
+ if (bin_dummy_emulation.ar_replace)
+ return bin_dummy_emulation.ar_replace (after_bfd, new_bfd,
+ verbose);
- new_bfd = bfd_openr (file_name, target);
- AR_EMUL_ELEMENT_CHECK (new_bfd, file_name);
+ return FALSE;
+}
- AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, file_name);
+bfd_boolean
+ar_emul_default_replace (bfd **after_bfd, bfd *new_bfd,
+ bfd_boolean verbose)
+{
+ AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, bfd_get_filename (new_bfd));
new_bfd->archive_next = *after_bfd;
*after_bfd = new_bfd;