* ecoff.c: Don't include aout/ranlib.h.

(_bfd_ecoff_slurp_armap): Use correct struct for ardata->symdefs.
	(_bfd_ecoff_write_armap): Output ar_date and ar_size using
	_bfd_ar_spacepad.
This commit is contained in:
Alan Modra
2010-07-22 14:29:15 +00:00
parent 4c1534c7a2
commit c6a3cf87fb
2 changed files with 15 additions and 8 deletions

View File

@ -1,3 +1,10 @@
2010-07-22 Alan Modra <amodra@gmail.com>
* ecoff.c: Don't include aout/ranlib.h.
(_bfd_ecoff_slurp_armap): Use correct struct for ardata->symdefs.
(_bfd_ecoff_write_armap): Output ar_date and ar_size using
_bfd_ar_spacepad.
2010-07-22 Alan Modra <amodra@gmail.com> 2010-07-22 Alan Modra <amodra@gmail.com>
* aoutx.h (some_aout_object_p): Don't set EXEC_P for files with * aoutx.h (some_aout_object_p): Don't set EXEC_P for files with

View File

@ -27,7 +27,6 @@
#include "bfdlink.h" #include "bfdlink.h"
#include "libbfd.h" #include "libbfd.h"
#include "aout/ar.h" #include "aout/ar.h"
#include "aout/ranlib.h"
#include "aout/stab_gnu.h" #include "aout/stab_gnu.h"
/* FIXME: We need the definitions of N_SET[ADTB], but aout64.h defines /* FIXME: We need the definitions of N_SET[ADTB], but aout64.h defines
@ -2855,7 +2854,7 @@ _bfd_ecoff_slurp_armap (bfd *abfd)
struct artdata *ardata; struct artdata *ardata;
unsigned int count; unsigned int count;
char *raw_ptr; char *raw_ptr;
struct symdef *symdef_ptr; carsym *symdef_ptr;
char *stringbase; char *stringbase;
bfd_size_type amt; bfd_size_type amt;
@ -2975,12 +2974,12 @@ _bfd_ecoff_slurp_armap (bfd *abfd)
++ardata->symdef_count; ++ardata->symdef_count;
amt = ardata->symdef_count; amt = ardata->symdef_count;
amt *= sizeof (struct symdef); amt *= sizeof (carsym);
symdef_ptr = (struct symdef *) bfd_alloc (abfd, amt); symdef_ptr = (carsym *) bfd_alloc (abfd, amt);
if (!symdef_ptr) if (!symdef_ptr)
return FALSE; return FALSE;
ardata->symdefs = (carsym *) symdef_ptr; ardata->symdefs = symdef_ptr;
raw_ptr = raw_armap + 4; raw_ptr = raw_armap + 4;
for (i = 0; i < count; i++, raw_ptr += 8) for (i = 0; i < count; i++, raw_ptr += 8)
@ -2991,7 +2990,7 @@ _bfd_ecoff_slurp_armap (bfd *abfd)
if (file_offset == 0) if (file_offset == 0)
continue; continue;
name_offset = H_GET_32 (abfd, raw_ptr); name_offset = H_GET_32 (abfd, raw_ptr);
symdef_ptr->s.name = stringbase + name_offset; symdef_ptr->name = stringbase + name_offset;
symdef_ptr->file_offset = file_offset; symdef_ptr->file_offset = file_offset;
++symdef_ptr; ++symdef_ptr;
} }
@ -3063,7 +3062,8 @@ _bfd_ecoff_write_armap (bfd *abfd,
linker just checks the archive name; the GNU linker may check the linker just checks the archive name; the GNU linker may check the
date. */ date. */
stat (abfd->filename, &statbuf); stat (abfd->filename, &statbuf);
sprintf (hdr.ar_date, "%ld", (long) (statbuf.st_mtime + 60)); _bfd_ar_spacepad (hdr.ar_date, sizeof (hdr.ar_date), "%ld",
(long) (statbuf.st_mtime + 60));
/* The DECstation uses zeroes for the uid, gid and mode of the /* The DECstation uses zeroes for the uid, gid and mode of the
armap. */ armap. */
@ -3074,7 +3074,7 @@ _bfd_ecoff_write_armap (bfd *abfd,
hdr.ar_mode[1] = '4'; hdr.ar_mode[1] = '4';
hdr.ar_mode[2] = '4'; hdr.ar_mode[2] = '4';
sprintf (hdr.ar_size, "%-10d", (int) mapsize); _bfd_ar_spacepad (hdr.ar_size, sizeof (hdr.ar_size), "%-10ld", mapsize);
hdr.ar_fmag[0] = '`'; hdr.ar_fmag[0] = '`';
hdr.ar_fmag[1] = '\012'; hdr.ar_fmag[1] = '\012';