binutils-gdb/bfd
Nick Clifton a8da640382 Add support for thin archives.
* bfd/archive.c (_bfd_find_nested_archive): New function.
    (get_extended_arelt_filename): Add origin parameter.
    (_bfd_generic_read_ar_hdr_mag): Deal with extended name
    combined with a file offset.
    (append_relative_path): New function.
    (_bfd_get_elt_at_filepos): Deal with external members and
    nested archives.
    (bfd_generic_openr_next_archived_file): Thin archives.
    (bfd_generic_archive_p): Recognize new magic string.
    (adjust_relative_path): New function.
    (_bfd_construct_extended_name_table): Construct extended
    names for thin archive members.
    (_bfd_write_archive_contents): Emit new magic string, skip
    copying files for thin archives.
    * bfd/bfd-in.h (bfd_is_thin_archive): New macro.
    * bfd/bfd.c (struct bfd): New fields for thin archives.
    * bfd/libbfd-in.h (struct areltdata): New field for thin archives.
    * bfd/opncls.c (bfd_close): Delete BFDs for nested archives.
    * binutils/ar.c (make_thin_archive): New global flag.
    (map_over_members): Deal with full pathnames in thin archives.
    (usage, main): Add 'T' option for building thin archives.
    (replace_members): Pass thin archive flag to ar_emul_append.
    * binutils/arsup.c (ar_open): Initialize new flag.
    * binutils/binemul.c (ar_emul_append): Add new parameter for
    flattening nested archives.
    (do_ar_emul_default_append): New function.
    (ar_emul_default_append): Factored out recursive code.
    * binutils/binemul.h (ar_emul_default_append): Add new parameter.
    (struct bin_emulation_xfer_struct): New parameter for ar_append.
    * binutils/dlltool.c (gen_lib_file): Initialize thin archive flag.
    * binutils/emul_aix.c (ar_emul_aix_internal): Add new flatten
    parameter, currently unimplemented.
    All callers changed.
    * binutils/objcopy.c (copy_archive): Preserve thin archive flag.
    * binutils/doc/binutils.texi: Update ar documentation.
    * binutils/testsuite/binutils-all/ar.exp: Add thin archive tests.
    * include/aout/ar.h (ARMAGT): New magic string for thin archives.
