* libbfd-in.h (struct artdata): Added tdata field.
(_bfd_add_bfd_to_archive_cache): Declare. (_bfd_snarf_ar_hdr): Renamed from snarf_ar_hdr. * libbfd.h: Rebuilt. * archive.c: Cleaned up some more. (_bfd_generic_mkarchive, bfd_generic_archive_p): Initialize pointer elements of artdata. (_bfd_add_bfd_to_archive_cache): Renamed from add_bfd_to_cache. (_bfd_snarf_ar_hdr): Renamed from snarf_ar_hdr. (get_extended_arelt_filename, get_elt_at_filepos, bfd_construct_extended_name_table, bfd_ar_hdr_from_filesystem, compute_and_write_armap): Made static. * ecoff.c: Some comment changes. (ecoff_slurp_armap): Handle rename of snarf_ar_hdr. Set ardata->tdata to raw_armap. (ecoff_archive_p): Initialize pointer elements of artdata. * coff-rs6000.c (rs6000coff_get_elt_at_filepos): Handle rename of add_bfd_to_cache.
This commit is contained in:
parent
b35885f226
commit
b59f0276fa
@ -1,5 +1,24 @@
|
||||
Mon Jan 3 11:41:45 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
||||
|
||||
* libbfd-in.h (struct artdata): Added tdata field.
|
||||
(_bfd_add_bfd_to_archive_cache): Declare.
|
||||
(_bfd_snarf_ar_hdr): Renamed from snarf_ar_hdr.
|
||||
* libbfd.h: Rebuilt.
|
||||
* archive.c: Cleaned up some more.
|
||||
(_bfd_generic_mkarchive, bfd_generic_archive_p): Initialize
|
||||
pointer elements of artdata.
|
||||
(_bfd_add_bfd_to_archive_cache): Renamed from add_bfd_to_cache.
|
||||
(_bfd_snarf_ar_hdr): Renamed from snarf_ar_hdr.
|
||||
(get_extended_arelt_filename, get_elt_at_filepos,
|
||||
bfd_construct_extended_name_table, bfd_ar_hdr_from_filesystem,
|
||||
compute_and_write_armap): Made static.
|
||||
* ecoff.c: Some comment changes.
|
||||
(ecoff_slurp_armap): Handle rename of snarf_ar_hdr. Set
|
||||
ardata->tdata to raw_armap.
|
||||
(ecoff_archive_p): Initialize pointer elements of artdata.
|
||||
* coff-rs6000.c (rs6000coff_get_elt_at_filepos): Handle rename of
|
||||
add_bfd_to_cache.
|
||||
|
||||
* hash.c: Added some documentation.
|
||||
|
||||
Mon Jan 3 11:09:28 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
|
||||
|
206
bfd/archive.c
206
bfd/archive.c
@ -170,28 +170,40 @@ struct ar_cache {
|
||||
#define arch_eltdata(bfd) ((struct areltdata *)((bfd)->arelt_data))
|
||||
#define arch_hdr(bfd) ((struct ar_hdr *)arch_eltdata(bfd)->arch_header)
|
||||
|
||||
/* Forward declarations of functions */
|
||||
|
||||
boolean
|
||||
compute_and_write_armap PARAMS ((bfd *arch, unsigned int elength));
|
||||
|
||||
static boolean
|
||||
bsd_update_armap_timestamp PARAMS ((bfd *arch));
|
||||
|
||||
|
||||
static char *get_extended_arelt_filename PARAMS ((bfd *arch,
|
||||
const char *name));
|
||||
static bfd *get_elt_at_filepos PARAMS ((bfd *archive, file_ptr filepos));
|
||||
static boolean do_slurp_bsd_armap PARAMS ((bfd *abfd));
|
||||
static boolean do_slurp_coff_armap PARAMS ((bfd *abfd));
|
||||
static const char *normalize PARAMS ((const char *file));
|
||||
static boolean bfd_construct_extended_name_table PARAMS ((bfd *abfd,
|
||||
char **tabloc,
|
||||
unsigned int *));
|
||||
static struct areltdata *bfd_ar_hdr_from_filesystem PARAMS ((bfd *abfd,
|
||||
const char *));
|
||||
static boolean compute_and_write_armap PARAMS ((bfd *arch,
|
||||
unsigned int elength));
|
||||
static boolean bsd_update_armap_timestamp PARAMS ((bfd *arch));
|
||||
|
||||
boolean
|
||||
_bfd_generic_mkarchive (abfd)
|
||||
bfd *abfd;
|
||||
{
|
||||
abfd->tdata.aout_ar_data = (struct artdata *)bfd_zalloc(abfd,
|
||||
sizeof (struct artdata));
|
||||
abfd->tdata.aout_ar_data = ((struct artdata *)
|
||||
bfd_zalloc (abfd, sizeof (struct artdata)));
|
||||
|
||||
if (bfd_ardata (abfd) == NULL) {
|
||||
if (bfd_ardata (abfd) == NULL)
|
||||
{
|
||||
bfd_error = no_memory;
|
||||
return false;
|
||||
}
|
||||
bfd_ardata(abfd)->cache = 0;
|
||||
|
||||
bfd_ardata (abfd)->cache = NULL;
|
||||
bfd_ardata (abfd)->archive_head = NULL;
|
||||
bfd_ardata (abfd)->symdefs = NULL;
|
||||
bfd_ardata (abfd)->extended_names = NULL;
|
||||
bfd_ardata (abfd)->tdata = NULL;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -217,10 +229,10 @@ DESCRIPTION
|
||||
*/
|
||||
|
||||
symindex
|
||||
DEFUN(bfd_get_next_mapent,(abfd, prev, entry),
|
||||
bfd *abfd AND
|
||||
symindex prev AND
|
||||
carsym **entry)
|
||||
bfd_get_next_mapent (abfd, prev, entry)
|
||||
bfd *abfd;
|
||||
symindex prev;
|
||||
carsym **entry;
|
||||
{
|
||||
if (!bfd_has_map (abfd)) {
|
||||
bfd_error = invalid_operation;
|
||||
@ -265,9 +277,9 @@ DESCRIPTION
|
||||
*/
|
||||
|
||||
boolean
|
||||
DEFUN(bfd_set_archive_head,(output_archive, new_head),
|
||||
bfd *output_archive AND
|
||||
bfd *new_head)
|
||||
bfd_set_archive_head (output_archive, new_head)
|
||||
bfd *output_archive;
|
||||
bfd *new_head;
|
||||
{
|
||||
|
||||
output_archive->archive_head = new_head;
|
||||
@ -290,7 +302,7 @@ look_for_bfd_in_cache (arch_bfd, filepos)
|
||||
|
||||
/* Kind of stupid to call cons for each one, but we don't do too many */
|
||||
boolean
|
||||
add_bfd_to_cache (arch_bfd, filepos, new_elt)
|
||||
_bfd_add_bfd_to_archive_cache (arch_bfd, filepos, new_elt)
|
||||
bfd *arch_bfd, *new_elt;
|
||||
file_ptr filepos;
|
||||
{
|
||||
@ -317,15 +329,14 @@ add_bfd_to_cache (arch_bfd, filepos, new_elt)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* The name begins with space. Hence the rest of the name is an index into
|
||||
the string table. */
|
||||
char *
|
||||
|
||||
static char *
|
||||
get_extended_arelt_filename (arch, name)
|
||||
bfd *arch;
|
||||
char *name;
|
||||
const char *name;
|
||||
{
|
||||
unsigned long index = 0;
|
||||
|
||||
@ -352,7 +363,7 @@ get_extended_arelt_filename (arch, name)
|
||||
*/
|
||||
|
||||
struct areltdata *
|
||||
snarf_ar_hdr (abfd)
|
||||
_bfd_snarf_ar_hdr (abfd)
|
||||
bfd *abfd;
|
||||
{
|
||||
#ifndef errno
|
||||
@ -475,7 +486,7 @@ snarf_ar_hdr (abfd)
|
||||
element, since it handles the bookkeeping so nicely for us.
|
||||
*/
|
||||
|
||||
bfd *
|
||||
static bfd *
|
||||
get_elt_at_filepos (archive, filepos)
|
||||
bfd *archive;
|
||||
file_ptr filepos;
|
||||
@ -493,7 +504,7 @@ get_elt_at_filepos (archive, filepos)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((new_areldata = snarf_ar_hdr (archive)) == NULL)
|
||||
if ((new_areldata = _bfd_snarf_ar_hdr (archive)) == NULL)
|
||||
return NULL;
|
||||
|
||||
n_nfd = _bfd_create_empty_archive_element_shell (archive);
|
||||
@ -507,7 +518,7 @@ get_elt_at_filepos (archive, filepos)
|
||||
n_nfd->arelt_data = (PTR) new_areldata;
|
||||
n_nfd->filename = new_areldata->filename;
|
||||
|
||||
if (add_bfd_to_cache (archive, filepos, n_nfd))
|
||||
if (_bfd_add_bfd_to_archive_cache (archive, filepos, n_nfd))
|
||||
return n_nfd;
|
||||
|
||||
/* huh? */
|
||||
@ -530,9 +541,9 @@ DESCRIPTION
|
||||
|
||||
*/
|
||||
bfd *
|
||||
DEFUN(bfd_get_elt_at_index,(abfd, index),
|
||||
bfd *abfd AND
|
||||
int index)
|
||||
bfd_get_elt_at_index (abfd, index)
|
||||
bfd *abfd;
|
||||
int index;
|
||||
{
|
||||
bfd *result =
|
||||
get_elt_at_filepos
|
||||
@ -603,50 +614,60 @@ bfd_generic_archive_p (abfd)
|
||||
{
|
||||
char armag[SARMAG+1];
|
||||
|
||||
if (bfd_read ((PTR)armag, 1, SARMAG, abfd) != SARMAG) {
|
||||
bfd_error = wrong_format;
|
||||
return 0;
|
||||
}
|
||||
if (bfd_read ((PTR) armag, 1, SARMAG, abfd) != SARMAG)
|
||||
{
|
||||
bfd_error = wrong_format;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef GNU960
|
||||
if (strncmp (armag, BFD_GNU960_ARMAG(abfd), SARMAG)) return 0;
|
||||
if (strncmp (armag, BFD_GNU960_ARMAG(abfd), SARMAG) != 0)
|
||||
return 0;
|
||||
#else
|
||||
if (strncmp (armag, ARMAG, SARMAG) &&
|
||||
strncmp (armag, ARMAGB, SARMAG)) return 0;
|
||||
if (strncmp (armag, ARMAG, SARMAG) != 0 &&
|
||||
strncmp (armag, ARMAGB, SARMAG) != 0)
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* We are setting bfd_ardata(abfd) here, but since bfd_ardata
|
||||
involves a cast, we can't do it as the left operand of assignment. */
|
||||
abfd->tdata.aout_ar_data = (struct artdata *) bfd_zalloc(abfd,sizeof (struct artdata));
|
||||
abfd->tdata.aout_ar_data = ((struct artdata *)
|
||||
bfd_zalloc (abfd, sizeof (struct artdata)));
|
||||
|
||||
if (bfd_ardata (abfd) == NULL) {
|
||||
bfd_error = no_memory;
|
||||
return 0;
|
||||
}
|
||||
if (bfd_ardata (abfd) == NULL)
|
||||
{
|
||||
bfd_error = no_memory;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bfd_ardata (abfd)->first_file_filepos = SARMAG;
|
||||
bfd_ardata (abfd)->cache = NULL;
|
||||
bfd_ardata (abfd)->archive_head = NULL;
|
||||
bfd_ardata (abfd)->symdefs = NULL;
|
||||
bfd_ardata (abfd)->extended_names = NULL;
|
||||
bfd_ardata (abfd)->tdata = NULL;
|
||||
|
||||
if (!BFD_SEND (abfd, _bfd_slurp_armap, (abfd))) {
|
||||
bfd_release(abfd, bfd_ardata (abfd));
|
||||
abfd->tdata.aout_ar_data = NULL;
|
||||
return 0;
|
||||
}
|
||||
if (! BFD_SEND (abfd, _bfd_slurp_armap, (abfd)))
|
||||
{
|
||||
bfd_release(abfd, bfd_ardata (abfd));
|
||||
abfd->tdata.aout_ar_data = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!BFD_SEND (abfd, _bfd_slurp_extended_name_table, (abfd))) {
|
||||
bfd_release(abfd, bfd_ardata (abfd));
|
||||
abfd->tdata.aout_ar_data = NULL;
|
||||
return 0;
|
||||
}
|
||||
if (! BFD_SEND (abfd, _bfd_slurp_extended_name_table, (abfd)))
|
||||
{
|
||||
bfd_release(abfd, bfd_ardata (abfd));
|
||||
abfd->tdata.aout_ar_data = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return abfd->xvec;
|
||||
}
|
||||
|
||||
/* Returns false on error, true otherwise */
|
||||
static boolean
|
||||
DEFUN (do_slurp_bsd_armap, (abfd),
|
||||
bfd *abfd)
|
||||
do_slurp_bsd_armap (abfd)
|
||||
bfd *abfd;
|
||||
{
|
||||
struct areltdata *mapdata;
|
||||
unsigned int counter = 0;
|
||||
@ -655,8 +676,9 @@ DEFUN (do_slurp_bsd_armap, (abfd),
|
||||
char *stringbase;
|
||||
unsigned int parsed_size;
|
||||
|
||||
mapdata = snarf_ar_hdr (abfd);
|
||||
if (mapdata == NULL) return false;
|
||||
mapdata = _bfd_snarf_ar_hdr (abfd);
|
||||
if (mapdata == NULL)
|
||||
return false;
|
||||
parsed_size = mapdata->parsed_size;
|
||||
bfd_release (abfd, (PTR)mapdata); /* Don't need it any more. */
|
||||
|
||||
@ -708,8 +730,8 @@ DEFUN (do_slurp_bsd_armap, (abfd),
|
||||
|
||||
/* Returns false on error, true otherwise */
|
||||
static boolean
|
||||
DEFUN (do_slurp_coff_armap, (abfd),
|
||||
bfd *abfd)
|
||||
do_slurp_coff_armap (abfd)
|
||||
bfd *abfd;
|
||||
{
|
||||
struct areltdata *mapdata;
|
||||
int *raw_armap, *rawptr;
|
||||
@ -724,8 +746,9 @@ DEFUN (do_slurp_coff_armap, (abfd),
|
||||
char int_buf[sizeof(long)];
|
||||
unsigned int carsym_size, ptrsize, i;
|
||||
|
||||
mapdata = snarf_ar_hdr (abfd);
|
||||
if (mapdata == NULL) return false;
|
||||
mapdata = _bfd_snarf_ar_hdr (abfd);
|
||||
if (mapdata == NULL)
|
||||
return false;
|
||||
parsed_size = mapdata->parsed_size;
|
||||
bfd_release (abfd, (PTR)mapdata); /* Don't need it any more. */
|
||||
|
||||
@ -865,8 +888,9 @@ bfd_slurp_bsd_armap_f2 (abfd)
|
||||
return true;
|
||||
}
|
||||
|
||||
mapdata = snarf_ar_hdr (abfd);
|
||||
if (mapdata == NULL) return false;
|
||||
mapdata = _bfd_snarf_ar_hdr (abfd);
|
||||
if (mapdata == NULL)
|
||||
return false;
|
||||
|
||||
raw_armap = (int *) bfd_zalloc(abfd,mapdata->parsed_size);
|
||||
if (raw_armap == NULL)
|
||||
@ -952,8 +976,9 @@ _bfd_slurp_extended_name_table (abfd)
|
||||
return true;
|
||||
}
|
||||
|
||||
namedata = snarf_ar_hdr (abfd);
|
||||
if (namedata == NULL) return false;
|
||||
namedata = _bfd_snarf_ar_hdr (abfd);
|
||||
if (namedata == NULL)
|
||||
return false;
|
||||
|
||||
bfd_ardata (abfd)->extended_names = bfd_zalloc(abfd,namedata->parsed_size);
|
||||
if (bfd_ardata (abfd)->extended_names == NULL) {
|
||||
@ -999,9 +1024,9 @@ _bfd_slurp_extended_name_table (abfd)
|
||||
|
||||
/* Return a copy of the stuff in the filename between any :]> and a
|
||||
semicolon */
|
||||
static CONST char *
|
||||
DEFUN(normalize,(file),
|
||||
CONST char *file)
|
||||
static const char *
|
||||
normalize (file)
|
||||
const char *file;
|
||||
{
|
||||
CONST char *first;
|
||||
CONST char *last;
|
||||
@ -1031,9 +1056,9 @@ DEFUN(normalize,(file),
|
||||
}
|
||||
|
||||
#else
|
||||
static CONST char *
|
||||
DEFUN (normalize, (file),
|
||||
CONST char *file)
|
||||
static const char *
|
||||
normalize (file)
|
||||
const char *file;
|
||||
{
|
||||
CONST char * filename = strrchr(file, '/');
|
||||
|
||||
@ -1053,11 +1078,11 @@ DEFUN (normalize, (file),
|
||||
Returns true if it ran successfully, false if something went wrong.
|
||||
A successful return may still involve a zero-length tablen!
|
||||
*/
|
||||
boolean
|
||||
DEFUN (bfd_construct_extended_name_table, (abfd, tabloc, tablen),
|
||||
bfd *abfd AND
|
||||
char **tabloc AND
|
||||
unsigned int *tablen)
|
||||
static boolean
|
||||
bfd_construct_extended_name_table (abfd, tabloc, tablen)
|
||||
bfd *abfd;
|
||||
char **tabloc;
|
||||
unsigned int *tablen;
|
||||
{
|
||||
unsigned int maxname = abfd->xvec->ar_max_namelen;
|
||||
unsigned int total_namelen = 0;
|
||||
@ -1118,17 +1143,16 @@ DEFUN (bfd_construct_extended_name_table, (abfd, tabloc, tablen),
|
||||
The filename field of the ar_hdr will NOT be initialized
|
||||
*/
|
||||
|
||||
struct areltdata *
|
||||
DEFUN(bfd_ar_hdr_from_filesystem, (abfd,filename),
|
||||
bfd* abfd AND
|
||||
CONST char *filename)
|
||||
static struct areltdata *
|
||||
bfd_ar_hdr_from_filesystem (abfd,filename)
|
||||
bfd* abfd;
|
||||
const char *filename;
|
||||
{
|
||||
struct stat status;
|
||||
struct areltdata *ared;
|
||||
struct ar_hdr *hdr;
|
||||
char *temp, *temp1;
|
||||
|
||||
|
||||
if (stat (filename, &status) != 0) {
|
||||
bfd_error = system_call_error;
|
||||
return NULL;
|
||||
@ -1175,9 +1199,9 @@ DEFUN(bfd_ar_hdr_from_filesystem, (abfd,filename),
|
||||
*/
|
||||
|
||||
struct ar_hdr *
|
||||
DEFUN(bfd_special_undocumented_glue, (abfd, filename),
|
||||
bfd *abfd AND
|
||||
char *filename)
|
||||
bfd_special_undocumented_glue (abfd, filename)
|
||||
bfd *abfd;
|
||||
char *filename;
|
||||
{
|
||||
struct areltdata *ar_elt = bfd_ar_hdr_from_filesystem (abfd, filename);
|
||||
if (ar_elt == NULL)
|
||||
@ -1269,7 +1293,8 @@ bfd_bsd_truncate_arname (abfd, pathname, arhdr)
|
||||
length = maxlen;
|
||||
}
|
||||
|
||||
if (length < maxlen) (hdr->ar_name)[length] = ar_padchar (abfd);
|
||||
if (length < maxlen)
|
||||
(hdr->ar_name)[length] = ar_padchar (abfd);
|
||||
}
|
||||
|
||||
/* Store name into ar header. Truncates the name to fit.
|
||||
@ -1309,7 +1334,8 @@ bfd_gnu_truncate_arname (abfd, pathname, arhdr)
|
||||
length = maxlen;
|
||||
}
|
||||
|
||||
if (length < 16) (hdr->ar_name)[length] = ar_padchar (abfd);
|
||||
if (length < 16)
|
||||
(hdr->ar_name)[length] = ar_padchar (abfd);
|
||||
}
|
||||
|
||||
|
||||
@ -1455,7 +1481,7 @@ _bfd_write_archive_contents (arch)
|
||||
|
||||
/* Note that the namidx for the first symbol is 0 */
|
||||
|
||||
boolean
|
||||
static boolean
|
||||
compute_and_write_armap (arch, elength)
|
||||
bfd *arch;
|
||||
unsigned int elength;
|
||||
|
23
bfd/ecoff.c
23
bfd/ecoff.c
@ -1147,7 +1147,7 @@ ecoff_get_symtab_upper_bound (abfd)
|
||||
return (bfd_get_symcount (abfd) + 1) * (sizeof (ecoff_symbol_type *));
|
||||
}
|
||||
|
||||
/* Get the canonicals symbols. */
|
||||
/* Get the canonical symbols. */
|
||||
|
||||
unsigned int
|
||||
ecoff_get_symtab (abfd, alocation)
|
||||
@ -2811,10 +2811,10 @@ ecoff_write_object_contents (abfd)
|
||||
}
|
||||
|
||||
/* Archive handling. ECOFF uses what appears to be a unique type of
|
||||
archive header (which I call an armap). The byte ordering of the
|
||||
armap and the contents are encoded in the name of the armap itself.
|
||||
At least for now, we only support archives with the same byte
|
||||
ordering in the armap and the contents.
|
||||
archive header (armap). The byte ordering of the armap and the
|
||||
contents are encoded in the name of the armap itself. At least for
|
||||
now, we only support archives with the same byte ordering in the
|
||||
armap and the contents.
|
||||
|
||||
The first four bytes in the armap are the number of symbol
|
||||
definitions. This is always a power of two.
|
||||
@ -2830,10 +2830,6 @@ ecoff_write_object_contents (abfd)
|
||||
The symbols are hashed into the armap with a closed hashing scheme.
|
||||
See the functions below for the details of the algorithm.
|
||||
|
||||
We could use the hash table when looking up symbols in a library.
|
||||
This would require a new BFD target entry point to replace the
|
||||
bfd_get_next_mapent function used by the linker.
|
||||
|
||||
After the symbol definitions comes four bytes holding the size of
|
||||
the string table, followed by the string table itself. */
|
||||
|
||||
@ -2942,7 +2938,7 @@ ecoff_slurp_armap (abfd)
|
||||
|
||||
/* Read in the armap. */
|
||||
ardata = bfd_ardata (abfd);
|
||||
mapdata = snarf_ar_hdr (abfd);
|
||||
mapdata = _bfd_snarf_ar_hdr (abfd);
|
||||
if (mapdata == (struct areltdata *) NULL)
|
||||
return false;
|
||||
parsed_size = mapdata->parsed_size;
|
||||
@ -2962,6 +2958,8 @@ ecoff_slurp_armap (abfd)
|
||||
return false;
|
||||
}
|
||||
|
||||
ardata->tdata = (PTR) raw_armap;
|
||||
|
||||
count = bfd_h_get_32 (abfd, (PTR) raw_armap);
|
||||
|
||||
ardata->symdef_count = 0;
|
||||
@ -3232,6 +3230,11 @@ ecoff_archive_p (abfd)
|
||||
}
|
||||
|
||||
bfd_ardata (abfd)->first_file_filepos = SARMAG;
|
||||
bfd_ardata (abfd)->cache = NULL;
|
||||
bfd_ardata (abfd)->archive_head = NULL;
|
||||
bfd_ardata (abfd)->symdefs = NULL;
|
||||
bfd_ardata (abfd)->extended_names = NULL;
|
||||
bfd_ardata (abfd)->tdata = NULL;
|
||||
|
||||
if (ecoff_slurp_armap (abfd) == false
|
||||
|| ecoff_slurp_extended_name_table (abfd) == false)
|
||||
|
@ -59,6 +59,7 @@ struct artdata {
|
||||
archive. */
|
||||
file_ptr armap_datepos; /* Position within archive to seek to
|
||||
rewrite the date field. */
|
||||
PTR tdata; /* Backend specific information. */
|
||||
};
|
||||
|
||||
#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
|
||||
@ -100,8 +101,9 @@ int bfd_stat PARAMS ((bfd *abfd, struct stat *));
|
||||
|
||||
bfd * _bfd_create_empty_archive_element_shell PARAMS ((bfd *obfd));
|
||||
bfd * look_for_bfd_in_cache PARAMS ((bfd *arch_bfd, file_ptr index));
|
||||
boolean _bfd_add_bfd_to_archive_cache PARAMS ((bfd *, file_ptr, bfd *));
|
||||
boolean _bfd_generic_mkarchive PARAMS ((bfd *abfd));
|
||||
struct areltdata * snarf_ar_hdr PARAMS ((bfd *abfd));
|
||||
struct areltdata * _bfd_snarf_ar_hdr PARAMS ((bfd *abfd));
|
||||
bfd_target * bfd_generic_archive_p PARAMS ((bfd *abfd));
|
||||
boolean bfd_slurp_armap PARAMS ((bfd *abfd));
|
||||
boolean bfd_slurp_bsd_armap_f2 PARAMS ((bfd *abfd));
|
||||
|
@ -59,6 +59,7 @@ struct artdata {
|
||||
archive. */
|
||||
file_ptr armap_datepos; /* Position within archive to seek to
|
||||
rewrite the date field. */
|
||||
PTR tdata; /* Backend specific information. */
|
||||
};
|
||||
|
||||
#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
|
||||
@ -100,8 +101,9 @@ int bfd_stat PARAMS ((bfd *abfd, struct stat *));
|
||||
|
||||
bfd * _bfd_create_empty_archive_element_shell PARAMS ((bfd *obfd));
|
||||
bfd * look_for_bfd_in_cache PARAMS ((bfd *arch_bfd, file_ptr index));
|
||||
boolean _bfd_add_bfd_to_archive_cache PARAMS ((bfd *, file_ptr, bfd *));
|
||||
boolean _bfd_generic_mkarchive PARAMS ((bfd *abfd));
|
||||
struct areltdata * snarf_ar_hdr PARAMS ((bfd *abfd));
|
||||
struct areltdata * _bfd_snarf_ar_hdr PARAMS ((bfd *abfd));
|
||||
bfd_target * bfd_generic_archive_p PARAMS ((bfd *abfd));
|
||||
boolean bfd_slurp_armap PARAMS ((bfd *abfd));
|
||||
boolean bfd_slurp_bsd_armap_f2 PARAMS ((bfd *abfd));
|
||||
|
Loading…
Reference in New Issue
Block a user