aboutsummaryrefslogtreecommitdiff
path: root/bfd/archive.c
diff options
context:
space:
mode:
authorSteve Chamberlain <steve@cygnus>1991-04-03 22:09:43 +0000
committerSteve Chamberlain <steve@cygnus>1991-04-03 22:09:43 +0000
commit0452b5aacf2c9414ecfff4c923590cb5eb1e8225 (patch)
tree830cb5f400eafeea6dfafbae7b55306d83df7252 /bfd/archive.c
parenta7fe4c5997d904fa2dfeaa88b5e315ab9524823b (diff)
downloadgdb-0452b5aacf2c9414ecfff4c923590cb5eb1e8225.zip
gdb-0452b5aacf2c9414ecfff4c923590cb5eb1e8225.tar.gz
gdb-0452b5aacf2c9414ecfff4c923590cb5eb1e8225.tar.bz2
Various noise
Diffstat (limited to 'bfd/archive.c')
-rw-r--r--bfd/archive.c113
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))) {