X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=binutils%2Fbinemul.c;h=7f6b72d8773fe8e7e9c1788ce07f6a8d8eeecb6e;hb=7cc124ae972d328baa1afc704ae8b812191271c1;hp=894a915716ce39eaec167e93f2c7ad8346c15f99;hpb=827041555ac443bd57340060f3e034fd7b199dd8;p=binutils-gdb.git diff --git a/binutils/binemul.c b/binutils/binemul.c index 894a915716c..7f6b72d8773 100644 --- a/binutils/binemul.c +++ b/binutils/binemul.c @@ -1,5 +1,5 @@ /* Binutils emulation layer. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2022 Free Software Foundation, Inc. Written by Tom Rix, Red Hat Inc. This file is part of GNU Binutils. @@ -38,42 +38,57 @@ ar_emul_default_usage (FILE *fp) fprintf (fp, _(" No emulation specific options\n")); } -bfd_boolean +bool ar_emul_append (bfd **after_bfd, char *file_name, const char *target, - bfd_boolean verbose, bfd_boolean flatten) + bool verbose, bool 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, file_name, target, + return bin_dummy_emulation.ar_append (after_bfd, new_bfd, verbose, flatten); - return FALSE; + return false; } -static bfd_boolean +bool +ar_emul_append_bfd (bfd **after_bfd, bfd *new_bfd, + bool verbose, bool flatten) +{ + if (bin_dummy_emulation.ar_append) + return bin_dummy_emulation.ar_append (after_bfd, new_bfd, + verbose, flatten); + + return false; +} + +static bool any_ok (bfd *new_bfd ATTRIBUTE_UNUSED) { - return TRUE; + return true; } -bfd_boolean +bool do_ar_emul_append (bfd **after_bfd, bfd *new_bfd, - bfd_boolean verbose, bfd_boolean flatten, - bfd_boolean (*check) (bfd *)) + bool verbose, bool flatten, + bool (*check) (bfd *)) { /* When flattening, add the members of an archive instead of the archive itself. */ if (flatten && bfd_check_format (new_bfd, bfd_archive)) { bfd *elt; - bfd_boolean added = FALSE; + bool added = false; for (elt = bfd_openr_next_archived_file (new_bfd, NULL); elt; elt = bfd_openr_next_archived_file (new_bfd, elt)) { - if (do_ar_emul_append (after_bfd, elt, verbose, TRUE, check)) + if (do_ar_emul_append (after_bfd, elt, verbose, true, check)) { - added = TRUE; + added = true; after_bfd = &((*after_bfd)->archive_next); } } @@ -82,67 +97,73 @@ do_ar_emul_append (bfd **after_bfd, bfd *new_bfd, } if (!check (new_bfd)) - return FALSE; + 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; - return TRUE; + return true; } -bfd_boolean -ar_emul_default_append (bfd **after_bfd, char *file_name, - const char *target, bfd_boolean verbose, - bfd_boolean flatten) +bool +ar_emul_default_append (bfd **after_bfd, bfd *new_bfd, + bool verbose, bool 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); } -bfd_boolean +bool ar_emul_replace (bfd **after_bfd, char *file_name, const char *target, - bfd_boolean verbose) + bool 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; + return false; } -bfd_boolean -ar_emul_default_replace (bfd **after_bfd, char *file_name, - const char *target, bfd_boolean verbose) +bool +ar_emul_replace_bfd (bfd **after_bfd, bfd *new_bfd, + bool 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); +bool +ar_emul_default_replace (bfd **after_bfd, bfd *new_bfd, + bool verbose) +{ + AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, bfd_get_filename (new_bfd)); new_bfd->archive_next = *after_bfd; *after_bfd = new_bfd; - return TRUE; + return true; } -bfd_boolean +bool ar_emul_parse_arg (char *arg) { if (bin_dummy_emulation.ar_parse_arg) return bin_dummy_emulation.ar_parse_arg (arg); - return FALSE; + return false; } -bfd_boolean +bool ar_emul_default_parse_arg (char *arg ATTRIBUTE_UNUSED) { - return FALSE; + return false; }