2008-03-28 06:49:44 +00:00
..
doc * configure.ac: m4_include config/proginstall.m4. 2008-03-17 22:17:33 +00:00
hosts
po bfd/ 2008-03-13 02:05:23 +00:00
acinclude.m4
aclocal.m4 * configure.ac: m4_include config/proginstall.m4. 2008-03-17 22:17:33 +00:00
aix5ppc-core.c
aix386-core.c
aout0.c
aout32.c
aout64.c
aout-adobe.c
aout-arm.c
aout-cris.c
aout-ns32k.c
aout-sparcle.c
aout-target.h
aout-tic30.c
aoutf1.h
aoutx.h 2007-08-09 Michael Snyder <msnyder@access-company.com> 2007-08-09 23:14:55 +00:00
archive64.c
archive.c Add support for thin archives. 2008-03-28 06:49:44 +00:00
archures.c * archures.c: Update copyright. 2008-02-04 19:15:52 +00:00
armnetbsd.c
bfd-in2.h Add support for thin archives. 2008-03-28 06:49:44 +00:00
bfd-in.h Add support for thin archives. 2008-03-28 06:49:44 +00:00
bfd.c Add support for thin archives. 2008-03-28 06:49:44 +00:00
bfd.m4
bfdio.c PR 868 2008-02-20 17:42:36 +00:00
bfdwin.c PR 868 2008-02-20 17:42:36 +00:00
binary.c * srec.c (srec_canonicalize_symtab): Don't alloc when symcount 2007-07-26 11:13:59 +00:00
bout.c
cache.c * cache.c (close_one): Remove mtime hack. 2008-03-14 18:39:43 +00:00
cf-i386lynx.c
cf-sparclynx.c
ChangeLog Add support for thin archives. 2008-03-28 06:49:44 +00:00
ChangeLog-0001
ChangeLog-0203
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007 Move 2007 ChangeLog entries to ChangeLog-2007. 2008-01-02 21:41:02 +00:00
ChangeLog-9193
ChangeLog-9495
ChangeLog-9697
ChangeLog-9899
cisco-core.c
coff64-rs6000.c
coff-alpha.c * ecoff.c (_bfd_ecoff_archive_p): Delete. 2008-01-21 03:48:10 +00:00
coff-apollo.c
coff-arm.c * coff-arm.c (arm_emit_base_file_entry): Check fwrite return value. 2007-10-15 02:00:11 +00:00
coff-aux.c
coff-go32.c
coff-h8300.c include/ 2008-02-15 03:35:53 +00:00
coff-h8500.c
coff-i386.c 2007-07-27 Michael Snyder <msnyder@access-company.com> 2007-07-27 21:23:01 +00:00
coff-i860.c
coff-i960.c
coff-ia64.c
coff-m68k.c
coff-m88k.c
coff-maxq.c
coff-mcore.c * coff-arm.c (arm_emit_base_file_entry): Check fwrite return value. 2007-10-15 02:00:11 +00:00
coff-mips.c * ecoff.c (_bfd_ecoff_archive_p): Delete. 2008-01-21 03:48:10 +00:00
coff-or32.c
coff-pmac.c
coff-ppc.c * coff-arm.c (arm_emit_base_file_entry): Check fwrite return value. 2007-10-15 02:00:11 +00:00
coff-rs6000.c
coff-sh.c
coff-sparc.c
coff-stgo32.c
coff-svm68k.c
coff-tic4x.c
coff-tic30.c
coff-tic54x.c
coff-tic80.c
coff-u68k.c
coff-w65.c
coff-we32k.c
coff-x86_64.c
coff-z8k.c
coff-z80.c
coffcode.h bfd/ 2007-08-02 16:02:01 +00:00
coffgen.c * coffgen.c (coff_get_normalized_symtab): Correct cast. 2007-08-13 01:45:11 +00:00
cofflink.c include/ 2008-02-15 03:35:53 +00:00
coffswap.h
config.bfd * efi-rtdrv-ia32.c: New file. 2008-02-14 15:20:26 +00:00
config.in PR 5146 2007-10-16 15:15:50 +00:00
configure * configure.ac: m4_include config/proginstall.m4. 2008-03-17 22:17:33 +00:00
configure.com
configure.host
configure.in * efi-rtdrv-ia32.c: New file. 2008-02-14 15:20:26 +00:00
COPYING
corefile.c
cpu-alpha.c
cpu-arc.c
cpu-arm.c
cpu-avr.c
cpu-bfin.c
cpu-cr16.c
cpu-cr16c.c
cpu-cris.c
cpu-crx.c
cpu-d10v.c
cpu-d30v.c
cpu-dlx.c
cpu-fr30.c
cpu-frv.c
cpu-h8300.c
cpu-h8500.c
cpu-hppa.c
cpu-i370.c
cpu-i386.c
cpu-i860.c
cpu-i960.c
cpu-ia64-opc.c
cpu-ia64.c
cpu-ip2k.c
cpu-iq2000.c
cpu-m32c.c
cpu-m32r.c
cpu-m68hc11.c
cpu-m68hc12.c
cpu-m68k.c bfd/ 2007-09-11 16:07:50 +00:00
cpu-m88k.c
cpu-m10200.c
cpu-m10300.c
cpu-maxq.c
cpu-mcore.c
cpu-mep.c
cpu-mips.c * archures.c: Update copyright. 2008-02-04 19:15:52 +00:00
cpu-mmix.c
cpu-msp430.c
cpu-mt.c
cpu-ns32k.c
cpu-openrisc.c
cpu-or32.c
cpu-pdp11.c
cpu-pj.c
cpu-powerpc.c
cpu-rs6000.c
cpu-s390.c
cpu-score.c
cpu-sh.c
cpu-sparc.c
cpu-spu.c
cpu-tic4x.c
cpu-tic30.c
cpu-tic54x.c
cpu-tic80.c
cpu-v850.c
cpu-vax.c
cpu-w65.c
cpu-we32k.c
cpu-xc16x.c
cpu-xstormy16.c
cpu-xtensa.c
cpu-z8k.c
cpu-z80.c
demo64.c
dep-in.sed
dwarf1.c * dwarf1.c (struct dwarf1_debug): Add syms member. 2008-02-14 13:02:38 +00:00
dwarf2.c PR 868 2008-02-22 15:27:38 +00:00
ecoff.c include/ 2008-02-15 03:35:53 +00:00
ecofflink.c
ecoffswap.h
efi-app-ia32.c
efi-app-ia64.c
efi-app-x86_64.c
efi-bsdrv-ia32.c * efi-rtdrv-ia32.c: New file. 2008-02-14 15:20:26 +00:00
efi-bsdrv-ia64.c * efi-rtdrv-ia32.c: New file. 2008-02-14 15:20:26 +00:00
efi-bsdrv-x86_64.c * efi-rtdrv-ia32.c: New file. 2008-02-14 15:20:26 +00:00
efi-rtdrv-ia32.c * efi-rtdrv-ia32.c: New file. 2008-02-14 15:20:26 +00:00
efi-rtdrv-ia64.c * efi-rtdrv-ia32.c: New file. 2008-02-14 15:20:26 +00:00
efi-rtdrv-x86_64.c * efi-rtdrv-ia32.c: New file. 2008-02-14 15:20:26 +00:00
elf32-am33lin.c
elf32-arc.c
elf32-arm.c bfd/ 2008-03-25 18:56:02 +00:00
elf32-avr.c include/elf/ 2008-03-12 08:37:09 +00:00
elf32-avr.h
elf32-bfin.c * elf32-bfin.c (bfin_final_link_relocate): New function, wrapper around 2008-03-26 13:04:23 +00:00
elf32-cr16.c * elf32-cr16.c (elf32_cr16_relax_section): Fix condition check typo. 2007-10-12 16:11:02 +00:00
elf32-cr16c.c
elf32-cris.c 2008-01-11 Tristan Gingold <gingold@adacore.com> 2008-01-11 09:07:04 +00:00
elf32-crx.c
elf32-d10v.c * elf-m10300.c (mn10300_elf_check_relocs): Delete dead code. 2007-09-28 08:43:45 +00:00
elf32-d30v.c
elf32-dlx.c * elf-m10300.c (mn10300_elf_check_relocs): Delete dead code. 2007-09-28 08:43:45 +00:00
elf32-fr30.c PR gas/5552 2008-01-09 12:29:08 +00:00
elf32-frv.c * elf.c (_bfd_elf_find_segment_containing_section): New function: 2007-12-31 11:01:54 +00:00
elf32-gen.c
elf32-h8300.c
elf32-hppa.c include/elf/ 2008-03-12 08:37:09 +00:00
elf32-hppa.h
elf32-i370.c
elf32-i386.c bfd/ 2008-03-25 18:56:02 +00:00
elf32-i860.c
elf32-i960.c
elf32-ip2k.c
elf32-iq2000.c * elf32-iq2000.c (iq2000_elf_relocate_section): Adjust addend of 2008-02-12 19:11:55 +00:00
elf32-m32c.c * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New. 2008-01-25 21:06:11 +00:00
elf32-m32r.c 2008-01-11 Tristan Gingold <gingold@adacore.com> 2008-01-11 09:07:04 +00:00
elf32-m68hc1x.c include/elf/ 2008-03-12 08:37:09 +00:00
elf32-m68hc1x.h
elf32-m68hc11.c
elf32-m68hc12.c
elf32-m68k.c 2008-01-11 Tristan Gingold <gingold@adacore.com> 2008-01-11 09:07:04 +00:00
elf32-m88k.c
elf32-mcore.c * elf-m10300.c (mn10300_elf_check_relocs): Delete dead code. 2007-09-28 08:43:45 +00:00
elf32-mep.c * elf-bfd.h (bfd_elf_perform_complex_relocation): Update prototype. 2007-11-19 02:19:39 +00:00
elf32-mips.c * elf.c ( _bfd_elf_print_private_bfd_data): Call 2008-02-27 17:06:06 +00:00
elf32-msp430.c * elf-m10300.c (mn10300_elf_check_relocs): Delete dead code. 2007-09-28 08:43:45 +00:00
elf32-mt.c * elf-m10300.c (mn10300_elf_check_relocs): Delete dead code. 2007-09-28 08:43:45 +00:00
elf32-openrisc.c * elf-m10300.c (mn10300_elf_check_relocs): Delete dead code. 2007-09-28 08:43:45 +00:00
elf32-or32.c
elf32-pj.c
elf32-ppc.c bfd/ 2008-03-25 18:56:02 +00:00
elf32-ppc.h
elf32-s390.c PR ld/5692 2008-02-12 11:32:31 +00:00
elf32-score.c * elf-m10300.c (mn10300_elf_check_relocs): Delete dead code. 2007-09-28 08:43:45 +00:00
elf32-sh64-com.c
elf32-sh64.c
elf32-sh64.h
elf32-sh-relocs.h
elf32-sh-symbian.c
elf32-sh.c bfd/ 2008-03-25 18:56:02 +00:00
elf32-sparc.c
elf32-spu.c bfd/ 2008-03-20 05:35:10 +00:00
elf32-spu.h bfd/ 2008-03-20 05:35:10 +00:00
elf32-v850.c bfd/ 2007-09-26 13:45:32 +00:00
elf32-vax.c 2008-01-11 Tristan Gingold <gingold@adacore.com> 2008-01-11 09:07:04 +00:00
elf32-xc16x.c
elf32-xstormy16.c bfd/ 2007-09-26 13:45:32 +00:00
elf32-xtensa.c * elf-bfd.h (_bfd_elf_section_from_bfd_section): Update prototype. 2008-03-11 23:23:23 +00:00
elf32.c
elf64-alpha.c include/ 2008-02-15 03:35:53 +00:00
elf64-gen.c
elf64-hppa.c include/elf/ 2008-03-12 08:37:09 +00:00
elf64-hppa.h
elf64-mips.c * elf.c ( _bfd_elf_print_private_bfd_data): Call 2008-02-27 17:06:06 +00:00
elf64-mmix.c * elf-m10300.c (mn10300_elf_check_relocs): Delete dead code. 2007-09-28 08:43:45 +00:00
elf64-ppc.c * elf-bfd.h (_bfd_elf_section_from_bfd_section): Update prototype. 2008-03-11 23:23:23 +00:00
elf64-ppc.h bfd/ 2008-01-15 07:25:49 +00:00
elf64-s390.c PR ld/5692 2008-02-12 11:32:31 +00:00
elf64-sh64.c * elf-bfd.h (_bfd_elf_section_from_bfd_section): Update prototype. 2008-03-11 23:23:23 +00:00
elf64-sparc.c include/ 2008-02-15 03:35:53 +00:00
elf64-x86-64.c bfd/ 2008-03-16 22:26:23 +00:00
elf64.c
elf-attrs.c
elf-bfd.h include/elf/ 2008-03-12 08:37:09 +00:00
elf-eh-frame.c bfd/ 2008-01-09 09:36:11 +00:00
elf-hppa.h include/elf/ 2008-03-12 08:37:09 +00:00
elf-m10200.c
elf-m10300.c * elf-m10300.c (mn10300_elf_relax_section): Use _bfd_merged_section_offset 2007-12-31 11:29:31 +00:00
elf-strtab.c PR 868 2008-02-20 17:42:36 +00:00
elf-vxworks.c * elf-vxworks.c (elf_vxworks_emit_relocs): Don't clobber 2007-11-09 10:20:17 +00:00
elf-vxworks.h * elf-vxworks.h (elf_vxworks_add_dynamic_entries): Declare. 2007-11-08 13:57:44 +00:00
elf.c * elf.c (_bfd_elf_print_private_bfd_data): Use bfd_fprintf_vma to 2008-03-21 16:22:51 +00:00
elfcode.h include/elf/ 2008-03-12 08:37:09 +00:00
elfcore.h 2007-08-04 H.J. Lu <hongjiu.lu@intel.com> 2007-08-04 16:31:00 +00:00
elflink.c include/elf/ 2008-03-13 05:27:42 +00:00
elfn32-mips.c * elf.c ( _bfd_elf_print_private_bfd_data): Call 2008-02-27 17:06:06 +00:00
elfxx-ia64.c 2008-03-14 H.J. Lu <hongjiu.lu@intel.com> 2008-03-14 16:40:09 +00:00
elfxx-mips.c bfd/ 2008-03-20 10:52:14 +00:00
elfxx-mips.h * elf.c ( _bfd_elf_print_private_bfd_data): Call 2008-02-27 17:06:06 +00:00
elfxx-sparc.c bfd/ 2008-03-25 18:56:02 +00:00
elfxx-sparc.h
elfxx-target.h * elf.c ( _bfd_elf_print_private_bfd_data): Call 2008-02-27 17:06:06 +00:00
epoc-pe-arm.c
epoc-pei-arm.c
format.c PR 4453 2008-01-21 04:56:47 +00:00
freebsd.h
gen-aout.c
genlink.h
go32stub.h
hash.c * bfd-in.h (bfd_hash_insert): Declare. 2007-09-19 12:08:34 +00:00
host-aout.c
hp300bsd.c
hp300hpux.c
hppabsd-core.c
hpux-core.c
i386aout.c
i386bsd.c
i386dynix.c
i386freebsd.c
i386linux.c include/ 2008-02-15 03:35:53 +00:00
i386lynx.c
i386mach3.c
i386msdos.c
i386netbsd.c
i386os9k.c
ieee.c bfd/ 2007-09-11 16:07:50 +00:00
ihex.c
init.c
irix-core.c
libaout.h
libbfd-in.h Add support for thin archives. 2008-03-28 06:49:44 +00:00
libbfd.c PR 868 2008-02-20 17:42:36 +00:00
libbfd.h Add support for thin archives. 2008-03-28 06:49:44 +00:00
libcoff-in.h
libcoff.h
libecoff.h * ecoff.c (_bfd_ecoff_archive_p): Delete. 2008-01-21 03:48:10 +00:00
libhppa.h
libieee.h
libnlm.h
liboasys.h
libpei.h * efi-rtdrv-ia32.c: New file. 2008-02-14 15:20:26 +00:00
libxcoff.h
linker.c include/ 2008-02-15 03:35:53 +00:00
lynx-core.c
m68k4knetbsd.c
m68klinux.c include/ 2008-02-15 03:35:53 +00:00
m68knetbsd.c
m88kmach3.c
m88kopenbsd.c
mach-o-target.c
mach-o.c PR 868 2008-02-20 17:42:36 +00:00
mach-o.h
MAINTAINERS
Makefile.am bfd/ 2008-03-13 02:05:23 +00:00
Makefile.in * configure.ac: m4_include config/proginstall.m4. 2008-03-17 22:17:33 +00:00
makefile.vms
mep-relocs.pl
merge.c * merge.c (sec_merge_hash_lookup): Revert last change. 2007-11-05 02:13:46 +00:00
mipsbsd.c
mmo.c * srec.c (srec_canonicalize_symtab): Don't alloc when symcount 2007-07-26 11:13:59 +00:00
netbsd-core.c
netbsd.h
newsos3.c
nlm32-alpha.c
nlm32-i386.c
nlm32-ppc.c
nlm32-sparc.c
nlm32.c
nlm64.c
nlm-target.h
nlm.c
nlmcode.h
nlmswap.h
ns32k.h
ns32knetbsd.c
oasys.c
opncls.c Add support for thin archives. 2008-03-28 06:49:44 +00:00
osf-core.c
pc532-mach.c
pdp11.c
pe-arm-wince.c
pe-arm.c
pe-i386.c include 2007-11-04 23:49:09 +00:00
pe-mcore.c
pe-mips.c
pe-ppc.c
pe-sh.c
pe-x86_64.c
pef-traceback.h
pef.c
pef.h
pei-arm-wince.c
pei-arm.c
pei-i386.c Apply delta accidentally omitted from 2007-11-05 commit. 2007-11-09 08:35:29 +00:00
pei-mcore.c
pei-mips.c
pei-ppc.c
pei-sh.c
pei-x86_64.c
peicode.h * efi-rtdrv-ia32.c: New file. 2008-02-14 15:20:26 +00:00
peXXigen.c 2007-11-13 H.J. Lu <hongjiu.lu@intel.com> 2007-11-13 20:17:43 +00:00
PORTING
ppcboot.c
ptrace-core.c
README
reloc16.c
reloc.c 2008-02-20 Paul Brook <paul@codesourcery.com> 2008-02-20 15:17:56 +00:00
riscix.c
rs6000-core.c
sco5-core.c
section.c PR 5765 2008-02-15 10:35:46 +00:00
simple.c * simple.c (bfd_simple_get_relocated_section_contents): Set 2008-02-16 23:00:12 +00:00
som.c PR binutils/5146 2007-12-29 01:36:40 +00:00
som.h * syms.c (_bfd_stab_section_find_nearest_line): Look at the 2007-09-21 07:58:03 +00:00
sparclinux.c include/ 2008-02-15 03:35:53 +00:00
sparclynx.c
sparcnetbsd.c
srec.c * cache.c (cache_bread): Set bfd_error_file_truncated if EOF 2008-02-11 13:52:02 +00:00
stab-syms.c
stabs.c PR 868 2008-02-20 17:42:36 +00:00
stamp-h.in
sunos.c include/ 2008-02-15 03:35:53 +00:00
syms.c * syms.c (_bfd_stab_section_find_nearest_line): Look at the 2007-09-21 07:58:03 +00:00
sysdep.h
targets.c * efi-rtdrv-ia32.c: New file. 2008-02-14 15:20:26 +00:00
targmatch.sed
tekhex.c 2007-07-26 Michael Snyder <msnyder@access-company.com> 2007-07-26 18:18:07 +00:00
ticoff.h
TODO
trad-core.c * trad-core.c (NBPG): If not defined, set to getpagesize(). 2007-07-15 06:33:34 +00:00
vax1knetbsd.c
vaxbsd.c
vaxnetbsd.c
versados.c
version.h daily update 2008-03-27 23:00:05 +00:00
vms-gsd.c
vms-hdr.c
vms-misc.c PR 868 2008-02-20 17:42:36 +00:00
vms-tir.c PR 868 2008-02-20 17:42:36 +00:00
vms.c PR 868 2008-02-20 17:42:36 +00:00
vms.h
warning.m4 bfd/ 2008-02-04 19:43:51 +00:00
xcoff-target.h
xcofflink.c include/ 2008-02-15 03:35:53 +00:00
xsym.c
xsym.h
xtensa-isa.c bfd/ 2008-03-03 23:23:41 +00:00
xtensa-modules.c

