diff options
Diffstat (limited to 'binutils/ar.c')
-rw-r--r-- | binutils/ar.c | 161 |
1 files changed, 4 insertions, 157 deletions
diff --git a/binutils/ar.c b/binutils/ar.c index 6cc7941..05933a1 100644 --- a/binutils/ar.c +++ b/binutils/ar.c @@ -65,11 +65,6 @@ static void map_over_members (bfd *, void (*)(bfd *), char **, int); static void print_contents (bfd * member); static void delete_members (bfd *, char **files_to_delete); -#if 0 -static void do_quick_append - (const char *archive_filename, char **files_to_append); -#endif - static void move_members (bfd *, char **files_to_move); static void replace_members (bfd *, char **files_to_replace, bfd_boolean quick); @@ -589,6 +584,10 @@ main (int argc, char **argv) { bfd *arch; + /* We don't use do_quick_append any more. Too many systems + expect ar to always rebuild the symbol table even when q is + used. */ + /* We can't write an armap when using ar q, so just do ar r instead. */ if (operation == quick_append && write_armap) @@ -624,39 +623,6 @@ main (int argc, char **argv) files = arg_index < argc ? argv + arg_index : NULL; file_count = argc - arg_index; -#if 0 - /* We don't use do_quick_append any more. Too many systems - expect ar to always rebuild the symbol table even when q is - used. */ - - /* We can't do a quick append if we need to construct an - extended name table, because do_quick_append won't be able to - rebuild the name table. Unfortunately, at this point we - don't actually know the maximum name length permitted by this - object file format. So, we guess. FIXME. */ - if (operation == quick_append && ! ar_truncate) - { - char **chk; - - for (chk = files; chk != NULL && *chk != '\0'; chk++) - { - if (strlen (normalize (*chk, (bfd *) NULL)) > 14) - { - operation = replace; - break; - } - } - } - - if (operation == quick_append) - { - /* Note that quick appending to a non-existent archive creates it, - even if there are no files to append. */ - do_quick_append (inarch_filename, files); - xexit (0); - } -#endif - arch = open_inarch (inarch_filename, files == NULL ? (char *) NULL : files[0]); @@ -945,125 +911,6 @@ extract_file (bfd *abfd) free (cbuf); } -#if 0 - -/* We don't use this anymore. Too many systems expect ar to rebuild - the symbol table even when q is used. */ - -/* Just do it quickly; don't worry about dups, armap, or anything like that */ - -static void -do_quick_append (const char *archive_filename, char **files_to_append) -{ - FILE *ofile, *ifile; - char *buf = xmalloc (BUFSIZE); - long tocopy, thistime; - bfd *temp; - struct stat sbuf; - bfd_boolean newfile = FALSE; - bfd_set_error (bfd_error_no_error); - - if (stat (archive_filename, &sbuf) != 0) - { - -#if !defined(__GO32__) || defined(__DJGPP__) - - /* FIXME: I don't understand why this fragment was ifndef'ed - away for __GO32__; perhaps it was in the days of DJGPP v1.x. - stat() works just fine in v2.x, so I think this should be - removed. For now, I enable it for DJGPP v2. - - (And yes, I know this is all unused, but somebody, someday, - might wish to resurrect this again... -- EZ. */ - -/* KLUDGE ALERT! Temporary fix until I figger why - stat() is wrong ... think it's buried in GO32's IDT - Jax */ - - if (errno != ENOENT) - bfd_fatal (archive_filename); -#endif - - newfile = TRUE; - } - - ofile = fopen (archive_filename, FOPEN_AUB); - if (ofile == NULL) - { - perror (program_name); - xexit (1); - } - - temp = bfd_openr (archive_filename, NULL); - if (temp == NULL) - { - bfd_fatal (archive_filename); - } - if (!newfile) - { - if (!bfd_check_format (temp, bfd_archive)) - /* xgettext:c-format */ - fatal (_("%s is not an archive"), archive_filename); - } - else - { - fwrite (ARMAG, 1, SARMAG, ofile); - if (!silent_create) - /* xgettext:c-format */ - non_fatal (_("creating %s"), archive_filename); - } - - if (ar_truncate) - temp->flags |= BFD_TRADITIONAL_FORMAT; - - /* assume it's an archive, go straight to the end, sans $200 */ - fseek (ofile, 0, 2); - - for (; files_to_append && *files_to_append; ++files_to_append) - { - struct ar_hdr *hdr = bfd_special_undocumented_glue (temp, *files_to_append); - if (hdr == NULL) - { - bfd_fatal (*files_to_append); - } - - BFD_SEND (temp, _bfd_truncate_arname, (temp, *files_to_append, (char *) hdr)); - - ifile = fopen (*files_to_append, FOPEN_RB); - if (ifile == NULL) - { - bfd_nonfatal (*files_to_append); - } - - if (stat (*files_to_append, &sbuf) != 0) - { - bfd_nonfatal (*files_to_append); - } - - tocopy = sbuf.st_size; - - /* XXX should do error-checking! */ - fwrite (hdr, 1, sizeof (struct ar_hdr), ofile); - - while (tocopy > 0) - { - thistime = tocopy; - if (thistime > BUFSIZE) - thistime = BUFSIZE; - fread (buf, 1, thistime, ifile); - fwrite (buf, 1, thistime, ofile); - tocopy -= thistime; - } - fclose (ifile); - if ((sbuf.st_size % 2) == 1) - putc ('\012', ofile); - } - fclose (ofile); - bfd_close (temp); - free (buf); -} - -#endif /* 0 */ - static void write_archive (bfd *iarch) { |