Lines Matching refs:archive

1 /* BFD back-end for archive files (libraries).
24 @setfilename archive-info
29 An archive (or library) is just another BFD. It has a symbol
32 The big difference between an archive BFD and an ordinary BFD
33 is that the archive doesn't have sections. Instead it has a
36 archive opened for reading will all be opened for reading. You
37 may put either input or output BFDs into an archive opened for
38 output; they will be handled correctly when the archive is closed.
41 the contents of an archive opened for input. You don't
42 have to read the entire archive if you don't want
47 the <<archive_head>> slot of the archive. Set it with
49 open output archive at a time.
51 As expected, the BFD archive code is more general than the
52 archive code of any given environment. BFD archives may
57 This can cause unexpected confusion, since some archive
75 Archives are supported in BFD in <<archive.c>>.
82 o - all archive elements start on an even boundary, newline padded;
88 (16 chars) space provided by a BSD archive. The trick is: make a
89 special "file" in the front of the archive, sort of like the SYMDEF
97 order to write an archive since you need to put a magic file at the
110 /* Summary of archive member names:
145 /* We keep a cache of archive filepointers to archive elements to
146 speed up searching the archive by filepos. We only add an entry to
209 Step through archive @var{abfd}'s symbol table (if it
218 A <<carsym>> is a canonical archive symbol. The only
259 BFDs contained in the archive @var{output} to @var{new_head}.
405 /* Extract the filename from the archive - there are two ways to
499 through the archive symbol table, but also used to get the next
503 _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
508 if (archive->my_archive)
510 filepos += archive->origin;
511 archive = archive->my_archive;
514 n_nfd = _bfd_look_for_bfd_in_cache (archive, filepos);
518 if (0 > bfd_seek (archive, filepos, SEEK_SET))
521 if ((new_areldata = _bfd_read_ar_hdr (archive)) == NULL)
524 n_nfd = _bfd_create_empty_archive_element_shell (archive);
527 bfd_release (archive, new_areldata);
531 n_nfd->origin = bfd_tell (archive);
535 if (_bfd_add_bfd_to_archive_cache (archive, filepos, n_nfd))
539 bfd_release (archive, n_nfd);
540 bfd_release (archive, new_areldata);
561 bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
564 Provided a BFD, @var{archive}, containing an archive and NULL, open
567 the archive and the previous return value to return a created
573 bfd_openr_next_archived_file (bfd *archive, bfd *last_file)
575 if ((bfd_get_format (archive) != bfd_archive) ||
576 (archive->direction == write_direction))
582 return BFD_SEND (archive,
583 openr_next_archived_file, (archive, last_file));
587 bfd_generic_openr_next_archived_file (bfd *archive, bfd *last_file)
592 filestart = bfd_ardata (archive)->first_file_filepos;
597 if (archive->my_archive)
598 filestart -= archive->origin;
605 return _bfd_get_elt_at_filepos (archive, filestart);
659 /* This archive has a map, so we may presume that the contents
661 archive can be recognized as an object file, it is for this
667 normal archive, regardless of the format of the object files.
668 We do accept an empty archive. */
688 /* Some constants for a 32 bit BSD archive structure. We do not
805 /* It seems that all numeric information in a coff archive is always
811 /* ... except that some archive formats are broken, and it may be our
875 /* Check for a second archive header (as used by PE). */
926 /* 64bit ELF (Irix 6) archive. */
967 /* The archive has at least 16 bytes in it. */
1050 element (the first in the archive, or second if there is an armap);
1106 /* Since the archive is supposed to be printable if it contains
1109 trailing '/'. DOS/NT created archive often have \ in them
1312 encounter an oddball archive format and want to
1649 filesystem (as opposed to living in an archive open for input)
1656 from (which are usually either an object file or archive on
1657 disk), not the archive entries we're writing to. We don't
1658 actually create bfds for the archive members, we just copy
1659 them byte-wise when we write out the archive. */
1706 /* Round size up to even number in archive header. */
1760 /* Verify the timestamp in the archive file. If it would not be
1772 (_("Warning: writing archive was slow: rewriting timestamp\n"));
1870 /* This symbol will go into the archive header. */
2019 /* At the end of archive file handling, update the timestamp in the
2036 bfd_perror (_("Reading archive file mod timestamp"));
2092 archive * the number of bytes in an int, + an int for the count. */
2105 /* Work out where the first object file will go in the archive. */
2142 out the object file's address in the archive. */
2150 /* Add size of this archive entry. */