BFD is an object file library.  It permits applications to use the
same routines to process object files regardless of their format.

BFD is used by the GNU debugger, assembler, linker, and the binary
utilities.

The documentation on using BFD is scanty and may be occasionally
incorrect.  Pointers to documentation problems, or an entirely
rewritten manual, would be appreciated.

There is some BFD internals documentation in doc/bfdint.texi which may
help programmers who want to modify BFD.

BFD is normally built as part of another package.  See the build
instructions for that package, probably in a README file in the
appropriate directory.

BFD supports the following configure options:

  --target=TARGET
	The default target for which to build the library.  TARGET is
	a configuration target triplet, such as sparc-sun-solaris.
  --enable-targets=TARGET,TARGET,TARGET...
	Additional targets the library should support.  To include
	support for all known targets, use --enable-targets=all.
  --enable-64-bit-bfd
	Include support for 64 bit targets.  This is automatically
	turned on if you explicitly request a 64 bit target, but not
	for --enable-targets=all.  This requires a compiler with a 64
	bit integer type, such as gcc.
  --enable-shared
	Build BFD as a shared library.
  --with-mmap
	Use mmap when accessing files.  This is faster on some hosts,
	but slower on others.  It may not work on all hosts.

Report bugs with BFD to bug-binutils@gnu.org.

Patches are encouraged.  When sending patches, always send the output
of diff -u or diff -c from the original file to the new file.  Do not
send default diff output.  Do not make the diff from the new file to
the original file.  Remember that any patch must not break other
systems.  Remember that BFD must support cross compilation from any
host to any target, so patches which use ``#ifdef HOST'' are not
acceptable.  Please also read the ``Reporting Bugs'' section of the
gcc manual.

Bug reports without patches will be remembered, but they may never get
fixed until somebody volunteers to fix them.