diff options
author | Steve Chamberlain <steve@cygnus> | 1991-04-03 22:09:43 +0000 |
---|---|---|
committer | Steve Chamberlain <steve@cygnus> | 1991-04-03 22:09:43 +0000 |
commit | 0452b5aacf2c9414ecfff4c923590cb5eb1e8225 (patch) | |
tree | 830cb5f400eafeea6dfafbae7b55306d83df7252 /bfd/archive.c | |
parent | a7fe4c5997d904fa2dfeaa88b5e315ab9524823b (diff) | |
download | gdb-0452b5aacf2c9414ecfff4c923590cb5eb1e8225.zip gdb-0452b5aacf2c9414ecfff4c923590cb5eb1e8225.tar.gz gdb-0452b5aacf2c9414ecfff4c923590cb5eb1e8225.tar.bz2 |
Various noise
Diffstat (limited to 'bfd/archive.c')
-rw-r--r-- | bfd/archive.c | 113 |
1 files changed, 59 insertions, 54 deletions
diff --git a/bfd/archive.c b/bfd/archive.c index 53cd0bd..e89db37 100644 --- a/bfd/archive.c +++ b/bfd/archive.c @@ -28,7 +28,13 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* $Id$ * $Log$ - * Revision 1.1 1991/03/21 21:10:42 gumby + * Revision 1.2 1991/04/03 22:09:43 steve + * Various noise + * + * Revision 1.1.1.1 1991/03/21 21:10:42 gumby + * Back from Intel with Steve + * + * Revision 1.1 1991/03/21 21:10:42 gumby * Initial revision * * Revision 1.3 1991/03/16 05:55:25 rich @@ -259,7 +265,7 @@ snarf_ar_hdr (abfd) namelen = 0; - while (namelen < ar_maxnamelen(abfd) && + while (namelen < (unsigned)ar_maxnamelen(abfd) && ( hdr.ar_name[namelen] != 0 && hdr.ar_name[namelen] != ' ' && hdr.ar_name[namelen] != ar_padchar(abfd))) { @@ -903,7 +909,7 @@ _bfd_write_archive_contents (arch) BFD_SEND (arch, _bfd_truncate_arname,(arch, current->filename, - arch_hdr(current))); + (char *) arch_hdr(current))); } @@ -959,14 +965,16 @@ _bfd_write_archive_contents (arch) return false; } if (bfd_seek (current, 0L, SEEK_SET) != 0L) goto syserr; - while (remaining) { - unsigned int amt = ((remaining <= DEFAULT_BUFFERSIZE) ? remaining : - DEFAULT_BUFFERSIZE); - - if (bfd_read (buffer, amt, 1, current) != amt) goto syserr; - if (bfd_write (buffer, amt, 1, arch) != amt) goto syserr; - remaining -= amt; - } + while (remaining) + { + unsigned int amt = DEFAULT_BUFFERSIZE; + if (amt > remaining) { + amt = remaining; + } + if (bfd_read (buffer, amt, 1, current) != amt) goto syserr; + if (bfd_write (buffer, amt, 1, arch) != amt) goto syserr; + remaining -= amt; + } if ((arelt_size (current) % 2) == 1) bfd_write ("\n", 1, 1, arch); } return true; @@ -1003,52 +1011,49 @@ compute_and_write_armap (arch, elength) current != (bfd *)NULL; current = current->next, elt_no++) { - if ((bfd_check_format (current, bfd_object) == true) - && ((bfd_get_file_flags (current) & HAS_SYMS))) { - asymbol **syms; - unsigned int storage; - unsigned int symcount; - unsigned int src_count; - - storage = get_symtab_upper_bound (current); - if (storage == 0) { - nosymz: - fprintf (stderr, "%s: Symflags set but there are none?\n", - bfd_get_filename (current)); - exit (1); - } - syms = (asymbol **) zalloc (storage); - if (syms == NULL) { - bfd_error = no_memory; /* FIXME -- memory leak */ - return false; - } - symcount = bfd_canonicalize_symtab (current, syms); - if (symcount == 0) goto nosymz; - - /* Now map over all the symbols, picking out the ones we want */ - for (src_count = 0; src_count <symcount; src_count++) { - flagword flags = (syms[src_count])->flags; - if ((flags & BSF_GLOBAL) || - (flags & BSF_FORT_COMM)) { - - /* This symbol will go into the archive header */ - if (orl_count == orl_max) - { - orl_max *= 2; - map = (struct orl *) realloc ((char *) map, - orl_max * sizeof (struct orl)); + if ((bfd_check_format (current, bfd_object) == true) + && ((bfd_get_file_flags (current) & HAS_SYMS))) { + asymbol **syms; + unsigned int storage; + unsigned int symcount; + unsigned int src_count; + + storage = get_symtab_upper_bound (current); + if (storage != 0) { + + syms = (asymbol **) zalloc (storage); + if (syms == NULL) { + bfd_error = no_memory; /* FIXME -- memory leak */ + return false; + } + symcount = bfd_canonicalize_symtab (current, syms); + + + /* Now map over all the symbols, picking out the ones we want */ + for (src_count = 0; src_count <symcount; src_count++) { + flagword flags = (syms[src_count])->flags; + if ((flags & BSF_GLOBAL) || + (flags & BSF_FORT_COMM)) { + + /* This symbol will go into the archive header */ + if (orl_count == orl_max) + { + orl_max *= 2; + map = (struct orl *) realloc ((char *) map, + orl_max * sizeof (struct orl)); + } + + (map[orl_count]).name = &((syms[src_count])->name); + (map[orl_count]).pos = elt_no; + (map[orl_count]).namidx = stridx; + + stridx += strlen ((syms[src_count])->name) + 1; + ++orl_count; + } + } } - - (map[orl_count]).name = &((syms[src_count])->name); - (map[orl_count]).pos = elt_no; - (map[orl_count]).namidx = stridx; - - stridx += strlen ((syms[src_count])->name) + 1; - ++orl_count; } } - } - } /* OK, now we have collected all the data, let's write them out */ if (!BFD_SEND (arch, write_armap, (arch, elength, map, orl_count, stridx))) { |