bfd_boolean ar_emul_default_append (bfd **after_bfd, char *file_name, bfd_boolean verbose) { bfd *temp; temp = *after_bfd; *after_bfd = bfd_openr (file_name, NULL); AR_EMUL_ELEMENT_CHECK (*after_bfd, file_name); AR_EMUL_APPEND_PRINT_VERBOSE (verbose, file_name); (*after_bfd)->archive_next = temp; return TRUE; }
static bfd_boolean ar_emul_aix_internal (bfd ** after_bfd, char * file_name, bfd_boolean verbose, const char * target_name, bfd_boolean is_append, bfd_boolean flatten ATTRIBUTE_UNUSED) { bfd *temp; bfd *try_bfd; temp = *after_bfd; /* Try 64 bit. */ try_bfd = bfd_openr (file_name, target_name); /* Failed or the object is possibly 32 bit. */ if (NULL == try_bfd || ! bfd_check_format (try_bfd, bfd_object)) try_bfd = bfd_openr (file_name, "aixcoff-rs6000"); AR_EMUL_ELEMENT_CHECK (try_bfd, file_name); if (bfd_xcoff_is_xcoff64 (try_bfd) && (! X64)) return FALSE; if (bfd_xcoff_is_xcoff32 (try_bfd) && bfd_check_format (try_bfd, bfd_object) && (! X32)) return FALSE; if (is_append) { AR_EMUL_APPEND_PRINT_VERBOSE (verbose, file_name); } else { AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, file_name); } *after_bfd = try_bfd; (*after_bfd)->archive_next = temp; return TRUE; }