Import GDB 6.2.1 as obtained from ftp.gnu.org without the files in
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Sun, 24 Oct 2004 19:56:26 +0000 (19:56 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Sun, 24 Oct 2004 19:56:26 +0000 (19:56 +0000)
README.DELETED.

594 files changed:
contrib/gdb-6.2.1/README.DELETED [new file with mode: 0644]
contrib/gdb-6.2.1/README.DRAGONFLY [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/COPYING [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/ChangeLog [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/PORTING [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/README [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/TODO [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/aout0.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/aout32.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/aout64.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/aoutf1.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/aoutx.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/archive.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/archive64.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/archures.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/armnetbsd.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/bfd-in.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/bfd-in2.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/bfd.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/bfdio.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/bfdwin.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/binary.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/bout.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/cache.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/cisco-core.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/coff-i386.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/coffcode.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/coffgen.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/cofflink.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/coffswap.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/config.bfd [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/corefile.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/cpu-i386.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/demo64.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/dep-in.sed [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/dwarf1.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/dwarf2.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/ecoff.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/ecofflink.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/ecoffswap.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/efi-app-ia32.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elf-bfd.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elf-eh-frame.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elf-strtab.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elf.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elf32-gen.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elf32-i386.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elf32.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elf64-gen.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elf64-x86-64.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elf64.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elfcode.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elfcore.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elflink.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/elfxx-target.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/format.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/freebsd.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/gen-aout.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/genlink.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/hash.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/hosts/i386bsd.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/i386aout.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/i386bsd.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/i386freebsd.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/ieee.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/ihex.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/init.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/libaout.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/libbfd-in.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/libbfd.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/libbfd.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/libcoff-in.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/libcoff.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/libecoff.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/libieee.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/linker.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/merge.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/opncls.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/ptrace-core.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/reloc.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/reloc16.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/section.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/simple.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/srec.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/stab-syms.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/stabs.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/stamp-h.in [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/syms.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/sysdep.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/targets.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/targmatch.sed [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/tekhex.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/ticoff.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/trad-core.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/version.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/xcoff-target.h [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/xcofflink.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/xsym.c [new file with mode: 0644]
contrib/gdb-6.2.1/bfd/xsym.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/CONTRIBUTE [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/COPYING [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ChangeLog [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/MAINTAINERS [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/NEWS [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/PROBLEMS [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/README [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/TODO [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/abug-rom.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/amd64-tdep.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/amd64-tdep.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/amd64bsd-nat.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/amd64fbsd-nat.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/amd64fbsd-tdep.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/annotate.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/annotate.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/arch-utils.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/arch-utils.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/auxv.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/auxv.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ax-gdb.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ax-gdb.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ax-general.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ax.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/bcache.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/bcache.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/bfd-target.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/bfd-target.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/block.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/block.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/blockframe.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/breakpoint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/breakpoint.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/bsd-kvm.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/bsd-kvm.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/buildsym.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/buildsym.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/c-exp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/c-exp.y [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/c-lang.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/c-lang.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/c-typeprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/c-valprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/call-cmds.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/charset.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/charset.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli-out.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli-out.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-cmds.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-cmds.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-decode.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-decode.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-dump.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-dump.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-interp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-logging.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-script.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-script.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-setshow.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-setshow.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-utils.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cli/cli-utils.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/coff-pe-read.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/coff-pe-read.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/coff-solib.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/coff-solib.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/coffread.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/command.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/complaints.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/complaints.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/completer.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/completer.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/config/i386/fbsd.mh [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/config/i386/fbsd.mt [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/config/i386/fbsd64.mh [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/config/i386/fbsd64.mt [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/config/i386/i386.mt [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/config/i386/nm-fbsd.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/config/i386/nm-fbsd64.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/config/i386/nm-i386.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/config/i386/tm-fbsd.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/config/i386/xm-i386.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/config/nm-bsd.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/copying.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/core-aout.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/core-regset.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/corefile.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/corelow.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cp-abi.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cp-abi.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cp-namespace.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cp-support.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cp-support.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/cp-valprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dbxread.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dcache.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dcache.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/defs.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/demangle.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dictionary.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dictionary.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dink32-rom.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/disasm.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/disasm.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doc/GDBvn.texi [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doc/agentexpr.texi [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doc/all-cfg.texi [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doc/annotate.texinfo [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doc/fdl.texi [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doc/gdb.texinfo [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doc/gdbint.texinfo [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doc/gpl.texi [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doc/observer.texi [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doc/stabs.texinfo [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doublest.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/doublest.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dsrec.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dummy-frame.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dummy-frame.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dwarf2-frame.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dwarf2-frame.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dwarf2expr.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dwarf2expr.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dwarf2loc.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dwarf2loc.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dwarf2read.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/dwarfread.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/elfread.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/environ.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/environ.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/eval.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/event-loop.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/event-loop.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/event-top.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/event-top.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/exc_request.defs [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/exec.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/exec.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/expprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/expression.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/f-exp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/f-exp.y [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/f-lang.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/f-lang.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/f-typeprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/f-valprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/fbsd-proc.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/findvar.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/fork-child.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/frame-base.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/frame-base.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/frame-unwind.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/frame-unwind.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/frame.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/frame.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gcore.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb-events.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb-events.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb-events.sh [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb-stabs.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb.1 [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb.gdb [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_assert.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_curses.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_dirent.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_gcore.sh [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_indent.sh [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_locale.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_mbuild.sh [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_obstack.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_proc_service.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_regex.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_stat.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_string.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_thread_db.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_vfork.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdb_wait.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdbarch.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdbarch.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdbarch.sh [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdbcmd.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdbcore.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdbinit.in [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdbthread.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdbtypes.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gdbtypes.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gnu-v2-abi.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gnu-v3-abi.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/gregset.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/hpacc-abi.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/hpread.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/i386-nat.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/i386-tdep.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/i386-tdep.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/i386bsd-nat.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/i386bsd-tdep.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/i386fbsd-nat.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/i386fbsd-tdep.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/i387-tdep.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/i387-tdep.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/inf-loop.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/inf-loop.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/infcall.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/infcall.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/infcmd.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/inferior.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/inflow.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/inflow.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/infptrace.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/infrun.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/inftarg.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/infttrace.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/infttrace.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/interps.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/interps.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/jv-exp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/jv-exp.y [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/jv-lang.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/jv-lang.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/jv-typeprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/jv-valprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/kod-cisco.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/kod.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/kod.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/language.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/language.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/libunwind-frame.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/libunwind-frame.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/lin-lwp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/linespec.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/linespec.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/m2-exp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/m2-exp.y [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/m2-lang.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/m2-lang.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/m2-typeprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/m2-valprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/macrocmd.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/macroexp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/macroexp.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/macroscope.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/macroscope.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/macrotab.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/macrotab.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/main.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/main.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/maint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mcore-rom.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mcore-tdep.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mdebugread.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mem-break.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/memattr.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/memattr.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-cmd-break.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-cmd-disas.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-cmd-env.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-cmd-file.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-cmd-stack.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-cmd-var.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-cmds.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-cmds.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-console.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-console.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-getopt.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-getopt.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-interp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-main.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-main.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-out.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-out.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-parse.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-parse.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mi/mi-symbol-cmds.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/minsyms.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/mipsread.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/monitor.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/monitor.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/nlmread.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/objc-exp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/objc-exp.y [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/objc-lang.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/objc-lang.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/objfiles.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/objfiles.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/observer.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/observer.sh [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/osabi.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/osabi.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/p-exp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/p-exp.y [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/p-lang.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/p-lang.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/p-typeprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/p-valprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/parse.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/parser-defs.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/printcmd.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/proc-api.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/proc-events.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/proc-flags.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/proc-service.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/proc-utils.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/proc-why.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/process_reply.defs [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/procfs.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/regcache.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/regcache.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/reggroups.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/reggroups.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/regset.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/regset.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/remote-fileio.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/remote-fileio.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/remote-sds.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/remote-sim.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/remote-utils.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/remote-utils.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/remote.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/remote.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/reply_mig_hack.awk [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/scm-exp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/scm-lang.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/scm-lang.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/scm-tags.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/scm-valprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/sentinel-frame.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/sentinel-frame.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ser-pipe.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ser-tcp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ser-unix.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ser-unix.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/serial.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/serial.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/signals/signals.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/sim-regno.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/solib-svr4.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/solib-svr4.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/solib.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/solib.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/solist.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/source.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/source.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/srec.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/stabsread.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/stabsread.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/stack.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/stack.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/standalone.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/std-regs.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/stop-gdb.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/symfile-mem.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/symfile.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/symfile.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/symmisc.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/symtab.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/symtab.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/target.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/target.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/terminal.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/thread-db.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/thread.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/top.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/top.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tracepoint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tracepoint.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/trad-frame.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/trad-frame.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tramp-frame.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tramp-frame.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/ChangeLog-1998-2003 [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-command.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-command.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-data.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-data.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-disasm.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-disasm.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-file.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-file.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-hooks.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-hooks.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-interp.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-io.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-io.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-layout.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-layout.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-main.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-out.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-regs.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-regs.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-source.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-source.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-stack.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-stack.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-win.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-win.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-windata.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-windata.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-wingeneral.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-wingeneral.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-winsource.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui-winsource.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/tui/tui.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/typeprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/typeprint.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ui-file.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ui-file.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ui-out.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/ui-out.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/user-regs.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/user-regs.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/utils.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/valarith.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/valops.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/valprint.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/valprint.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/value.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/values.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/varobj.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/varobj.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/version.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/version.in [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/wrapper.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/wrapper.h [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/xcoffread.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/xcoffsolib.c [new file with mode: 0644]
contrib/gdb-6.2.1/gdb/xcoffsolib.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/ansidecl.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/aout/aout64.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/aout/ar.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/aout/ranlib.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/aout/stab.def [new file with mode: 0644]
contrib/gdb-6.2.1/include/aout/stab_gnu.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/bfdlink.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/coff/ecoff.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/coff/external.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/coff/i386.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/coff/internal.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/coff/sym.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/coff/symconst.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/demangle.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/dis-asm.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/elf/common.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/elf/dwarf.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/elf/dwarf2.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/elf/external.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/elf/i386.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/elf/internal.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/elf/mips.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/elf/reloc-macros.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/filenames.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/floatformat.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/fopen-same.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/gdb/fileio.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/gdb/signals.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/hashtab.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/libiberty.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/objalloc.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/obstack.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/safe-ctype.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/splay-tree.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/symcat.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/xregex.h [new file with mode: 0644]
contrib/gdb-6.2.1/include/xregex2.h [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/COPYING.LIB [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/ChangeLog [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/argv.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/concat.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/cp-demangle.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/cp-demangle.h [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/cplus-dem.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/floatformat.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/getopt.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/getopt1.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/getruntime.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/hashtab.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/hex.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/lbasename.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/objalloc.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/obstack.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/regex.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/safe-ctype.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/splay-tree.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/xexit.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/xstrdup.c [new file with mode: 0644]
contrib/gdb-6.2.1/libiberty/xstrerror.c [new file with mode: 0644]
contrib/gdb-6.2.1/opcodes/ChangeLog [new file with mode: 0644]
contrib/gdb-6.2.1/opcodes/dis-buf.c [new file with mode: 0644]
contrib/gdb-6.2.1/opcodes/dis-init.c [new file with mode: 0644]
contrib/gdb-6.2.1/opcodes/disassemble.c [new file with mode: 0644]
contrib/gdb-6.2.1/opcodes/i386-dis.c [new file with mode: 0644]
contrib/gdb-6.2.1/opcodes/opintl.h [new file with mode: 0644]
contrib/gdb-6.2.1/opcodes/sysdep.h [new file with mode: 0644]

diff --git a/contrib/gdb-6.2.1/README.DELETED b/contrib/gdb-6.2.1/README.DELETED
new file mode 100644 (file)
index 0000000..a551e35
--- /dev/null
@@ -0,0 +1,1094 @@
+COPYING
+COPYING.LIB
+Makefile.def
+Makefile.in
+Makefile.tpl
+README
+bfd/ChangeLog-0001
+bfd/ChangeLog-0203
+bfd/ChangeLog-9193
+bfd/ChangeLog-9495
+bfd/ChangeLog-9697
+bfd/ChangeLog-9899
+bfd/MAINTAINERS
+bfd/Makefile.am
+bfd/Makefile.in
+bfd/acinclude.m4
+bfd/aclocal.m4
+bfd/aix386-core.c
+bfd/aix5ppc-core.c
+bfd/aout-adobe.c
+bfd/aout-arm.c
+bfd/aout-cris.c
+bfd/aout-encap.c
+bfd/aout-ns32k.c
+bfd/aout-sparcle.c
+bfd/aout-target.h
+bfd/aout-tic30.c
+bfd/cf-i386lynx.c
+bfd/cf-m68klynx.c
+bfd/cf-sparclynx.c
+bfd/coff-a29k.c
+bfd/coff-alpha.c
+bfd/coff-apollo.c
+bfd/coff-arm.c
+bfd/coff-aux.c
+bfd/coff-go32.c
+bfd/coff-h8300.c
+bfd/coff-h8500.c
+bfd/coff-i860.c
+bfd/coff-i960.c
+bfd/coff-ia64.c
+bfd/coff-m68k.c
+bfd/coff-m88k.c
+bfd/coff-mcore.c
+bfd/coff-mips.c
+bfd/coff-or32.c
+bfd/coff-pmac.c
+bfd/coff-ppc.c
+bfd/coff-rs6000.c
+bfd/coff-sh.c
+bfd/coff-sparc.c
+bfd/coff-stgo32.c
+bfd/coff-svm68k.c
+bfd/coff-tic30.c
+bfd/coff-tic4x.c
+bfd/coff-tic54x.c
+bfd/coff-tic80.c
+bfd/coff-u68k.c
+bfd/coff-w65.c
+bfd/coff-we32k.c
+bfd/coff-z8k.c
+bfd/coff64-rs6000.c
+bfd/config.in
+bfd/configure
+bfd/configure.com
+bfd/configure.host
+bfd/configure.in
+bfd/cpu-a29k.c
+bfd/cpu-alpha.c
+bfd/cpu-arc.c
+bfd/cpu-arm.c
+bfd/cpu-avr.c
+bfd/cpu-cr16c.c
+bfd/cpu-cris.c
+bfd/cpu-crx.c
+bfd/cpu-d10v.c
+bfd/cpu-d30v.c
+bfd/cpu-dlx.c
+bfd/cpu-fr30.c
+bfd/cpu-frv.c
+bfd/cpu-h8300.c
+bfd/cpu-h8500.c
+bfd/cpu-hppa.c
+bfd/cpu-i370.c
+bfd/cpu-i860.c
+bfd/cpu-i960.c
+bfd/cpu-ia64-opc.c
+bfd/cpu-ia64.c
+bfd/cpu-ip2k.c
+bfd/cpu-iq2000.c
+bfd/cpu-m10200.c
+bfd/cpu-m10300.c
+bfd/cpu-m32r.c
+bfd/cpu-m68hc11.c
+bfd/cpu-m68hc12.c
+bfd/cpu-m68k.c
+bfd/cpu-m88k.c
+bfd/cpu-mcore.c
+bfd/cpu-mips.c
+bfd/cpu-mmix.c
+bfd/cpu-msp430.c
+bfd/cpu-ns32k.c
+bfd/cpu-openrisc.c
+bfd/cpu-or32.c
+bfd/cpu-pdp11.c
+bfd/cpu-pj.c
+bfd/cpu-powerpc.c
+bfd/cpu-rs6000.c
+bfd/cpu-s390.c
+bfd/cpu-sh.c
+bfd/cpu-sparc.c
+bfd/cpu-tic30.c
+bfd/cpu-tic4x.c
+bfd/cpu-tic54x.c
+bfd/cpu-tic80.c
+bfd/cpu-v850.c
+bfd/cpu-vax.c
+bfd/cpu-w65.c
+bfd/cpu-we32k.c
+bfd/cpu-xstormy16.c
+bfd/cpu-xtensa.c
+bfd/cpu-z8k.c
+bfd/doc
+bfd/efi-app-ia64.c
+bfd/elf-hppa.h
+bfd/elf-m10200.c
+bfd/elf-m10300.c
+bfd/elf32-am33lin.c
+bfd/elf32-arc.c
+bfd/elf32-arm.h
+bfd/elf32-avr.c
+bfd/elf32-cr16c.c
+bfd/elf32-cris.c
+bfd/elf32-crx.c
+bfd/elf32-d10v.c
+bfd/elf32-d30v.c
+bfd/elf32-dlx.c
+bfd/elf32-fr30.c
+bfd/elf32-frv.c
+bfd/elf32-h8300.c
+bfd/elf32-hppa.c
+bfd/elf32-hppa.h
+bfd/elf32-i370.c
+bfd/elf32-i860.c
+bfd/elf32-i960.c
+bfd/elf32-ip2k.c
+bfd/elf32-iq2000.c
+bfd/elf32-m32r.c
+bfd/elf32-m68hc11.c
+bfd/elf32-m68hc12.c
+bfd/elf32-m68hc1x.c
+bfd/elf32-m68hc1x.h
+bfd/elf32-m68k.c
+bfd/elf32-m88k.c
+bfd/elf32-mcore.c
+bfd/elf32-mips.c
+bfd/elf32-msp430.c
+bfd/elf32-openrisc.c
+bfd/elf32-or32.c
+bfd/elf32-pj.c
+bfd/elf32-ppc.c
+bfd/elf32-ppc.h
+bfd/elf32-s390.c
+bfd/elf32-sh-symbian.c
+bfd/elf32-sh.c
+bfd/elf32-sh64-com.c
+bfd/elf32-sh64.c
+bfd/elf32-sh64.h
+bfd/elf32-sparc.c
+bfd/elf32-v850.c
+bfd/elf32-vax.c
+bfd/elf32-xstormy16.c
+bfd/elf32-xtensa.c
+bfd/elf64-alpha.c
+bfd/elf64-hppa.c
+bfd/elf64-hppa.h
+bfd/elf64-mips.c
+bfd/elf64-mmix.c
+bfd/elf64-ppc.c
+bfd/elf64-ppc.h
+bfd/elf64-s390.c
+bfd/elf64-sh64.c
+bfd/elf64-sparc.c
+bfd/elfarm-nabi.c
+bfd/elfarm-oabi.c
+bfd/elfn32-mips.c
+bfd/elfxx-ia64.c
+bfd/elfxx-mips.c
+bfd/elfxx-mips.h
+bfd/epoc-pe-arm.c
+bfd/epoc-pei-arm.c
+bfd/go32stub.h
+bfd/host-aout.c
+bfd/hosts/alphalinux.h
+bfd/hosts/alphavms.h
+bfd/hosts/decstation.h
+bfd/hosts/delta68.h
+bfd/hosts/dpx2.h
+bfd/hosts/hp300bsd.h
+bfd/hosts/i386linux.h
+bfd/hosts/i386mach3.h
+bfd/hosts/i386sco.h
+bfd/hosts/i860mach3.h
+bfd/hosts/m68kaux.h
+bfd/hosts/m68klinux.h
+bfd/hosts/m88kmach3.h
+bfd/hosts/mipsbsd.h
+bfd/hosts/mipsmach3.h
+bfd/hosts/news-mips.h
+bfd/hosts/news.h
+bfd/hosts/pc532mach.h
+bfd/hosts/riscos.h
+bfd/hosts/symmetry.h
+bfd/hosts/tahoe.h
+bfd/hosts/vaxbsd.h
+bfd/hosts/vaxult.h
+bfd/hosts/vaxult2.h
+bfd/hp300bsd.c
+bfd/hp300hpux.c
+bfd/hppabsd-core.c
+bfd/hpux-core.c
+bfd/i386dynix.c
+bfd/i386linux.c
+bfd/i386lynx.c
+bfd/i386mach3.c
+bfd/i386msdos.c
+bfd/i386netbsd.c
+bfd/i386os9k.c
+bfd/irix-core.c
+bfd/libhppa.h
+bfd/libnlm.h
+bfd/liboasys.h
+bfd/libpei.h
+bfd/libxcoff.h
+bfd/lynx-core.c
+bfd/m68k4knetbsd.c
+bfd/m68klinux.c
+bfd/m68klynx.c
+bfd/m68knetbsd.c
+bfd/m88kmach3.c
+bfd/m88kopenbsd.c
+bfd/mach-o-target.c
+bfd/mach-o.c
+bfd/mach-o.h
+bfd/makefile.vms
+bfd/mipsbsd.c
+bfd/mmo.c
+bfd/netbsd-core.c
+bfd/netbsd.h
+bfd/newsos3.c
+bfd/nlm-target.h
+bfd/nlm.c
+bfd/nlm32-alpha.c
+bfd/nlm32-i386.c
+bfd/nlm32-ppc.c
+bfd/nlm32-sparc.c
+bfd/nlm32.c
+bfd/nlm64.c
+bfd/nlmcode.h
+bfd/nlmswap.h
+bfd/ns32k.h
+bfd/ns32knetbsd.c
+bfd/oasys.c
+bfd/osf-core.c
+bfd/pc532-mach.c
+bfd/pdp11.c
+bfd/pe-arm.c
+bfd/pe-i386.c
+bfd/pe-mcore.c
+bfd/pe-mips.c
+bfd/pe-ppc.c
+bfd/pe-sh.c
+bfd/peXXigen.c
+bfd/pef-traceback.h
+bfd/pef.c
+bfd/pef.h
+bfd/pei-arm.c
+bfd/pei-i386.c
+bfd/pei-mcore.c
+bfd/pei-mips.c
+bfd/pei-ppc.c
+bfd/pei-sh.c
+bfd/peicode.h
+bfd/po
+bfd/ppcboot.c
+bfd/riscix.c
+bfd/rs6000-core.c
+bfd/sco5-core.c
+bfd/som.c
+bfd/som.h
+bfd/sparclinux.c
+bfd/sparclynx.c
+bfd/sparcnetbsd.c
+bfd/sunos.c
+bfd/vax1knetbsd.c
+bfd/vaxbsd.c
+bfd/vaxnetbsd.c
+bfd/versados.c
+bfd/vms-gsd.c
+bfd/vms-hdr.c
+bfd/vms-misc.c
+bfd/vms-tir.c
+bfd/vms.c
+bfd/vms.h
+bfd/xtensa-isa.c
+bfd/xtensa-modules.c
+config
+configure
+configure.in
+djunpack.bat
+etc
+gdb/ChangeLog-1990
+gdb/ChangeLog-1991
+gdb/ChangeLog-1992
+gdb/ChangeLog-1993
+gdb/ChangeLog-1994
+gdb/ChangeLog-1995
+gdb/ChangeLog-1996
+gdb/ChangeLog-1997
+gdb/ChangeLog-1998
+gdb/ChangeLog-1999
+gdb/ChangeLog-2000
+gdb/ChangeLog-2001
+gdb/ChangeLog-2002
+gdb/ChangeLog-2003
+gdb/ChangeLog-3.x
+gdb/Makefile.in
+gdb/acconfig.h
+gdb/acinclude.m4
+gdb/aclocal.m4
+gdb/ada-exp.c
+gdb/ada-exp.y
+gdb/ada-lang.c
+gdb/ada-lang.h
+gdb/ada-lex.l
+gdb/ada-typeprint.c
+gdb/ada-valprint.c
+gdb/aix-thread.c
+gdb/alpha-linux-tdep.c
+gdb/alpha-mdebug-tdep.c
+gdb/alpha-nat.c
+gdb/alpha-osf1-tdep.c
+gdb/alpha-tdep.c
+gdb/alpha-tdep.h
+gdb/alphabsd-nat.c
+gdb/alphabsd-tdep.c
+gdb/alphabsd-tdep.h
+gdb/alphafbsd-tdep.c
+gdb/alphanbsd-tdep.c
+gdb/amd64-linux-nat.c
+gdb/amd64-linux-tdep.c
+gdb/amd64-nat.c
+gdb/amd64-nat.h
+gdb/amd64nbsd-nat.c
+gdb/amd64nbsd-tdep.c
+gdb/amd64obsd-nat.c
+gdb/amd64obsd-tdep.c
+gdb/arm-linux-nat.c
+gdb/arm-linux-tdep.c
+gdb/arm-tdep.c
+gdb/arm-tdep.h
+gdb/armnbsd-nat.c
+gdb/armnbsd-tdep.c
+gdb/avr-tdep.c
+gdb/config.in
+gdb/config/alpha
+gdb/config/arm
+gdb/config/avr
+gdb/config/cris
+gdb/config/d10v
+gdb/config/djgpp
+gdb/config/frv
+gdb/config/h8300
+gdb/config/i386/cygwin.mh
+gdb/config/i386/cygwin.mt
+gdb/config/i386/go32.mh
+gdb/config/i386/i386gnu.mh
+gdb/config/i386/i386gnu.mt
+gdb/config/i386/i386lynx.mh
+gdb/config/i386/i386lynx.mt
+gdb/config/i386/i386sco.mh
+gdb/config/i386/i386sco4.mh
+gdb/config/i386/i386sco5.mh
+gdb/config/i386/i386sol2.mh
+gdb/config/i386/i386sol2.mt
+gdb/config/i386/i386v.mh
+gdb/config/i386/i386v4.mh
+gdb/config/i386/i386v42mp.mh
+gdb/config/i386/linux.mh
+gdb/config/i386/linux.mt
+gdb/config/i386/linux64.mh
+gdb/config/i386/linux64.mt
+gdb/config/i386/nbsd.mt
+gdb/config/i386/nbsd64.mh
+gdb/config/i386/nbsd64.mt
+gdb/config/i386/nbsdaout.mh
+gdb/config/i386/nbsdelf.mh
+gdb/config/i386/ncr3000.mh
+gdb/config/i386/ncr3000.mt
+gdb/config/i386/nm-cygwin.h
+gdb/config/i386/nm-go32.h
+gdb/config/i386/nm-i386gnu.h
+gdb/config/i386/nm-i386lynx.h
+gdb/config/i386/nm-i386sco.h
+gdb/config/i386/nm-i386sco4.h
+gdb/config/i386/nm-i386sco5.h
+gdb/config/i386/nm-i386sol2.h
+gdb/config/i386/nm-i386v.h
+gdb/config/i386/nm-i386v4.h
+gdb/config/i386/nm-i386v42mp.h
+gdb/config/i386/nm-linux.h
+gdb/config/i386/nm-linux64.h
+gdb/config/i386/nm-nbsd.h
+gdb/config/i386/nm-nbsdaout.h
+gdb/config/i386/nm-nto.h
+gdb/config/i386/nm-obsd.h
+gdb/config/i386/nto.mh
+gdb/config/i386/nto.mt
+gdb/config/i386/obsd.mh
+gdb/config/i386/obsd.mt
+gdb/config/i386/obsd64.mh
+gdb/config/i386/obsd64.mt
+gdb/config/i386/obsdaout.mh
+gdb/config/i386/tm-cygwin.h
+gdb/config/i386/tm-i386lynx.h
+gdb/config/i386/tm-i386sol2.h
+gdb/config/i386/tm-linux.h
+gdb/config/i386/tm-linux64.h
+gdb/config/i386/tm-nbsd.h
+gdb/config/i386/tm-nto.h
+gdb/config/i386/tm-vxworks.h
+gdb/config/i386/vxworks.mt
+gdb/config/i386/xm-cygwin.h
+gdb/config/i386/xm-go32.h
+gdb/config/i386/xm-i386sco.h
+gdb/config/i386/xm-i386v.h
+gdb/config/i386/xm-i386v4.h
+gdb/config/i386/xm-nbsd.h
+gdb/config/ia64
+gdb/config/m32r
+gdb/config/m68hc11
+gdb/config/m68k
+gdb/config/m88k
+gdb/config/mcore
+gdb/config/mips
+gdb/config/mn10300
+gdb/config/nm-gnu.h
+gdb/config/nm-linux.h
+gdb/config/nm-lynx.h
+gdb/config/nm-nbsd.h
+gdb/config/nm-nbsdaout.h
+gdb/config/nm-sysv4.h
+gdb/config/ns32k
+gdb/config/pa
+gdb/config/powerpc
+gdb/config/rs6000
+gdb/config/s390
+gdb/config/sh
+gdb/config/sparc
+gdb/config/tm-linux.h
+gdb/config/tm-lynx.h
+gdb/config/tm-nto.h
+gdb/config/tm-sysv4.h
+gdb/config/tm-vxworks.h
+gdb/config/v850
+gdb/config/vax
+gdb/config/xm-aix4.h
+gdb/config/xm-nbsd.h
+gdb/config/xm-sysv4.h
+gdb/config/xstormy16
+gdb/configure
+gdb/configure.host
+gdb/configure.in
+gdb/configure.tgt
+gdb/copying.awk
+gdb/cpu32bug-rom.c
+gdb/cris-tdep.c
+gdb/d10v-tdep.c
+gdb/dbug-rom.c
+gdb/doc/ChangeLog
+gdb/doc/LRS
+gdb/doc/Makefile.in
+gdb/doc/a4rc.sed
+gdb/doc/annotate.info
+gdb/doc/configure
+gdb/doc/configure.in
+gdb/doc/gdb.info
+gdb/doc/gdb.info-1
+gdb/doc/gdb.info-2
+gdb/doc/gdb.info-3
+gdb/doc/gdbint.info
+gdb/doc/lpsrc.sed
+gdb/doc/psrc.sed
+gdb/doc/refcard.tex
+gdb/doc/stabs.info
+gdb/dve3900-rom.c
+gdb/frv-linux-tdep.c
+gdb/frv-tdep.c
+gdb/frv-tdep.h
+gdb/gdbserver
+gdb/glibc-tdep.c
+gdb/glibc-tdep.h
+gdb/gnu-nat.c
+gdb/gnu-nat.h
+gdb/go32-nat.c
+gdb/h8300-tdep.c
+gdb/hppa-hpux-tdep.c
+gdb/hppa-linux-nat.c
+gdb/hppa-linux-tdep.c
+gdb/hppa-tdep.c
+gdb/hppa-tdep.h
+gdb/hppabsd-nat.c
+gdb/hppabsd-tdep.c
+gdb/hppah-nat.c
+gdb/hpux-thread.c
+gdb/i386-cygwin-tdep.c
+gdb/i386-linux-nat.c
+gdb/i386-linux-tdep.c
+gdb/i386-linux-tdep.h
+gdb/i386-nto-tdep.c
+gdb/i386-sol2-tdep.c
+gdb/i386-stub.c
+gdb/i386gnu-nat.c
+gdb/i386gnu-tdep.c
+gdb/i386ly-tdep.c
+gdb/i386nbsd-nat.c
+gdb/i386nbsd-tdep.c
+gdb/i386obsd-nat.c
+gdb/i386obsd-tdep.c
+gdb/i386v-nat.c
+gdb/i386v4-nat.c
+gdb/ia64-aix-nat.c
+gdb/ia64-aix-tdep.c
+gdb/ia64-linux-nat.c
+gdb/ia64-linux-tdep.c
+gdb/ia64-tdep.c
+gdb/ia64-tdep.h
+gdb/irix5-nat.c
+gdb/linux-nat.c
+gdb/linux-nat.h
+gdb/linux-proc.c
+gdb/lynx-nat.c
+gdb/m32r-rom.c
+gdb/m32r-stub.c
+gdb/m32r-tdep.c
+gdb/m68hc11-tdep.c
+gdb/m68k-stub.c
+gdb/m68k-tdep.c
+gdb/m68k-tdep.h
+gdb/m68kbsd-nat.c
+gdb/m68kbsd-tdep.c
+gdb/m68klinux-nat.c
+gdb/m68klinux-tdep.c
+gdb/m88k-tdep.c
+gdb/m88k-tdep.h
+gdb/m88kbsd-nat.c
+gdb/mi/ChangeLog-1999-2003
+gdb/mi/gdb-mi.el
+gdb/minimon.h
+gdb/mips-irix-tdep.c
+gdb/mips-linux-nat.c
+gdb/mips-linux-tdep.c
+gdb/mips-nat.c
+gdb/mips-tdep.c
+gdb/mips-tdep.h
+gdb/mipsnbsd-nat.c
+gdb/mipsnbsd-tdep.c
+gdb/mipsnbsd-tdep.h
+gdb/mipsv4-nat.c
+gdb/mn10300-tdep.c
+gdb/msg.defs
+gdb/msg_reply.defs
+gdb/nbsd-tdep.c
+gdb/nbsd-tdep.h
+gdb/nlm
+gdb/notify.defs
+gdb/ns32k-tdep.c
+gdb/ns32k-tdep.h
+gdb/ns32knbsd-nat.c
+gdb/ns32knbsd-tdep.c
+gdb/nto-procfs.c
+gdb/nto-tdep.c
+gdb/nto-tdep.h
+gdb/ocd.c
+gdb/ocd.h
+gdb/osf-share
+gdb/pa64solib.c
+gdb/pa64solib.h
+gdb/ppc-bdm.c
+gdb/ppc-linux-nat.c
+gdb/ppc-linux-tdep.c
+gdb/ppc-sysv-tdep.c
+gdb/ppc-tdep.h
+gdb/ppcbug-rom.c
+gdb/ppcnbsd-nat.c
+gdb/ppcnbsd-tdep.c
+gdb/ppcnbsd-tdep.h
+gdb/ppcobsd-nat.c
+gdb/ppcobsd-tdep.c
+gdb/ppcobsd-tdep.h
+gdb/rdi-share
+gdb/regformats
+gdb/remote-e7000.c
+gdb/remote-est.c
+gdb/remote-hms.c
+gdb/remote-m32r-sdi.c
+gdb/remote-mips.c
+gdb/remote-rdi.c
+gdb/remote-rdp.c
+gdb/remote-st.c
+gdb/remote-vx.c
+gdb/remote-vx68.c
+gdb/remote-vxmips.c
+gdb/remote-vxsparc.c
+gdb/rom68k-rom.c
+gdb/rs6000-nat.c
+gdb/rs6000-tdep.c
+gdb/s390-nat.c
+gdb/s390-tdep.c
+gdb/s390-tdep.h
+gdb/ser-e7kpc.c
+gdb/ser-go32.c
+gdb/sh-stub.c
+gdb/sh-tdep.c
+gdb/sh-tdep.h
+gdb/sh3-rom.c
+gdb/sh64-tdep.c
+gdb/shnbsd-nat.c
+gdb/shnbsd-tdep.c
+gdb/shnbsd-tdep.h
+gdb/sol-thread.c
+gdb/solib-aix5.c
+gdb/solib-frv.c
+gdb/solib-irix.c
+gdb/solib-legacy.c
+gdb/solib-osf.c
+gdb/solib-sunos.c
+gdb/somread.c
+gdb/somsolib.c
+gdb/somsolib.h
+gdb/sparc-linux-tdep.c
+gdb/sparc-nat.c
+gdb/sparc-nat.h
+gdb/sparc-sol2-nat.c
+gdb/sparc-sol2-tdep.c
+gdb/sparc-stub.c
+gdb/sparc-tdep.c
+gdb/sparc-tdep.h
+gdb/sparc64-linux-nat.c
+gdb/sparc64-linux-tdep.c
+gdb/sparc64-nat.c
+gdb/sparc64-sol2-tdep.c
+gdb/sparc64-tdep.c
+gdb/sparc64-tdep.h
+gdb/sparc64fbsd-nat.c
+gdb/sparc64fbsd-tdep.c
+gdb/sparc64nbsd-nat.c
+gdb/sparc64nbsd-tdep.c
+gdb/sparc64obsd-tdep.c
+gdb/sparcnbsd-nat.c
+gdb/sparcnbsd-tdep.c
+gdb/sparcobsd-tdep.c
+gdb/testsuite
+gdb/uw-thread.c
+gdb/v850-tdep.c
+gdb/v850ice.c
+gdb/vax-tdep.c
+gdb/vax-tdep.h
+gdb/vaxbsd-nat.c
+gdb/vaxnbsd-tdep.c
+gdb/vx-share
+gdb/win32-nat.c
+gdb/wince-stub.c
+gdb/wince-stub.h
+gdb/wince.c
+gdb/xstormy16-tdep.c
+gettext.m4
+include/COPYING
+include/ChangeLog
+include/ChangeLog-9103
+include/MAINTAINERS
+include/alloca-conf.h
+include/aout/ChangeLog
+include/aout/adobe.h
+include/aout/dynix3.h
+include/aout/encap.h
+include/aout/host.h
+include/aout/hp.h
+include/aout/hp300hpux.h
+include/aout/hppa.h
+include/aout/reloc.h
+include/aout/sun4.h
+include/bin-bugs.h
+include/bout.h
+include/coff/ChangeLog
+include/coff/ChangeLog-9103
+include/coff/a29k.h
+include/coff/alpha.h
+include/coff/apollo.h
+include/coff/arm.h
+include/coff/aux-coff.h
+include/coff/go32exe.h
+include/coff/h8300.h
+include/coff/h8500.h
+include/coff/i860.h
+include/coff/i960.h
+include/coff/ia64.h
+include/coff/m68k.h
+include/coff/m88k.h
+include/coff/mcore.h
+include/coff/mips.h
+include/coff/mipspe.h
+include/coff/or32.h
+include/coff/pe.h
+include/coff/powerpc.h
+include/coff/rs6000.h
+include/coff/rs6k64.h
+include/coff/sh.h
+include/coff/sparc.h
+include/coff/ti.h
+include/coff/tic30.h
+include/coff/tic4x.h
+include/coff/tic54x.h
+include/coff/tic80.h
+include/coff/w65.h
+include/coff/we32k.h
+include/coff/xcoff.h
+include/coff/z8k.h
+include/dyn-string.h
+include/elf/ChangeLog
+include/elf/ChangeLog-9103
+include/elf/alpha.h
+include/elf/arc.h
+include/elf/arm.h
+include/elf/avr.h
+include/elf/cr16c.h
+include/elf/cris.h
+include/elf/crx.h
+include/elf/d10v.h
+include/elf/d30v.h
+include/elf/dlx.h
+include/elf/fr30.h
+include/elf/frv.h
+include/elf/h8.h
+include/elf/hppa.h
+include/elf/i370.h
+include/elf/i860.h
+include/elf/i960.h
+include/elf/ia64.h
+include/elf/ip2k.h
+include/elf/iq2000.h
+include/elf/m32r.h
+include/elf/m68hc11.h
+include/elf/m68k.h
+include/elf/mcore.h
+include/elf/mmix.h
+include/elf/mn10200.h
+include/elf/mn10300.h
+include/elf/msp430.h
+include/elf/openrisc.h
+include/elf/or32.h
+include/elf/pj.h
+include/elf/ppc.h
+include/elf/ppc64.h
+include/elf/s390.h
+include/elf/sh.h
+include/elf/sparc.h
+include/elf/v850.h
+include/elf/vax.h
+include/elf/x86-64.h
+include/elf/xstormy16.h
+include/elf/xtensa.h
+include/fibheap.h
+include/fnmatch.h
+include/fopen-bin.h
+include/fopen-vms.h
+include/gdb/ChangeLog
+include/gdb/callback.h
+include/gdb/remote-sim.h
+include/gdb/sim-arm.h
+include/gdb/sim-d10v.h
+include/gdb/sim-frv.h
+include/gdb/sim-h8300.h
+include/gdb/sim-sh.h
+include/gdbm.h
+include/getopt.h
+include/hp-symtab.h
+include/ieee.h
+include/md5.h
+include/nlm
+include/oasys.h
+include/opcode
+include/os9k.h
+include/partition.h
+include/progress.h
+include/sort.h
+include/ternary.h
+include/xtensa-config.h
+include/xtensa-isa-internal.h
+include/xtensa-isa.h
+install-sh
+intl
+libiberty/Makefile.in
+libiberty/README
+libiberty/_doprnt.c
+libiberty/aclocal.m4
+libiberty/alloca.c
+libiberty/asprintf.c
+libiberty/atexit.c
+libiberty/basename.c
+libiberty/bcmp.c
+libiberty/bcopy.c
+libiberty/bsearch.c
+libiberty/bzero.c
+libiberty/calloc.c
+libiberty/choose-temp.c
+libiberty/clock.c
+libiberty/config
+libiberty/config.h-vms
+libiberty/config.in
+libiberty/config.table
+libiberty/configure
+libiberty/configure.ac
+libiberty/configure.lineno
+libiberty/copying-lib.texi
+libiberty/copysign.c
+libiberty/cp-demint.c
+libiberty/dyn-string.c
+libiberty/fdmatch.c
+libiberty/ffs.c
+libiberty/fibheap.c
+libiberty/fnmatch.c
+libiberty/fnmatch.txh
+libiberty/functions.texi
+libiberty/gather-docs
+libiberty/getcwd.c
+libiberty/getpagesize.c
+libiberty/getpwd.c
+libiberty/index.c
+libiberty/insque.c
+libiberty/libiberty.texi
+libiberty/lrealpath.c
+libiberty/maint-tool
+libiberty/make-relative-prefix.c
+libiberty/make-temp-file.c
+libiberty/makefile.vms
+libiberty/md5.c
+libiberty/memchr.c
+libiberty/memcmp.c
+libiberty/memcpy.c
+libiberty/memmove.c
+libiberty/mempcpy.c
+libiberty/memset.c
+libiberty/mkstemps.c
+libiberty/mpw-config.in
+libiberty/mpw-make.sed
+libiberty/mpw.c
+libiberty/msdos.c
+libiberty/obstacks.texi
+libiberty/partition.c
+libiberty/pex-common.h
+libiberty/pex-djgpp.c
+libiberty/pex-mpw.c
+libiberty/pex-msdos.c
+libiberty/pex-os2.c
+libiberty/pex-unix.c
+libiberty/pex-win32.c
+libiberty/pexecute.txh
+libiberty/physmem.c
+libiberty/putenv.c
+libiberty/random.c
+libiberty/rename.c
+libiberty/rindex.c
+libiberty/setenv.c
+libiberty/sigsetmask.c
+libiberty/snprintf.c
+libiberty/sort.c
+libiberty/spaces.c
+libiberty/stpcpy.c
+libiberty/stpncpy.c
+libiberty/strcasecmp.c
+libiberty/strchr.c
+libiberty/strdup.c
+libiberty/strerror.c
+libiberty/strncasecmp.c
+libiberty/strncmp.c
+libiberty/strrchr.c
+libiberty/strsignal.c
+libiberty/strstr.c
+libiberty/strtod.c
+libiberty/strtol.c
+libiberty/strtoul.c
+libiberty/ternary.c
+libiberty/testsuite
+libiberty/tmpnam.c
+libiberty/vasprintf.c
+libiberty/vfork.c
+libiberty/vfprintf.c
+libiberty/vmsbuild.com
+libiberty/vprintf.c
+libiberty/vsnprintf.c
+libiberty/vsprintf.c
+libiberty/waitpid.c
+libiberty/xatexit.c
+libiberty/xmalloc.c
+libiberty/xmemdup.c
+libtool.m4
+ltcf-c.sh
+ltcf-cxx.sh
+ltcf-gcj.sh
+ltconfig
+ltmain.sh
+md5.sum
+missing
+mkinstalldirs
+mmalloc
+move-if-change
+opcodes/ChangeLog-0001
+opcodes/ChangeLog-0203
+opcodes/ChangeLog-9297
+opcodes/ChangeLog-9899
+opcodes/MAINTAINERS
+opcodes/Makefile.am
+opcodes/Makefile.in
+opcodes/a29k-dis.c
+opcodes/acinclude.m4
+opcodes/aclocal.m4
+opcodes/alpha-dis.c
+opcodes/alpha-opc.c
+opcodes/arc-dis.c
+opcodes/arc-dis.h
+opcodes/arc-ext.c
+opcodes/arc-ext.h
+opcodes/arc-opc.c
+opcodes/arm-dis.c
+opcodes/arm-opc.h
+opcodes/avr-dis.c
+opcodes/cgen-asm.c
+opcodes/cgen-asm.in
+opcodes/cgen-dis.c
+opcodes/cgen-dis.in
+opcodes/cgen-ibld.in
+opcodes/cgen-opc.c
+opcodes/cgen.sh
+opcodes/config.in
+opcodes/configure
+opcodes/configure.in
+opcodes/cris-dis.c
+opcodes/cris-opc.c
+opcodes/crx-dis.c
+opcodes/crx-opc.c
+opcodes/d10v-dis.c
+opcodes/d10v-opc.c
+opcodes/d30v-dis.c
+opcodes/d30v-opc.c
+opcodes/dep-in.sed
+opcodes/dlx-dis.c
+opcodes/fr30-asm.c
+opcodes/fr30-desc.c
+opcodes/fr30-desc.h
+opcodes/fr30-dis.c
+opcodes/fr30-ibld.c
+opcodes/fr30-opc.c
+opcodes/fr30-opc.h
+opcodes/frv-asm.c
+opcodes/frv-desc.c
+opcodes/frv-desc.h
+opcodes/frv-dis.c
+opcodes/frv-ibld.c
+opcodes/frv-opc.c
+opcodes/frv-opc.h
+opcodes/h8300-dis.c
+opcodes/h8500-dis.c
+opcodes/h8500-opc.h
+opcodes/hppa-dis.c
+opcodes/i370-dis.c
+opcodes/i370-opc.c
+opcodes/i860-dis.c
+opcodes/i960-dis.c
+opcodes/ia64-asmtab.c
+opcodes/ia64-asmtab.h
+opcodes/ia64-dis.c
+opcodes/ia64-gen.c
+opcodes/ia64-ic.tbl
+opcodes/ia64-opc-a.c
+opcodes/ia64-opc-b.c
+opcodes/ia64-opc-d.c
+opcodes/ia64-opc-f.c
+opcodes/ia64-opc-i.c
+opcodes/ia64-opc-m.c
+opcodes/ia64-opc-x.c
+opcodes/ia64-opc.c
+opcodes/ia64-opc.h
+opcodes/ia64-raw.tbl
+opcodes/ia64-war.tbl
+opcodes/ia64-waw.tbl
+opcodes/ip2k-asm.c
+opcodes/ip2k-desc.c
+opcodes/ip2k-desc.h
+opcodes/ip2k-dis.c
+opcodes/ip2k-ibld.c
+opcodes/ip2k-opc.c
+opcodes/ip2k-opc.h
+opcodes/iq2000-asm.c
+opcodes/iq2000-desc.c
+opcodes/iq2000-desc.h
+opcodes/iq2000-dis.c
+opcodes/iq2000-ibld.c
+opcodes/iq2000-opc.c
+opcodes/iq2000-opc.h
+opcodes/m10200-dis.c
+opcodes/m10200-opc.c
+opcodes/m10300-dis.c
+opcodes/m10300-opc.c
+opcodes/m32r-asm.c
+opcodes/m32r-desc.c
+opcodes/m32r-desc.h
+opcodes/m32r-dis.c
+opcodes/m32r-ibld.c
+opcodes/m32r-opc.c
+opcodes/m32r-opc.h
+opcodes/m32r-opinst.c
+opcodes/m68hc11-dis.c
+opcodes/m68hc11-opc.c
+opcodes/m68k-dis.c
+opcodes/m68k-opc.c
+opcodes/m88k-dis.c
+opcodes/makefile.vms
+opcodes/mcore-dis.c
+opcodes/mcore-opc.h
+opcodes/mips-dis.c
+opcodes/mips-opc.c
+opcodes/mips16-opc.c
+opcodes/mmix-dis.c
+opcodes/mmix-opc.c
+opcodes/msp430-dis.c
+opcodes/ns32k-dis.c
+opcodes/openrisc-asm.c
+opcodes/openrisc-desc.c
+opcodes/openrisc-desc.h
+opcodes/openrisc-dis.c
+opcodes/openrisc-ibld.c
+opcodes/openrisc-opc.c
+opcodes/openrisc-opc.h
+opcodes/or32-dis.c
+opcodes/or32-opc.c
+opcodes/pdp11-dis.c
+opcodes/pdp11-opc.c
+opcodes/pj-dis.c
+opcodes/pj-opc.c
+opcodes/po
+opcodes/ppc-dis.c
+opcodes/ppc-opc.c
+opcodes/s390-dis.c
+opcodes/s390-mkopc.c
+opcodes/s390-opc.c
+opcodes/s390-opc.txt
+opcodes/sh-dis.c
+opcodes/sh-opc.h
+opcodes/sh64-dis.c
+opcodes/sh64-opc.c
+opcodes/sh64-opc.h
+opcodes/sparc-dis.c
+opcodes/sparc-opc.c
+opcodes/stamp-h.in
+opcodes/tic30-dis.c
+opcodes/tic4x-dis.c
+opcodes/tic54x-dis.c
+opcodes/tic54x-opc.c
+opcodes/tic80-dis.c
+opcodes/tic80-opc.c
+opcodes/v850-dis.c
+opcodes/v850-opc.c
+opcodes/vax-dis.c
+opcodes/w65-dis.c
+opcodes/w65-opc.h
+opcodes/xstormy16-asm.c
+opcodes/xstormy16-desc.c
+opcodes/xstormy16-desc.h
+opcodes/xstormy16-dis.c
+opcodes/xstormy16-ibld.c
+opcodes/xstormy16-opc.c
+opcodes/xstormy16-opc.h
+opcodes/xtensa-dis.c
+opcodes/z8k-dis.c
+opcodes/z8k-opc.h
+opcodes/z8kgen.c
+readline
+sim
+src-release
+symlink-tree
+texinfo
+utils
+ylwrap
diff --git a/contrib/gdb-6.2.1/README.DRAGONFLY b/contrib/gdb-6.2.1/README.DRAGONFLY
new file mode 100644 (file)
index 0000000..3eb4041
--- /dev/null
@@ -0,0 +1,5 @@
+Original Source can be downloaded from:
+ftp://ftp.gnu.org/gnu/gdb/gdb-6.2.1.tar.bz2
+MD5 (gdb-6.2.1.tar.bz2) = 3b3898cfd426e1acd5efc89560aa93ba
+
+A list of files and directories removed is in README.DELETED
diff --git a/contrib/gdb-6.2.1/bfd/COPYING b/contrib/gdb-6.2.1/bfd/COPYING
new file mode 100644 (file)
index 0000000..c27986e
--- /dev/null
@@ -0,0 +1,340 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright 1989, 1991, 1997 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/contrib/gdb-6.2.1/bfd/ChangeLog b/contrib/gdb-6.2.1/bfd/ChangeLog
new file mode 100644 (file)
index 0000000..c1c4470
--- /dev/null
@@ -0,0 +1,2815 @@
+2004-07-31  Joel Brobecker <brobecker@gnat.com>
+           Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
+
+       * elfxx-mips.c (_bfd_mips_elf_symbol_processing): Handle
+       SHN_MIPS_TEXT and SHN_MIPS_DATA.
+
+2004-07-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR 240
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Only warn br in
+       .init/.fini sections when trying to relax it.
+
+2004-07-09  Jie Zhang  <zhangjie@magima.com.cn>
+
+       * elf.c (assign_file_positions_for_segments): Make sure the
+       .dynamic section is the first section in the PT_DYNAMIC segment.
+
+2004-07-09  Nick Clifton  <nickc@redhat.com>
+
+       * config.bfd: Change sh-sybmian-elf to sh-*-symbianelf.
+       * elf32-sh-symbian.c: Rename the sh_find_elf_flags and
+       sh_elf_get_flags_from_mach functions so that they do not conflict
+       when this target is built with other sh-elf targets.
+       * elf32-sh.c (sh_elf_get_flags_from_mach): Remove bogus
+       suppression of this function.
+       (sh_elf_find_flags): Likewise.
+
+2004-07-07  Tomer Levi  <Tomer.Levi@nsc.com>
+
+       * Makefile.am (ALL_MACHINES): Add cpu-crx.lo.
+       (ALL_MACHINES_CFILES): Add cpu-crx.c.
+       (BFD32_BACKENDS): Add elf32-crx.lo.
+       (BFD32_BACKENDS_CFILES): Add elf32-crx.c.
+       (cpu-crx.lo): New target.
+       (elf32-crx.lo): New target.
+       * Makefile.in: Regenerate.
+       * archures.c (bfd_architecture): Add bfd_{arch,mach}_crx.
+       (bfd_archures_list): Add bfd_crx_arch.
+       * bfd-in2.h: Regenerate.
+       * config.bfd: Handle crx-*-elf*, crx*.
+       * configure.in: Handle bfd_elf32_crx_vec.
+       * configure: Regenerate.
+       * cpu-crx.c: New file.
+       * elf32-crx.c: Likewise.
+       * libbfd.h: Regenerate.
+       * reloc.c: Add BFD_RELOC_CRX_REL4, BFD_RELOC_CRX_REL8,
+       BFD_RELOC_CRX_REL8_CMP, BFD_RELOC_CRX_REL16, BFD_RELOC_CRX_REL24,
+       BFD_RELOC_CRX_REL32, BFD_RELOC_CRX_REGREL12, BFD_RELOC_CRX_REGREL22,
+       BFD_RELOC_CRX_REGREL28, BFD_RELOC_CRX_REGREL32, BFD_RELOC_CRX_ABS16,
+       BFD_RELOC_CRX_ABS32, BFD_RELOC_CRX_NUM8, BFD_RELOC_CRX_NUM16,
+       BFD_RELOC_CRX_NUM32, BFD_RELOC_CRX_IMM16 and BFD_RELOC_CRX_IMM32
+       * targets.c (bfd_elf32_crx_vec): Declare.
+       (bfd_target_vector): Add bfd_elf32_crx_vec.
+
+2004-07-06  Nick Clifton  <nickc@redhat.com>
+
+       * config.bfd: Add sh-symbian-elf target.
+       * configure.in: Add bfd_elf32_shl_symbian_vec.
+       * configure: Regenerate.
+       * elf-bfd.h (struct elf_backend_data): Add new field
+       'check_directives'.
+       * elflink.c (elf_link_add_object_symbols): Invoke the
+       check_directives function, if defined.
+       * elfxx-target.h: Provide a default, NULL definition for
+       check_directives.
+       * targets.c: Add bfd_elf32_shl_symbian_vec.
+       * elf32-sh.c (sh_elf_swap_insns): Protect against unnecessary
+       definition.
+       (elf32_shlin_grok_prstatus, elf32_shlib_grok_psinfo,
+       * sh_elf_get_flags_from_mach, sh_elf_find_flags): Likewise.
+       (TARGET_BIG_SYM, TARGET_LITTLE_SYM): Only define if they have
+       not already been defined.
+       * elf32-sh64.c: Use SH_TARGET_ALREADY_DEFINED.
+       * sh-symbian.c: New file.  Provide functions to support the
+       * sh-symbian-elf target.
+       * Makefile.am: Add elf32-sh-symbian.c
+       * Makefile.in: Regenerate.
+
+2004-07-05  Andrew Stubbs <andrew.stubbs@superh.com>
+
+       * elf32-sh.c: Include ../opcodes/sh-opc.h.
+       * Makefile.am: Ran make dep-am.
+       * Makefile.in: Ran make dep-in.
+
+2004-07-03  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>
+
+       * cofflink.c (_bfd_coff_generic_relocate_section): Resolve PE weak
+       externals properly.
+
+2004-07-02  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+
+       * config.bfd: Add want64 to configuration target s390-*-linux*.
+
+2004-07-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * bfd.c (bfd_get_section_ident): New.
+
+       * elflink.c (elf_link_read_relocs_from_section): Call
+       bfd_get_section_ident to identify the section when reporting
+       error.
+       (_bfd_elf_link_output_relocs): Likewise.
+       (elf_link_output_extsym): Likewise.
+       (elf_link_input_bfd): Likewise.
+       (bfd_elf_gc_record_vtinherit): Likewise.
+
+       * bfd-in2.h: Regenerated.
+
+2004-07-01  Jie Zhang  <zhangjie@magima.com.cn>
+           Nick Clifton  <nickc@redhat.com>
+
+       PR 204
+       * elfxx-mips.c (_bfd_mips_elf_final_link): Pass the correct number
+       of section symbols to mips_elf_sort_hash_table ().
+
+2004-07-01  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.c (elf_section_ignore_discarded_relocs): Revert last
+       change.  Comment.
+       (elf_section_complain_discarded): New function.  Handle
+       .gcc_except_table too.
+       (elf_link_input_bfd): Rewrite handling of relocs against symbols
+       in discarded sections.
+       * elf-bfd.h (elf_discarded_section): Protect macro arg.
+
+2004-06-30  James E Wilson  <wilson@specifixinc.com>
+
+       * elfxx-ia64.c (elfNN_ia64_check_relocs): New local pltoff.  Initialize
+       to NULL.  Call get_pltoff if NULL and NEED_PLTOFF is true.
+
+2004-06-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR 233
+       * elflink.c (elf_link_input_bfd): Issue an error for non-debug
+       local references to discarded sections and report their
+       locations.
+
+2004-06-30  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.c (elf_section_ignore_discarded_relocs): Don't test
+       sec_info_type, test section name instead.
+
+2004-06-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR 240
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Don't relax branch
+       in .init/.fini sections.
+
+2004-06-29  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (elf_xtensa_relocate_section): Use
+       bfd_get_section_limit.
+
+2004-06-29  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (elf_xtensa_combine_prop_entries): Don't change the
+       output section size.
+
+2004-06-29  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-mmix.c (mmix_set_relaxable_size): Save original size in
+       rawsize.
+       (mmix_elf_perform_relocation): Adjust for above change.
+       (mmix_elf_relocate_section): Likewise.
+       (mmix_elf_relax_section): Likewise.  Use output_section->rawsize.
+       (mmix_elf_get_section_contents): Delete.
+       (bfd_elf64_get_section_contents): Delete.
+       (mmix_elf_relocate_section): Zero stub area.
+       * linker.c (default_indirect_link_order): Alloc max of section size
+       and rawsize.
+       * simple.c (bfd_simple_get_relocated_section_contents): Likewise.
+       * section.c (bfd_malloc_and_get_section): Likewise.
+       (struct bfd_section): Update rawsize comment.
+       * bfd-in2.h: Regenerate.
+
+       * reloc16.c (bfd_coff_reloc16_relax_section): Set rawsize.
+
+2004-06-29  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd-in.h (bfd_get_section_limit): Define.
+       * reloc.c (bfd_perform_relocation, bfd_install_relocation)
+       (_bfd_final_link_relocate): Use bfd_get_section_limit.
+       * aout-tic30.c (tic30_aout_final_link_relocate): Likewise.
+       * coff-arm.c (coff_arm_relocate_section): Likewise.
+       * coff-mips.c (mips_refhi_reloc, mips_gprel_reloc): Likewise.
+       * cpu-ns32k.c (do_ns32k_reloc): Likewise.
+       (bfd_ns32k_final_link_relocate): Likewise.
+       * elf32-d30v.c (bfd_elf_d30v_reloc, bfd_elf_d30v_reloc_21): Likwise.
+       * elf32-dlx.c (_bfd_dlx_elf_hi16_reloc): Likewise.
+       * elf32-i860.c (i860_howto_pc26_reloc, i860_howto_pc16_reloc)
+       (i860_howto_highadj_reloc, i860_howto_splitn_reloc): Likewise.
+       * elf32-m32r.c (m32r_elf_do_10_pcrel_reloc, m32r_elf_hi16_reloc)
+       (m32r_elf_generic_reloc, m32r_elf_relocate_section): Likewise.
+       * elf32-m68hc1x.c (m68hc11_elf_special_reloc): Likewise.
+       * elf32-mips.c (gprel32_with_gp, mips16_gprel_reloc): Likewise.
+       * elf32-or32.c (or32_elf_consth_reloc): Likewise.
+       * elf32-ppc.c (ppc_elf_addr16_ha_reloc): Likewise.
+       * elf32-s390.c (s390_elf_ldisp_reloc): Likewise.
+       * elf32-sh.c (sh_elf_reloc_loop): Likewise.
+       * elf32-sparc.c (sparc_elf_wdisp16_reloc): Likewise.
+       (sparc_elf_hix22_reloc, sparc_elf_lox10_reloc): Likwise.
+       * elf32-v850.c (v850_elf_reloc): Likewise.
+       * elf32-xstormy16.c (xstormy16_elf_24_reloc): Likewise.
+       * elf32-xtensa.c (bfd_elf_xtensa_reloc): Likewise.
+       * elf64-alpha.c (elf64_alpha_reloc_gpdisp): Likewise.
+       * elf64-mips.c (mips_elf64_gprel32_reloc)
+       (mips16_gprel_reloc): Likewise.
+       * elf64-mmix.c (mmix_elf_reloc): Likewise.
+       * elf64-s390.c (s390_elf_ldisp_reloc): Likewise.
+       * elf64-sparc.c (init_insn_reloc): Likewise.
+       * elfn32-mips.c (gprel32_with_gp, mips16_gprel_reloc): Likewise.
+       * elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp)
+       (_bfd_mips_elf_hi16_reloc, _bfd_mips_elf_lo16_reloc)
+       (_bfd_mips_elf_generic_reloc): Likewise.
+       * bfd-in2.h: Regenerate.
+
+2004-06-28  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd-in.h (struct stab_info): Move from stabs.c.
+       * stabs.c (struct stab_link_includes_table): Delete.
+       (stab_link_includes_lookup): Delete.
+       (_bfd_write_section_stabs, _bfd_write_stab_strings): Remove one
+       level of indirection from sinfo parm.
+       (_bfd_link_section_stabs): Likewise.  Set SEC_LINKER_CREATED on
+       stabstr section.  Adjust hash table accesses.
+       * coff-ppc.c (ppc_bfd_coff_final_link): Do include rawsize in contents
+       alloc.  Adjust stab_info test.
+       * cofflink.c (_bfd_coff_link_hash_table_init): Clear stab_info.
+       (_bfd_coff_final_link): Adjust stab_info test.
+       (_bfd_coff_link_input_bfd): Ignore SEC_LINKER_CREATED sections.
+       * elf-bfd.h (struct elf_link_hash_table): Include struct stab_info
+       in place.
+       * libcoff-in.h (struct coff_link_hash_table): Likewise.
+       * elf.c (_bfd_elf_link_hash_table_init): Clear stab_info.
+       * elflink.c (bfd_elf_final_link): Don't attempt to link linker created
+       stabstr section.  Adjust stab_info test.
+       * libbfd-in.h (_bfd_link_section_stabs, _bfd_write_section_stabs)
+       (_bfd_write_stab_strings): Adjust prototypes.
+       * libbfd.h: Regenerate.
+       * libcoff.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+
+2004-06-27  Mark Kettenis  <kettenis@gnu.org>
+
+       From Miod Vallat <miod@online.fr>:
+       * aoutx.h (NAME(aout,machine_type)): Handle bfd_arch_m88k.
+
+2004-06-26  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-m10300.c (struct elf_mn10300_pcrel_relocs_copied): Delete.
+       (struct elf32_mn10300_link_hash_entry): Remove
+       pcrel_relocs_copied.
+       (mn10300_elf_check_relocs): Only reserve dynamic relocations for
+       R_MN10300_32.  Don't adjust pcrel_relocs_copied.
+       (mn10300_elf_final_link_relocate): Fail for direct, pc-relative
+       and gotoff relocations if the symbol doesn't bind locally.  Use
+       _bfd_elf_symbol_refs_local_p to test.  Don't create dynamic
+       relocation for PCREL32.
+       (mn10300_elf_relocate_section): Use _bfd_elf_symbol_refs_local_p
+       to test whether a symbol binds locally.
+       (elf32_mn10300_link_hash_newfunc): Don't initialize
+       pcrel_relocs_copied.
+       (_bfd_mn10300_elf_discard_copies): Delete.
+       (_bfd_mn10300_elf_size_dynamic_sections): Don't call it.
+
+2004-06-26  Mark Kettenis  <kettenis@gnu.org>
+
+       * config.bfd: Replace m88k-*-openbsd* with m88*-*-openbsd*.
+
+2004-06-25  Joel Brobecker  <brobecker@gnat.com>
+
+       * som.c (som_set_reloc_info): Correct small typo.
+
+2004-06-25  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
+
+       * elf32-m32r.c (m32r_elf_howto_table): Support R_M32R_GOTOFF.
+       (m32r_elf_relocate_section): Changed for R_M32R_GOTOFF.
+       (m32r_elf_gcsweep_hook): Likewise.
+       (m32r_elf_check_relocs): Likewise.
+       (m32r_elf_howto_table): Added R_M32R_GOTOFF_HI_ULO,
+       R_M32R_GOTOFF_HI_SLO and R_M32R_GOTOFF_LO.
+       * reloc.c: Added BFD_RELOC_M32R_GOTOFF_HI_ULO,
+       BFD_RELOC_M32R_GOTOFF_HI_SLO and BFD_RELOC_M32R_GOTOFF_LO.
+       * bfd-in2.h: Regenerated.
+       * libbfd.h: Regenerated.
+
+2004-06-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-x86-64.c (elf64_x86_64_check_relocs): Warn overflow
+       relocation symbol.
+       (elf64_x86_64_relocate_section): Issue an error for
+       R_X86_64_PC8, R_X86_64_PC16 and R_X86_64_PC32 relocations
+       against global symbols when building shared library.
+
+2004-06-24  Alan Modra  <amodra@bigpond.net.au>
+
+       * section.c (struct sec): Rename "_cooked_size" to "size".
+       Rename "_raw_size" to "rawsize".
+       (STD_SECTION): Adjust comments.
+       (bfd_set_section_size, bfd_get_section_contents): Use size.
+       (bfd_malloc_and_get_section): New function.
+       * bfd-in.h (bfd_section_size, bfd_get_section_size): Use size.
+       * coff-sh.c (sh_relax_section): Alloc coff_section_data struct early.
+       Correctly free reloc and contents memory.
+       * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Delete FIXME
+       and fake CIE now that we can shink section size to zero.
+       (_bfd_elf_write_section_eh_frame): Likewise..
+       * elf32-ppc.c (ppc_elf_relax_section): Delay reading section contents.
+       * elf-m10300.c (mn10300_elf_final_link_relocate): Don't use
+       _bfd_stab_section_offset.  Use _bfd_elf_section_offset.
+       * stabs.c (_bfd_stab_section_offset_): Remove unused args and
+       unneeded indirection.
+       * elf.c (_bfd_elf_section_offset): .. and update call.
+       * libbfd-in.h (_bfd_stab_section_offset): Update prototype.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+
+       Replace occurrences of "_raw_size" and "_cooked_size" in most places
+       with "size".  Set new "rawsize" for stabs, eh_frame, and SEC_MERGE
+       sections.  Use "rawsize", if non-zero, for bfd_get_section_contents
+       calls if the section might be a stabs, eh_frame, or SEC_MERGE section.
+       Similarly use "rawsize", if non-zero, in reloc functions to validate
+       reloc addresses.  Use new bfd_malloc_and_get_section in most places
+       where bfd_get_section_contents was called.  Expand all occurrences of
+       bfd_section_size and bfd_get_section_size.  Rename "raw_size" var in
+       grok_prstatus and similar functions to "size".
+       * aix386-core.c (aix386_core_file_p): ..
+       * aix5ppc-core.c (xcoff64_core_p): ..
+       * aout-adobe.c (aout_adobe_callback, aout_adobe_write_object_contents,
+       aout_adobe_set_section_contents): ..
+       * aout-target.h (callback): ..
+       * aout-tic30.c (tic30_aout_callback, tic30_aout_final_link_relocate,
+       MY_bfd_final_link): ..
+       * aoutf1.h (sunos4_core_file_p): ..
+       * aoutx.h (some_aout_object_p, adjust_o_magic, adjust_z_magic,
+       adjust_n_magic, adjust_sizes_and_vmas, translate_from_native_sym_flags,
+       final_link, aout_link_input_section): ..
+       * binary.c (binary_object_p, binary_canonicalize_symtab,
+       binary_set_section_contents): ..
+       * bout.c (b_out_callback, b_out_write_object_contents,
+       b_out_set_section_contents, b_out_bfd_relax_section,
+       b_out_bfd_get_relocated_section_contents): ..
+       * cisco-core.c (cisco_core_file_validate): ..
+       * coff-alpha.c (alpha_ecoff_object_p,
+       alpha_ecoff_get_relocated_section_conten, alpha_relocate_section): ..
+       * coff-arm.c (coff_arm_relocate_section,
+       bfd_arm_allocate_interworking_sections): ..
+       * coff-h8300.c (h8300_reloc16_extra_cases,
+       h8300_bfd_link_add_symbols): ..
+       * coff-mips.c (mips_refhi_reloc, mips_gprel_reloc): ..
+       * coff-ppc.c (coff_ppc_relocate_section, ppc_allocate_toc_section,
+       ppc_bfd_coff_final_link): ..
+       * coff-rs6000.c (xcoff_reloc_type_br, xcoff_ppc_relocate_section): ..
+       * coff-sh.c (sh_relax_section, sh_relax_delete_bytes,
+       sh_align_loads, sh_coff_get_relocated_section_contents): ..
+       * coff64-rs6000.c (xcoff64_write_object_contents,
+       xcoff64_reloc_type_br, xcoff64_ppc_relocate_section): ..
+       * coffcode.h (coff_compute_section_file_positions,
+       coff_write_object_contents): ..
+       * coffgen.c (make_a_section_from_file, coff_write_symbols,
+       coff_section_symbol, build_debug_section): ..
+       * cofflink.c (coff_link_add_symbols, _bfd_coff_final_link,
+       process_embedded_commands, _bfd_coff_link_input_bfd,
+       _bfd_coff_write_global_sym): ..
+       * cpu-arm.c (bfd_arm_update_notes, bfd_arm_get_mach_from_notes): ..
+       * cpu-ns32k.c (do_ns32k_reloc, _bfd_ns32k_final_link_relocate): ..
+       * dwarf1.c (parse_line_table, _bfd_dwarf1_find_nearest_line): ..
+       * dwarf2.c (read_indirect_string, read_abbrevs, decode_line_info,
+       _bfd_dwarf2_find_nearest_line): ..
+       * ecoff.c (bfd_debug_section, ecoff_set_symbol_info,
+       ecoff_compute_section_file_positions,
+       _bfd_ecoff_write_object_contents, ecoff_indirect_link_order): ..
+       * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame,
+       _bfd_elf_discard_section_eh_frame_hdr,
+       _bfd_elf_maybe_strip_eh_frame_hdr, _bfd_elf_eh_frame_section_offset,
+       _bfd_elf_write_section_eh_frame,
+       _bfd_elf_write_section_eh_frame_hdr): ..
+       * elf-hppa.h (elf_hppa_sort_unwind): ..
+       * elf-m10200.c (mn10200_elf_relax_section,
+       mn10200_elf_relax_delete_bytes,
+       mn10200_elf_get_relocated_section_contents): ..
+       * elf-m10300.c (_bfd_mn10300_elf_create_got_section,
+       mn10300_elf_check_relocs, mn10300_elf_relax_section,
+       mn10300_elf_relax_delete_bytes,
+       mn10300_elf_get_relocated_section_contents,
+       _bfd_mn10300_elf_adjust_dynamic_symbol,
+       _bfd_mn10300_elf_discard_copies,
+       _bfd_mn10300_elf_size_dynamic_sections,
+       _bfd_mn10300_elf_finish_dynamic_sections): ..
+       * elf.c (_bfd_elf_print_private_bfd_data, bfd_elf_get_bfd_needed_list,
+       _bfd_elf_make_section_from_phdr, elf_fake_sections,
+       bfd_elf_set_group_contents, map_sections_to_segments,
+       elf_sort_sections, assign_file_positions_for_segments,
+       SECTION_SIZE, copy_private_bfd_data,
+       _bfd_elf_get_dynamic_reloc_upper_bound,
+       _bfd_elf_canonicalize_dynamic_reloc, elfcore_maybe_make_sect,
+       _bfd_elfcore_make_pseudosection, elfcore_grok_prstatus,
+       elfcore_grok_lwpstatus, elfcore_grok_win32pstatus,
+       elfcore_grok_note, elfcore_grok_nto_status, elfcore_grok_nto_gregs,
+       _bfd_elf_rel_local_sym, _bfd_elf_get_synthetic_symtab): ..
+       * elf32-arm.h (bfd_elf32_arm_allocate_interworking_sect,
+       bfd_elf32_arm_process_before_allocation,
+       elf32_arm_adjust_dynamic_symbol, allocate_dynrelocs,
+       elf32_arm_size_dynamic_sections, elf32_arm_finish_dynamic_sections,
+       elf32_arm_write_section): ..
+       * elf32-cris.c (cris_elf_grok_prstatus,
+       elf_cris_finish_dynamic_sections, cris_elf_gc_sweep_hook,
+       elf_cris_adjust_gotplt_to_got, elf_cris_adjust_dynamic_symbol,
+       cris_elf_check_relocs, elf_cris_size_dynamic_sections,
+       elf_cris_discard_excess_dso_dynamics,
+       elf_cris_discard_excess_program_dynamics): ..
+       * elf32-d30v.c (bfd_elf_d30v_reloc, bfd_elf_d30v_reloc_21): ..
+       * elf32-dlx.c (_bfd_dlx_elf_hi16_reloc): ..
+       * elf32-frv.c (_frvfdpic_add_dyn_reloc, _frvfdpic_add_rofixup,
+       _frv_create_got_section, _frvfdpic_assign_plt_entries,
+       elf32_frvfdpic_size_dynamic_sections,
+       elf32_frvfdpic_modify_segment_map,
+       elf32_frvfdpic_finish_dynamic_sections): ..
+       * elf32-h8300.c (elf32_h8_relax_section, elf32_h8_relax_delete_bytes,
+       elf32_h8_get_relocated_section_contents): ..
+       * elf32-hppa.c (hppa_build_one_stub, hppa_size_one_stub,
+       elf32_hppa_adjust_dynamic_symbol, allocate_plt_static,
+       allocate_dynrelocs, elf32_hppa_size_dynamic_sections, group_sections,
+       elf32_hppa_size_stubs, elf32_hppa_set_gp, elf32_hppa_build_stubs,
+       elf32_hppa_finish_dynamic_sections): ..
+       * elf32-i370.c (i370_elf_adjust_dynamic_symbol,
+       i370_elf_size_dynamic_sections, i370_elf_check_relocs,
+       i370_elf_finish_dynamic_sections): ..
+       * elf32-i386.c (elf_i386_grok_prstatus, elf_i386_adjust_dynamic_symbol,
+       allocate_dynrelocs, elf_i386_size_dynamic_sections,
+       elf_i386_relocate_section, elf_i386_finish_dynamic_sections): ..
+       * elf32-i860.c (i860_howto_pc26_reloc, i860_howto_pc16_reloc,
+       i860_howto_highadj_reloc, i860_howto_splitn_reloc): ..
+       * elf32-ip2k.c (ip2k_is_switch_table_128,
+       ip2k_relax_switch_table_128, ip2k_is_switch_table_256,
+       ip2k_relax_switch_table_256, ip2k_elf_relax_section,
+       adjust_all_relocations, ip2k_elf_relax_delete_bytes): ..
+       * elf32-m32r.c (m32r_elf_do_10_pcrel_reloc, m32r_elf_hi16_reloc,
+       m32r_elf_generic_reloc, m32r_elf_adjust_dynamic_symbol,
+       allocate_dynrelocs, m32r_elf_size_dynamic_sections,
+       m32r_elf_relocate_section, m32r_elf_finish_dynamic_sections,
+       m32r_elf_relax_section, m32r_elf_relax_delete_bytes,
+       m32r_elf_get_relocated_section_contents): ..
+       * elf32-m68hc11.c (m68hc11_elf_build_one_stub,
+       m68hc11_elf_size_one_stub, m68hc11_elf_relax_section,
+       m68hc11_elf_relax_delete_bytes): ..
+       * elf32-m68hc12.c (m68hc12_elf_build_one_stub,
+       m68hc12_elf_size_one_stub): ..
+       * elf32-m68hc1x.c (elf32_m68hc11_size_stubs,
+       elf32_m68hc11_build_stubs, m68hc11_elf_special_reloc): ..
+       * elf32-m68k.c (elf_m68k_check_relocs, elf_m68k_gc_sweep_hook,
+       elf_m68k_adjust_dynamic_symbol, elf_m68k_size_dynamic_sections,
+       elf_m68k_discard_copies, elf_m68k_finish_dynamic_sections): ..
+       * elf32-mips.c (gprel32_with_gp, mips16_gprel_reloc,
+       elf32_mips_grok_prstatus): ..
+       * elf32-or32.c (or32_elf_consth_reloc): ..
+       * elf32-ppc.c (ppc_elf_relax_section, ppc_elf_addr16_ha_reloc,
+       elf_create_pointer_linker_section, ppc_elf_create_linker_section,
+       ppc_elf_additional_program_headers, ppc_elf_adjust_dynamic_symbol,
+       allocate_dynrelocs, ppc_elf_size_dynamic_sections,
+       ppc_elf_finish_dynamic_sections, ppc_elf_grok_prstatus,
+       ppc_elf_final_write_processing): ..
+       * elf32-s390.c (s390_elf_ldisp_reloc, elf_s390_adjust_dynamic_symbol,
+       allocate_dynrelocs, elf_s390_size_dynamic_sections,
+       elf_s390_finish_dynamic_sections, elf_s390_grok_prstatus): ..
+       * elf32-sh.c (sh_elf_reloc_loop, sh_elf_relax_section,
+       sh_elf_relax_delete_bytes, sh_elf_align_loads,
+       sh_elf_adjust_dynamic_symbol, allocate_dynrelocs,
+       sh_elf_size_dynamic_sections, sh_elf_get_relocated_section_contents,
+       sh_elf_finish_dynamic_sections, elf32_shlin_grok_prstatus): ..
+       * elf32-sh64-com.c (sh64_address_in_cranges,
+       sh64_get_contents_type): ..
+       * elf32-sh64.c (sh64_find_section_for_address,
+       sh64_elf_final_write_processing): ..
+       * elf32-sparc.c (sparc_elf_wdisp16_reloc, sparc_elf_hix22_reloc,
+       sparc_elf_lox10_reloc, elf32_sparc_adjust_dynamic_symbol,
+       allocate_dynrelocs, elf32_sparc_size_dynamic_sections,
+       elf32_sparc_relocate_section, elf32_sparc_finish_dynamic_sections): ..
+       * elf32-v850.c (v850_elf_reloc, v850_elf_relax_section): ..
+       * elf32-vax.c (elf_vax_check_relocs, elf_vax_adjust_dynamic_symbol,
+       elf_vax_size_dynamic_sections, elf_vax_discard_copies,
+       elf_vax_instantiate_got_entries, elf_vax_relocate_section,
+       elf_vax_finish_dynamic_sections): ..
+       * elf32-xstormy16.c (xstormy16_elf_24_reloc,
+       xstormy16_elf_check_relocs, xstormy16_relax_plt_check,
+       xstormy16_elf_relax_section, xstormy16_elf_always_size_sections,
+       xstormy16_elf_finish_dynamic_sections): ..
+       * elf32-xtensa.c (xtensa_read_table_entries,
+       elf_xtensa_allocate_got_size, elf_xtensa_allocate_local_got_size,
+       elf_xtensa_size_dynamic_sections, elf_xtensa_do_reloc,
+       bfd_elf_xtensa_reloc, elf_xtensa_relocate_section,
+       elf_xtensa_combine_prop_entries, elf_xtensa_finish_dynamic_sections,
+       elf_xtensa_discard_info_for_section, elf_xtensa_grok_prstatus,
+       get_relocation_opcode, retrieve_contents, find_relaxable_sections,
+       collect_source_relocs, is_resolvable_asm_expansion, remove_literals,
+       relax_section, shrink_dynamic_reloc_sections, relax_property_section,
+       xtensa_callback_required_dependence): ..
+       * elf64-alpha.c (elf64_alpha_reloc_gpdisp, elf64_alpha_relax_section,
+       elf64_alpha_check_relocs, elf64_alpha_adjust_dynamic_symbol,
+       elf64_alpha_calc_got_offsets_for_symbol, elf64_alpha_calc_got_offsets,
+       elf64_alpha_size_plt_section, elf64_alpha_size_plt_section_1,
+       elf64_alpha_always_size_sections, elf64_alpha_calc_dynrel_sizes,
+       elf64_alpha_size_rela_got_section, elf64_alpha_size_rela_got_1,
+       elf64_alpha_size_dynamic_sections, elf64_alpha_emit_dynrel,
+       elf64_alpha_finish_dynamic_sections, elf64_alpha_final_link): ..
+       * elf64-hppa.c (allocate_dynrel_entries,
+       elf64_hppa_size_dynamic_sections,
+       elf64_hppa_finish_dynamic_sections): ..
+       * elf64-mips.c (mips_elf64_gprel32_reloc, mips16_gprel_reloc,
+       mips_elf64_canonicalize_dynamic_reloc, mips_elf64_slurp_reloc_table,
+       elf64_mips_grok_prstatus): ..
+       * elf64-mmix.c (mmix_elf_perform_relocation, mmix_elf_reloc,
+       mmix_elf_relocate_section, mmix_elf_final_link,
+       mmix_set_relaxable_size, _bfd_mmix_after_linker_allocation,
+       mmix_elf_relax_section, mmix_elf_get_section_contents): ..
+       * elf64-ppc.c (ppc64_elf_object_p, ppc64_elf_grok_prstatus,
+       ppc64_elf_check_relocs, ppc64_elf_func_desc_adjust,
+       ppc64_elf_adjust_dynamic_symbol, ppc64_elf_edit_opd,
+       allocate_dynrelocs, ppc64_elf_size_dynamic_sections,
+       ppc_build_one_stub, ppc_size_one_stub, ppc64_elf_next_toc_section,
+       toc_adjusting_stub_needed, group_sections, ppc64_elf_size_stubs,
+       ppc64_elf_build_stubs, ppc64_elf_relocate_section,
+       ppc64_elf_finish_dynamic_sections): ..
+       * elf64-s390.c (s390_elf_ldisp_reloc, elf_s390_adjust_dynamic_symbol,
+       allocate_dynrelocs, elf_s390_size_dynamic_sections,
+       elf_s390_finish_dynamic_sections): ..
+       * elf64-sh64.c (sh_elf64_get_relocated_section_contents,
+       sh_elf64_check_relocs, sh64_elf64_adjust_dynamic_symbol,
+       sh64_elf64_discard_copies, sh64_elf64_size_dynamic_sections,
+       sh64_elf64_finish_dynamic_sections): ..
+       * elf64-sparc.c (sparc64_elf_slurp_reloc_table, init_insn_reloc,
+       sparc64_elf_check_relocs, sparc64_elf_adjust_dynamic_symbol,
+       sparc64_elf_size_dynamic_sections, sparc64_elf_relocate_section,
+       sparc64_elf_finish_dynamic_symbol,
+       sparc64_elf_finish_dynamic_sections): ..
+       * elf64-x86-64.c (elf64_x86_64_grok_prstatus,
+       elf64_x86_64_adjust_dynamic_symbol, allocate_dynrelocs,
+       elf64_x86_64_size_dynamic_sections, elf64_x86_64_relocate_section,
+       elf64_x86_64_finish_dynamic_sections): ..
+       * elfarm-nabi.c (elf32_arm_nabi_grok_prstatus): ..
+       * elfcode.h (elf_slurp_reloc_table): ..
+       * elflink.c (_bfd_elf_create_got_section, elf_add_dt_needed_tag,
+       elf_finalize_dynstr, elf_link_add_object_symbols,
+       bfd_elf_size_dynamic_sections, elf_link_sort_relocs,
+       elf_link_input_bfd, bfd_elf_final_link, bfd_elf_discard_info): ..
+       * elfn32-mips.c (gprel32_with_gp, mips16_gprel_reloc,
+       elf32_mips_grok_prstatus): ..
+       * elfxx-ia64.c (elfNN_ia64_relax_section, allocate_dynrel_entries,
+       elfNN_ia64_size_dynamic_sections, elfNN_ia64_install_dyn_reloc,
+       elfNN_ia64_choose_gp, elfNN_ia64_final_link,
+       elfNN_ia64_finish_dynamic_sections): ..
+       * elfxx-mips.c (mips_elf_create_procedure_table,
+       mips_elf_check_mips16_stubs, _bfd_mips_elf_gprel16_with_gp,
+       _bfd_mips_elf_hi16_reloc, _bfd_mips_elf_generic_reloc,
+       mips_elf_global_got_index, mips_elf_multi_got,
+       mips_elf_create_compact_rel_section, mips_elf_calculate_relocation,
+       mips_elf_allocate_dynamic_relocations,
+       mips_elf_create_dynamic_relocation, _bfd_mips_elf_fake_sections,
+       _bfd_mips_relax_section, _bfd_mips_elf_adjust_dynamic_symbol,
+       _bfd_mips_elf_always_size_sections,
+       _bfd_mips_elf_size_dynamic_sections,
+       _bfd_mips_elf_finish_dynamic_symbol,
+       _bfd_mips_elf_finish_dynamic_sections,
+       _bfd_mips_elf_modify_segment_map, _bfd_mips_elf_discard_info,
+       _bfd_mips_elf_write_section, _bfd_mips_elf_set_section_contents,
+       _bfd_elf_mips_get_relocated_section_contents,
+       _bfd_mips_elf_final_link, _bfd_mips_elf_merge_private_bfd_data): ..
+       * hp300hpux.c (callback): ..
+       * hppabsd-core.c (make_bfd_asection): ..
+       * hpux-core.c (make_bfd_asection): ..
+       * i386linux.c (linux_link_create_dynamic_sections,
+       bfd_i386linux_size_dynamic_sections, linux_finish_dynamic_link): ..
+       * i386msdos.c (msdos_write_object_contents): ..
+       * i386os9k.c (os9k_callback, os9k_write_object_contents,
+       os9k_set_section_contents): ..
+       * ieee.c (parse_expression, ieee_slurp_external_symbols,
+       ieee_slurp_sections, ieee_slurp_debug, ieee_slurp_section_data,
+       ieee_write_section_part, do_with_relocs, do_as_repeat,
+       do_without_relocs, ieee_write_debug_part, init_for_output,
+       ieee_set_section_contents): ..
+       * ihex.c (ihex_scan, ihex_read_section, ihex_get_section_contents): ..
+       * irix-core.c (do_sections, make_bfd_asection): ..
+       * libaout.h (aout_section_merge_with_text_p): ..
+       * libbfd.c (_bfd_generic_get_section_contents,
+       _bfd_generic_get_section_contents_in_window): ..
+       * linker.c (default_indirect_link_order): ..
+       * lynx-core.c (make_bfd_asection): ..
+       * m68klinux.c (linux_link_create_dynamic_sections,
+       bfd_m68klinux_size_dynamic_sections, linux_finish_dynamic_link): ..
+       * mach-o.c (bfd_mach_o_make_bfd_section,
+       bfd_mach_o_scan_read_dylinker, bfd_mach_o_scan_read_dylib,
+       bfd_mach_o_scan_read_thread, bfd_mach_o_scan_read_symtab,
+       bfd_mach_o_scan_read_segment): ..
+       * merge.c (_bfd_add_merge_section, record_section, merge_strings,
+       _bfd_merge_sections): ..
+       * mmo.c (mmo_find_sec_w_addr, mmo_get_spec_section, mmo_get_loc,
+       mmo_map_set_sizes, mmo_canonicalize_symtab,
+       mmo_internal_write_section, mmo_write_object_contents): ..
+       * netbsd-core.c (netbsd_core_file_p): ..
+       * nlm32-alpha.c (nlm_alpha_read_reloc, nlm_alpha_write_import,
+       nlm_alpha_set_public_section): ..
+       * nlm32-ppc.c (nlm_powerpc_read_reloc, nlm_powerpc_write_reloc): ..
+       * nlm32-sparc.c (nlm_sparc_write_import): ..
+       * nlmcode.h (add_bfd_section, nlm_swap_auxiliary_headers_in,
+       nlm_compute_section_file_positions): ..
+       * oasys.c (oasys_object_p, oasys_slurp_section_data,
+       oasys_write_sections, oasys_write_data, oasys_set_section_contents): ..
+       * opncls.c (get_debug_link_info): ..
+       * osf-core.c (make_bfd_asection): ..
+       * pdp11.c (some_aout_object_p, adjust_o_magic, adjust_z_magic,
+       adjust_n_magic, adjust_sizes_and_vmas, squirt_out_relocs,
+       final_link, aout_link_input_section): ..
+       * peXXigen.c (_bfd_XXi_swap_sym_in, _bfd_XXi_swap_aouthdr_out,
+       pe_print_idata, pe_print_edata, pe_print_pdata, pe_print_reloc): ..
+       * pef.c (bfd_pef_make_bfd_section, bfd_pef_print_loader_section,
+       bfd_pef_scan_start_address, bfd_pef_parse_symbols): ..
+       * ppcboot.c (ppcboot_object_p, ppcboot_canonicalize_symtab): ..
+       * ptrace-core.c (ptrace_unix_core_file_p): ..
+       * reloc.c (bfd_perform_relocation, bfd_install_relocation,
+       _bfd_final_link_relocate, bfd_generic_relax_section,
+       bfd_generic_get_relocated_section_contents): ..
+       * reloc16.c (bfd_coff_reloc16_relax_section,
+       bfd_coff_reloc16_get_relocated_section_c): ..
+       * riscix.c (riscix_some_aout_object_p): ..
+       * rs6000-core.c (read_hdr, make_bfd_asection): ..
+       * sco5-core.c (make_bfd_asection): ..
+       * simple.c (bfd_simple_get_relocated_section_contents): ..
+       * som.c (som_object_setup, setup_sections, som_prep_headers,
+       som_write_fixups, som_begin_writing, bfd_section_from_som_symbol,
+       som_set_reloc_info, som_get_section_contents,
+       som_bfd_link_split_section): ..
+       * sparclinux.c (linux_link_create_dynamic_sections,
+       bfd_sparclinux_size_dynamic_sections, linux_finish_dynamic_link): ..
+       * srec.c (srec_scan, srec_read_section, srec_get_section_contents): ..
+       * stabs.c (_bfd_link_section_stabs, _bfd_discard_section_stabs,
+       _bfd_write_stab_strings, _bfd_stab_section_offset): ..
+       * sunos.c (sunos_read_dynamic_info, sunos_create_dynamic_sections,
+       bfd_sunos_size_dynamic_sections, sunos_scan_std_relocs,
+       sunos_scan_ext_relocs, sunos_scan_dynamic_symbol,
+       sunos_write_dynamic_symbol, sunos_check_dynamic_reloc,
+       sunos_finish_dynamic_link): ..
+       * syms.c (_bfd_stab_section_find_nearest_line): ..
+       * tekhex.c (first_phase, tekhex_set_section_contents,
+       tekhex_write_object_contents): ..
+       * trad-core.c (trad_unix_core_file_p): ..
+       * versados.c (process_esd, process_otr, process_otr): ..
+       * vms-gsd.c (_bfd_vms_slurp_gsd, _bfd_vms_write_gsd): ..
+       * vms-misc.c (add_new_contents): ..
+       * vms-tir.c (check_section, new_section, _bfd_vms_write_tir): ..
+       * vms.c (vms_set_section_contents): ..
+       * xcofflink.c (xcoff_get_section_contents, xcoff_link_add_symbols,
+       xcoff_sweep, bfd_xcoff_size_dynamic_sections, xcoff_build_ldsyms,
+       _bfd_xcoff_bfd_final_link, xcoff_link_input_bfd): ..
+       * xsym.c (bfd_sym_scan): .. See above.
+
+2004-06-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Add addend when
+       calling _bfd_merged_section_offset only for section symbols.
+
+2004-06-22  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_relax_section): Implement reference code
+       for handling SEC_MERGE symbols in relax_section.
+
+2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
+
+       2003-05-15  Richard Sandiford  <rsandifo@redhat.com>
+       * cpu-h8300.c (compatible): Allow h8300s and h8300sx code to be
+       linked together. Mark the result as h8300sx code.
+
+2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-bfd.h (struct elf_backend_data): Added
+       elf_backend_omit_section_dynsym.
+       (_bfd_elf_link_omit_section_dynsym): Declare.
+       * elf32-frv.c (_frvfdpic_link_omit_section_dynsym): New.
+       (elf_backend_omit_section_dynsym): Use it for frvfdpic.
+       * elflink.c (_bfd_elf_link_omit_section_dynsym): Split out of...
+       (_bfd_elf_link_renumber_dynsyms): ... this function.
+       * elfxx-target.h (elf_backend_omit_section_dynsym): Default to
+       _bfd_elf_link_omit_section_dynsym).
+       (elfNN_bed): Added elf_backend_omit_section_dynsym.
+
+2004-06-21  Nick Clifton  <nickc@redhat.com>
+
+       * coffcode.h (styp_to_sec_flags): Ignore IMAGE_SCN_MEM_NOT_PAGED
+       flags.
+
+2004-06-17  Jerome Guitton  <guitton@gnat.com>
+
+       * bfd-in.h (bfd_cache_close_all): New function declaration.
+       * bfd-in2.h: Regenerate.
+       * cache.c (bfd_cache_close_all): New function definition.
+
+2004-06-16  Mark Kettenis  <kettenis@gnu.org>
+
+       * configure.in: Don't set COREFILE to trad-core.lo for FreeBSD
+       4.10 and beyond.
+       * configure: Regenerate.
+
+2004-06-16  Daniel Jacobowitz  <dan@debian.org>
+
+       * elf32-ppc.c (ppc_elf_create_linker_section): Create symbols in
+       the pre-existing section.
+
+2004-06-15  Alan Modra  <amodra@bigpond.net.au>
+
+       * section.c (struct sec): Remove usused flags.  Reorganize a little.
+       (bfd_get_section_size_before_reloc): Delete.
+       (bfd_get_section_size_after_reloc): Delete.
+       (STD_SECTION): Update.
+       (bfd_get_section_size_now): Delete.
+       (bfd_set_section_contents): Don't referece reloc_done.
+       (bfd_get_section_contents): Remove reloc_done comment.
+       * bout.c (b_out_bfd_get_relocated_section_contents): Don't set
+       reloc_done.
+       * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Likewise.
+       * ecoff.c (bfd_debug_section): Update initializer.
+       * elfxx-mips.c (_bfd_elf_mips_get_relocated_section_contents): Ditto.
+       * reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
+       * bfd-in.h (bfd_section_size): Expand.
+       (bfd_get_section_size): New macro.
+       * bfd-in2.h: Regenerate.
+       * coff64-rs6000.c (xcoff64_write_object_contents): Replace
+       bfd_get_section_size_before_reloc with bfd_get_section_size.
+       * coffcode.h (coff_write_object_contents): Likewise.
+       * coffgen.c (build_debug_section): Likewise.
+       * dwarf1.c (parse_line_table): Likewise.
+       (_bfd_dwarf1_find_nearest_line): Likewise.
+       * ecoff.c (_bfd_ecoff_write_object_contents): Likewise.
+       * i386msdos.c (msdos_write_object_contents): Likewise.
+       * pdp11.c (squirt_out_relocs): Likewise.
+       * elf32-sh64.c (sh64_find_section_for_address): Remove comment.
+       * elf64-mmix.c (mmix_elf_final_link): Update comment.
+
+2004-06-14  Chris Demetriou  <cgd@broadcom.com>
+
+       * elf32-mips.c (elf_mips_gnu_pcrel32): Add (undoing 2004-04-24
+       removal) with updated comment.
+       (bfd_elf32_bfd_reloc_type_lookup): Add back case for
+       BFD_RELOC_32_PCREL.
+       (mips_elf32_rtype_to_howto): Add back case for R_MIPS_PC32.
+       * elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
+
+2004-06-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-x86-64.c (elf64_x86_64_relocate_section): Ignore reloc
+       overflow on branches to undefweaks.
+
+2004-06-11  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+
+       * coff-alpha.c (alpha_relocate_section): Set used_by_bfd directly
+       as ecoff_section_data() does not return a valid lvalue.
+
+2004-06-09  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elflink.c (elf_sort_symbol): Compare section id, not pointers.
+       (elf_link_add_object_symbols): Likewise.
+
+       * elf-m10300.c (_bfd_mn10300_elf_reloc_type_class): New.
+       (elf_backend_reloc_type_class): New.
+
+2004-06-08  Mark Kettenis  <kettenis@gnu.org>
+
+       * configure.in (hppa*-*-netbsd*, hppa*-*-openbsd): Set COREFILE to
+       netbsd-core.lo.
+       * configure: Regenerate.
+
+2004-06-07  Daniel Jacobowitz  <dan@debian.org>
+
+       From:  Albert Chin-A-Young  <china@thewrittenword.com>
+       * bfd/elf-bfd.h (struct eh_cie_fde): Convert unsigned char bitfields
+       to unsigned int.
+
+2004-05-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Undo the last
+       change.
+
+2004-05-28  DJ Delorie  <dj@redhat.com>
+
+       * elf-m10300.c (mn10300_elf_relax_section): Preserve reloc addend
+       for linking, but otherwise adjust reloc for merged sections.
+
+2004-05-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Properly call
+       _bfd_merged_section_offset for local symbols.
+
+2004-05-28  Andrew Stubbs <andrew.stubbs@superh.com>
+
+       * Makefile.am: Regenerate dependencies.
+       * Makefile.in: Regenerate.
+       * archures.c: Add bfd_mach_sh3_nommu .
+       * bfd-in2.h: Regenerate.
+       * cpu-sh.c: Add sh3-nommu architecture.
+       (bfd_to_arch_table): Create new table.
+       (sh_get_arch_from_bfd_mach): Create new function.
+       (sh_get_arch_up_from_bfd_mach): Create new function.
+       (sh_merge_bfd_arch): Create new function.
+       * elf32-sh.c (sh_ef_bfd_table): Add table.
+       (sh_elf_check_relocs): Replace switch statement with
+       use of sh_ef_bfd_table .
+       (sh_elf_get_flags_from_mach): Add new function.
+       (sh_find_elf_flags): Likewise.
+       (sh_elf_copy_private_data): Replace most of non-elf contents
+       with a call to sh_merge_bfd_arch() .
+
+2004-05-27  Michael Chastain  <mec.gnu@mindspring.com>
+
+       * Makefile.am (bfdver.h): Use explicit filename, not $< .
+       * Makefile.in: Regenerate.
+
+2004-05-27  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-m10300.c (elf32_mn10300_finish_hash_table_entry): Avoid
+       custom calling conventions for dynamic symbols.
+       (mn10300_elf_relax_section): Avoid relaxing a function as a local
+       symbol if it's an alias to a global one.
+
+2004-05-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf.c (_bfd_elf_make_section_from_shdr): Undo the last
+       change.
+
+2004-05-27  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-m10300.c (mn10300_elf_relax_section): Don't test isym within
+       loop over hashes.
+
+2004-05-26  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (_bfd_elf_make_section_from_shdr): Don't set SEC_EXCLUDE
+       for SHT_GROUP sections.
+
+2004-05-25  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.c (elf_link_add_object_symbols): Don't set up merge
+       section data here..
+       * elf.c (_bfd_elf_merge_sections): .. Do it here instead.
+       * merge.c: Formatting.  Remove unnecessary casts.  Expand
+       bfd_get_section_alignment macro.
+       (struct sec_merge_sec_info): Rename "first" to "first_str".  Update
+       use throughout file.
+       (_bfd_add_merge_section): Rename from _bfd_merge_section.  Update
+       comment.  Abort on dynamic or non-SEC_MERGE input.  Don't test
+       section name to determine sinfo group, instead test output section
+       and alignment.
+       (_bfd_merge_sections): Add struct bfd_link_info param.  Call
+       _bfd_strip_section_from_output rather than just twiddling flags.
+       * libbfd-in.h (_bfd_add_merge_section): Rename, update comment.
+       (_bfd_merge_sections): Update prototype.
+       * libbfd.h: Regenerate.
+
+2004-05-24  Mark Kettenis  <kettenis@gnu.org>
+
+       * netbsd-core.c: Correctly indent section that sets architecture
+       from machine ID.
+
+       From Miod Vallat <miod@online.fr>:
+       * m88kopenbsd.c: New file.
+       * targets.c (m88k_openbsd_vec): New.
+       * config.bfd: Add m88k-*-openbsd*.
+       * configure.in (m88k-*-openbsd*): Set COREFILE to netbsd-core.lo.
+       (m88kopenbsd_vec): New.
+       * configure: Regenerate.
+       * Makefile.am (BFD32_BACKENDS): Add m88kopenbsd.lo.
+       (BFD32_BACKENDS_CFILES): Add m88kopenbsd.c.
+       Run "make dep-am".
+       * Makefile.in: Regenerate.
+       * po/SRC-POTFILES.in: Regenerate.
+
+2004-05-24  Nick Clifton  <nickc@redhat.com>
+
+       * hash.c: Remove bogus node "Changing the default Hash Table Size"
+       introduced by hash table size patch.
+
+2004-05-22  Ben Elliston  <bje@au.ibm.com>
+
+       * configure.in (is_release): Remove.
+       (bfd_version_date, bfd_version, bfd_version_string): Likewise.
+       (AC_OUTPUT): Don't output bfdver.h from version.h.
+       * configure: Regenerate.
+       * Makefile.am (RELEASE): New variable.
+       (bfdver.h): New target.
+       * Makefile.in: Regenerate.
+       * doc/Makefile.in: Likewise.
+
+2004-05-22  Ben Elliston  <bje@au.ibm.com>
+
+       * Makefile.am (config.status): Don't depend on version.h.
+       * Makefile.in: Regenerate.
+
+2004-05-22  Alan Modra  <amodra@bigpond.net.au>
+
+       * merge.c (_bfd_merged_section_offset): Remove "addend" param.
+       * libbfd-in.h (_bfd_merged_section_offset): Adjust prototype.
+       * libbfd.h: Regenerate.
+       * elf.c (_bfd_elf_rela_local_sym): Adjust call.
+       (_bfd_elf_rel_local_sym): Likewise.
+       * elflink.c (_bfd_elf_link_sec_merge_syms): Likewise.
+       (elf_link_input_bfd): Likewise.
+       * elf32-ppc.c (ppc_elf_relax_section): Likewise.
+       * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
+       (elfNN_ia64_relocate_section): Likewise.
+
+2004-05-21  Andy Chittenden  <achittenden@bluearc.com>
+
+       * hash.c (bfd_default_hash_table_size): New variable.
+       (bfd_hash_table_init): Use new variable instead of DEFAULT_SIZE.
+       (bfd_hash_set_default_size): New function.  Set the default size
+       to a selected prime number close to the argument.  Document new
+       function.
+       * bfd-in.h: Add prototype for  bfd_hash_set_default_size.
+       * bfd-in2.h: Regenerate.
+       * Makefile.am (hash.lo): Add dependency upon libiberty.h.
+       * Makefile.in: Regenerate.
+
+2004-05-21  Mark Kettenis  <kettenis@gnu.org>
+
+       * libaout.h (machine_type): Add M_88K_OPENBSD and M_HPPA_OPENBSD.
+       * netbsd-core.c (netbsd_core_file_p): Set architecture for alpha,
+       arm, m68k, m88k and hppa core files.
+
+2004-05-21  Nick Clifton  <nickc@redhat.com>
+
+       * bfdio.c (bfd_bread): Do not use iovec if it is NULL.
+       (bfd_bwrite): Likewise.
+       (bfd_tell): Likewise.
+       (bfd_flush): Likewise.
+       (bfd_stat): Likewise.
+       (bfd_seek): Likewise.
+       (bfd_get_mtime): Likewise.
+       (bfd_get_size): Likewise.
+
+2004-05-19  Ben Elliston  <bje@au.ibm.com>
+
+       * dwarf2.c (_bfd_dwarf2_find_nearest_line): Comment correction.
+
+2004-05-19  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
+
+       * archive.c (_bfd_get_elt_at_filepos): Cope with a nested archives.
+       (bfd_generic_openr_next_archived_file): Likewise.
+
+2004-05-17  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (xtensa_get_property_section_name): Determine linkonce
+       section names by inserting a new substring after .gnu.linkonce, except
+       for .gnu.linkonce.t.* where the "t." is replaced.
+
+2004-05-17  Adam Nemet  <anemet@lnxw.com>
+
+       * config.bfd (sparc-*-lynxos* case): Add to obsolete list.
+       (m68-*-lynxos* case): Likewise.
+       (powerpc-*-lyxnos* case): New case.
+       (i[3-7]86-*-lynxos* case): Update to LynxOS 4.0 ELF.
+
+2004-05-17  David Heine  <dlheine@tensilica.com>
+
+       * aout-target.h (MY_bfd_copy_private_header_data): Define.
+       * aout-tic30.c (MY_bfd_copy_private_header_data): Define.
+       * bfd.c (bfd_copy_private_header_data): Define.
+       * coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Add entries for new
+       interface.
+       * coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Likewise.
+       * coffcode.h (coff_bfd_copy_private_header_data): Define.
+       * elf-bfd.h (_bfd_elf_copy_private_header_data): Declare.
+       * elf.c (_bfd_elf_copy_private_section_data): Remove code to set up
+       segments by calling copy_private_bfd_data.
+       (_bfd_elf_copy_private_header_data): Define.
+       * elfxx-target.h (bfd_elfNN_bfd_copy_private_header_data): Define.
+       * libbfd-in.h (_bfd_generic_bfd_copy_private_header_data): Define.
+       * libecoff.h (_bfd_ecoff_bfd_copy_private_header_data): Define.
+       * mach-o.c (bfd_mach_o_bfd_copy_private_header_data): Define.
+       * mmo.c (mmo_bfd_copy_private_header_data): Define.
+       * ppcboot.c (ppcboot_bfd_copy_private_header_data): Define.
+       * som.c (som_bfd_copy_private_header_data): Define.
+       * targets.c (BFD_JUMP_TABLE_COPY): Add _bfd_copy_private_header_data.
+       * vms.c (vms_bfd_copy_private_header_data): Define.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2004-05-15  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
+
+       * elfxx-mips.c (MINUS_TWO): Define.
+       (mips_elf_higher, mips_elf_highest,
+       mips_elf_create_dynamic_relocation): Use MINUS_ONE and MINUS_TWO for
+       some bfd_vma values.
+       (_bfd_mips_elf_finish_dynamic_symbol): Likewise. Code cleanup.
+
+2004-05-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * som.c (log2): Rename to exact_log2.  Adjust all callers.
+
+2004-05-13  Paul Brook  <paul@codesourcery.com>
+
+       * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Handle
+       dwarf3 format CIE entries.  Remove comment about the size of the
+       ra_column field.  It is now correctly deduced.
+
+2004-05-13  Joel Sherrill <joel@oarcorp.com>
+
+       * config.bfd (or32-*-rtems*): Switch to elf.
+
+2004-05-13  Nick Clifton  <nickc@redhat.com>
+
+       * po/fr.po: Updated French translation.
+
+2004-05-11  Jakub Jelinek  <jakub@redhat.com>
+
+       * elflink.c (elf_bfd_final_link): Don't output STT_SECTION symbol
+       into .dynsym if elf_section_data (sec)->dynindx <= 0.
+       Adjust counting of last_local.
+       (_bfd_elf_link_renumber_dynsyms): Don't assign dynindx to sections
+       other than SHT_PROGBITS/SHT_NOBITS and neither for .got/.got.plt/.plt
+       created by the linker nor !SHF_ALLOC.
+
+       * elf32-i386.c (elf_i386_finish_dynamic_sections): Point
+       DT_PLTGOT to the start of the .got.plt section instead of the
+       .got output section.  Set sh_entsize for .got section in addition
+       to .got.plt.
+       (elf_i386_relocate_section): Don't assume _GLOBAL_OFFSET_TABLE_
+       is at sgot->output_section->vma.
+       * elf64-x86-64.c (elf64_x86_64_finish_dynamic_sections): Point
+       DT_PLTGOT to the start of the .got.plt section instead of the
+       .got output section.
+       (elf64_x86_64_relocate_section): Don't assume _GLOBAL_OFFSET_TABLE_
+       is at sgot->output_section->vma.  Set sh_entsize for .got section
+       in addition to .got.plt.
+       * elf.c (_bfd_elf_print_private_bfd_data): Handle PT_GNU_RELRO.
+       (bfd_section_from_phdr): Likewise.
+       (map_sections_to_segments): Likewise.
+       (assign_file_positions_for_segments): Likewise.
+       (get_program_header_size): Likewise.
+       * elflink.c (bfd_elf_size_dynamic_sections): Set
+       elf_tdata (output_bfd)->relro from info->relro.
+       * elf-bfd.h (struct elf_obj_tdata): Add relro field.
+
+2004-05-08  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-frv.c (_frvfdpic_add_dyn_reloc): Don't warn when we get
+       a zero symndx for which we hadn't accounted a dynamic relocation.
+       (_frvfdpic_add_rofixup): Likewise.
+
+2004-05-07  Brian Ford  <ford@vss.fsi.com>
+           DJ Delorie  <dj@redhat.com>
+
+       * coffcode.h (coff_write_object_contents) [COFF_IMAGE_WITH_PE]:
+       Propagate IMAGE_FILE_LARGE_ADDRESS_AWARE.
+       * peXXigen.c (_bfd_XX_print_private_bfd_data_common): Recognize
+       IMAGE_FILE_LARGE_ADDRESS_AWARE.  Use PE defines.
+
+2004-05-07  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-frv.c (elf32_frvfdpic_modify_segment_map): Return
+       immediately if there's no link info.
+       (elf32_frvfdpic_copy_private_bfd_data): New.
+       (bfd_elf32_bfd_copy_private_bfd_data): Use it for frvfdpic.
+
+2004-05-06  Zack Weinberg  <zack@codesourcery.com>
+
+       * dwarf2.c (add_line_info): Also set info->filename to NULL if
+       filename argument is null; do not call strlen on a null pointer.
+
+2004-05-06  Daniel Jacobowitz  <drow@mvista.com>
+
+       * elf32-arm.h (elf32_arm_relocate_section): Remove R_ARM_PLT32
+       special case.
+
+2004-05-05  Alexandre Oliva  <aoliva@redhat.com>
+
+       * configure.in (bfd_elf32_frvfdpic_vec): New.
+       * configure: Rebuilt.
+       * targets.c (bfd_elf32_frvfdpic_vec): New.
+       * config.bfd: Enable it on frv-*-elf and frv-*-*linux*, as default
+       on the latter.
+       * elf32-frv.c: Prefix all identifiers added for FDPIC support with
+       frvfdpic instead of frv.  Rearrange elf-target macros such that
+       the FDPIC-specific ones are only defined for this new target
+       vector.
+       (bfd_elf32_frvfdpic_vec): Declare.
+       (IS_FDPIC): New.
+       (elf32_frv_relocate_section): Use it to enable segment checking
+       and to control rofixup emission.  Add output section vma to
+       applied relocation in non-LOAD non-ALLOC sections.  Use
+       _bfd_error_handler for errors.
+       (_frv_create_got_section): Create .rel.got and .rofixup only in
+       FDPIC.  Create non-dynamic _gp at .got+2048 in non-FDPIC, like the
+       linker script.
+       (elf32_frvfdpic_size_dynamic_sections): Assume FDPIC.
+       (elf32_frvfdpic_modify_segment_map): Likewise.
+       (elf32_frv_finish_dynamic_sections): New, do-nothing.
+       (elf32_frvfdpic_finish_dynamic_sections): Assume FDPIC.  Improve
+       error message if we miscompute the rofixup size.
+       (frvfdpic_elf_use_relative_eh_frame): Assume FDPIC.
+       (frvfdpic_elf_encode_eh_address): Likewise.
+       (elf32_frv_check_relocs): Reject FDPIC-only relocs in non-FDPIC.
+       Record relocs only in FDPIC.  Make sure _gp is defined for GPREL
+       relocs.  Reject unknown relocation types.
+       (elf32_frv_object_p): Make sure target vector matches FDPIC bits.
+       (frv_elf_merge_private_bfd_data): Likewise.
+       (ELF_MAXPAGESIZE): Revert to 0x1000 for elf32-frv; keep it as
+       0x4000 for newly-added elf32-frvfdpic.
+
+2004-05-05  Nick Clifton  <nickc@redhat.com>
+
+       PR/136
+       * cache.c (bfd_cache_lookup_worker): Call abort() rather than
+       returning NULL as most users of this function do not check its
+       return value.
+       * hppabsd-core.c (hppabsd_core_core_file_p): Do not check result
+       of bfd_cache_lookup().
+       * sco5-core.c (sco5_core_file_p): Likewise.
+       * trad-core.c (trad_unix_core_file_p): Likewise.
+
+2004-05-05  Nick Clifton  <nickc@redhat.com>
+
+       * cache.c (bfd_cache_lookup): Improve formatting.
+       * archive.c: Fix formatting.
+
+2004-05-05  Peter Barada  <peter@the-baradas.com>
+
+       * bfd_archures.c(bfd_architecture): Add 521x,5249,547x,548x.
+       * cpu-m68k.c(bfd_m68k_arch): Likewise.
+       * bfd-in2.h(bfd_architecture): Regenerate.
+
+2004-05-03  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (_bfd_elf_rela_local_sym): Set kept_section for excluded
+       SEC_MERGE sections.
+       * elflink.c (elf_link_input_bfd): Adjust output reloc index for
+       those against discarded link-once and SEC_MERGE section symbols.
+
+2004-05-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * section.c (bfd_get_section_by_name_if): New.
+       * bfd-in2.h: Regenerated.
+
+2004-05-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * som.c (som_bfd_is_group_section): Define.
+
+2004-05-01  Alan Modra  <amodra@bigpond.net.au>
+
+       * section.c (bfd_make_section_anyway): Copy the whole
+       bfd_hash_entry, not just "next" from existing entry.
+
+2004-04-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf.c (bfd_section_from_shdr): Maintain the section order in
+       a section group.
+       (special_sections): Add ".note.GNU-stack".
+       (elf_fake_sections): Handle section group for relocatable
+       link..
+
+2004-04-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * section.c (bfd_sections_find_if): New.
+       * bfd-in2.h: Regenerated.
+
+2004-04-30  Alan Modra  <amodra@bigpond.net.au>
+
+       * section.c (bfd_make_section_anyway): Add all sections to hash tab.
+
+       * elf-bfd.h (bfd_elf_is_group_section): Declare.
+       * elf.c (bfd_elf_is_group_section): New function.
+       * elfxx-target.h (bfd_elfNN_bfd_is_group_section
+       * section.c (bfd_generic_is_group_section): New function.
+       * targets.c (struct bfd_target): Add _bfd_is_group_section field.
+       (BFD_JUMP_TABLE_LINK): Adjust.
+       * aout-adobe.c (aout_32_bfd_is_group_section): Define.
+       * aout-target.h (MY_bfd_is_group_section): Define.
+       * aout-tic30.c (MY_bfd_is_group_section): Define.
+       * bfd.c (bfd_is_group_section): Define.
+       * binary.c (binary_bfd_is_group_section): Define.
+       * bout.c (b_out_bfd_is_group_section): Define.
+       * coff-alpha.c (_bfd_ecoff_bfd_is_group_section): Define.
+       * coff-mips.c (_bfd_ecoff_bfd_is_group_section): Define.
+       * coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Adjust.
+       * coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Adjust.
+       * coffcode.h (coff_bfd_is_group_section): Define.
+       * i386msdos.c (msdos_bfd_is_group_section): Define.
+       * i386os9k.c (os9k_bfd_is_group_section): Define.
+       * ieee.c (ieee_bfd_is_group_section): Define.
+       * ihex.c (ihex_bfd_is_group_section): Define.
+       * libbfd-in.h (_bfd_nolink_bfd_is_group_section): Define.
+       * mach-o.c (bfd_mach_o_bfd_is_group_section): Define.
+       * mmo.c (mmo_bfd_is_group_section): Define.
+       * nlm-target.h (nlm_bfd_is_group_section): Define.
+       * oasys.c (oasys_bfd_is_group_section): Define.
+       * pef.c (bfd_pef_bfd_is_group_section): Define.
+       * ppcboot.c (ppcboot_bfd_is_group_section): Define.
+       * srec.c (srec_bfd_is_group_section): Define.
+       * tekhex.c (tekhex_bfd_is_group_section): Define.
+       * versados.c (versados_bfd_is_group_section): Define.
+       * vms.c (vms_bfd_is_group_section): Define.
+       * xsym.c (bfd_sym_bfd_is_group_section): Define.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2004-04-30  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.c (elf_gc_mark): Follow indirect and warning syms.
+
+2004-04-30  Hans-Peter Nilsson  <hp@axis.com>
+
+       * configure.in: Update version to 2.15.91.
+       * configure: Regenerate.
+
+2004-04-29  Brian Ford  <ford@vss.fsi.com>
+
+       * bfd.c (bfd_get_sign_extend_vma): Add pe[i]-i386 case to DJGPP hack.
+       * coffcode.h (DOT_DEBUG, GNU_LINKONCE_WI): Define.
+       [!COFF_WITH_PE] (sec_to_styp_flags, styp_to_sec_flags): Use them.
+       (coff_compute_section_file_positions) [RS6000COFF_C]: Likewise.
+       [COFF_WITH_PE] (sec_to_styp_flags): Handle DWARF 2/3 .debug* and
+       .gnu.linkonce.wi. sections.
+       * pe-i386.c (COFF_SUPPORT_GNU_LINKONCE): Define.
+       (COFF_SECTION_ALIGNMENT_ENTRIES): Add entries for .debug and
+       .gnu.linkonce.wi..
+       * pei-i386.c (COFF_SUPPORT_GNU_LINKONCE): Likewise.
+       (COFF_SECTION_ALIGNMENT_ENTRIES): Likewise.
+
+2004-04-28  Chris Demetriou  <cgd@broadcom.com>
+
+       * reloc.c: Remove BFD_RELOC_PCREL_HI16_S and BFD_RELOC_PCREL_LO16.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Likewise.
+
+2004-04-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * som.c (struct som_misc_symbol_info): Add is_comdat, is_common and
+       dup_common fields.
+       (setup_sections): Use som_subspace_dictionary_record struct instead
+       subspace_dictionary_record.  Set SEC_LINK_ONCE if subspace is
+       is_comdat, is_common or dup_common.
+       (som_prep_headers): Use som_subspace_dictionary_record struct.  Set
+       is_comdat, is_common and dup_common in section subspace_dict from
+       copy_data.
+       (som_begin_writing): Use som_subspace_dictionary_record struct.
+       (som_finish_writing): Likewise.
+       (som_bfd_derive_misc_symbol_info): Add support to set is_comdat,
+       is_common and dup_common flags in info for symbol.  Add comment
+       regarding linker support for these fields.  Slightly reorganize
+       function.
+       (som_build_and_write_symbol_table): Set is_comdat, is_common and
+       dup_common fields in symbol table from symbol info.
+       (bfd_som_set_subsection_attributes): Add comdat, common and dup_common
+       arguments.  Set corresponding fields in copy_data.  Change all callers.
+       (som_bfd_ar_write_symbol_stuff): Set dup_common flag in library
+       symbol table.
+       (som_vec): Add SEC_LINK_ONCE to applicable section flags.
+       * som.h (som_subspace_dictionary_record): Define.
+       (som_copyable_section_data_struct): Add is_comdat, is_common and
+       dup_common fields.
+       (som_section_data_struct): Use som_subspace_dictionary_record struct
+       instead of subspace_dictionary_record.
+       (bfd_boolean bfd_som_set_subsection_attributes): Adjust prototype.
+
+2004-04-27  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (xtensa_read_table_entries): Use section _cooked_size
+       if set.  Check reloc_done flag before applying relocations.  Use
+       output addresses, both when applying relocations and when comparing
+       against the specified section.
+       (elf_xtensa_relocate_section): Use output address to check if dynamic
+       reloc is in a literal pool.  Set section's reloc_done flag.
+
+2004-04-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-sh64.c (elf_backend_section_flags): New. Defined.
+       (sh64_elf_set_mach_from_flags): Remove the kludge for .cranges
+       section.
+       (sh64_elf_section_flags): New. Set SEC_DEBUGGING for .cranges
+       section.
+
+2004-04-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-alpha.c (elf64_alpha_read_ecoff_info): Don't assign
+       structure field removed in 2004-04-24 patch.
+       * elf64-sparc.c (sparc64_elf_plt_sym_val): Warning fix.
+
+       * elf-bfd.h (struct elf_backend_data <elf_backend_section_flags>):
+       Constify hdr arg.
+       * elf32-arm.h (elf32_arm_section_flags): Likewise.
+       * elf64-alpha.c (elf64_alpha_section_flags): Likewise.
+       * elfxx-ia64.c (elfNN_ia64_section_flags): Likewise.
+       * elf.c (_bfd_elf_make_section_from_shdr): Set the bfd_section
+       field before calling elf_backend_section_flags.
+
+2004-04-24  Chris Demetriou  <cgd@broadcom.com>
+
+       * elf32-mips.c (elf_mips_gnu_rel_hi16, elf_mips_gnu_rel_lo16)
+       (elf_mips_gnu_pcrel64, elf_mips_gnu_pcrel32): Remove.
+       (bfd_elf32_bfd_reloc_type_lookup): Remove cases for
+       BFD_RELOC_PCREL_HI16_S, BFD_RELOC_PCREL_LO16, BFD_RELOC_64_PCREL,
+       and BFD_RELOC_32_PCREL.
+       (mips_elf32_rtype_to_howto): Remove cases for R_MIPS_GNU_REL_HI16,
+       R_MIPS_GNU_REL_LO16, R_MIPS_PC64, R_MIPS_PC32.
+       * elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
+       (_bfd_mips_elf_lo16_reloc): Remove handling for R_MIPS_GNU_REL_HI16.
+       (mips_elf_next_relocation): Move comment about matching HI/LO
+       relocations to...
+       (_bfd_mips_elf_relocate_section): Here.  Remove handling for
+       R_MIPS_GNU_REL_HI16.
+
+2004-04-23  Chris Demetriou  <cgd@broadcom.com>
+
+       * coff-mips.c (mips_relhi_reloc, mips_rello_reloc)
+       (mips_switch_reloc, mips_read_relocs, mips_relax_section)
+       (mips_relax_pcrel16, PCREL16_EXPANSION_ADJUSTMENT): Remove.
+       (mips_relocate_hi): Remove now-unused 'adjust' and 'pcrel' arguments,
+       and update comments to reflect current usage.
+       (mips_howto_table): Remove entries for MIPS_R_RELHI, MIPS_R_RELLO,
+       and MIPS_R_SWITCH, as well as several empty entries.  Update comment
+       for MIPS_R_PCREL16.
+       (mips_ecoff_swap_reloc_in, mips_ecoff_swap_reloc_out)
+       (mips_adjust_reloc_out, mips_bfd_reloc_type_lookup): Remove support
+       for MIPS_R_SWITCH, MIPS_R_RELLO, and MIPS_R_RELHI relocations.
+       (mips_adjust_reloc_in): Likewise, adjust maximum accepted relocation
+       type number to be MIPS_R_PCREL16.
+       (mips_relocate_section): Remove support for link-time relaxation
+       of branches used by embedded-PIC.  Remove support for MIPS_R_SWITCH,
+       MIPS_R_RELLO, and MIPS_R_RELHI relocations.
+       (_bfd_ecoff_bfd_relax_section): Redefine to bfd_generic_relax_section.
+       * ecoff.c (ecoff_indirect_link_order): Remove support for link-time
+       relaxation of branches used by embedded-PIC.
+       * ecofflink.c (bfd_ecoff_debug_accumulate): Likewise.
+       * libecoff.h (struct ecoff_section_tdata): Remove embedded-PIC
+       related members, update comment.
+       * pe-mips.c: Remove disabled (commented-out and #if 0'd)
+       code related to embedded-PIC.
+       * elfxx-mips.c (_bfd_mips_elf_read_ecoff_info): Remove
+       initialization of now-removed 'adjust' member of
+       'struct ecoff_debug_info'.
+
+2004-04-23  Chris Demetriou  <cgd@broadcom.com>
+
+       * elfxx-mips.c (mips_elf_get_global_gotsym_index): Remove.
+
+2004-04-21  Philip Blundell  <pb@nexus.co.uk>
+
+       * elf32-arm.h (elf32_arm_check_relocs): Don't output REL32
+       relocs for locally defined symbols during -shared final link.
+       (elf32_arm_final_link_relocate): Likewise.
+
+2004-04-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf64-x86-64.c (elf64_x86_64_copy_indirect_symbol): Copy also
+       ELF_LINK_POINTER_EQUALITY_NEEDED.
+       (elf64_x86_64_check_relocs): Set ELF_LINK_POINTER_EQUALITY_NEEDED
+       if r_type is not R_X86_64_PC32.
+       (elf64_x86_64_finish_dynamic_symbol): If
+       ELF_LINK_POINTER_EQUALITY_NEEDED is not set, clear st_value of
+       SHN_UNDEF symbols.
+
+2004-04-22  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * elf32-sh.c (sh_elf_plt_sym_val): New function.
+       (elf_backend_plt_sym_val): Define.
+
+2004-04-22  Andrew Cagney  <cagney@redhat.com>
+
+       * opncls.c (bfd_alloc): Fix type of "wanted" in doco.
+
+2004-04-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * hpux-core.c (hpux_core_core_file_p): Add cast in call to
+       make_bfd_asection.
+       * som.c (som_set_section_contents): Constantify second argument.
+       (hppa_som_gen_reloc_type): Abort for unsupported selectors.
+       (som_object_setup): Rework to avoid warning.
+       (setup_sections, som_write_fixups, bfd_section_from_som_symbol):
+       Likewise.
+
+2004-04-22  Andrew Cagney  <cagney@redhat.com>
+
+       * cache.c (bfd_cache_close): Check for a previously closed file.
+
+2004-04-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * bfd.c (bfd_get_synthetic_symtab): Define.
+       * targets.c (BFD_JUMP_TABLE_DYNAMIC): Add
+       NAME##_get_synthetic_symtab.
+       (struct bfd_target): Add _bfd_get_synthetic_symtab.
+       * libbfd-in.h (_bfd_nodynamic_get_synthetic_symtab): Define.
+       * elf-bfd.h (struct elf_backend_data): Add plt_sym_val and
+       relplt_name fields.
+       (_bfd_elf_get_synthetic_symtab): New prototype.
+       * elfcode.h (elf_get_synthetic_symtab): Define.
+       * elf.c (_bfd_elf_get_synthetic_symtab): New function.
+       * elfxx-target.h (bfd_elfNN_get_synthetic_symtab): Define.
+       (elf_backend_plt_sym_val, elf_backend_relplt_name): Define.
+       (elfNN_bed): Add elf_backend_plt_sym_val and elf_backend_relplt_name.
+       * bfd-in2.h: Rebuilt.
+       * libbfd.h: Rebuilt.
+       * elf32-i386.c (elf_i386_plt_sym_val): New function.
+       (elf_backend_plt_sym_val): Define.
+       * elf64-x86-64.c (elf64_x86_64_plt_sym_val): New function.
+       (elf_backend_plt_sym_val): Define.
+       * elf32-s390.c (elf_s390_plt_sym_val): New function.
+       (elf_backend_plt_sym_val): Define.
+       * elf64-s390.c (elf_s390_plt_sym_val): New function.
+       (elf_backend_plt_sym_val): Define.
+       * elf32-sparc (elf32_sparc_plt_sym_val): New function.
+       (elf_backend_plt_sym_val): Define.
+       * elf64-sparc.c (sparc64_elf_plt_sym_val): New function.
+       (elf_backend_plt_sym_val): Define.
+       * elf32-ppc.c (ppc_elf_plt_sym_val): New function.
+       (elf_backend_plt_sym_val): Define.
+       * aout-target.h (MY_get_synthetic_symtab): Define.
+       * aout-tic30.c (MY_get_synthetic_symtab): Define.
+       * coff-rs6000.c (rs6000coff_vec): Add
+       _bfd_nodynamic_get_synthetic_symtab.
+       (pmac_xcoff_vec): Likewise.
+       * coff64-rs6000.c (rs6000coff64_vec): Add
+       _bfd_nodynamic_get_synthetic_symtab.
+       (aix5coff64_vec): Likewise.
+       * sunos.c (MY_get_synthetic_symtab): Define.
+       * vms.c (vms_get_synthetic_symtab): Define.
+
+2004-04-22  Nick Clifton  <nickc@redhat.com>
+
+       * bfd.c (bfd_archive_filename): Return NULL on NULL input.
+
+2004-04-22  Peter Barada <peter@the-baradas.com>
+
+       * archures.c: Add bfd_mach_mcfv4e to bfd_architecture.
+       * bfd2-in.h: Regenerate.
+       * cpu-m68k.c: Add 'm68k:mcfv4e' to arch_info_struct[].
+
+2004-04-21  Chris Demetriou  <cgd@broadcom.com>
+
+       * coff-mips.c (bfd_mips_ecoff_create_embedded_relocs): Remove.
+       * elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): Remove.
+       * bfd-in.h (bfd_mips_ecoff_create_embedded_relocs)
+       (bfd_mips_elf32_create_embedded_relocs): Remove prototypes
+       * bfd-in2.h: Regenerate.
+
+2004-04-21  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (is_same_value): Add final_static_link argument and
+       require relocations against a weak symbol to reference the same
+       symbol hash entry if not a final, static link.
+       (get_cached_value, add_value_map): Add final_static_link argument.
+       (remove_literals): Pass final_static_link argument as needed.
+
+2004-04-21  Andrew Cagney  <cagney@redhat.com>
+
+       * opncls.c (_bfd_new_bfd_contained_in): Copy "iovec".
+       (struct opncls, opncls_btell, opncls_bseek, opncls_bread)
+       (opncls_bwrite, opncls_bclose, opncls_bflush)
+       (opncls_bstat, opncls_iovec, bfd_openr_iovec): Implement a
+       bfd iovec that uses function callbacks.
+       (bfd_close): Use the iovec's bclose.
+       * cache.c (cache_btell, cache_bseek, cache_bread, cache_bwrite)
+       (cache_bclose, cache_bflush, cache_bstat)
+       (cache_iovec): New functions and global variable, implement a
+       cache "iovec", where applicable set bfd_error.
+       (bfd_cache_init, bfd_cache_close): Set/test the bfd's iovec.
+       * bfdio.c (struct bfd_iovec): Define.
+       (real_read): Delete function.
+       (bfd_bread, bfd_bread, bfd_bwrite, bfd_tell, bfd_flush, bfd_stat)
+       (bfd_seek, bfd_get_mtime, bfd_get_size): Use the bfd's "iovec",
+       assume that bread and bwrite set bfd_error.
+       * bfd.c (struct bfd): Add "iovec", update comments.
+       * bfd-in2.h, libbfd.h: Re-generate.
+
+2004-04-21  Andrew Cagney  <cagney@redhat.com>
+
+       * libaout.h (enum machine_type): Add M_POWERPC_NETBSD.
+
+2004-04-21  Eric Botcazou  <ebotcazou@act-europe.fr>
+
+       * elflink.c (elf_gc_mark_dynamic_ref_symbol): New function.
+       (bfd_elf_gc_sections): Fail if a shared object is being created.
+       Do not fail if dynamic sections have been created.  Instead call
+       elf_gc_mark_dynamic_ref_symbol to mark sections that contain
+       dynamically referenced symbols.  Do not mark the whole graph
+       rooted at .eh_frame, only the section proper.
+
+2004-04-20  DJ Delorie  <dj@redhat.com>
+
+       * reloc.c: Add BFD_RELOC_32_SECREL.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Likewise.
+       * coff-i386.c (howto_table) [COFF_WITH_PE]: Add R_SECREL32.
+       (coff_i386_rtype_to_howto) [COFF_WITH_PE]: Handle it.
+       (coff_i386_reloc_type_lookup) [COFF_WITH_PE]: Likewise.
+
+2004-04-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf32-sparc.c (elf32_sparc_relocate_section): Handle
+       relocs against hidden/protected undefweak symbols properly.
+       * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+
+2004-04-18  Mark Kettenis  <kettenis@gnu.org>
+
+       * libaout.h (enum machine_type): Add M_POWERPC_NETBSD.
+       * netbsd-core.c (netbsd_core_file_p): Set architecture for PowerPC
+       core files.
+
+2004-04-17  Brian Ford  <ford@vss.fsi.com>
+
+       * peXXigen.c (_bfd_XXi_swap_aouthdr_out): Use the first non-zero
+       filepos for the SizeOfHeaders field.
+       (_bfd_XXi_swap_scnhdr_out): Correct section flags lossage on reloc
+       overflow.
+       (_bfd_XXi_swap_sym_in): Remove redundant section flags assignment.
+
+2004-04-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * simple.c (bfd_simple_get_relocated_section_contents): Don't
+       change reloc_done.  Set and restore _cooked_size.
+       (RETURN): Delete.
+
+2004-04-15  Mark Kettenis  <kettenis@gnu.org>
+
+       * netbsd-core.c (netbsd_core_file_p): Set architecture for VAX
+       core files.
+
+2004-04-15  Nick Clifton  <nickc@redhat.com>
+
+       * bfd.c (bfd_archive_filename): Catch NULL bfd pointers.
+
+2004-04-15  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-sparc.c (sparc64_elf_check_relocs): Fix thinko last change.
+
+2004-04-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elflink.c (_bfd_elf_merge_symbol): Treat weak as strong only
+       when it is a definition.
+
+2004-04-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-sparc.c (elf32_sparc_relocate_section): Don't abort
+       when statically linking PIC code.
+       * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+
+2004-04-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
+
+       * config.bfd: Remove mips*-*-mach3* and mips*-dec-mach3* targets.
+       * configure.in: Remove mips-dec-bsd*, mips-dec-mach3*, mips-*-mach3*
+       targets amd aout_mips_big_vec, aout_mips_little_vec target vectors.
+       * configure: Regenerate.
+
+2004-04-08  Richard Sandiford  <rsandifo@redhat.com>
+
+       * elflink.c: Include libiberty.h.
+       * Makefile.am (elflink.lo): Depend on libiberty.h.
+       * Makefile.in: Regenerate.
+
+2004-04-06  Daniel Jacobowitz  <drow@mvista.com>
+
+       * elfxx-mips.c (MIPS_ELF_STUB_SECTION_NAME): Always use
+       ".MIPS.stubs".
+
+2004-04-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-ia64.c (elfNN_ia64_size_dynamic_sections): Always
+       reserve the memory for dynamic linker
+
+2004-04-05  Mark Kettenis  <kettenis@gnu.org>
+
+       * netbsd-core.c (CORE_WCOOKIE_OFFSET): New define.
+       (netbsd_core_file_p): Create a .wcookie section for OpenBSD/sparc.
+
+2004-04-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-cr16c.c (elf32_cr16c_relocate_section): Use
+       RELOC_FOR_GLOBAL_SYMBOL.
+       (elf32_cr16c_add_symbol_hook): Remove const from Elf_Internal_Sym.
+
+2004-04-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-arm.h (elf32_arm_final_link_relocate): Handle
+       R_ARM_ALU* only if OLD_ARM_ABI is not defined.
+
+2004-04-01  Paul Brook  <paul@codesourcery.com>
+
+       * bfd-in.h (bfd_elf32_arm_process_before_allocation): Update.
+       * elf32-arm.h (struct elf32_elf_section_map): New.
+       (struct _arm_elf_section_data): New.
+       (elf32_arm_section_data): Define.
+       (struct elf32_arm_link_hash_table): Add byteswap_code.
+       (elf32_arm_link_hash_table_create): Initialize byteswap_code.
+       (bfd_elf32_arm_process_before_allocation): Add byteswap_code.
+       (elf32_arm_post_process_headers): Set EF_ARM_BE8.
+       (elf32_arm_output_symbol_hook, elf32_arm_new_section_hook,
+       elf32_arm_compare_mapping, elf32_arm_write_section): New functions.
+       (bfd_elf32_new_section_hook, elf_backend_write_section,
+       elf_backend_link_output_symbol_hook): Define.
+
+2004-04-01  Andy Chittenden  <achittenden@bluearc.com>
+
+       * stabs.c (struct stab_link_includes_totals): Add field 'symb'
+       that keeps the characters in a B_INCL..B_EINCL range.
+       (_bfd_link_section_stabs): When computing the sum of the
+       characters in a B_INCL..B_EINCL range also keep a copy of those
+       characters.  Use this information to distinguish between
+       include sections that have the same sum and the same length
+       but which are nevertheless unique.
+
+2004-03-31  Paul Brook  <paul@codesourcery.com>
+
+       * elf32-arm.h (elf32_arm_final_link_relocate): Add R_ARM_ALU*.
+       * elfarm-nabi.c (elf32_arm_howto_table): Ditto.
+
+2004-03-31  Andy Chittenden <achittenden@bluearc.com>
+
+       * stabs.c (struct stab_link_includes_totals): Rename field 'total'
+       to 'sum_chars' and add field 'num_chars'.
+       (_bfd_link_section_stabs): When computing the sum of the
+       characters in a B_INCL..B_EINCL range also keep a count of the
+       number of characters.  Use this information to help distinguish
+       between include sections when have the same sum but which
+       nevertheless are still unique.
+
+2004-03-31  Mattias EngdegĂ„rd  <mattias@virtutech.se>
+
+       * stabs.c (_bfd_link_section_stabs): Do not skip N_EXCL stabs.
+
+2004-03-30  Galit Heller  <Galit.Heller@nsc.com>
+           Tomer Levi    <Tomer.Levi@nsc.com>
+
+       * Makefile.am (ALL_MACHINES): Add cpu-cr16c.lo.
+       (ALL_MACHINES_CFILES): Add cpu-cr16c.c.
+       (BFD32_BACKENDS): Add elf32-cr16c.lo.
+       (BFD32_BACKENDS_CFILES): Add elf32-cr16c.c.
+       (cpu-cr16c.lo): New target.
+       (elf32-cr16c.lo): Likewise.
+       * Makefile.in: Regenerate.
+       * archures.c (bfd_architecture): Add bfd_{arch,mach}_cr16c.
+       (bfd_archures_list): Add bfd_cr16c_arch.
+       * config.bfd: Handle cr16c-*-elf*.
+       * configure.in: Handle bfd_elf32_cr16c_vec.
+       * configure: Regenerate.
+       * reloc.c: Add BFD_RELOC_16C_NUM08, BFD_RELOC_16C_NUM08_C,
+       BFD_RELOC_16C_NUM16, BFD_RELOC_16C_NUM16_C,
+       BFD_RELOC_16C_NUM32, BFD_RELOC_16C_NUM32_C,
+       BFD_RELOC_16C_DISP04, BFD_RELOC_16C_DISP04_C,
+       BFD_RELOC_16C_DISP08, BFD_RELOC_16C_DISP08_C,
+       BFD_RELOC_16C_DISP16, BFD_RELOC_16C_DISP16_C,
+       BFD_RELOC_16C_DISP24, BFD_RELOC_16C_DISP24_C,
+       BFD_RELOC_16C_DISP24a, BFD_RELOC_16C_DISP24a_C,
+       BFD_RELOC_16C_REG04, BFD_RELOC_16C_REG04_C,
+       BFD_RELOC_16C_REG04a, BFD_RELOC_16C_REG04a_C,
+       BFD_RELOC_16C_REG14, BFD_RELOC_16C_REG14_C,
+       BFD_RELOC_16C_REG16, BFD_RELOC_16C_REG16_C,
+       BFD_RELOC_16C_REG20, BFD_RELOC_16C_REG20_C,
+       BFD_RELOC_16C_ABS20, BFD_RELOC_16C_ABS20_C,
+       BFD_RELOC_16C_ABS24, BFD_RELOC_16C_ABS24_C,
+       BFD_RELOC_16C_IMM04, BFD_RELOC_16C_IMM04_C,
+       BFD_RELOC_16C_IMM16, BFD_RELOC_16C_IMM16_C,
+       BFD_RELOC_16C_IMM20, BFD_RELOC_16C_IMM20_C,
+       BFD_RELOC_16C_IMM24, BFD_RELOC_16C_IMM24_C,
+       BFD_RELOC_16C_IMM32, BFD_RELOC_16C_IMM32_C.
+       * targets.c (bfd_elf32_cr16c_vec): Declare.
+       (bfd_target_vector): Add bfd_elf32_cr16c_vec.
+       * cpu-cr16c.c: New file.
+       * elf32-cr16c.c: Likewise.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Likewise.
+
+2004-03-30  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf.c (map_sections_to_segments): Fix handling of .tbss.
+
+2004-03-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * Makefile.am: Remove all mention of elflink.h.
+       * Makefile.in: Regenerate.
+       * bfd-in.h (bfd_elf_discard_info): Declare.
+       (bfd_elf32_discard_info, bfd_elf64_discard_info): Delete.
+       * bfd-in2.h: Regenerate.
+       * elf-bfd.h (bfd_elf32_print_symbol, bfd_elf64_print_symbol,
+       bfd_elf32_link_record_dynamic_symbol,
+       bfd_elf64_link_record_dynamic_symbol,
+       _bfd_elf_link_record_dynamic_symbol, bfd_elf32_bfd_final_link,
+       bfd_elf64_bfd_final_link, elf_link_record_local_dynamic_symbol,
+       _bfd_elf32_link_record_local_dynamic_symbol,
+       _bfd_elf64_link_record_local_dynamic_symbol,
+       _bfd_elf32_gc_sections, _bfd_elf32_gc_common_finalize_got_offsets,
+       _bfd_elf32_gc_common_final_link, _bfd_elf64_gc_common_final_link,
+       _bfd_elf32_gc_record_vtinherit, _bfd_elf32_gc_record_vtentry,
+       _bfd_elf64_gc_sections, _bfd_elf64_gc_common_finalize_got_offsets,
+       _bfd_elf64_gc_record_vtinherit, _bfd_elf64_gc_record_vtentry,
+       _bfd_elf32_reloc_symbol_deleted_p,
+       _bfd_elf64_reloc_symbol_deleted_p): Delete.
+       (bfd_elf_link_record_dynamic_symbol,
+       bfd_elf_link_record_local_dynamic_symbol,
+       bfd_elf_final_link, bfd_elf_gc_sections,
+       bfd_elf_gc_record_vtinherit, bfd_elf_gc_record_vtentry,
+       bfd_elf_gc_common_finalize_got_offsets, bfd_elf_gc_common_final_link,
+       bfd_elf_reloc_symbol_deleted_p): Declare.
+       (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
+       * elf32-arm.h: Update for changed function names.  Remove local
+       WILL_CALL_FINISH_DYNAMIC_SECTION define.
+       * elf-hppa.h, elf-m10300.c, elf32-cris.c, elf32-d10v.c, elf32-dlx.c,
+       * elf32-fr30.c, elf32-frv.c, elf32-h8300.c, elf32-hppa.c, elf32-i386.c,
+       * elf32-iq2000.c, elf32-m32r.c, elf32-m68hc1x.c, elf32-m68k.c,
+       * elf32-mcore.c, elf32-openrisc.c, elf32-ppc.c, elf32-s390.c,
+       * elf32-sh.c, elf32-sparc.c, elf32-v850.c, elf32-vax.c,
+       * elf32-xstormy16.c, elf32-xtensa.c, elf64-alpha.c, elf64-hppa.c,
+       * elf64-mmix.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c, elf64-sparc.c,
+       * elf64-x86-64.c, elfxx-ia64.c, elfxx-mips.c, elfxx-target.h: Likewise.
+       * elfxx-target.h (bfd_elfNN_bfd_final_link): Define.
+       (bfd_elfNN_print_symbol): Define.
+       * elfcode.h: Don't include elflink.h.
+       (elf_bfd_discard_info, elf_reloc_symbol_deleted_p,
+       elf_link_record_dynamic_symbol, elf_bfd_final_link, elf_gc_sections,
+       elf_gc_common_finalize_got_offsets, elf_gc_common_final_link,
+       elf_gc_record_vtinherit, elf_gc_record_vtentry,
+       elf_link_record_local_dynamic_symbol): Don't define.
+       * elflink.c: Update for changed function names.  Move elflink.h
+       code here.
+       * elflink.h: Delete file.
+       * po/SRC-POTFILES.in: Regenerate.
+       * po/bfd.pot: Regenerate.
+
+2004-03-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-mmix.c (mmix_elf_relocate_section): Restore code setting
+       "name" for global syms accidentally removed in 2004-03-20 change.
+
+2004-03-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h (struct elf_reloc_cookie): Add r_sym_shift field.
+       * elflink.h: Replace all occurrences of sizeof (Elf_External_*)
+       where Elf_External_* is different for 64 and 32 bit, with
+       corresponding elf_size_info field.
+       (struct elf_final_link_info): Use "bfd_byte *" instead
+       of "Elf_External_Sym *" for external_syms and symbuf.
+       (elf_link_adjust_relocs): Set up r_type_mask and r_sym_shift local
+       vars and use instead of ELF_R_INFO and ELF_R_TYPE macros.
+       (struct elf_link_sort_rela): Add "sym_mask" alias for "offset".
+       (elf_link_sort_cmp1): Use sym_mask field instead of ELF_R_SYM.
+       (elf_link_sort_cmp2): Adjust.
+       (elf_link_sort_relocs): Set up r_sym_mask local var instead of
+       using ELF_R_SYM macro.  Set u.sym_mask.
+       (elf_bfd_final_link): Call _bfd_elf_stringtab_init instead of macro
+       version, elf_stringtab_init.  Ditto for bfd_section_from_elf_index
+       vs. section_from_elf_index.  Adjust Elf_External_Sym pointer
+       arithmetic.  Pass bed to elf_link_flush_output_syms.  Adjust
+       Elf_External_Dyn pointer arithmentic.  Use bed swap_dyn_in and
+       swap_syn_out functions.  Rearrange dyn swap in/out switch.
+       (elf_link_output_sym): Adjust Elf_External_Sym pointer arithmentic.
+       Pass bed to elf_link_flush_output_syms.  Use bed swap_symbol_out.
+       (elf_link_flush_output_syms): Add elf_backend_data arg.
+       (elf_link_check_versioned_symbol): Likewise.
+       (elf_link_output_extsym): Pass bed to elf_link_check_versioned_symbol.
+       Adjust Elf_External_Sym pointer arithmetic.  Use bed swap_symbol_out.
+       (elf_link_input_bfd): Use bfd_section_from_elf_index.  Set up
+       r_type_mask and r_sym_shift local vars and use instead of ELF_R_SYM,
+       ELF_R_TYPE and ELF_R_INFO macros.
+       (elf_reloc_link_order): Select ELF32_R_INFO or ELF64_R_INFO invocation
+       based on size rather than using ELF_R_INFO.
+       (elf_gc_mark): Set up r_sym_shift local var and use instead of
+       ELF_R_SYM macro.
+       (struct alloc_got_off_arg): New.
+       (elf_gc_common_finalize_got_offsets): Use elf_size_info instead of
+       ARCH_SIZE.  Pass get entry size down to elf_gc_allocate_got_offsets.
+       (elf_gc_allocate_got_offsets): Adjust.
+       (elf_reloc_symbol_deleted_p): Usee cookie.r_sym_shift instead of
+       ELF_R_SYM.  Use bfd_section_from_elf_index.
+       (elf_bfd_discard_info): Set cookie.r_sym_shift.
+       * elfcode.h (elf_stringtab_init, section_from_elf_index): Delete.
+       (elf_slurp_symbol_table): Use bfd_section_from_elf_index.
+
+2004-03-26  Stan Shebs  <shebs@apple.com>
+
+       Remove MPW support, no longer used.
+       * config.bfd (powerpc-*-mpw*): Remove configuration.
+       * mpw-config.in, mpw-make.sed: Remove files.
+       * ecoffswap.h [MPW_C]: Remove MPW-C-friendly version of code.
+
+2004-03-26  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (elf_backend_add_symbol_hook): Define.
+       (ppc64_elf_add_symbol_hook): New function.
+       * elf-bfd.h (struct elf_backend_data <elf_add_symbol_hook>): Remove
+       const from Elf_Internal_Sym param.
+       * elflink.c (elf_link_add_object_symbols): Adjust.
+       * elf-hppa.h (elf_hppa_add_symbol_hook): Adjust.
+       * elf32-frv.c (elf32_frv_add_symbol_hook): Adjust.
+       * elf32-i370.c (elf_backend_add_symbol_hook): Adjust.
+       * elf32-m32r.c (m32r_elf_add_symbol_hook): Adjust.
+       * elf32-m68hc1x.c (elf32_m68hc11_add_symbol_hook): Adjust.
+       * elf32-m68hc1x.h (elf32_m68hc11_add_symbol_hook): Adjust.
+       * elf32-ppc.c (ppc_elf_add_symbol_hook): Adjust.
+       * elf32-sh64.c (sh64_elf_add_symbol_hook): Adjust.
+       * elf32-v850.c (v850_elf_add_symbol_hook): Adjust.
+       * elf64-alpha.c (elf64_alpha_add_symbol_hook): Adjust.
+       * elf64-mmix.c (mmix_elf_add_symbol_hook): Adjust.
+       * elf64-sh64.c (sh64_elf64_add_symbol_hook): Adjust.
+       * elf64-sparc.c (sparc64_elf_add_symbol_hook): Adjust.
+       * elfxx-ia64.c (elfNN_ia64_add_symbol_hook): Adjust.
+       * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Adjust.
+       * elfxx-mips.h (_bfd_mips_elf_add_symbol_hook): Adjust.
+
+2004-03-26  Alan Modra  <amodra@bigpond.net.au>
+
+       * elfxx-target.h (bfd_elfNN_bfd_link_add_symbols): Define.
+       * elf-bfd.h (_bfd_elf_link_add_archive_symbols): Delete.
+       (_bfd_elf_sort_symbol, _bfd_elf_add_dt_needed_tag): Delete.
+       (_bfd_elf_finalize_dynstr, bfd_elf32_bfd_link_add_symbols): Delete.
+       (bfd_elf64_bfd_link_add_symbols): Delete.
+       (bfd_elf_link_add_symbols): Declare.
+       * elfcode.h (elf_bfd_link_add_symbols): Delete.
+       * elflink.c: Include safe-ctype.h.
+       (elf_add_dt_needed_tag): Rename from _bfd_elf_add_dt_needed_tag,
+       make static.
+       (elf_sort_symbol): Rename from _bfd_elf_sort_symbol, make static.
+       (elf_finalize_dynstr): Rename from _bfd_elf_finalize_dynstr, make
+       static.
+       (elf_link_add_archive_symbols): Rename from
+       _bfd_elf_link_add_archive_symbols, make static.
+       (elf_link_add_object_symbols): New function.  Corresponding
+       elflink.h function converted to use elf_size_info.
+       (bfd_elf_link_add_symbols): Likewise.
+       (bfd_elf_size_dynamic_sections): Adjust.
+       * elflink.h (elf_bfd_link_add_symbols): Delete.
+       (elf_link_add_object_symbols): Delete.
+       * elf32-gen.c (elf32_generic_link_add_symbols): Call
+       bfd_elf_link_add_symbols.
+       * elf64-gen.c (elf64_generic_link_add_symbols): Likewise.
+
+2004-03-25  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.h (elf_link_add_object_symbols): Add DT_NEEDED for as-needed
+       and chained shared libs only if dynsym.  Clear dynsym on forced-local.
+
+       * elf-bfd.h (_bfd_elf_add_dynamic_entry): Declare.
+       (bfd_elf32_add_dynamic_entry, bfd_elf64_add_dynamic_entry): Delete.
+       (_bfd_elf_add_dt_needed_tag): Declare.
+       (_bfd_elf_sort_symbol): Declare.
+       (_bfd_elf_finalize_dynstr): Declare.
+       (RELOC_FOR_GLOBAL_SYM): Formatting.
+       * elfcode.h (elf_add_dynamic_entry): Delete.
+       * elflink.c (_bfd_elf_add_dynamic_entry): New function.  Corresponding
+       elflink.h function converted to use elf_size_info.
+       (_bfd_elf_add_dt_needed_tag): Likewise.
+       (_bfd_elf_sort_symbol): Likewise.
+       (_bfd_elf_finalize_dynstr): Likewise.
+       (compute_bucket_count): Likewise.
+       (bfd_elf_size_dynamic_sections): Likewise.  Check result of
+       _bfd_elf_strtab_add before calling _bfd_elf_strtab_addref.
+       (elf_adjust_dynstr_offsets, elf_collect_hash_codes): Moved from..
+       * elflink.h: ..here.
+       (sort_symbol, add_dt_needed_tag): Delete.
+       (elf_add_dynamic_entry, elf_finalize_dynstr): Delete.
+       (compute_bucket_count, NAME(bfd_elf,size_dynamic_sections)): Delete.
+       Update all users.
+       * elf32-arm.h (add_dynamic_entry): Update.  Remove casts.
+       * elf32-cris.c (add_dynamic_entry): Likewise.
+       * elf32-hppa.c (add_dynamic_entry): Likewise.
+       * elf32-i370.c (add_dynamic_entry): Likewise.
+       * elf32-i386.c (add_dynamic_entry): Likewise.
+       * elf32-m32r.c (add_dynamic_entry): Likewise.
+       * elf32-m68k.c (add_dynamic_entry): Likewise.
+       * elf32-ppc.c (add_dynamic_entry): Likewise.
+       * elf32-s390.c (add_dynamic_entry): Likewise.
+       * elf32-sh.c (add_dynamic_entry): Likewise.
+       * elf32-sparc.c (add_dynamic_entry): Likewise.
+       * elf32-vax.c (add_dynamic_entry): Likewise.
+       * elf32-xtensa.c (add_dynamic_entry): Likewise.
+       * elf64-alpha.c (add_dynamic_entry): Likewise.
+       * elf64-hppa.c (add_dynamic_entry): Likewise.
+       * elf64-ppc.c (add_dynamic_entry): Likewise.
+       * elf64-s390.c (add_dynamic_entry): Likewise.
+       * elf64-sparc.c (add_dynamic_entry): Likewise.
+       * elf64-x86-64.c (add_dynamic_entry): Likewise.
+       * elfxx-ia64.c (add_dynamic_entry): Likewise.
+       * elfxx-mips.c (MIPS_ELF_ADD_DYNAMIC_ENTRY): Likewise.
+       * elf-m10300.c (_bfd_mn10300_elf_size_dynamic_sections): Likewise.
+       * elf32-frv.c (elf32_frv_size_dynamic_sections): Likewise.
+       * elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise.
+
+2004-03-23  Paul Brook  <paul@codesourcery.com>
+
+       * elf32-arm.h (arm_print_private_bfd_data): Add EABI v3.
+
+2004-03-22  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (elf_xtensa_check_relocs): Remove code to read
+       literal tables and check for relocs outside of literal pools.
+       (elf_xtensa_make_sym_local): Don't clear ELF_LINK_NON_GOT_REF flag.
+       (elf_xtensa_fix_refcounts): Don't check ELF_LINK_NON_GOT_REF or
+       set DF_TEXTREL.
+       (elf_xtensa_size_dynamic_sections): Don't add DT_TEXTREL entry.
+       (elf_xtensa_relocate_section): Read literal tables and check for
+       dynamic relocations in read-only sections and not in literal pools.
+
+2004-03-23  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 51.
+       * linker.c (bfd_wrapped_link_hash_lookup): Handle info->wrap_char.
+
+2004-03-22  Hans-Peter Nilsson  <hp@axis.com>
+
+       * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_GOTPLT,
+       R_CRIS_16_GOTPLT>: Also error if there's no PLT for a symbol
+       not defined by the executable, or defined in a DSO.
+       <eliding run-time relocation of .got>: Initialize GOT entry for a
+       function symbol or ELF_LINK_HASH_NEEDS_PLT statically in an
+       executable.
+       (cris_elf_gc_sweep_hook): Improve fallthrough marking.
+       (elf_cris_try_fold_plt_to_got): Improve head comment.  Do not fold
+       a PLT reloc to GOT for an executable.
+       (elf_cris_adjust_dynamic_symbol): Only fold a .got.plt entry with
+       .got for a DSO and explain why.
+       (elf_cris_discard_excess_program_dynamics): Also lose GOT-relocs
+       and unreferenced symbols for which a PLT is defined.  Adjust
+       dynamic-symbol pruning correspondingly, to make sure we don't lose
+       a dynamic symbol also defined by a DSO.
+
+2004-03-22  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): Add input_bfd, input_section
+       and rel args.  Group input and output args.  Wrap to 80 columns.
+       * elf-m10200.c, elf-m10300.c, elf32-arm.h, elf32-avr.c,
+       elf32-cris.c, elf32-d10v.c, elf32-fr30.c, elf32-h8300.c,
+       elf32-hppa.c, elf32-i386.c, elf32-i860.c, elf32-ip2k.c,
+       elf32-iq2000.c, elf32-m68hc1x.c, elf32-m68k.c, elf32-mcore.c,
+       elf32-msp430.c, elf32-openrisc.c, elf32-ppc.c, elf32-s390.c,
+       elf32-sparc.c, elf32-v850.c, elf32-vax.c, elf32-xstormy16.c,
+       elf32-xtensa.c, elf64-alpha.c, elf64-mmix.c, elf64-ppc.c,
+       elf64-s390.c, elf64-sparc.c, elf64-x86-64.c, elfxx-ia64.c: Update
+       RELOC_FOR_GLOBAL_SYMBOL invocation.
+
+2004-03-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): Report error if
+       unresolved symbols in objects aren't allowed.
+
+       * elf-hppa.h (elf_hppa_relocate_section): Properly handle
+       unresolved symbols.
+       (elf_hppa_remark_useless_dynamic_symbols): Likewise.
+       (elf_hppa_unmark_useless_dynamic_symbols):
+       * elf32-frv.c (elf32_frv_relocate_section): Likewise.
+       * elf32-hppa.c (elf32_hppa_size_stubs): Likewise.
+       (elf32_hppa_relocate_section): Likewise.
+       * elf32-i370.c (i370_elf_relocate_section): Likewise.
+       * elf32-m32r.c (m32r_elf_relocate_section): Likewise.
+       * elf32-sh.c (sh_elf_relocate_section): Likewise.
+       * elf64-sh64.c (sh_elf64_relocate_section): Likewise.
+       * elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
+
+       * elf-m10200.c (mn10200_elf_relocate_section): Use
+       RELOC_FOR_GLOBAL_SYMBOL.
+       * elf32-avr.c (elf32_avr_relocate_section): Likewise.
+       * elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
+       * elf32-fr30.c (fr30_elf_relocate_section): Likewise.
+       * elf32-h8300.c (elf32_h8_relocate_section): Likewise.
+       * elf32-i860.c (elf32_i860_relocate_section): Likewise.
+       * elf32-m68hc1x.c (m68hc11_get_relocation_value): Likewise.
+       * elf32-mcore.c (mcore_elf_relocate_section): Likewise.
+       * elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
+       * elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
+       * elf32-v850.c (v850_elf_relocate_section): Likewise.
+       * elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
+       * elf64-mmix.c (mmix_elf_relocate_section): Likewise.
+
+2004-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * elf32-hppa.c (elf32_hppa_check_relocs): Handle R_PARISC_PCREL32.
+       (final_link_relocate): Likewise.
+       * elf-hppa.h (elf_hppa_reloc_final_type): Handle selectors for
+       R_PARISC_PCREL32 and R_PARISC_PCREL64 relocations.
+
+2004-03-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+       * aclocal.m4: Regenerate.
+       * config.in: Regenerate.
+       * po/bfd.pot: Regenerate.
+
+2004-03-19  Alan Modra  <amodra@bigpond.net.au>
+           H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elflink.c (_bfd_elf_merge_symbol): Revert last change.  Move
+       type and size change code to where it was previously.  Remove
+       dt_needed param.  Treat old weak syms as strong if new sym is
+       from a shared lib, even when old sym is from another shared
+       lib.  Remove unnecessary tests of oldweak and newweak.  Correct
+       comments.
+       (_bfd_elf_add_default_symbol): Remove dt_needed param.  Update
+       _bfd_elf_merge_symbol calls.
+       * elflink.h (elf_link_add_object_symbols): Update calls.  Remove
+       dt_needed local var.  Update comments.
+       * elf-bfd.h (_bfd_elf_merge_symbol): Update prototype.
+       (_bfd_elf_add_default_symbol): Likewise.
+
+       * elflink.c (_bfd_elf_merge_symbol): Reinstate code to handle
+       strong syms in one shared object overriding weak syms in another.
+
+2004-03-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h (struct elf_obj_tdata): Delete dt_soname field.  Add
+       dyn_lib_class field.  Rearrange for better packing.
+       (elf_dt_soname): Delete.
+       (elf_dyn_lib_class): Define.
+       * elf.c (bfd_elf_set_dt_needed_name): Update comment.
+       (bfd_elf_set_dt_needed_soname): Delete.
+       (bfd_elf_set_dyn_lib_class): New function.
+       * elflink.h (add_dt_needed_tag): New function.  Split out from..
+       (elf_link_add_object_symbols): ..here.  Rename "name" to "soname".
+       Use elf_dyn_lib_class to set dt_needed and add_needed.  Move fallback
+       initialization of soname.
+       (elf_link_check_versioned_symbol): Test elf_dyn_lib_class instead of
+       elf_dt_soname.
+       * bfd-in.h (enum dynamic_lib_link_class): New.
+       (bfd_elf_set_dt_needed_soname): Delete.
+       (bfd_elf_set_dyn_lib_class): Declare.
+       * bfd-in2.h: Regenerate.
+
+       * elflink.c (_bfd_elf_merge_symbol): Rewrite weak symbol handling.
+       (_bfd_elf_add_default_symbol): Remove indirect BFD_ASSERTs.
+       * elflink.h (elf_link_add_object_symbols): Don't clear dt_needed in
+       symbol loop.  Instead use add_needed to flag tag as written.
+
+2004-03-17  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
+       logic for null_input_bfd detection.
+
+2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+       * config.bfd: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff*.
+
+2004-03-16  Mark Kettenis  <kettenis@gnu.org>
+
+       * netbsd-core.c (netbsd_core_file_p) [CORE_FPU_OFFSET]: Remove
+       code.
+
+2004-03-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.c (elf_link_read_relocs_from_section): Don't use
+       NUM_SHDR_ENTRIES in end of reloc calc.  Move NULL shdr check..
+       (_bfd_elf_link_read_relocs): ..to here.
+       * elf32-ppc.c (ppc_elf_relax_section): Formatting.
+
+2004-03-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * configure.in (HOST_64BIT_TYPE, HOST_U_64BIT_TYPE): Don't override
+       values selected in configure.host.  Require both to be defined
+       before setting BFD_HOST_64_BIT_DEFINED.  Protect assignment to
+       corresponding BFD_HOST vars with quotes.
+       <${host64}-${target64}-${want64} in *true*>: Don't exempt gcc;
+       Always require BFD_HOST_64_BIT_DEFINED.
+       <file_ptr type>: Find off_t size before emitting message.  Combine
+       off_t and ftello64 conditional.
+       * configure: Regenerate.
+
+2004-03-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-m32r.c (m32r_elf_create_dynamic_sections): Fix pointer
+       aliasing warning.  Remove trailing whitespace throughout file.
+
+2004-03-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * elf-hppa.h (elf_hppa_relocate_section): Pass input_bfd instead of
+       input_section in calls to get_dyn_name.
+       * elf64-hppa.c (get_dyn_name): Change type of first argument to "bfd *".        Use section id of first section in input BFD to build dynamic name for
+       local symbols.
+       (elf64_hppa_check_relocs): Pass abfd in call to get_dyn_name.
+
+2004-03-15  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd-in.h (bfd_int64_t, bfd_uint64_t): New types.
+       (BFD_HOST_64_BIT, BFD_HOST_U_64_BIT): Don't define here.
+       (bfd_getb64, bfd_getl64, bfd_get_bits): Return bfd_uint64_t.
+       (bfd_getb_signed_64, bfd_getl_signed_64): Return bfd_int64_t.
+       (bfd_putb64, bfd_putl64, bfd_put_bits): Accept bfd_uint64_t.
+       * configure.in (HOST_U_64BIT_TYPE): Set when sizeof long is 8.
+       (BFD_HOST_64_BIT_DEFINED, BFD_HOST_64_BIT, BFD_HOST_U_64_BIT): Set
+       when using long.
+       * libbfd.c (EIGHT_GAZILLION, COERCE64): Use bfd_int64_t.
+       (bfd_getb64): Return bfd_uint64_t.  Enable when BFD_HOST_64_BIT.
+       (bfd_getl64, bfd_getb_signed_64, bfd_getl_signed_64): Likewise.
+       (bfd_putb64): Accept bfd_uint64_t.  Enable when BFD_HOST_64_BIT.
+       (bfd_putl64, bfd_put_bits, bfd_get_bits): Likewise.
+       * dwarf2.c (struct attribute): Use bfd_int64_t and bfd_uint64_t.
+       (read_8_bytes, read_indirect_string, read_address): Likewise.
+       (read_abbrevs, parse_comp_unit): Likewise.
+       * targets.c (struct bfd_target): Likewise.
+       * aix386-core.c (NO_GET64, NO_PUT64, NO_GETS64): Define and use.
+       * hppabsd-core.c: Likewise.  Formatting.
+       * hpux-core.c: Likewise.
+       * irix-core.c: Likewise.
+       * netbsd-core.c: Likewise.
+       * osf-core.c: Likewise.
+       * ptrace-core.c: Likewise.
+       * sco5-core.c: Likewise.
+       * trad-core.c: Likewise.
+       * configure: Regenerate.
+       * bfd-in2.h: Regenerate.
+
+2004-03-15  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd-in.h (bfd_getb64, bfd_getl64): Replace bfd_byte* with void*.
+       (bfd_getb32, bfd_getl32, bfd_getb16, bfd_getl16): Likewise.
+       (bfd_getb_signed_64, bfd_getl_signed_64): Likewise.
+       (bfd_getb_signed_32, bfd_getl_signed_32): Likewise.
+       (bfd_getb_signed_16, bfd_getl_signed_16): Likewise.
+       (bfd_putb64, bfd_putl64, bfd_putb32, bfd_putl32): Likewise.
+       (bfd_putb16, bfd_putl16, bfd_get_bits, bfd_put_bits): Likewise.
+       * libbfd.c: Likewise in function definitions.
+       (bfd_put_8): Mask with 0xff rather than casting to char.
+       (bfd_putb16, bfd_putl16, bfd_putb32, bfd_putl32): Likewise.
+       (bfd_putb64, bfd_putl64, bfd_put_bits): Likewise.
+       (H_PUT_64, H_PUT_32, H_PUT_16, H_PUT_8): Remove casts, simplify.
+       (H_PUT_S64, H_PUT_S32, H_PUT_S16, H_PUT_S8): Likewise.
+       (H_GET_64, H_GET_32, H_GET_16, H_GET_8): Likewise.
+       (H_GET_S64, H_GET_S32, H_GET_S16, H_GET_S8): Likewise.
+       * libaout.h (H_PUT_64 H_PUT_32, H_PUT_16): Remove casts, simplify.
+       (H_PUT_S64, H_PUT_S32, H_PUT_S16): Likewise.
+       (H_GET_64, H_GET_32, H_GET_16): Likewise.
+       (H_GET_S64, H_GET_S32, H_GET_S16): Likewise.
+       * archive.c (do_slurp_coff_armap): Update swap prototype.
+       * coff-tic54x.c (tic54x_getl32): Replace bfd_byte* with void*.
+       (tic54x_getl_signed_32): Likewise.
+       (tic54x_putl32): Likewise.  Mask with 0xff rather than casting to char.
+       * mach-o.c (bfd_mach_o_read_header): Update get32 prototype.
+       * pdp11.c (bfd_getp32): Make static, replace bfd_byte* with void*.
+       (bfd_getp_signed_32, bfd_putp32): Likewise.
+       * targets.c (struct bfd_target): Use void* in place of bfd_byte* for
+       bfd_getx64, bfd_getx_signed_64, bfd_putx64, bfd_getx32,
+       bfd_getx_signed_32, bfd_putx32, bfd_getx16, bfd_getx_signed_16,
+       bfd_putx16, bfd_h_getx64, bfd_h_getx_signed_64, bfd_h_putx64,
+       bfd_h_getx32, bfd_h_getx_signed_32, bfd_h_putx32, bfd_h_getx16,
+       bfd_h_getx_signed_16, bfd_h_putx16.
+       * aix386-core.c (NO_GET, NO_GETS, NO_PUT): Update prototypes.
+       * hppabsd-core.c: Similarly.  Rename NO_SIGNED_GET to NO_GETS.
+       * hpux-core.c: Likewise.
+       * irix-core.c: Likewise.
+       * netbsd-core.c: Likewise.
+       * osf-core.c: Likewise.
+       * ptrace-core.c: Likewise.
+       * sco5-core.c: Likewise.
+       * trad-core.c: Likewise.
+       * bfd-in2.h: Regenerate.
+
+2004-03-15  Matt Thomas  <matt@3am-software.com>
+
+       * config.bfd: Add x86-64 vector to NetBSD/i386 if 64bit BFD is
+       selected.
+
+2004-03-13  Mark Kettenis  <kettenis@gnu.org>
+
+       * config.bfd: Add x86_64-*-openbsd*.
+       * configure.in (x86_64-*-openbsd*): Set COREFILE to
+       netbsd-core.lo.
+       * configure: Regenerate.
+
+2004-03-12  Nick Clifton  <nickc@redhat.com>
+           Dave Murphy  <wintermute2k4@ntlworld.com>
+
+       * elf32-arm.h (elf32_arm_merge_private_bfd_data): Skip most checks
+       if the input bfd does not contain any code.
+
+2004-03-09  Steve Ellcey  <sje@cup.hp.com>
+
+       * elfxx-ia64.c (plt_full_entry): Change ld8 to ld8.acq.
+
+2004-03-05  Fred Fish  <fnf@redhat.com>
+
+       * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Just force
+       mips16 symbols to be even rather than testing first for even/odd.
+       (_bfd_mips_elf_link_output_symbol_hook): Ditto.
+
+2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * elf.c (map_sections_to_segments): Ignore .tbss sections for
+       layout purposes.
+
+2004-03-03  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elflink.c (bfd_elf_record_link_assignment): Mark undefweak and
+       undefined symbols as hash_new.
+
+2003-03-03  Andrew Stubbs  <andrew.stubbs@superh.com>
+
+       * archures.c: Add bfd_mach_sh4_nommu_nofpu.
+       * cpu-sh.c: Ditto.
+       * elf32-sh.c: Ditto.
+       * bfd-in2.h: Regenerate.
+
+2004-03-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-frv.c (struct frv_pic_relocs_info): Added fixups and
+       dynrelocs.
+       (_frv_count_got_plt_entries): Initialize them.
+       (frv_pic_relocs_info_find): Add insert argument.  Adjust all
+       callers.
+       (frv_pic_relocs_info_for_global): Likewise.
+       (frv_pic_relocs_info_for_local): Likewise.
+       (frv_pic_merge_early_relocs_info): New.
+       (_frv_resolve_final_relocs_info): Use it in case one entry maps to
+       another.
+       (_frv_add_dyn_reloc): Add entry argument.  Adjust all callers.
+       Check that we don't exceed the allocated count for entry.
+       (_frv_add_rofixup): Likewise.
+       (_frv_emit_got_relocs_plt_entries): Adjust for coding standards.
+       (elf32_frv_finish_dynamic_sections): Improve error message in case
+       we emit too few rofixup entries.
+
+2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * archures.c (bfd_mach_fr450): New.
+       * bfd-in2.h: Regenerate.
+       * cpu-frv.c (arch_info_450): New bfd_arch_info_type.
+       (arch_info_500): Link to it.
+       * elf32-frv.c (elf32_frv_machine, frv_elf_merge_private_bfd_data)
+       (frv_elf_print_private_bfd_data): Handle fr405 and fr450 header flags.
+       (frv_elf_arch_extension_p): New function.
+       (frv_elf_merge_private_bfd_data): Use it.
+
+2004-02-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf-bfd.h (_bfd_elf_link_add_archive_symbols): New prototype.
+
+       * elflink.h (is_global_data_symbol_definition): Moved to
+       elflink.c.
+       (elf_link_is_defined_archive_symbol): Likewise.
+       (elf_link_add_archive_symbols): Likewise. Renamed to
+       _bfd_elf_link_add_archive_symbols.
+
+       * elflink.c (elf_link_is_defined_archive_symbol): Get the size
+       of ELF symbol table entry from backend.
+       (_bfd_elf_link_add_archive_symbols): Call bfd_link_add_symbols
+       instead of elf_link_add_object_symbols.
+
+2004-02-27  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-bfd.h (struct elf_backend_data): Added
+       elf_backend_can_make_relative_eh_frame,
+       elf_backend_can_make_lsda_relative_eh_frame and
+       elf_backend_encode_eh_address.
+       (_bfd_elf_encode_eh_address): Declare.
+       (_bfd_elf_can_make_relative): Declare.
+       * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Use new
+       hooks to decide whether to attempt to make_relative and
+       make_lsda_relative.
+       (_bfd_elf_write_section_eh_frame_hdr): Call encode_eh_address.
+       (_bfd_elf_can_make_relative): New.
+       (_bfd_elf_encode_eh_address): New.
+       * elf32-frv.c (frv_elf_use_relative_eh_frame): New.
+       (frv_elf_encode_eh_address): New.
+       (elf_backend_can_make_relative_eh_frame): Define.
+       (elf_backend_can_make_lsda_relative_eh_frame): Define.
+       (elf_backend_encode_eh_address): Define.
+       * elfxx-target.h
+       (elf_backend_can_make_relative_eh_frame): Define.
+       (elf_backend_can_make_lsda_relative_eh_frame): Define.
+       (elf_backend_encode_eh_address): Define.
+       (elfNN_bed): Add them.
+
+2004-02-27  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-frv.c (elf32_frv_howto_table) <R_FRV_LABEL16>: Set
+       complain_on_overflow to signed.
+
+2004-02-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elflink.h (sort_symbol): New.
+       (elf_link_add_object_symbols): Use a sorted symbol array for
+       weakdef.
+
+2004-02-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf32-s390.c (allocate_dynrelocs): Use SYMBOL_REFERENCES_LOCAL
+       for pc relative relocs.
+       (elf_s390_relocate_section): Likewise.
+       * elf64-s390.c (allocate_dynrelocs): Use SYMBOL_REFERENCES_LOCAL
+       for pc relative relocs.
+       (elf_s390_relocate_section): Likewise.
+
+2004-02-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-ia64.c (elfNN_ia64_check_relocs): Fix call to
+       count_dyn_reloc.
+
+2004-02-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-ia64.c (elfNN_ia64_dyn_reloc_entry): Add the reltext.
+       field to track if a relocation is against readonly section.
+       (count_dyn_reloc): Take a new argument for rent->reltext.
+       (elfNN_ia64_check_relocs): Adjust call to count_dyn_reloc.
+       (get_reloc_section): Don't set ia64_info->reltext here.
+       (allocate_dynrel_entries): Set ia64_info->reltext here.
+
+2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-frv.c (FRV_SYM_LOCAL): Weak undefined doesn't imply local.
+       (_frv_emit_got_relocs_plt_entries): Decay relocation to protected
+       function's descriptor to symbol+offset, and map local undefweak
+       symbol to NULL function descriptor.
+       (elf32_frv_relocate_section): Likewise.
+
+2004-02-23  Mark Kettenis  <kettenis@gnu.org>
+
+       * libaout.h (enum machine_type): Add M_SPARC64_NETBSD and
+       M_X86_64_NETBSD.
+       * netbsd-core.c (M_SPARC64_OPENBSD): Define.
+       (netbsd_core_file_p): Set architecture from machine ID for
+       selected machines.
+
+2004-02-23  Jakub Jelinek  <jakub@redhat.com>
+
+       * elflink.h (size_dynamic_sections): If not adding DT_FLAGS and
+       DF_BIND_NOW is set in info->flags, create DT_BIND_NOW dynamic entry.
+
+2004-02-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elflink.c (_bfd_elf_merge_symbol): Properly handle undefined
+       symbols with non-default visibility.
+
+2004-02-21  Danny Smith  <daanysmith@users.sourceforge.net>
+
+       * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Clear
+       IMAGE_SCN_MEM_WRITE on known sections only.
+
+2004-02-20  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf32-ppc.c (allocate_dynrelocs): Create dynsym for undef weak
+       symbols used in PIE relocs.
+
+2004-02-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf32-sparc.c (elf32_sparc_finish_dynamic_sections): Clear
+       .plt sh_entsize.
+
+2004-02-18  Daniel Jacobowitz  <drow@mvista.com>
+
+       * configure.in: Update version to 2.15.90.
+       * configure: Regenerate.
+
+2004-02-17  Daniel Jacobowitz  <drow@mvista.com>
+           Richard Sandiford  <rsandifo@redhat.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Use
+       _bfd_elf_symbol_refs_local_p to decide whether to decay
+       a GOT_PAGE/GOT_OFST pair to GOT_DISP/addend.
+       (_bfd_mips_elf_check_relocs): Add a global GOT entry for GOT_PAGE
+       relocs if the symbol wasn't defined by a regular object file.
+       Don't check the symbol's dynindx.
+
+2004-02-16  Andrew Cagney  <cagney@redhat.com>
+
+       * bfd-in.h (file_ptr, ufile_ptr): Configure type using
+       @bfd_file_ptr@.
+       * bfd-in2.h: Re-generate.
+
+2004-02-14  Andrew Cagney  <cagney@redhat.com>
+
+       * configure.host (HDEFINES): When hppa*-*-hpux*, define
+       _LARGEFILE64_SOURCE.
+
+2004-02-13  Andrew Cagney  <cagney@redhat.com>
+
+       * elf.c (vma_page_aligned_bias): New function.
+       (assign_file_positions_except_relocs)
+       (assign_file_positions_for_segments): Replace broken modulo
+       arithmetic with call to vma_page_aligned_bias.
+
+2004-02-11  Andrew Cagney  <cagney@redhat.com>
+
+       * bfd-in.h: Update copyright.
+       (bfd_tell): Change return type to file_ptr.
+       * bfd-in2.h: Re-generate.
+       * cache.c: Update copyright.
+       (bfd_cache_lookup_worker): Use real_fseek, do not cast offset
+       parameter.
+       (close_one): Use real_ftell.
+       * bfdio.c: Update copyright.
+       (real_ftell, real_fseek): New functions.
+       (bfd_tell): Use real_fseek and real_ftell, change return type to
+       file_ptr.
+       (bfd_seek): Use real_ftell and real_fseek, change type of
+       file_position to a file_ptr.
+       * libbfd-in.h: Update copyright.
+       (real_ftell, real_fseek): Declare.
+       * libbfd.h: Re-generate.
+
+       * configure.in (AC_CHECK_FUNCS): Check for ftello, ftello64,
+       fseeko and fseeko64.  Determine bfd_file_ptr.
+       * configure: Re-generate.
+       * config.in: Re-generate.
+
+2004-02-09  Anil Paranjpe  <anilp1@KPITCummins.com>
+
+       * coff-h8300.c: Added comments about relaxation for ldc.w and stc.w.
+       * elf32-h8300.c: Likewise.
+
+2004-02-09  Christian Vogel <vogelchr@vogel.cx>
+           Nick Clifton  <nickc@redhat.com>
+
+       * elf64-alpha.c (elf64_alpha_calc_got_offsets_for_symbol): Catch
+       GOT entries with no associated GOT subsection.
+
+2004-02-09  Richard Sandiford  <rsandifo@redhat.com>
+
+       * bfd-elf.h (elf_backend_name_local_section_symbols): New hook.
+       * elf.c (swap_out_syms): Use it to decide whether local section
+       symbols should be named.
+       * elfxx-target.h (elf_backend_name_local_section_symbols): New macro.
+       * elfxx-mips.h (_bfd_mips_elf_name_local_section_symbols): Declare.
+       (elf_backend_name_local_section_symbols): Define.
+       * elfxx-mips.c (_bfd_mips_elf_name_local_section_symbols): New.
+
+2004-01-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_brl): New function.
+       (elfNN_ia64_relax_section): Optimize brl to br during the relax
+       finalize pass.
+
+2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-frv.c (elf32_frv_always_size_sections): Initialize pointer
+       to bfd_link_hash_entry passed by reference to
+       _bfd_generic_link_add_one_symbol.
+
+2004-01-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relocate_section): Disallow imm
+       relocations against dynamic symbols.
+
+2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
+
+       * elf32-arm.h (elf32_arm_check_relocs): Revert part of 2004-01-13
+       change.
+
+2004-01-21  Tom Rix  <tcrix@worldnet.att.net>
+
+       * reloc.c: New 5 bit reloc, BFD_RELOC_M68HC12_5B, for m68hc12 movb/movw.
+       * bfd-in2.h, libbfd.h: Rebuilt.
+
+2004-01-20  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Don't remove
+       IMAGE_SCN_MEM_WRITE flag from .text section if WP_TEXT
+       flag has been cleared.
+
+2004-01-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * coff-h8300.c: Add and adjust comments about relaxation.
+       * elf32-h8300.c: Likewise.
+
+2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * coff-h8300.c: Fix comment typos.
+       * elf32-h8300.c: Likewise.
+
+2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * coff-h8300.c: Add comments about relaxation.
+       * elf32-h8300.c: Likewise.
+
+2004-01-14  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+
+       * acinclude.m4: Quote names of macros to be defined by AC_DEFUN
+       throughout.
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+
+2004-01-13  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * elf64-mips.c (mips_elf64_slurp_one_reloc_table): Call
+       mips_elf64_rtype_to_howto instead of using howto_table.
+
+2004-01-13  Daniel Jacobowitz  <drow@mvista.com>
+
+       * elf32-arm.h (elf32_arm_final_link_relocate): Check that we created
+       the .plt section.
+       (elf32_arm_check_relocs): Don't increment the PLT refcount for
+       relocs which would not use the PLT.
+
+2004-01-13  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (ppc64_elf_check_relocs): Ignore !SEC_ALLOC relocs.
+       (ppc64_elf_gc_sweep_hook): Likewise.
+       (ppc64_elf_size_dynamic_sections): Test for .plt directly.
+
+2004-01-12  Anil Paranjpe  <anilp1@KPITCummins.com>
+
+       Adds linker relaxation support for bit manipulation insns like
+       band, bclr, biand, bild, bior, bist, bixor, bld, bnot, bor, bset,
+       bst, btst, bxor.
+       * elf32-h8300.c: Opcode for bit manipulation insn is checked in
+       elf32_h8_relax_section function while relxation for aa:16 and aa:32.
+       * coff-h8300.c: Opcode for bit manipulation insn is checked in
+       h8300_reloc16_extra_cases function while relxation for aa:16 and aa:32.
+
+2004-01-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * dwarf2.c: Convert to C90, remove unneeded casts and prototypes.
+
+2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * elf32-h8300.c: Fix formatting.
+
+2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * elf32-cris.c (cris_elf_gc_sweep_hook): Return early if no
+       dynamic object is present.  Declare r_symndx and h in an inner
+       scope.
+       * elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
+
+2004-01-09  Daniel Jacobowitz  <drow@mvista.com>
+
+       * elf32-arm.h (struct elf32_arm_relocs_copied): Remove pc_count.
+       (elf32_arm_copy_indirect_symbol): Don't copy pc_count.
+       (elf32_arm_final_link_relocate): Handle PLT32 and PC24 relocs
+       identically.  Do not emit PC24 relocations for shared libraries.
+       (elf32_arm_gc_sweep_hook): Handle PLT32 and PC24 relocs
+       identically.  Don't adjust pc_count.
+       (elf32_arm_check_relocs): Handle PLT32 and PC24 relocs identically.
+       Set ELF_LINK_HASH_NEEDS_PLT for both.  Don't adjust pc_count; don't
+       adjust count for branch relocations.
+       (allocate_dynrelocs): Correct typo in call to
+       WILL_CALL_FINISH_DYNAMIC_SYMBOL.  Never allocate space for
+       PC24 or PLT32 relocs when linking.
+
+2004-01-09  Dmitry Semyonov  <Dmitry.Semyonov@oktet.ru>
+
+       * coff-arm.c (aoutarm_std_reloc_howto): [ARM_WINCE] Synchronize ARM_26D
+       relocation howto with ARM_26 one for consistency.
+       (coff_arm_relocate_section): Set partial_inplace for ARM_26 relocations
+       that will be converted to ARM_26D ones, since we always want 'done'
+       relocations to be reflected in section's data.
+       (coff_arm_relocate_section): [ARM_WINCE] Quick fix for BL instruction
+       offset.
+       (_bfd_final_link_relocate): Do not modify "inplace" data, if not
+       requested.
+
+2004-01-08  Dmitry Semyonov  <Dmitry.Semyonov@oktet.ru>
+
+       * coff-arm.c (coff_arm_relocate_section): Do not alter relocs that
+       are not partial_inplace during a relocatable link.
+
+2004-01-08  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * elf32-m68k.c (elf_m68k_gc_sweep_hook): Return early
+       if no dynamic object is present.  Declare r_symndx and h in an
+       inner scope.
+
+2004-01-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Don't install
+       trampoline if it is known out of range.
+
+2004-01-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (_frv_osec_readonly_p): New.
+       (_frv_emit_got_relocs_plt_entries): Don't emit rofixup for
+       undefweak symbol.
+       (_frv_count_got_plt_entries): Adjust expected count accordingly.
+       (elf32_frv_relocate_section): Likewise.  Error out if attempting
+       to emit rofixups or dynamic relocs in read-only segments.  Use
+       _bfd_elf_section_offset to adjust r_offsets in rofixups and
+       dynamic relocations.
+       2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (elf32_frv_relocate_section): Compute dynamic
+       relocations or fixups involving merged sections correctly.  Avoid
+       crash when undefined symbol is referenced by R_FRV_32 or
+       R_FRV_FUNCDESC_VALUE.
+       2003-12-02  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (elf32_frv_relocate_section): Add output_offset of
+       input section holding local symbol to addend of R_FRV_32 or
+       R_FRV_FUNCDESC_VALUE dynamic relocation.
+       2003-11-27  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (elf32_frv_modify_segment_map): Add link info arg.
+       (elf32_frv_always_size_sections): Don't store pointer to
+       __stacksize symbol in sec_info.
+       (elf32_frv_modify_segment_map): Look it up here.
+       2003-11-26  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (_frv_emit_got_relocs_plt_entries): Emit the address
+       of the lazy PLT entry, not only its offset, as the low word of a
+       function descriptor.
+       2003-11-10  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (elf32_frv_always_size_sections): Define __stacksize
+       if a hash table entry already exists but is not a definition.
+       2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (frv_elf_link_hash_table_create): Use bfd_zalloc.
+       (_frv_add_rofixup): Don't inline.
+       (_frv_emit_got_relocs_plt_entries): Use NULL as funcdesc address
+       for undefweak symbols.
+       (elf32_frv_relocate_section): Avoid crash while computing
+       relocation when linking with shared library.  Only emit rofixups
+       and dynamic relocations for alloc&load sections.  Mark binaries
+       with inter-segment relocations for relocation as a unit.
+       (_frv_create_got_section): Rename .rofixup.got to .rofixup.
+       (DEFAULT_STACK_SIZE): New.
+       (_frv_count_got_plt_entries): Fix thinko in deciding whether to
+       emit rofixups or dynamic relocs when linking dynamic non-PIE
+       executables.
+       (elf32_frv_size_dynamic_sections): Generate rofixup on PIEs and
+       shared libs too.  Reserve the last entry for the GOT pointer.
+       (elf32_frv_finish_dynamic_sections): Emit it.
+       (elf32_frv_always_size_sections): New.
+       (elf32_frv_modify_segment_map): New.
+       (elf32_frv_check_relocs): Reserve relocs32 space only in ALLOC
+       sections.
+       (frv_elf_merge_private_bfd_data): Clear PIC bit if FDPIC is set.
+       (frv_elf_print_private_bfd_data): Handle FDPIC and LIBPIC.
+       (elf_backend_always_size_sections): New.
+       (elf_backend_modify_segment_map): New.
+       2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
+       * config.bfd: Added frv-*-*linux*.
+       * elf32-frv.c (_frv_emit_got_relocs_plt_entries): Use idx 0 for
+       ABS section, instead of crashing.
+       (elf32_frv_relocate_section): Don't crash before warning about
+       different segments in non-PIC relocation.
+       2003-10-17  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (elf32_frv_relocate_section): Don't warn on LABEL24
+       relocs to undefweak symbols.
+       (elf32_frv_relocate_section): Ditto for undefined symbols.
+       2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (elf32_frv_create_dynamic_sections): Make sure
+       gotfixup section was created.
+       2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (elf32_frv_howto_table): Change GOT12,
+       FUNCDESC_GOT12, GOTOFF12 and FUNCDESC_GOTOFF12 to
+       complain_overflow_signed.
+       * elf32-frv.c (_frv_add_rofixup): Do not error out if contents
+       have not been allocated.
+       (_frv_emit_got_relocs_plt_entries): Return non-void.  Assert
+       privfd only if dynamic sections were created.
+       (elf32_frv_relocate_section): Compute gprel_segment, and use it
+       for GPREL relocs.  When linking relocatable FDPIC executables,
+       emit warnings for relocations that would be illegal on PIE or
+       shared libraries.  Emit rofixup for R_FRV_32 only if input object
+       is not FDPIC.
+       (_frv_create_got_section): Define _gp symbol in the rofixup
+       section.
+       (elf32_frv_finish_dynamic_sections): If rofixups needed but
+       dynamic sections missing, error out requesting -melf32frvfd.
+       2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (_frv_emit_got_relocs_plt_entries): Rearrange
+       computation of addends from section and global or local symbol
+       value.  Change return type to bfd_boolean, and return a failure if
+       a dynamic FUNCDESC or FUNCDESC_VALUE relocation that requires a
+       nonzero addend is required.
+       (elf32_frv_relocate_section): Likewise.  Print error for
+       unsupported nonzero addends.
+       2003-09-18  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (FRV_SYM_LOCAL): In the absence of dynamic sections,
+       force everything local.
+       (_frv_emit_got_relocs_plt_entries): Cope with NULL sec.
+       * elf32-frv.c (struct frv_elf_link_hash_table): Added sgotfixup.
+       (frv_gotfixup_section): New.
+       (FRV_SYM_LOCAL): Accept undefweak and local common symbols.
+       (struct frv_pic_relocs_info): Split relocs into relocs32, relocsfd
+       and relocsfdv.
+       (_frv_add_rofixup): New.
+       (_frv_emit_got_relocs_plt_entries): Generate fixups for non-PIE
+       fdpic executables.  Use FRV_SYM_LOCAL more widely to simplify and
+       improve some ugly conditions.
+       (elf32_frv_relocate_section): Likewise.  Reject inter-segment
+       relocations in fdpic.
+       (_frv_create_got_section): Create .rofixup.got section.
+       (struct _frv_dynamic_got_info): Added fixups.
+       (_frv_count_got_plt_entries): Account in-GOT relocations into
+       relocs32, relocsfd and relocsfdv.  Account them into relocs or
+       fixups, as appropriate.
+       (elf32_frv_size_dynamic_sections): Size rofixup section.  Simplify
+       sizing of gotrel.
+       (elf32_frv_finish_dynamic_sections): Verify that the right number
+       of relocations and fixups was generated.
+       (elf32_frv_check_relocs): Compute relocs32, relocsfd and
+       relocsfdv.
+       * elf32-frv.c (FRV_SYM_LOCAL): New macro, used instead of
+       SYMBOL_CALLS_LOCAL and SYMBOL_REFERENCES_LOCAL.
+       (FRV_FUNCDESC_LOCAL): New macro, used to decide whether a function
+       descriptor of a (formerly-)global symbol is local.
+       (struct frv_pic_relocs_info): Adjust comments.
+       (_frv_emit_got_relocs_plt_entries): Adjust.
+       (elf32_frv_relocate_section): Likewise.
+       (_frv_count_got_plt_entries): Likewise.
+       * elf32-frv.c (_frv_emit_got_relocs_plt_entries): Don't add global
+       symbol's value to addend in the common preamble.  Decay dynamic
+       symbols to section+offset if they bind or call locally, for GOT
+       and FUNCDESC_VALUE, respectively.
+       (elf32_frv_relocate_section): Likewise.
+       (elf32_frv_check_relocs): Don't register as dynamic symbols of
+       internal or hidden visibility.
+       2003-09-17  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (_frv_emit_got_relocs_plt_entries): Get addend as
+       argument, so as to not call _bfd_elf_rel_local_sym to compute it.
+       (elf32_frv_relocate_section): Pass relocation addend in.  Use
+       original relocation addend to look up the got relocs/plt entries
+       table.  Do not call _bfd_elf_rel_local_sym.  Don't error out when
+       processing relocations that reference .scommon symbols.
+       2003-09-15  Alexandre Oliva  <aoliva@redhat.com>
+       Introduce support for dynamic linking.
+       * elf32-frv.c (R_FRV_FUNCDESC_VALUE): Mark it as 64 bits.
+       (elf32_frv_rel_32_howto, elf32_frv_rel_funcdesc_howto,
+       elf32_frv_rel_funcdesc_value_howto): New REL descriptors.
+       (frv_reloc_type_lookup): Return REL howtos for executables and
+       dynamic libraries.
+       (frv_info_to_howto_rel): New.
+       (struct frv_elf_link_hash_table): New.
+       (frv_hash_table, frv_got_section, frv_gotrel_section,
+       frv_plt_section, frv_pltrel_section, frv_relocs_info,
+       frv_got_initial_offset, frv_plt_initial_offset): New macros.
+       (frv_elf_link_hash_table_create): New.
+       (struct frv_pic_relocs_info): New.
+       (frv_pic_relocs_info_hash, frv_pic_relocs_info_eq): New.
+       (frv_pic_relocs_info_find): New.
+       (frv_pic_relocs_info_for_global, frv_pic_relocs_info_for_local):
+       New.
+       (FRV_LZPLT_BLOCK_SIZE, FRV_LZPLT_RESOLVE_LOC): New.
+       (_frv_add_dyn_reloc, _frv_osec_to_segment): New.
+       (_frv_emit_got_relocs_plt_entries): New.
+       (elf32_frv_relocate_section): Add support for dynamic linking.
+       Handle new relocations.
+       (_frv_create_got_section): New.
+       (elf32_frv_create_dynamic_sections): New.
+       (ELF_DYNAMIC_INTERPRETER): New.
+       (struct _frv_dynamic_got_info): New.
+       (_frv_count_got_plt_entries): New.
+       (struct _frv_dynamic_got_plt_info): New.
+       (_frv_compute_got_alloc_data): New.
+       (_frv_get_got_entry, _frv_get_fd_entry): New.
+       (_frv_assign_got_entries, _frv_assign_plt_entries): New.
+       (_frv_resolve_final_relocs_info): New.
+       (elf32_frv_size_dynamic_sections): New.
+       (elf32_frv_finish_dynamic_sections): New.
+       (elf32_frv_adjust_dynamic_symbol): New.
+       (elf32_frv_finish_dynamic_symbol): New.
+       (elf32_frv_check_relocs): Handle new relocs.  Explain how the
+       whole thing works.
+       (elf_info_to_howto_rel): Define.
+       (bfd_elf32_bfd_link_hash_table_create): Define.
+       (elf_backend_create_dynamic_sections): Define.
+       (elf_backend_adjust_dynamic_symbol): Define.
+       (elf_backend_size_dynamic_sections): Define.
+       (elf_backend_finish_dynamic_symbol): Define.
+       (elf_backend_finish_dynamic_sections): Define.
+       (elf_backend_want_got_sym): Define.
+       (elf_backend_got_header_size): Define.
+       (elf_backend_want_got_plt): Define.
+       (elf_backend_plt_readonly): Define.
+       (elf_backend_want_plt_sym): Define.
+       (elf_backend_plt_header_size): Define.
+       (elf_backend_may_use_rel_p): Define.
+       (elf_backend_may_use_rela_p): Define.
+       (elf_backend_default_use_rela_p): Define.
+       2003-08-08  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (R_FRV_FUNCDESC_VALUE, R_FRV_FUNCDESC_GOTOFF12,
+       R_FRV_FUNCDESC_GOTOFFHI, R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12,
+       R_FRV_GOTOFFHI, R_FRV_GOTOFFLO): New.
+       (frv_reloc_map): Map the corresponding BFD relocs to them.
+       (frv_reloc_type_lookup): ... and back to BFD relocs.
+       * reloc.c: New relocs.
+       * bfd-in2.h, libbfd.h: Rebuilt.
+       2003-08-04  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-frv.c (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
+       R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
+       R_FRV_FUNCDESC_GOTLO): New.
+       (frv_reloc_map): Map the corresponding BFD relocs to them.
+       (frv_reloc_type_lookup): ... and back to BFD relocs.
+       * reloc.c: New relocs.
+       * bfd-in2.h, libbfd.h: Rebuilt.
+
+2004-01-05  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+
+       * elf32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
+       targets to support pages of up to 64kB.
+       (elf32_bed): Redefine to get a separate backend data structure for
+       traditional targets.
+       * elf64-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
+       targets to support pages of up to 64kB.
+       (elf64_bed): Redefine to get a separate backend data structure for
+       traditional targets.
+       * elfn32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
+       targets to support pages of up to 64kB.
+       (elf32_bed): Redefine to get a separate backend data structure for
+       traditional targets.
+
+2004-01-04  Mark Kettenis  <kettenis@gnu.org>
+
+       * elf32-sparc.c (elf32_sparc_grok_psinfo): New function.
+
+2004-01-02  Mark Kettenis  <kettenis@gnu.org>
+
+       * elf32-i386.c (elf_i386_grok_prstatus): Add support for FreeBSD.
+       (elf_i386_grok_psinfo): Likewise.
+
+2004-01-02  Bernardo Innocenti  <bernie@develer.com>
+
+       * config.bfd: Add m68k-uClinux target.
+
+2004-01-01  Grant Edwards <grante@visi.com>
+
+       * elflink.h (elf_gc_sections): Warn when gc-sections option is ignored.
+       * elf32-h8300.c (elf32_h8_gc_mark_hook): New function.
+       (elf32_h8_gc_sweep_hook): New function.
+       (elf_backend_gc_mark_hook): Define.
+       (elf_backend_gc_sweep_hook): Define.
+       (elf_backend_can_gc_sections): Define.
+
+For older changes see ChangeLog-0203
+\f
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 74
+version-control: never
+End:
diff --git a/contrib/gdb-6.2.1/bfd/PORTING b/contrib/gdb-6.2.1/bfd/PORTING
new file mode 100644 (file)
index 0000000..c8bfd77
--- /dev/null
@@ -0,0 +1,83 @@
+       Preliminary Notes on Porting BFD
+       --------------------------------
+
+The 'host' is the system a tool runs *on*.
+The 'target' is the system a tool runs *for*, i.e.
+a tool can read/write the binaries of the target.
+
+Porting to a new host
+---------------------
+Pick a name for your host. Call that <host>.
+(<host> might be sun4, ...)
+Create a file hosts/<host>.mh.
+
+Porting to a new target
+-----------------------
+Pick a name for your target. Call that <target>.
+Call the name for your CPU architecture <cpu>.
+You need to create <target>.c and config/<target>.mt,
+and add a case for it to a case statements in bfd/configure.host and
+bfd/config.bfd, which associates each canonical host type with a BFD
+host type (used as the base of the makefile fragment names), and to the
+table in bfd/configure.in which associates each target vector with
+the .o files it uses.
+
+config/<target>.mt is a Makefile fragment.
+The following is usually enough:
+DEFAULT_VECTOR=<target>_vec
+SELECT_ARCHITECTURES=bfd_<cpu>_arch
+
+See the list of cpu types in archures.c, or "ls cpu-*.c".
+If your architecture is new, you need to add it to the tables
+in bfd/archures.c, opcodes/configure.in, and binutils/objdump.c.
+
+For more information about .mt and .mh files, see config/README.
+
+The file <target>.c is the hard part.  It implements the
+bfd_target <target>_vec, which includes pointers to
+functions that do the actual <target>-specific methods.
+
+Porting to a <target> that uses the a.out binary format
+-------------------------------------------------------
+
+In this case, the include file aout-target.h probaby does most
+of what you need. The program gen-aout generates <target>.c for
+you automatically for many a.out systems.  Do:
+       make gen-aout
+       ./gen-aout <target> > <target>.c
+(This only works if you are building on the target ("native").
+If you must make a cross-port from scratch, copy the most
+similar existing file that includes aout-target.h, and fix what is wrong.)
+
+Check the parameters in <target>.c, and fix anything that is wrong.
+(Also let us know about it; perhaps we can improve gen-aout.c.)
+
+TARGET_IS_BIG_ENDIAN_P
+       Should be defined if <target> is big-endian.
+
+N_HEADER_IN_TEXT(x)
+       See discussion in ../include/aout/aout64.h.
+
+BYTES_IN_WORD
+       Number of bytes per word. (Usually 4 but can be 8.)
+
+ARCH
+       Number of bits per word.  (Usually 32, but can be 64.)
+
+ENTRY_CAN_BE_ZERO
+       Define if the extry point (start address of an
+       executable program) can be 0x0.
+
+TEXT_START_ADDR
+       The address of the start of the text segemnt in
+       virtual memory.  Normally, the same as the entry point.
+
+TARGET_PAGE_SIZE
+
+SEGMENT_SIZE
+        Usually, the same as the TARGET_PAGE_SIZE.
+        Alignment needed for the data segment.
+
+TARGETNAME
+       The name of the target, for run-time lookups.
+       Usually "a.out-<target>"
diff --git a/contrib/gdb-6.2.1/bfd/README b/contrib/gdb-6.2.1/bfd/README
new file mode 100644 (file)
index 0000000..fe6b6f3
--- /dev/null
@@ -0,0 +1,49 @@
+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.
diff --git a/contrib/gdb-6.2.1/bfd/TODO b/contrib/gdb-6.2.1/bfd/TODO
new file mode 100644 (file)
index 0000000..7a12735
--- /dev/null
@@ -0,0 +1,25 @@
+Things that still need to be done: -*- Text -*-
+
+ o - A source of space lossage is that all the target-dependent code
+     is in a single bfd_target structure.  Hence all the code for
+     *writing* object files is still pulled into all the applications
+     that only care about *reading* (gdb, nm, objdump), while gas has
+     to carry along all the unneeded baggage for reading objects.  And
+     so on.  This would be a substantial change, and the payoff would
+     not all that great (essentially none if bfd is used as a shared
+     library).
+
+ o - The storage needed by BFD data structures is also larger than strictly
+     needed.  This may be difficult to do much about.
+
+ o - implement bfd_abort, which should close the bfd but not alter the
+     filesystem.
+
+ o - update the bfd doc; write a how-to-write-a-backend doc, take out
+     the stupid quips and fill in all the blanks.
+
+ o - upgrade the reloc handling as per Steve's suggestion.
+
+
+
+
diff --git a/contrib/gdb-6.2.1/bfd/aout0.c b/contrib/gdb-6.2.1/bfd/aout0.c
new file mode 100644 (file)
index 0000000..731d476
--- /dev/null
@@ -0,0 +1,37 @@
+/* BFD backend for SunOS style a.out with flags set to 0
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 2001
+   Free Software Foundation, Inc.
+   Written by Cygnus Support.
+
+This file is part of BFD, the Binary File Descriptor library.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#define TARGETNAME "a.out-zero-big"
+
+/* Do not "beautify" the CONCAT* macro args.  Traditional C will not
+   remove whitespace added here, and thus will fail to concatenate
+   the tokens.  */
+#define MY(OP) CONCAT2 (aout0_big_,OP)
+
+#include "bfd.h"
+
+#define MY_exec_hdr_flags 0
+
+#define MACHTYPE_OK(mtype) \
+  ((mtype) == M_UNKNOWN || (mtype) == M_68010 || (mtype) == M_68020)
+
+/* Include the usual a.out support.  */
+#include "aoutf1.h"
diff --git a/contrib/gdb-6.2.1/bfd/aout32.c b/contrib/gdb-6.2.1/bfd/aout32.c
new file mode 100644 (file)
index 0000000..afe7fa2
--- /dev/null
@@ -0,0 +1,23 @@
+/* BFD back-end for 32-bit a.out files.
+   Copyright 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+   Written by Cygnus Support.
+
+This file is part of BFD, the Binary File Descriptor library.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#define ARCH_SIZE 32
+
+#include "aoutx.h"
diff --git a/contrib/gdb-6.2.1/bfd/aout64.c b/contrib/gdb-6.2.1/bfd/aout64.c
new file mode 100644 (file)
index 0000000..0f31dab
--- /dev/null
@@ -0,0 +1,31 @@
+/* BFD back-end for 64-bit a.out files.
+   Copyright 1990, 1991, 1992, 1994 Free Software Foundation, Inc.
+   Written by Cygnus Support.
+
+This file is part of BFD, the Binary File Descriptor library.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#define ARCH_SIZE 64
+
+/* aoutx.h requires definitions for BMAGIC and QMAGIC.  */
+#ifndef BMAGIC
+#define BMAGIC 0
+#endif
+#ifndef QMAGIC
+#define QMAGIC 0
+#endif
+
+#include "aoutx.h"
diff --git a/contrib/gdb-6.2.1/bfd/aoutf1.h b/contrib/gdb-6.2.1/bfd/aoutf1.h
new file mode 100644 (file)
index 0000000..eb5b2f9
--- /dev/null
@@ -0,0 +1,846 @@
+/* A.out "format 1" file handling code for BFD.
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
+   2001, 2002, 2003, 2004
+   Free Software Foundation, Inc.
+   Written by Cygnus Support.
+
+This file is part of BFD, the Binary File Descriptor library.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "libbfd.h"
+
+#include "aout/sun4.h"
+#include "libaout.h"           /* BFD a.out internal data structures */
+
+#include "aout/aout64.h"
+#include "aout/stab_gnu.h"
+#include "aout/ar.h"
+
+/* This is needed to reject a NewsOS file, e.g. in
+   gdb/testsuite/gdb.t10/crossload.exp. <kingdon@cygnus.com>
+   I needed to add M_UNKNOWN to recognize a 68000 object, so this will
+   probably no longer reject a NewsOS object.  <ian@cygnus.com>.  */
+#ifndef MACHTYPE_OK
+#define MACHTYPE_OK(mtype) \
+  (((mtype) == M_SPARC && bfd_lookup_arch (bfd_arch_sparc, 0) != NULL) \
+   || (((mtype) == M_UNKNOWN || (mtype) == M_68010 || (mtype) == M_68020) \
+       && bfd_lookup_arch (bfd_arch_m68k, 0) != NULL))
+#endif
+
+/*
+The file @code{aoutf1.h} contains the code for BFD's
+a.out back end. Control over the generated back end is given by these
+two preprocessor names:
+@table @code
+@item ARCH_SIZE
+This value should be either 32 or 64, depending upon the size of an
+int in the target format. It changes the sizes of the structs which
+perform the memory/disk mapping of structures.
+
+The 64 bit backend may only be used if the host compiler supports 64
+ints (eg long long with gcc), by defining the name @code{BFD_HOST_64_BIT} in @code{bfd.h}.
+With this name defined, @emph{all} bfd operations are performed with 64bit
+arithmetic, not just those to a 64bit target.
+
+@item TARGETNAME
+The name put into the target vector.
+@item
+@end table
+
+*/
+
+/*SUPPRESS558*/
+/*SUPPRESS529*/
+
+#if ARCH_SIZE == 64
+#define sunos_set_arch_mach sunos_64_set_arch_mach
+#define sunos_write_object_contents aout_64_sunos4_write_object_contents
+#else
+#define sunos_set_arch_mach sunos_32_set_arch_mach
+#define sunos_write_object_contents aout_32_sunos4_write_object_contents
+#endif
+
+static bfd_boolean sunos_merge_private_bfd_data
+  PARAMS ((bfd *, bfd *));
+static void sunos_set_arch_mach
+  PARAMS ((bfd *, enum machine_type));
+static void choose_reloc_size
+  PARAMS ((bfd *));
+static bfd_boolean sunos_write_object_contents
+  PARAMS ((bfd *));
+static const bfd_target *sunos4_core_file_p
+  PARAMS ((bfd *));
+static char *sunos4_core_file_failing_command
+  PARAMS ((bfd *));
+static int sunos4_core_file_failing_signal
+  PARAMS ((bfd *));
+static bfd_boolean sunos4_core_file_matches_executable_p
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean sunos4_set_sizes
+  PARAMS ((bfd *));
+
+/* Merge backend data into the output file.
+   This is necessary on sparclet-aout where we want the resultant machine
+   number to be M_SPARCLET if any input file is M_SPARCLET.  */
+
+#define MY_bfd_merge_private_bfd_data sunos_merge_private_bfd_data
+
+static bfd_boolean
+sunos_merge_private_bfd_data (ibfd, obfd)
+     bfd *ibfd, *obfd;
+{
+  if (bfd_get_flavour (ibfd) != bfd_target_aout_flavour
+      || bfd_get_flavour (obfd) != bfd_target_aout_flavour)
+    return TRUE;
+
+  if (bfd_get_arch (obfd) == bfd_arch_sparc)
+    {
+      if (bfd_get_mach (obfd) < bfd_get_mach (ibfd))
+       bfd_set_arch_mach (obfd, bfd_arch_sparc, bfd_get_mach (ibfd));
+    }
+
+  return TRUE;
+}
+
+/* This is either sunos_32_set_arch_mach or sunos_64_set_arch_mach,
+   depending upon ARCH_SIZE.  */
+
+static void
+sunos_set_arch_mach (abfd, machtype)
+     bfd *abfd;
+     enum machine_type machtype;
+{
+  /* Determine the architecture and machine type of the object file.  */
+  enum bfd_architecture arch;
+  unsigned long machine;
+  switch (machtype)
+    {
+
+    case M_UNKNOWN:
+      /* Some Sun3s make magic numbers without cpu types in them, so
+        we'll default to the 68000.  */
+      arch = bfd_arch_m68k;
+      machine = bfd_mach_m68000;
+      break;
+
+    case M_68010:
+    case M_HP200:
+      arch = bfd_arch_m68k;
+      machine = bfd_mach_m68010;
+      break;
+
+    case M_68020:
+    case M_HP300:
+      arch = bfd_arch_m68k;
+      machine = bfd_mach_m68020;
+      break;
+
+    case M_SPARC:
+      arch = bfd_arch_sparc;
+      machine = 0;
+      break;
+
+    case M_SPARCLET:
+      arch = bfd_arch_sparc;
+      machine = bfd_mach_sparc_sparclet;
+      break;
+
+    case M_SPARCLITE_LE:
+      arch = bfd_arch_sparc;
+      machine = bfd_mach_sparc_sparclite_le;
+      break;
+
+    case M_386:
+    case M_386_DYNIX:
+      arch = bfd_arch_i386;
+      machine = 0;
+      break;
+
+    case M_29K:
+      arch = bfd_arch_a29k;
+      machine = 0;
+      break;
+
+    case M_HPUX:
+      arch = bfd_arch_m68k;
+      machine = 0;
+      break;
+
+    default:
+      arch = bfd_arch_obscure;
+      machine = 0;
+      break;
+    }
+  bfd_set_arch_mach (abfd, arch, machine);
+}
+
+#define SET_ARCH_MACH(ABFD, EXEC) \
+  NAME(sunos,set_arch_mach) (ABFD, N_MACHTYPE (EXEC)); \
+  choose_reloc_size(ABFD);
+
+/* Determine the size of a relocation entry, based on the architecture */
+static void
+choose_reloc_size (abfd)
+     bfd *abfd;
+{
+  switch (bfd_get_arch (abfd))
+    {
+    case bfd_arch_sparc:
+    case bfd_arch_a29k:
+      obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;
+      break;
+    default:
+      obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
+      break;
+    }
+}
+
+/* Write an object file in SunOS format.  Section contents have
+   already been written.  We write the file header, symbols, and
+   relocation.  The real name of this function is either
+   aout_64_sunos4_write_object_contents or
+   aout_32_sunos4_write_object_contents, depending upon ARCH_SIZE.  */
+
+static bfd_boolean
+sunos_write_object_contents (abfd)
+     bfd *abfd;
+{
+  struct external_exec exec_bytes;
+  struct internal_exec *execp = exec_hdr (abfd);
+
+  /* Magic number, maestro, please!  */
+  switch (bfd_get_arch (abfd))
+    {
+    case bfd_arch_m68k:
+      switch (bfd_get_mach (abfd))
+       {
+       case bfd_mach_m68000:
+         N_SET_MACHTYPE (*execp, M_UNKNOWN);
+         break;
+       case bfd_mach_m68010:
+         N_SET_MACHTYPE (*execp, M_68010);
+         break;
+       default:
+       case bfd_mach_m68020:
+         N_SET_MACHTYPE (*execp, M_68020);
+         break;
+       }
+      break;
+    case bfd_arch_sparc:
+      switch (bfd_get_mach (abfd))
+       {
+       case bfd_mach_sparc_sparclet:
+         N_SET_MACHTYPE (*execp, M_SPARCLET);
+         break;
+       case bfd_mach_sparc_sparclite_le:
+         N_SET_MACHTYPE (*execp, M_SPARCLITE_LE);
+         break;
+       default:
+         N_SET_MACHTYPE (*execp, M_SPARC);
+         break;
+       }
+      break;
+    case bfd_arch_i386:
+      N_SET_MACHTYPE (*execp, M_386);
+      break;
+    case bfd_arch_a29k:
+      N_SET_MACHTYPE (*execp, M_29K);
+      break;
+    default:
+      N_SET_MACHTYPE (*execp, M_UNKNOWN);
+    }
+
+  choose_reloc_size (abfd);
+
+  N_SET_FLAGS (*execp, aout_backend_info (abfd)->exec_hdr_flags);
+
+  N_SET_DYNAMIC (*execp, (long)(bfd_get_file_flags (abfd) & DYNAMIC));
+
+  WRITE_HEADERS (abfd, execp);
+
+  return TRUE;
+}
+\f
+/* core files */
+
+#define CORE_MAGIC 0x080456
+#define CORE_NAMELEN 16
+
+/* The core structure is taken from the Sun documentation.
+  Unfortunately, they don't document the FPA structure, or at least I
+  can't find it easily.  Fortunately the core header contains its own
+  length.  So this shouldn't cause problems, except for c_ucode, which
+  so far we don't use but is easy to find with a little arithmetic.  */
+
+/* But the reg structure can be gotten from the SPARC processor handbook.
+  This really should be in a GNU include file though so that gdb can use
+  the same info.  */
+struct regs
+{
+  int r_psr;
+  int r_pc;
+  int r_npc;
+  int r_y;
+  int r_g1;
+  int r_g2;
+  int r_g3;
+  int r_g4;
+  int r_g5;
+  int r_g6;
+  int r_g7;
+  int r_o0;
+  int r_o1;
+  int r_o2;
+  int r_o3;
+  int r_o4;
+  int r_o5;
+  int r_o6;
+  int r_o7;
+};
+
+/* Taken from Sun documentation: */
+
+/* FIXME:  It's worse than we expect.  This struct contains TWO substructs
+  neither of whose size we know, WITH STUFF IN BETWEEN THEM!  We can't
+  even portably access the stuff in between!  */
+
+struct external_sparc_core
+  {
+    int c_magic;               /* Corefile magic number */
+    int c_len;                 /* Sizeof (struct core) */
+#define        SPARC_CORE_LEN  432
+    int c_regs[19];            /* General purpose registers -- MACHDEP SIZE */
+    struct external_exec c_aouthdr;    /* A.out header */
+    int c_signo;               /* Killing signal, if any */
+    int c_tsize;               /* Text size (bytes) */
+    int c_dsize;               /* Data size (bytes) */
+    int c_ssize;               /* Stack size (bytes) */
+    char c_cmdname[CORE_NAMELEN + 1];  /* Command name */
+    double fp_stuff[1];                /* external FPU state (size unknown by us) */
+    /* The type "double" is critical here, for alignment.
+    SunOS declares a struct here, but the struct's alignment
+      is double since it contains doubles.  */
+    int c_ucode;               /* Exception no. from u_code */
+    /* (this member is not accessible by name since we don't
+    portably know the size of fp_stuff.) */
+  };
+
+/* Core files generated by the BCP (the part of Solaris which allows
+   it to run SunOS4 a.out files).  */
+struct external_solaris_bcp_core
+  {
+    int c_magic;               /* Corefile magic number */
+    int c_len;                 /* Sizeof (struct core) */
+#define        SOLARIS_BCP_CORE_LEN    456
+    int c_regs[19];            /* General purpose registers -- MACHDEP SIZE */
+    int c_exdata_vp;           /* exdata structure */
+    int c_exdata_tsize;
+    int c_exdata_dsize;
+    int c_exdata_bsize;
+    int c_exdata_lsize;
+    int c_exdata_nshlibs;
+    short c_exdata_mach;
+    short c_exdata_mag;
+    int c_exdata_toffset;
+    int c_exdata_doffset;
+    int c_exdata_loffset;
+    int c_exdata_txtorg;
+    int c_exdata_datorg;
+    int c_exdata_entloc;
+    int c_signo;               /* Killing signal, if any */
+    int c_tsize;               /* Text size (bytes) */
+    int c_dsize;               /* Data size (bytes) */
+    int c_ssize;               /* Stack size (bytes) */
+    char c_cmdname[CORE_NAMELEN + 1];  /* Command name */
+    double fp_stuff[1];                /* external FPU state (size unknown by us) */
+    /* The type "double" is critical here, for alignment.
+    SunOS declares a struct here, but the struct's alignment
+      is double since it contains doubles.  */
+    int c_ucode;               /* Exception no. from u_code */
+    /* (this member is not accessible by name since we don't
+    portably know the size of fp_stuff.) */
+  };
+
+struct external_sun3_core
+  {
+    int c_magic;               /* Corefile magic number */
+    int c_len;                 /* Sizeof (struct core) */
+#define        SUN3_CORE_LEN   826     /* As of SunOS 4.1.1 */
+    int c_regs[18];            /* General purpose registers -- MACHDEP SIZE */
+    struct external_exec c_aouthdr;    /* A.out header */
+    int c_signo;               /* Killing signal, if any */
+    int c_tsize;               /* Text size (bytes) */
+    int c_dsize;               /* Data size (bytes) */
+    int c_ssize;               /* Stack size (bytes) */
+    char c_cmdname[CORE_NAMELEN + 1];  /* Command name */
+    double fp_stuff[1];                /* external FPU state (size unknown by us) */
+    /* The type "double" is critical here, for alignment.
+    SunOS declares a struct here, but the struct's alignment
+      is double since it contains doubles.  */
+    int c_ucode;               /* Exception no. from u_code */
+    /* (this member is not accessible by name since we don't
+    portably know the size of fp_stuff.) */
+  };
+
+struct internal_sunos_core
+  {
+    int c_magic;               /* Corefile magic number */
+    int c_len;                 /* Sizeof (struct core) */
+    long c_regs_pos;           /* file offset of General purpose registers */
+    int c_regs_size;           /* size of General purpose registers */
+    struct internal_exec c_aouthdr;    /* A.out header */
+    int c_signo;               /* Killing signal, if any */
+    int c_tsize;               /* Text size (bytes) */
+    int c_dsize;               /* Data size (bytes) */
+    bfd_vma c_data_addr;       /* Data start (address) */
+    int c_ssize;               /* Stack size (bytes) */
+    bfd_vma c_stacktop;                /* Stack top (address) */
+    char c_cmdname[CORE_NAMELEN + 1];  /* Command name */
+    long fp_stuff_pos;         /* file offset of external FPU state (regs) */
+    int fp_stuff_size;         /* Size of it */
+    int c_ucode;               /* Exception no. from u_code */
+  };
+
+static void swapcore_sun3
+  PARAMS ((bfd *, char *, struct internal_sunos_core *));
+static void swapcore_sparc
+  PARAMS ((bfd *, char *, struct internal_sunos_core *));
+static void swapcore_solaris_bcp
+  PARAMS ((bfd *, char *, struct internal_sunos_core *));
+
+/* byte-swap in the Sun-3 core structure */
+static void
+swapcore_sun3 (abfd, ext, intcore)
+     bfd *abfd;
+     char *ext;
+     struct internal_sunos_core *intcore;
+{
+  struct external_sun3_core *extcore = (struct external_sun3_core *) ext;
+
+  intcore->c_magic = H_GET_32 (abfd, &extcore->c_magic);
+  intcore->c_len = H_GET_32 (abfd, &extcore->c_len);
+  intcore->c_regs_pos = (long) (((struct external_sun3_core *) 0)->c_regs);
+  intcore->c_regs_size = sizeof (extcore->c_regs);
+#if ARCH_SIZE == 64
+  aout_64_swap_exec_header_in
+#else
+  aout_32_swap_exec_header_in
+#endif
+    (abfd, &extcore->c_aouthdr, &intcore->c_aouthdr);
+  intcore->c_signo = H_GET_32 (abfd, &extcore->c_signo);
+  intcore->c_tsize = H_GET_32 (abfd, &extcore->c_tsize);
+  intcore->c_dsize = H_GET_32 (abfd, &extcore->c_dsize);
+  intcore->c_data_addr = N_DATADDR (intcore->c_aouthdr);
+  intcore->c_ssize = H_GET_32 (abfd, &extcore->c_ssize);
+  memcpy (intcore->c_cmdname, extcore->c_cmdname, sizeof (intcore->c_cmdname));
+  intcore->fp_stuff_pos = (long) (((struct external_sun3_core *) 0)->fp_stuff);
+  /* FP stuff takes up whole rest of struct, except c_ucode.  */
+  intcore->fp_stuff_size = intcore->c_len - (sizeof extcore->c_ucode) -
+    (file_ptr) (((struct external_sun3_core *) 0)->fp_stuff);
+  /* Ucode is the last thing in the struct -- just before the end */
+  intcore->c_ucode = H_GET_32 (abfd,
+                              (intcore->c_len
+                               - sizeof (extcore->c_ucode)
+                               + (unsigned char *) extcore));
+  intcore->c_stacktop = 0x0E000000;    /* By experimentation */
+}
+
+/* byte-swap in the Sparc core structure */
+static void
+swapcore_sparc (abfd, ext, intcore)
+     bfd *abfd;
+     char *ext;
+     struct internal_sunos_core *intcore;
+{
+  struct external_sparc_core *extcore = (struct external_sparc_core *) ext;
+
+  intcore->c_magic = H_GET_32 (abfd, &extcore->c_magic);
+  intcore->c_len = H_GET_32 (abfd, &extcore->c_len);
+  intcore->c_regs_pos = (long) (((struct external_sparc_core *) 0)->c_regs);
+  intcore->c_regs_size = sizeof (extcore->c_regs);
+#if ARCH_SIZE == 64
+  aout_64_swap_exec_header_in
+#else
+  aout_32_swap_exec_header_in
+#endif
+    (abfd, &extcore->c_aouthdr, &intcore->c_aouthdr);
+  intcore->c_signo = H_GET_32 (abfd, &extcore->c_signo);
+  intcore->c_tsize = H_GET_32 (abfd, &extcore->c_tsize);
+  intcore->c_dsize = H_GET_32 (abfd, &extcore->c_dsize);
+  intcore->c_data_addr = N_DATADDR (intcore->c_aouthdr);
+  intcore->c_ssize = H_GET_32 (abfd, &extcore->c_ssize);
+  memcpy (intcore->c_cmdname, extcore->c_cmdname, sizeof (intcore->c_cmdname));
+  intcore->fp_stuff_pos = (long) (((struct external_sparc_core *) 0)->fp_stuff);
+  /* FP stuff takes up whole rest of struct, except c_ucode.  */
+  intcore->fp_stuff_size = intcore->c_len - (sizeof extcore->c_ucode) -
+    (file_ptr) (((struct external_sparc_core *) 0)->fp_stuff);
+  /* Ucode is the last thing in the struct -- just before the end */
+  intcore->c_ucode = H_GET_32 (abfd,
+                              (intcore->c_len
+                               - sizeof (extcore->c_ucode)
+                               + (unsigned char *) extcore));
+
+  /* Supposedly the user stack grows downward from the bottom of kernel memory.
+     Presuming that this remains true, this definition will work.  */
+  /* Now sun has provided us with another challenge.  The value is different
+     for sparc2 and sparc10 (both running SunOS 4.1.3).  We pick one or
+     the other based on the current value of the stack pointer.  This
+     loses (a) if the stack pointer has been clobbered, or (b) if the stack
+     is larger than 128 megabytes.
+
+     It's times like these you're glad they're switching to ELF.
+
+     Note that using include files or nlist on /vmunix would be wrong,
+     because we want the value for this core file, no matter what kind of
+     machine we were compiled on or are running on.  */
+#define SPARC_USRSTACK_SPARC2 ((bfd_vma)0xf8000000)
+#define SPARC_USRSTACK_SPARC10 ((bfd_vma)0xf0000000)
+  {
+    bfd_vma sp = H_GET_32 (abfd, &((struct regs *) &extcore->c_regs[0])->r_o6);
+    if (sp < SPARC_USRSTACK_SPARC10)
+      intcore->c_stacktop = SPARC_USRSTACK_SPARC10;
+    else
+      intcore->c_stacktop = SPARC_USRSTACK_SPARC2;
+  }
+}
+
+/* byte-swap in the Solaris BCP core structure */
+static void
+swapcore_solaris_bcp (abfd, ext, intcore)
+     bfd *abfd;
+     char *ext;
+     struct internal_sunos_core *intcore;
+{
+  struct external_solaris_bcp_core *extcore =
+    (struct external_solaris_bcp_core *) ext;
+
+  intcore->c_magic = H_GET_32 (abfd, &extcore->c_magic);
+  intcore->c_len = H_GET_32 (abfd, &extcore->c_len);
+  intcore->c_regs_pos = (long) (((struct external_solaris_bcp_core *) 0)->c_regs);
+  intcore->c_regs_size = sizeof (extcore->c_regs);
+
+  /* The Solaris BCP exdata structure does not contain an a_syms field,
+     so we are unable to synthesize an internal exec header.
+     Luckily we are able to figure out the start address of the data section,
+     which is the only thing needed from the internal exec header,
+     from the exdata structure.
+
+     As of Solaris 2.3, BCP core files for statically linked executables
+     are buggy. The exdata structure is not properly filled in, and
+     the data section is written from address zero instead of the data
+     start address.  */
+  memset ((PTR) &intcore->c_aouthdr, 0, sizeof (struct internal_exec));
+  intcore->c_data_addr = H_GET_32 (abfd, &extcore->c_exdata_datorg);
+  intcore->c_signo = H_GET_32 (abfd, &extcore->c_signo);
+  intcore->c_tsize = H_GET_32 (abfd, &extcore->c_tsize);
+  intcore->c_dsize = H_GET_32 (abfd, &extcore->c_dsize);
+  intcore->c_ssize = H_GET_32 (abfd, &extcore->c_ssize);
+  memcpy (intcore->c_cmdname, extcore->c_cmdname, sizeof (intcore->c_cmdname));
+  intcore->fp_stuff_pos =
+    (long) (((struct external_solaris_bcp_core *) 0)->fp_stuff);
+  /* FP stuff takes up whole rest of struct, except c_ucode.  */
+  intcore->fp_stuff_size = intcore->c_len - (sizeof extcore->c_ucode) -
+    (file_ptr) (((struct external_solaris_bcp_core *) 0)->fp_stuff);
+  /* Ucode is the last thing in the struct -- just before the end */
+  intcore->c_ucode = H_GET_32 (abfd,
+                              (intcore->c_len
+                               - sizeof (extcore->c_ucode)
+                               + (unsigned char *) extcore));
+
+  /* Supposedly the user stack grows downward from the bottom of kernel memory.
+     Presuming that this remains true, this definition will work.  */
+  /* Now sun has provided us with another challenge.  The value is different
+     for sparc2 and sparc10 (both running SunOS 4.1.3).  We pick one or
+     the other based on the current value of the stack pointer.  This
+     loses (a) if the stack pointer has been clobbered, or (b) if the stack
+     is larger than 128 megabytes.
+
+     It's times like these you're glad they're switching to ELF.
+
+     Note that using include files or nlist on /vmunix would be wrong,
+     because we want the value for this core file, no matter what kind of
+     machine we were compiled on or are running on.  */
+#define SPARC_USRSTACK_SPARC2 ((bfd_vma)0xf8000000)
+#define SPARC_USRSTACK_SPARC10 ((bfd_vma)0xf0000000)
+  {
+    bfd_vma sp = H_GET_32 (abfd, &((struct regs *) &extcore->c_regs[0])->r_o6);
+    if (sp < SPARC_USRSTACK_SPARC10)
+      intcore->c_stacktop = SPARC_USRSTACK_SPARC10;
+    else
+      intcore->c_stacktop = SPARC_USRSTACK_SPARC2;
+  }
+}
+
+/* need this cast because ptr is really void * */
+#define core_hdr(bfd) ((bfd)->tdata.sun_core_data)
+#define core_datasec(bfd) (core_hdr(bfd)->data_section)
+#define core_stacksec(bfd) (core_hdr(bfd)->stack_section)
+#define core_regsec(bfd) (core_hdr(bfd)->reg_section)
+#define core_reg2sec(bfd) (core_hdr(bfd)->reg2_section)
+
+/* These are stored in the bfd's tdata */
+struct sun_core_struct
+{
+  struct internal_sunos_core *hdr;     /* core file header */
+  asection *data_section;
+  asection *stack_section;
+  asection *reg_section;
+  asection *reg2_section;
+};
+
+static const bfd_target *
+sunos4_core_file_p (abfd)
+     bfd *abfd;
+{
+  unsigned char longbuf[4];    /* Raw bytes of various header fields */
+  bfd_size_type core_size, amt;
+  unsigned long core_mag;
+  struct internal_sunos_core *core;
+  char *extcore;
+  struct mergem
+    {
+      struct sun_core_struct suncoredata;
+      struct internal_sunos_core internal_sunos_core;
+      char external_core[1];
+    } *mergem;
+
+  if (bfd_bread ((PTR) longbuf, (bfd_size_type) sizeof (longbuf), abfd)
+      != sizeof (longbuf))
+    return 0;
+  core_mag = H_GET_32 (abfd, longbuf);
+
+  if (core_mag != CORE_MAGIC)
+    return 0;
+
+  /* SunOS core headers can vary in length; second word is size; */
+  if (bfd_bread ((PTR) longbuf, (bfd_size_type) sizeof (longbuf), abfd)
+      != sizeof (longbuf))
+    return 0;
+  core_size = H_GET_32 (abfd, longbuf);
+  /* Sanity check */
+  if (core_size > 20000)
+    return 0;
+
+  if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
+    return 0;
+
+  amt = core_size + sizeof (struct mergem);
+  mergem = (struct mergem *) bfd_zalloc (abfd, amt);
+  if (mergem == NULL)
+    return 0;
+
+  extcore = mergem->external_core;
+
+  if ((bfd_bread ((PTR) extcore, core_size, abfd)) != core_size)
+    {
+    loser:
+      bfd_release (abfd, (char *) mergem);
+      abfd->tdata.any = NULL;
+      bfd_section_list_clear (abfd);
+      return 0;
+    }
+
+  /* Validate that it's a core file we know how to handle, due to sun
+     botching the positioning of registers and other fields in a machine
+     dependent way.  */
+  core = &mergem->internal_sunos_core;
+  switch (core_size)
+    {
+    case SPARC_CORE_LEN:
+      swapcore_sparc (abfd, extcore, core);
+      break;
+    case SUN3_CORE_LEN:
+      swapcore_sun3 (abfd, extcore, core);
+      break;
+    case SOLARIS_BCP_CORE_LEN:
+      swapcore_solaris_bcp (abfd, extcore, core);
+      break;
+    default:
+      bfd_set_error (bfd_error_system_call);   /* FIXME */
+      goto loser;
+    }
+
+  abfd->tdata.sun_core_data = &mergem->suncoredata;
+  abfd->tdata.sun_core_data->hdr = core;
+
+  /* Create the sections.  */
+  core_stacksec (abfd) = bfd_make_section_anyway (abfd, ".stack");
+  if (core_stacksec (abfd) == NULL)
+    /* bfd_release frees everything allocated after it's arg.  */
+    goto loser;
+
+  core_datasec (abfd) = bfd_make_section_anyway (abfd, ".data");
+  if (core_datasec (abfd) == NULL)
+    goto loser;
+
+  core_regsec (abfd) = bfd_make_section_anyway (abfd, ".reg");
+  if (core_regsec (abfd) == NULL)
+    goto loser;
+
+  core_reg2sec (abfd) = bfd_make_section_anyway (abfd, ".reg2");
+  if (core_reg2sec (abfd) == NULL)
+    goto loser;
+
+  core_stacksec (abfd)->flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS;
+  core_datasec (abfd)->flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS;
+  core_regsec (abfd)->flags = SEC_HAS_CONTENTS;
+  core_reg2sec (abfd)->flags = SEC_HAS_CONTENTS;
+
+  core_stacksec (abfd)->size = core->c_ssize;
+  core_datasec (abfd)->size = core->c_dsize;
+  core_regsec (abfd)->size = core->c_regs_size;
+  core_reg2sec (abfd)->size = core->fp_stuff_size;
+
+  core_stacksec (abfd)->vma = (core->c_stacktop - core->c_ssize);
+  core_datasec (abfd)->vma = core->c_data_addr;
+  core_regsec (abfd)->vma = 0;
+  core_reg2sec (abfd)->vma = 0;
+
+  core_stacksec (abfd)->filepos = core->c_len + core->c_dsize;
+  core_datasec (abfd)->filepos = core->c_len;
+  /* We'll access the regs afresh in the core file, like any section: */
+  core_regsec (abfd)->filepos = (file_ptr) core->c_regs_pos;
+  core_reg2sec (abfd)->filepos = (file_ptr) core->fp_stuff_pos;
+
+  /* Align to word at least */
+  core_stacksec (abfd)->alignment_power = 2;
+  core_datasec (abfd)->alignment_power = 2;
+  core_regsec (abfd)->alignment_power = 2;
+  core_reg2sec (abfd)->alignment_power = 2;
+
+  return abfd->xvec;
+}
+
+static char *
+sunos4_core_file_failing_command (abfd)
+     bfd *abfd;
+{
+  return core_hdr (abfd)->hdr->c_cmdname;
+}
+
+static int
+sunos4_core_file_failing_signal (abfd)
+     bfd *abfd;
+{
+  return core_hdr (abfd)->hdr->c_signo;
+}
+
+static bfd_boolean
+sunos4_core_file_matches_executable_p (core_bfd, exec_bfd)
+     bfd *core_bfd;
+     bfd *exec_bfd;
+{
+  if (core_bfd->xvec != exec_bfd->xvec)
+    {
+      bfd_set_error (bfd_error_system_call);
+      return FALSE;
+    }
+
+  /* Solaris core files do not include an aouthdr.  */
+  if ((core_hdr (core_bfd)->hdr)->c_len == SOLARIS_BCP_CORE_LEN)
+    return TRUE;
+
+  return (memcmp ((char *) &((core_hdr (core_bfd)->hdr)->c_aouthdr),
+                 (char *) exec_hdr (exec_bfd),
+                 sizeof (struct internal_exec)) == 0);
+}
+
+#define MY_set_sizes sunos4_set_sizes
+static bfd_boolean
+sunos4_set_sizes (abfd)
+     bfd *abfd;
+{
+  switch (bfd_get_arch (abfd))
+    {
+    default:
+      return FALSE;
+    case bfd_arch_sparc:
+      adata (abfd).page_size = 0x2000;
+      adata (abfd).segment_size = 0x2000;
+      adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE;
+      return TRUE;
+    case bfd_arch_m68k:
+      adata (abfd).page_size = 0x2000;
+      adata (abfd).segment_size = 0x20000;
+      adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE;
+      return TRUE;
+    }
+}
+
+/* We default to setting the toolversion field to 1, as is required by
+   SunOS.  */
+#ifndef MY_exec_hdr_flags
+#define MY_exec_hdr_flags 1
+#endif
+
+#ifndef MY_entry_is_text_address
+#define MY_entry_is_text_address 0
+#endif
+#ifndef MY_add_dynamic_symbols
+#define MY_add_dynamic_symbols 0
+#endif
+#ifndef MY_add_one_symbol
+#define MY_add_one_symbol 0
+#endif
+#ifndef MY_link_dynamic_object
+#define MY_link_dynamic_object 0
+#endif
+#ifndef MY_write_dynamic_symbol
+#define MY_write_dynamic_symbol 0
+#endif
+#ifndef MY_check_dynamic_reloc
+#define MY_check_dynamic_reloc 0
+#endif
+#ifndef MY_finish_dynamic_link
+#define MY_finish_dynamic_link 0
+#endif
+
+static const struct aout_backend_data sunos4_aout_backend =
+{
+  0,                           /* zmagic files are not contiguous */
+  1,                           /* text includes header */
+  MY_entry_is_text_address,
+  MY_exec_hdr_flags,
+  0,                           /* default text vma */
+  sunos4_set_sizes,
+  0,                           /* header is counted in zmagic text */
+  MY_add_dynamic_symbols,
+  MY_add_one_symbol,
+  MY_link_dynamic_object,
+  MY_write_dynamic_symbol,
+  MY_check_dynamic_reloc,
+  MY_finish_dynamic_link
+};
+\f
+#define        MY_core_file_failing_command    sunos4_core_file_failing_command
+#define        MY_core_file_failing_signal     sunos4_core_file_failing_signal
+#define        MY_core_file_matches_executable_p sunos4_core_file_matches_executable_p
+
+#define MY_bfd_debug_info_start                bfd_void
+#define MY_bfd_debug_info_end          bfd_void
+#define MY_bfd_debug_info_accumulate   \
+               (void (*) PARAMS ((bfd *, struct bfd_section *))) bfd_void
+#define MY_core_file_p                 sunos4_core_file_p
+#define MY_write_object_contents       NAME(aout,sunos4_write_object_contents)
+#define MY_backend_data                        &sunos4_aout_backend
+
+#ifndef TARGET_IS_LITTLE_ENDIAN_P
+#define TARGET_IS_BIG_ENDIAN_P
+#endif
+
+#include "aout-target.h"
diff --git a/contrib/gdb-6.2.1/bfd/aoutx.h b/contrib/gdb-6.2.1/bfd/aoutx.h
new file mode 100644 (file)
index 0000000..4fa529c
--- /dev/null
@@ -0,0 +1,5824 @@
+/* BFD semi-generic back-end for a.out binaries.
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
+   2001, 2002, 2003, 2004
+   Free Software Foundation, Inc.
+   Written by Cygnus Support.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+/*
+SECTION
+       a.out backends
+
+DESCRIPTION
+
+       BFD supports a number of different flavours of a.out format,
+       though the major differences are only the sizes of the
+       structures on disk, and the shape of the relocation
+       information.
+
+       The support is split into a basic support file @file{aoutx.h}
+       and other files which derive functions from the base. One
+       derivation file is @file{aoutf1.h} (for a.out flavour 1), and
+       adds to the basic a.out functions support for sun3, sun4, 386
+       and 29k a.out files, to create a target jump vector for a
+       specific target.
+
+       This information is further split out into more specific files
+       for each machine, including @file{sunos.c} for sun3 and sun4,
+       @file{newsos3.c} for the Sony NEWS, and @file{demo64.c} for a
+       demonstration of a 64 bit a.out format.
+
+       The base file @file{aoutx.h} defines general mechanisms for
+       reading and writing records to and from disk and various
+       other methods which BFD requires. It is included by
+       @file{aout32.c} and @file{aout64.c} to form the names
+       <<aout_32_swap_exec_header_in>>, <<aout_64_swap_exec_header_in>>, etc.
+
+       As an example, this is what goes on to make the back end for a
+       sun4, from @file{aout32.c}:
+
+|      #define ARCH_SIZE 32
+|      #include "aoutx.h"
+
+       Which exports names:
+
+|      ...
+|      aout_32_canonicalize_reloc
+|      aout_32_find_nearest_line
+|      aout_32_get_lineno
+|      aout_32_get_reloc_upper_bound
+|      ...
+
+       from @file{sunos.c}:
+
+|      #define TARGET_NAME "a.out-sunos-big"
+|      #define VECNAME    sunos_big_vec
+|      #include "aoutf1.h"
+
+       requires all the names from @file{aout32.c}, and produces the jump vector
+
+|      sunos_big_vec
+
+       The file @file{host-aout.c} is a special case.  It is for a large set
+       of hosts that use ``more or less standard'' a.out files, and
+       for which cross-debugging is not interesting.  It uses the
+       standard 32-bit a.out support routines, but determines the
+       file offsets and addresses of the text, data, and BSS
+       sections, the machine architecture and machine type, and the
+       entry point address, in a host-dependent manner.  Once these
+       values have been determined, generic code is used to handle
+       the  object file.
+
+       When porting it to run on a new system, you must supply:
+
+|        HOST_PAGE_SIZE
+|        HOST_SEGMENT_SIZE
+|        HOST_MACHINE_ARCH       (optional)
+|        HOST_MACHINE_MACHINE    (optional)
+|        HOST_TEXT_START_ADDR
+|        HOST_STACK_END_ADDR
+
+       in the file @file{../include/sys/h-@var{XXX}.h} (for your host).  These
+       values, plus the structures and macros defined in @file{a.out.h} on
+       your host system, will produce a BFD target that will access
+       ordinary a.out files on your host. To configure a new machine
+       to use @file{host-aout.c}, specify:
+
+|      TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec
+|      TDEPFILES= host-aout.o trad-core.o
+
+       in the @file{config/@var{XXX}.mt} file, and modify @file{configure.in}
+       to use the
+       @file{@var{XXX}.mt} file (by setting "<<bfd_target=XXX>>") when your
+       configuration is selected.  */
+
+/* Some assumptions:
+   * Any BFD with D_PAGED set is ZMAGIC, and vice versa.
+     Doesn't matter what the setting of WP_TEXT is on output, but it'll
+     get set on input.
+   * Any BFD with D_PAGED clear and WP_TEXT set is NMAGIC.
+   * Any BFD with both flags clear is OMAGIC.
+   (Just want to make these explicit, so the conditions tested in this
+   file make sense if you're more familiar with a.out than with BFD.)  */
+
+#define KEEPIT udata.i
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "safe-ctype.h"
+#include "bfdlink.h"
+
+#include "libaout.h"
+#include "libbfd.h"
+#include "aout/aout64.h"
+#include "aout/stab_gnu.h"
+#include "aout/ar.h"
+
+static bfd_boolean aout_get_external_symbols
+  PARAMS ((bfd *));
+static bfd_boolean translate_from_native_sym_flags
+  PARAMS ((bfd *, aout_symbol_type *));
+static bfd_boolean translate_to_native_sym_flags
+  PARAMS ((bfd *, asymbol *, struct external_nlist *));
+static void adjust_o_magic
+  PARAMS ((bfd *, struct internal_exec *));
+static void adjust_z_magic
+  PARAMS ((bfd *, struct internal_exec *));
+static void adjust_n_magic
+  PARAMS ((bfd *, struct internal_exec *));
+reloc_howto_type * NAME(aout,reloc_type_lookup)
+  PARAMS ((bfd *, bfd_reloc_code_real_type));
+
+/*
+SUBSECTION
+       Relocations
+
+DESCRIPTION
+       The file @file{aoutx.h} provides for both the @emph{standard}
+       and @emph{extended} forms of a.out relocation records.
+
+       The standard records contain only an
+       address, a symbol index, and a type field. The extended records
+       (used on 29ks and sparcs) also have a full integer for an
+       addend.  */
+
+#ifndef CTOR_TABLE_RELOC_HOWTO
+#define CTOR_TABLE_RELOC_IDX 2
+#define CTOR_TABLE_RELOC_HOWTO(BFD)                                    \
+  ((obj_reloc_entry_size (BFD) == RELOC_EXT_SIZE                       \
+    ? howto_table_ext : howto_table_std)                               \
+   + CTOR_TABLE_RELOC_IDX)
+#endif
+
+#ifndef MY_swap_std_reloc_in
+#define MY_swap_std_reloc_in NAME(aout,swap_std_reloc_in)
+#endif
+
+#ifndef MY_swap_ext_reloc_in
+#define MY_swap_ext_reloc_in NAME(aout,swap_ext_reloc_in)
+#endif
+
+#ifndef MY_swap_std_reloc_out
+#define MY_swap_std_reloc_out NAME(aout,swap_std_reloc_out)
+#endif
+
+#ifndef MY_swap_ext_reloc_out
+#define MY_swap_ext_reloc_out NAME(aout,swap_ext_reloc_out)
+#endif
+
+#ifndef MY_final_link_relocate
+#define MY_final_link_relocate _bfd_final_link_relocate
+#endif
+
+#ifndef MY_relocate_contents
+#define MY_relocate_contents _bfd_relocate_contents
+#endif
+
+#define howto_table_ext NAME(aout,ext_howto_table)
+#define howto_table_std NAME(aout,std_howto_table)
+
+reloc_howto_type howto_table_ext[] =
+{
+  /* type           rs   size bsz  pcrel bitpos ovrf                  sf name          part_inpl readmask setmask pcdone.  */
+  HOWTO(RELOC_8,      0,  0,   8,  FALSE, 0, complain_overflow_bitfield,0,"8",        FALSE, 0,0x000000ff, FALSE),
+  HOWTO(RELOC_16,     0,  1,   16, FALSE, 0, complain_overflow_bitfield,0,"16",       FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(RELOC_32,     0,  2,   32, FALSE, 0, complain_overflow_bitfield,0,"32",       FALSE, 0,0xffffffff, FALSE),
+  HOWTO(RELOC_DISP8,  0,  0,   8,  TRUE,  0, complain_overflow_signed,0,"DISP8",       FALSE, 0,0x000000ff, FALSE),
+  HOWTO(RELOC_DISP16, 0,  1,   16, TRUE,  0, complain_overflow_signed,0,"DISP16",      FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(RELOC_DISP32, 0,  2,   32, TRUE,  0, complain_overflow_signed,0,"DISP32",      FALSE, 0,0xffffffff, FALSE),
+  HOWTO(RELOC_WDISP30,2,  2,   30, TRUE,  0, complain_overflow_signed,0,"WDISP30",     FALSE, 0,0x3fffffff, FALSE),
+  HOWTO(RELOC_WDISP22,2,  2,   22, TRUE,  0, complain_overflow_signed,0,"WDISP22",     FALSE, 0,0x003fffff, FALSE),
+  HOWTO(RELOC_HI22,   10, 2,   22, FALSE, 0, complain_overflow_bitfield,0,"HI22",      FALSE, 0,0x003fffff, FALSE),
+  HOWTO(RELOC_22,     0,  2,   22, FALSE, 0, complain_overflow_bitfield,0,"22",       FALSE, 0,0x003fffff, FALSE),
+  HOWTO(RELOC_13,     0,  2,   13, FALSE, 0, complain_overflow_bitfield,0,"13",       FALSE, 0,0x00001fff, FALSE),
+  HOWTO(RELOC_LO10,   0,  2,   10, FALSE, 0, complain_overflow_dont,0,"LO10",     FALSE, 0,0x000003ff, FALSE),
+  HOWTO(RELOC_SFA_BASE,0, 2,   32, FALSE, 0, complain_overflow_bitfield,0,"SFA_BASE", FALSE, 0,0xffffffff, FALSE),
+  HOWTO(RELOC_SFA_OFF13,0,2,   32, FALSE, 0, complain_overflow_bitfield,0,"SFA_OFF13",FALSE, 0,0xffffffff, FALSE),
+  HOWTO(RELOC_BASE10, 0,  2,   10, FALSE, 0, complain_overflow_dont,0,"BASE10",   FALSE, 0,0x000003ff, FALSE),
+  HOWTO(RELOC_BASE13, 0,  2,   13, FALSE, 0, complain_overflow_signed,0,"BASE13",   FALSE, 0,0x00001fff, FALSE),
+  HOWTO(RELOC_BASE22, 10, 2,   22, FALSE, 0, complain_overflow_bitfield,0,"BASE22",   FALSE, 0,0x003fffff, FALSE),
+  HOWTO(RELOC_PC10,   0,  2,   10, TRUE,  0, complain_overflow_dont,0,"PC10",  FALSE, 0,0x000003ff, TRUE),
+  HOWTO(RELOC_PC22,   10,  2,  22, TRUE,  0, complain_overflow_signed,0,"PC22", FALSE, 0,0x003fffff, TRUE),
+  HOWTO(RELOC_JMP_TBL,2,  2,   30, TRUE,  0, complain_overflow_signed,0,"JMP_TBL",     FALSE, 0,0x3fffffff, FALSE),
+  HOWTO(RELOC_SEGOFF16,0, 2,   0,  FALSE, 0, complain_overflow_bitfield,0,"SEGOFF16",  FALSE, 0,0x00000000, FALSE),
+  HOWTO(RELOC_GLOB_DAT,0, 2,   0,  FALSE, 0, complain_overflow_bitfield,0,"GLOB_DAT",  FALSE, 0,0x00000000, FALSE),
+  HOWTO(RELOC_JMP_SLOT,0, 2,   0,  FALSE, 0, complain_overflow_bitfield,0,"JMP_SLOT",  FALSE, 0,0x00000000, FALSE),
+  HOWTO(RELOC_RELATIVE,0, 2,   0,  FALSE, 0, complain_overflow_bitfield,0,"RELATIVE",  FALSE, 0,0x00000000, FALSE),
+  HOWTO(0,  0, 0,    0,  FALSE, 0, complain_overflow_dont, 0, "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(0,  0, 0,    0,  FALSE, 0, complain_overflow_dont, 0, "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+#define RELOC_SPARC_REV32 RELOC_WDISP19
+  HOWTO(RELOC_SPARC_REV32,    0,  2,   32, FALSE, 0, complain_overflow_dont,0,"R_SPARC_REV32",       FALSE, 0,0xffffffff, FALSE),
+};
+
+/* Convert standard reloc records to "arelent" format (incl byte swap).  */
+
+reloc_howto_type howto_table_std[] =
+{
+  /* type              rs size bsz  pcrel bitpos ovrf                     sf name     part_inpl readmask  setmask    pcdone.  */
+HOWTO ( 0,            0,  0,   8,  FALSE, 0, complain_overflow_bitfield,0,"8",         TRUE, 0x000000ff,0x000000ff, FALSE),
+HOWTO ( 1,            0,  1,   16, FALSE, 0, complain_overflow_bitfield,0,"16",        TRUE, 0x0000ffff,0x0000ffff, FALSE),
+HOWTO ( 2,            0,  2,   32, FALSE, 0, complain_overflow_bitfield,0,"32",        TRUE, 0xffffffff,0xffffffff, FALSE),
+HOWTO ( 3,            0,  4,   64, FALSE, 0, complain_overflow_bitfield,0,"64",        TRUE, 0xdeaddead,0xdeaddead, FALSE),
+HOWTO ( 4,            0,  0,   8,  TRUE,  0, complain_overflow_signed,  0,"DISP8",     TRUE, 0x000000ff,0x000000ff, FALSE),
+HOWTO ( 5,            0,  1,   16, TRUE,  0, complain_overflow_signed,  0,"DISP16",    TRUE, 0x0000ffff,0x0000ffff, FALSE),
+HOWTO ( 6,            0,  2,   32, TRUE,  0, complain_overflow_signed,  0,"DISP32",    TRUE, 0xffffffff,0xffffffff, FALSE),
+HOWTO ( 7,            0,  4,   64, TRUE,  0, complain_overflow_signed,  0,"DISP64",    TRUE, 0xfeedface,0xfeedface, FALSE),
+HOWTO ( 8,            0,  2,    0, FALSE, 0, complain_overflow_bitfield,0,"GOT_REL",   FALSE,         0,0x00000000, FALSE),
+HOWTO ( 9,            0,  1,   16, FALSE, 0, complain_overflow_bitfield,0,"BASE16",    FALSE,0xffffffff,0xffffffff, FALSE),
+HOWTO (10,            0,  2,   32, FALSE, 0, complain_overflow_bitfield,0,"BASE32",    FALSE,0xffffffff,0xffffffff, FALSE),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+  HOWTO (16,          0,  2,    0, FALSE, 0, complain_overflow_bitfield,0,"JMP_TABLE", FALSE,         0,0x00000000, FALSE),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+  HOWTO (32,          0,  2,    0, FALSE, 0, complain_overflow_bitfield,0,"RELATIVE",  FALSE,         0,0x00000000, FALSE),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+EMPTY_HOWTO (-1),
+  HOWTO (40,          0,  2,    0, FALSE, 0, complain_overflow_bitfield,0,"BASEREL",   FALSE,         0,0x00000000, FALSE),
+};
+
+#define TABLE_SIZE(TABLE)      (sizeof (TABLE) / sizeof (TABLE[0]))
+
+reloc_howto_type *
+NAME(aout,reloc_type_lookup) (abfd,code)
+     bfd *abfd;
+     bfd_reloc_code_real_type code;
+{
+#define EXT(i, j)      case i: return &howto_table_ext[j]
+#define STD(i, j)      case i: return &howto_table_std[j]
+  int ext = obj_reloc_entry_size (abfd) == RELOC_EXT_SIZE;
+
+  if (code == BFD_RELOC_CTOR)
+    switch (bfd_get_arch_info (abfd)->bits_per_address)
+      {
+      case 32:
+       code = BFD_RELOC_32;
+       break;
+      case 64:
+       code = BFD_RELOC_64;
+       break;
+      }
+
+  if (ext)
+    switch (code)
+      {
+       EXT (BFD_RELOC_8, 0);
+       EXT (BFD_RELOC_16, 1);
+       EXT (BFD_RELOC_32, 2);
+       EXT (BFD_RELOC_HI22, 8);
+       EXT (BFD_RELOC_LO10, 11);
+       EXT (BFD_RELOC_32_PCREL_S2, 6);
+       EXT (BFD_RELOC_SPARC_WDISP22, 7);
+       EXT (BFD_RELOC_SPARC13, 10);
+       EXT (BFD_RELOC_SPARC_GOT10, 14);
+       EXT (BFD_RELOC_SPARC_BASE13, 15);
+       EXT (BFD_RELOC_SPARC_GOT13, 15);
+       EXT (BFD_RELOC_SPARC_GOT22, 16);
+       EXT (BFD_RELOC_SPARC_PC10, 17);
+       EXT (BFD_RELOC_SPARC_PC22, 18);
+       EXT (BFD_RELOC_SPARC_WPLT30, 19);
+       EXT (BFD_RELOC_SPARC_REV32, 26);
+      default: return (reloc_howto_type *) NULL;
+      }
+  else
+    /* std relocs.  */
+    switch (code)
+      {
+       STD (BFD_RELOC_8, 0);
+       STD (BFD_RELOC_16, 1);
+       STD (BFD_RELOC_32, 2);
+       STD (BFD_RELOC_8_PCREL, 4);
+       STD (BFD_RELOC_16_PCREL, 5);
+       STD (BFD_RELOC_32_PCREL, 6);
+       STD (BFD_RELOC_16_BASEREL, 9);
+       STD (BFD_RELOC_32_BASEREL, 10);
+      default: return (reloc_howto_type *) NULL;
+      }
+}
+
+/*
+SUBSECTION
+       Internal entry points
+
+DESCRIPTION
+       @file{aoutx.h} exports several routines for accessing the
+       contents of an a.out file, which are gathered and exported in
+       turn by various format specific files (eg sunos.c).
+
+*/
+
+/*
+FUNCTION
+        aout_@var{size}_swap_exec_header_in
+
+SYNOPSIS
+       void aout_@var{size}_swap_exec_header_in,
+           (bfd *abfd,
+            struct external_exec *raw_bytes,
+            struct internal_exec *execp);
+
+DESCRIPTION
+       Swap the information in an executable header @var{raw_bytes} taken
+       from a raw byte stream memory image into the internal exec header
+       structure @var{execp}.
+*/
+
+#ifndef NAME_swap_exec_header_in
+void
+NAME(aout,swap_exec_header_in) (abfd, raw_bytes, execp)
+     bfd *abfd;
+     struct external_exec *raw_bytes;
+     struct internal_exec *execp;
+{
+  struct external_exec *bytes = (struct external_exec *)raw_bytes;
+
+  /* The internal_exec structure has some fields that are unused in this
+     configuration (IE for i960), so ensure that all such uninitialized
+     fields are zero'd out.  There are places where two of these structs
+     are memcmp'd, and thus the contents do matter.  */
+  memset ((PTR) execp, 0, sizeof (struct internal_exec));
+  /* Now fill in fields in the execp, from the bytes in the raw data.  */
+  execp->a_info   = H_GET_32 (abfd, bytes->e_info);
+  execp->a_text   = GET_WORD (abfd, bytes->e_text);
+  execp->a_data   = GET_WORD (abfd, bytes->e_data);
+  execp->a_bss    = GET_WORD (abfd, bytes->e_bss);
+  execp->a_syms   = GET_WORD (abfd, bytes->e_syms);
+  execp->a_entry  = GET_WORD (abfd, bytes->e_entry);
+  execp->a_trsize = GET_WORD (abfd, bytes->e_trsize);
+  execp->a_drsize = GET_WORD (abfd, bytes->e_drsize);
+}
+#define NAME_swap_exec_header_in NAME(aout,swap_exec_header_in)
+#endif
+
+/*
+FUNCTION
+       aout_@var{size}_swap_exec_header_out
+
+SYNOPSIS
+       void aout_@var{size}_swap_exec_header_out
+         (bfd *abfd,
+          struct internal_exec *execp,
+          struct external_exec *raw_bytes);
+
+DESCRIPTION
+       Swap the information in an internal exec header structure
+       @var{execp} into the buffer @var{raw_bytes} ready for writing to disk.
+*/
+void
+NAME(aout,swap_exec_header_out) (abfd, execp, raw_bytes)
+     bfd *abfd;
+     struct internal_exec *execp;
+     struct external_exec *raw_bytes;
+{
+  struct external_exec *bytes = (struct external_exec *)raw_bytes;
+
+  /* Now fill in fields in the raw data, from the fields in the exec struct.  */
+  H_PUT_32 (abfd, execp->a_info  , bytes->e_info);
+  PUT_WORD (abfd, execp->a_text  , bytes->e_text);
+  PUT_WORD (abfd, execp->a_data  , bytes->e_data);
+  PUT_WORD (abfd, execp->a_bss   , bytes->e_bss);
+  PUT_WORD (abfd, execp->a_syms  , bytes->e_syms);
+  PUT_WORD (abfd, execp->a_entry , bytes->e_entry);
+  PUT_WORD (abfd, execp->a_trsize, bytes->e_trsize);
+  PUT_WORD (abfd, execp->a_drsize, bytes->e_drsize);
+}
+
+/* Make all the section for an a.out file.  */
+
+bfd_boolean
+NAME(aout,make_sections) (abfd)
+     bfd *abfd;
+{
+  if (obj_textsec (abfd) == (asection *) NULL
+      && bfd_make_section (abfd, ".text") == (asection *) NULL)
+    return FALSE;
+  if (obj_datasec (abfd) == (asection *) NULL
+      && bfd_make_section (abfd, ".data") == (asection *) NULL)
+    return FALSE;
+  if (obj_bsssec (abfd) == (asection *) NULL
+      && bfd_make_section (abfd, ".bss") == (asection *) NULL)
+    return FALSE;
+  return TRUE;
+}
+
+/*
+FUNCTION
+       aout_@var{size}_some_aout_object_p
+
+SYNOPSIS
+       const bfd_target *aout_@var{size}_some_aout_object_p
+        (bfd *abfd,
+         const bfd_target *(*callback_to_real_object_p) ());
+
+DESCRIPTION
+       Some a.out variant thinks that the file open in @var{abfd}
+       checking is an a.out file.  Do some more checking, and set up
+       for access if it really is.  Call back to the calling
+       environment's "finish up" function just before returning, to
+       handle any last-minute setup.
+*/
+
+const bfd_target *
+NAME(aout,some_aout_object_p) (abfd, execp, callback_to_real_object_p)
+     bfd *abfd;
+     struct internal_exec *execp;
+     const bfd_target *(*callback_to_real_object_p) PARAMS ((bfd *));
+{
+  struct aout_data_struct *rawptr, *oldrawptr;
+  const bfd_target *result;
+  bfd_size_type amt = sizeof (struct aout_data_struct);
+
+  rawptr = (struct aout_data_struct  *) bfd_zalloc (abfd, amt);
+  if (rawptr == NULL)
+    return 0;
+
+  oldrawptr = abfd->tdata.aout_data;
+  abfd->tdata.aout_data = rawptr;
+
+  /* Copy the contents of the old tdata struct.
+     In particular, we want the subformat, since for hpux it was set in
+     hp300hpux.c:swap_exec_header_in and will be used in
+     hp300hpux.c:callback.  */
+  if (oldrawptr != NULL)
+    *abfd->tdata.aout_data = *oldrawptr;
+
+  abfd->tdata.aout_data->a.hdr = &rawptr->e;
+  /* Copy in the internal_exec struct.  */
+  *(abfd->tdata.aout_data->a.hdr) = *execp;
+  execp = abfd->tdata.aout_data->a.hdr;
+
+  /* Set the file flags.  */
+  abfd->flags = BFD_NO_FLAGS;
+  if (execp->a_drsize || execp->a_trsize)
+    abfd->flags |= HAS_RELOC;
+  /* Setting of EXEC_P has been deferred to the bottom of this function.  */
+  if (execp->a_syms)
+    abfd->flags |= HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS;
+  if (N_DYNAMIC (*execp))
+    abfd->flags |= DYNAMIC;
+
+  if (N_MAGIC (*execp) == ZMAGIC)
+    {
+      abfd->flags |= D_PAGED | WP_TEXT;
+      adata (abfd).magic = z_magic;
+    }
+  else if (N_MAGIC (*execp) == QMAGIC)
+    {
+      abfd->flags |= D_PAGED | WP_TEXT;
+      adata (abfd).magic = z_magic;
+      adata (abfd).subformat = q_magic_format;
+    }
+  else if (N_MAGIC (*execp) == NMAGIC)
+    {
+      abfd->flags |= WP_TEXT;
+      adata (abfd).magic = n_magic;
+    }
+  else if (N_MAGIC (*execp) == OMAGIC
+          || N_MAGIC (*execp) == BMAGIC)
+    adata (abfd).magic = o_magic;
+  else
+    {
+      /* Should have been checked with N_BADMAG before this routine
+        was called.  */
+      abort ();
+    }
+
+  bfd_get_start_address (abfd) = execp->a_entry;
+
+  obj_aout_symbols (abfd) = (aout_symbol_type *)NULL;
+  bfd_get_symcount (abfd) = execp->a_syms / sizeof (struct external_nlist);
+
+  /* The default relocation entry size is that of traditional V7 Unix.  */
+  obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
+
+  /* The default symbol entry size is that of traditional Unix.  */
+  obj_symbol_entry_size (abfd) = EXTERNAL_NLIST_SIZE;
+
+#ifdef USE_MMAP
+  bfd_init_window (&obj_aout_sym_window (abfd));
+  bfd_init_window (&obj_aout_string_window (abfd));
+#endif
+  obj_aout_external_syms (abfd) = NULL;
+  obj_aout_external_strings (abfd) = NULL;
+  obj_aout_sym_hashes (abfd) = NULL;
+
+  if (! NAME(aout,make_sections) (abfd))
+    goto error_ret;
+
+  obj_datasec (abfd)->size = execp->a_data;
+  obj_bsssec (abfd)->size = execp->a_bss;
+
+  obj_textsec (abfd)->flags =
+    (execp->a_trsize != 0
+     ? (SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS | SEC_RELOC)
+     : (SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS));
+  obj_datasec (abfd)->flags =
+    (execp->a_drsize != 0
+     ? (SEC_ALLOC | SEC_LOAD | SEC_DATA | SEC_HAS_CONTENTS | SEC_RELOC)
+     : (SEC_ALLOC | SEC_LOAD | SEC_DATA | SEC_HAS_CONTENTS));
+  obj_bsssec (abfd)->flags = SEC_ALLOC;
+
+#ifdef THIS_IS_ONLY_DOCUMENTATION
+  /* The common code can't fill in these things because they depend
+     on either the start address of the text segment, the rounding
+     up of virtual addresses between segments, or the starting file
+     position of the text segment -- all of which varies among different
+     versions of a.out.  */
+
+  /* Call back to the format-dependent code to fill in the rest of the
+     fields and do any further cleanup.  Things that should be filled
+     in by the callback:  */
+
+  struct exec *execp = exec_hdr (abfd);
+
+  obj_textsec (abfd)->size = N_TXTSIZE (*execp);
+  /* Data and bss are already filled in since they're so standard.  */
+
+  /* The virtual memory addresses of the sections.  */
+  obj_textsec (abfd)->vma = N_TXTADDR (*execp);
+  obj_datasec (abfd)->vma = N_DATADDR (*execp);
+  obj_bsssec  (abfd)->vma = N_BSSADDR (*execp);
+
+  /* The file offsets of the sections.  */
+  obj_textsec (abfd)->filepos = N_TXTOFF (*execp);
+  obj_datasec (abfd)->filepos = N_DATOFF (*execp);
+
+  /* The file offsets of the relocation info.  */
+  obj_textsec (abfd)->rel_filepos = N_TRELOFF (*execp);
+  obj_datasec (abfd)->rel_filepos = N_DRELOFF (*execp);
+
+  /* The file offsets of the string table and symbol table.  */
+  obj_str_filepos (abfd) = N_STROFF (*execp);
+  obj_sym_filepos (abfd) = N_SYMOFF (*execp);
+
+  /* Determine the architecture and machine type of the object file.  */
+  switch (N_MACHTYPE (*exec_hdr (abfd)))
+    {
+    default:
+      abfd->obj_arch = bfd_arch_obscure;
+      break;
+    }
+
+  adata (abfd)->page_size = TARGET_PAGE_SIZE;
+  adata (abfd)->segment_size = SEGMENT_SIZE;
+  adata (abfd)->exec_bytes_size = EXEC_BYTES_SIZE;
+
+  return abfd->xvec;
+
+  /* The architecture is encoded in various ways in various a.out variants,
+     or is not encoded at all in some of them.  The relocation size depends
+     on the architecture and the a.out variant.  Finally, the return value
+     is the bfd_target vector in use.  If an error occurs, return zero and
+     set bfd_error to the appropriate error code.
+
+     Formats such as b.out, which have additional fields in the a.out
+     header, should cope with them in this callback as well.  */
+#endif                         /* DOCUMENTATION */
+
+  result = (*callback_to_real_object_p) (abfd);
+
+  /* Now that the segment addresses have been worked out, take a better
+     guess at whether the file is executable.  If the entry point
+     is within the text segment, assume it is.  (This makes files
+     executable even if their entry point address is 0, as long as
+     their text starts at zero.).
+
+     This test had to be changed to deal with systems where the text segment
+     runs at a different location than the default.  The problem is that the
+     entry address can appear to be outside the text segment, thus causing an
+     erroneous conclusion that the file isn't executable.
+
+     To fix this, we now accept any non-zero entry point as an indication of
+     executability.  This will work most of the time, since only the linker
+     sets the entry point, and that is likely to be non-zero for most systems.  */
+
+  if (execp->a_entry != 0
+      || (execp->a_entry >= obj_textsec (abfd)->vma
+         && execp->a_entry < (obj_textsec (abfd)->vma
+                              + obj_textsec (abfd)->size)))
+    abfd->flags |= EXEC_P;
+#ifdef STAT_FOR_EXEC
+  else
+    {
+      struct stat stat_buf;
+
+      /* The original heuristic doesn't work in some important cases.
+        The a.out file has no information about the text start
+        address.  For files (like kernels) linked to non-standard
+        addresses (ld -Ttext nnn) the entry point may not be between
+        the default text start (obj_textsec(abfd)->vma) and
+        (obj_textsec(abfd)->vma) + text size.  This is not just a mach
+        issue.  Many kernels are loaded at non standard addresses.  */
+      if (abfd->iostream != NULL
+         && (abfd->flags & BFD_IN_MEMORY) == 0
+         && (fstat (fileno ((FILE *) (abfd->iostream)), &stat_buf) == 0)
+         && ((stat_buf.st_mode & 0111) != 0))
+       abfd->flags |= EXEC_P;
+    }
+#endif /* STAT_FOR_EXEC */
+
+  if (result)
+    {
+#if 0 /* These should be set correctly anyways.  */
+      abfd->sections = obj_textsec (abfd);
+      obj_textsec (abfd)->next = obj_datasec (abfd);
+      obj_datasec (abfd)->next = obj_bsssec (abfd);
+#endif
+      return result;
+    }
+
+ error_ret:
+  bfd_release (abfd, rawptr);
+  abfd->tdata.aout_data = oldrawptr;
+  return NULL;
+}
+
+/*
+FUNCTION
+       aout_@var{size}_mkobject
+
+SYNOPSIS
+       bfd_boolean aout_@var{size}_mkobject, (bfd *abfd);
+
+DESCRIPTION
+       Initialize BFD @var{abfd} for use with a.out files.
+*/
+
+bfd_boolean
+NAME(aout,mkobject) (abfd)
+     bfd *abfd;
+{
+  struct aout_data_struct *rawptr;
+  bfd_size_type amt = sizeof (struct aout_data_struct);
+
+  bfd_set_error (bfd_error_system_call);
+
+  rawptr = (struct aout_data_struct *) bfd_zalloc (abfd, amt);
+  if (rawptr == NULL)
+    return FALSE;
+
+  abfd->tdata.aout_data = rawptr;
+  exec_hdr (abfd) = &(rawptr->e);
+
+  obj_textsec (abfd) = (asection *) NULL;
+  obj_datasec (abfd) = (asection *) NULL;
+  obj_bsssec (abfd) = (asection *) NULL;
+
+  return TRUE;
+}
+
+/*
+FUNCTION
+       aout_@var{size}_machine_type
+
+SYNOPSIS
+       enum machine_type  aout_@var{size}_machine_type
+        (enum bfd_architecture arch,
+         unsigned long machine));
+
+DESCRIPTION
+       Keep track of machine architecture and machine type for
+       a.out's. Return the <<machine_type>> for a particular
+       architecture and machine, or <<M_UNKNOWN>> if that exact architecture
+       and machine can't be represented in a.out format.
+
+       If the architecture is understood, machine type 0 (default)
+       is always understood.
+*/
+
+enum machine_type
+NAME(aout,machine_type) (arch, machine, unknown)
+     enum bfd_architecture arch;
+     unsigned long machine;
+     bfd_boolean *unknown;
+{
+  enum machine_type arch_flags;
+
+  arch_flags = M_UNKNOWN;
+  *unknown = TRUE;
+
+  switch (arch)
+    {
+    case bfd_arch_sparc:
+      if (machine == 0
+         || machine == bfd_mach_sparc
+         || machine == bfd_mach_sparc_sparclite
+         || machine == bfd_mach_sparc_sparclite_le
+         || machine == bfd_mach_sparc_v9)
+       arch_flags = M_SPARC;
+      else if (machine == bfd_mach_sparc_sparclet)
+       arch_flags = M_SPARCLET;
+      break;
+
+    case bfd_arch_m68k:
+      switch (machine)
+       {
+       case 0:               arch_flags = M_68010; break;
+       case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = FALSE; break;
+       case bfd_mach_m68010: arch_flags = M_68010; break;
+       case bfd_mach_m68020: arch_flags = M_68020; break;
+       default:              arch_flags = M_UNKNOWN; break;
+       }
+      break;
+
+    case bfd_arch_i386:
+      if (machine == 0
+         || machine == bfd_mach_i386_i386
+         || machine == bfd_mach_i386_i386_intel_syntax)
+       arch_flags = M_386;
+      break;
+
+    case bfd_arch_a29k:
+      if (machine == 0)
+       arch_flags = M_29K;
+      break;
+
+    case bfd_arch_arm:
+      if (machine == 0)
+       arch_flags = M_ARM;
+      break;
+
+    case bfd_arch_mips:
+      switch (machine)
+       {
+       case 0:
+       case bfd_mach_mips3000:
+       case bfd_mach_mips3900:
+         arch_flags = M_MIPS1;
+         break;
+       case bfd_mach_mips6000:
+         arch_flags = M_MIPS2;
+         break;
+       case bfd_mach_mips4000:
+       case bfd_mach_mips4010:
+       case bfd_mach_mips4100:
+       case bfd_mach_mips4300:
+       case bfd_mach_mips4400:
+       case bfd_mach_mips4600:
+       case bfd_mach_mips4650:
+       case bfd_mach_mips8000:
+       case bfd_mach_mips10000:
+       case bfd_mach_mips12000:
+       case bfd_mach_mips16:
+       case bfd_mach_mipsisa32:
+       case bfd_mach_mipsisa32r2:
+       case bfd_mach_mips5:
+       case bfd_mach_mipsisa64:
+       case bfd_mach_mipsisa64r2:
+       case bfd_mach_mips_sb1:
+         /* FIXME: These should be MIPS3, MIPS4, MIPS16, MIPS32, etc.  */
+         arch_flags = M_MIPS2;
+         break;
+       default:
+         arch_flags = M_UNKNOWN;
+         break;
+       }
+      break;
+
+    case bfd_arch_ns32k:
+      switch (machine)
+       {
+       case 0:         arch_flags = M_NS32532; break;
+       case 32032:     arch_flags = M_NS32032; break;
+       case 32532:     arch_flags = M_NS32532; break;
+       default:        arch_flags = M_UNKNOWN; break;
+       }
+      break;
+
+    case bfd_arch_vax:
+      *unknown = FALSE;
+      break;
+
+    case bfd_arch_cris:
+      if (machine == 0 || machine == 255)
+       arch_flags = M_CRIS;
+      break;
+
+    case bfd_arch_m88k:
+      *unknown = FALSE;
+      break;
+
+    default:
+      arch_flags = M_UNKNOWN;
+    }
+
+  if (arch_flags != M_UNKNOWN)
+    *unknown = FALSE;
+
+  return arch_flags;
+}
+
+/*
+FUNCTION
+       aout_@var{size}_set_arch_mach
+
+SYNOPSIS
+       bfd_boolean aout_@var{size}_set_arch_mach,
+        (bfd *,
+         enum bfd_architecture arch,
+         unsigned long machine));
+
+DESCRIPTION
+       Set the architecture and the machine of the BFD @var{abfd} to the
+       values @var{arch} and @var{machine}.  Verify that @var{abfd}'s format
+       can support the architecture required.
+*/
+
+bfd_boolean
+NAME(aout,set_arch_mach) (abfd, arch, machine)
+     bfd *abfd;
+     enum bfd_architecture arch;
+     unsigned long machine;
+{
+  if (! bfd_default_set_arch_mach (abfd, arch, machine))
+    return FALSE;
+
+  if (arch != bfd_arch_unknown)
+    {
+      bfd_boolean unknown;
+
+      NAME(aout,machine_type) (arch, machine, &unknown);
+      if (unknown)
+       return FALSE;
+    }
+
+  /* Determine the size of a relocation entry.  */
+  switch (arch)
+    {
+    case bfd_arch_sparc:
+    case bfd_arch_a29k:
+    case bfd_arch_mips:
+      obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;
+      break;
+    default:
+      obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
+      break;
+    }
+
+  return (*aout_backend_info (abfd)->set_sizes) (abfd);
+}
+
+static void
+adjust_o_magic (abfd, execp)
+     bfd *abfd;
+     struct internal_exec *execp;
+{
+  file_ptr pos = adata (abfd).exec_bytes_size;
+  bfd_vma vma = 0;
+  int pad = 0;
+
+  /* Text.  */
+  obj_textsec (abfd)->filepos = pos;
+  if (!obj_textsec (abfd)->user_set_vma)
+    obj_textsec (abfd)->vma = vma;
+  else
+    vma = obj_textsec (abfd)->vma;
+
+  pos += obj_textsec (abfd)->size;
+  vma += obj_textsec (abfd)->size;
+
+  /* Data.  */
+  if (!obj_datasec (abfd)->user_set_vma)
+    {
+#if 0      /* ?? Does alignment in the file image really matter?  */
+      pad = align_power (vma, obj_datasec (abfd)->alignment_power) - vma;
+#endif
+      obj_textsec (abfd)->size += pad;
+      pos += pad;
+      vma += pad;
+      obj_datasec (abfd)->vma = vma;
+    }
+  else
+    vma = obj_datasec (abfd)->vma;
+  obj_datasec (abfd)->filepos = pos;
+  pos += obj_datasec (abfd)->size;
+  vma += obj_datasec (abfd)->size;
+
+  /* BSS.  */
+  if (!obj_bsssec (abfd)->user_set_vma)
+    {
+#if 0
+      pad = align_power (vma, obj_bsssec (abfd)->alignment_power) - vma;
+#endif
+      obj_datasec (abfd)->size += pad;
+      pos += pad;
+      vma += pad;
+      obj_bsssec (abfd)->vma = vma;
+    }
+  else
+    {
+      /* The VMA of the .bss section is set by the VMA of the
+         .data section plus the size of the .data section.  We may
+         need to add padding bytes to make this true.  */
+      pad = obj_bsssec (abfd)->vma - vma;
+      if (pad > 0)
+       {
+         obj_datasec (abfd)->size += pad;
+         pos += pad;
+       }
+    }
+  obj_bsssec (abfd)->filepos = pos;
+
+  /* Fix up the exec header.  */
+  execp->a_text = obj_textsec (abfd)->size;
+  execp->a_data = obj_datasec (abfd)->size;
+  execp->a_bss = obj_bsssec (abfd)->size;
+  N_SET_MAGIC (*execp, OMAGIC);
+}
+
+static void
+adjust_z_magic (abfd, execp)
+     bfd *abfd;
+     struct internal_exec *execp;
+{
+  bfd_size_type data_pad, text_pad;
+  file_ptr text_end;
+  const struct aout_backend_data *abdp;
+  int ztih;                    /* Nonzero if text includes exec header.  */
+
+  abdp = aout_backend_info (abfd);
+
+  /* Text.  */
+  ztih = (abdp != NULL
+         && (abdp->text_includes_header
+             || obj_aout_subformat (abfd) == q_magic_format));
+  obj_textsec (abfd)->filepos = (ztih
+                                ? adata (abfd).exec_bytes_size
+                                : adata (abfd).zmagic_disk_block_size);
+  if (! obj_textsec (abfd)->user_set_vma)
+    {
+      /* ?? Do we really need to check for relocs here?  */
+      obj_textsec (abfd)->vma = ((abfd->flags & HAS_RELOC)
+                                ? 0
+                                : (ztih
+                                   ? (abdp->default_text_vma
+                                      + adata (abfd).exec_bytes_size)
+                                   : abdp->default_text_vma));
+      text_pad = 0;
+    }
+  else
+    {
+      /* The .text section is being loaded at an unusual address.  We
+         may need to pad it such that the .data section starts at a page
+         boundary.  */
+      if (ztih)
+       text_pad = ((obj_textsec (abfd)->filepos - obj_textsec (abfd)->vma)
+                   & (adata (abfd).page_size - 1));
+      else
+       text_pad = ((- obj_textsec (abfd)->vma)
+                   & (adata (abfd).page_size - 1));
+    }
+
+  /* Find start of data.  */
+  if (ztih)
+    {
+      text_end = obj_textsec (abfd)->filepos + obj_textsec (abfd)->size;
+      text_pad += BFD_ALIGN (text_end, adata (abfd).page_size) - text_end;
+    }
+  else
+    {
+      /* Note that if page_size == zmagic_disk_block_size, then
+        filepos == page_size, and this case is the same as the ztih
+        case.  */
+      text_end = obj_textsec (abfd)->size;
+      text_pad += BFD_ALIGN (text_end, adata (abfd).page_size) - text_end;
+      text_end += obj_textsec (abfd)->filepos;
+    }
+  obj_textsec (abfd)->size += text_pad;
+  text_end += text_pad;
+
+  /* Data.  */
+  if (!obj_datasec (abfd)->user_set_vma)
+    {
+      bfd_vma vma;
+      vma = obj_textsec (abfd)->vma + obj_textsec (abfd)->size;
+      obj_datasec (abfd)->vma = BFD_ALIGN (vma, adata (abfd).segment_size);
+    }
+  if (abdp && abdp->zmagic_mapped_contiguous)
+    {
+      asection * text = obj_textsec (abfd);
+      asection * data = obj_datasec (abfd);
+
+      text_pad = data->vma - (text->vma + text->size);
+      /* Only pad the text section if the data
+        section is going to be placed after it.  */
+      if (text_pad > 0)
+       text->size += text_pad;
+    }
+  obj_datasec (abfd)->filepos = (obj_textsec (abfd)->filepos
+                                + obj_textsec (abfd)->size);
+
+  /* Fix up exec header while we're at it.  */
+  execp->a_text = obj_textsec (abfd)->size;
+  if (ztih && (!abdp || (abdp && !abdp->exec_header_not_counted)))
+    execp->a_text += adata (abfd).exec_bytes_size;
+  if (obj_aout_subformat (abfd) == q_magic_format)
+    N_SET_MAGIC (*execp, QMAGIC);
+  else
+    N_SET_MAGIC (*execp, ZMAGIC);
+
+  /* Spec says data section should be rounded up to page boundary.  */
+  obj_datasec (abfd)->size
+    = align_power (obj_datasec (abfd)->size,
+                  obj_bsssec (abfd)->alignment_power);
+  execp->a_data = BFD_ALIGN (obj_datasec (abfd)->size,
+                            adata (abfd).page_size);
+  data_pad = execp->a_data - obj_datasec (abfd)->size;
+
+  /* BSS.  */
+  if (!obj_bsssec (abfd)->user_set_vma)
+    obj_bsssec (abfd)->vma = (obj_datasec (abfd)->vma
+                             + obj_datasec (abfd)->size);
+  /* If the BSS immediately follows the data section and extra space
+     in the page is left after the data section, fudge data
+     in the header so that the bss section looks smaller by that
+     amount.  We'll start the bss section there, and lie to the OS.
+     (Note that a linker script, as well as the above assignment,
+     could have explicitly set the BSS vma to immediately follow
+     the data section.)  */
+  if (align_power (obj_bsssec (abfd)->vma, obj_bsssec (abfd)->alignment_power)
+      == obj_datasec (abfd)->vma + obj_datasec (abfd)->size)
+    execp->a_bss = (data_pad > obj_bsssec (abfd)->size
+                   ? 0 : obj_bsssec (abfd)->size - data_pad);
+  else
+    execp->a_bss = obj_bsssec (abfd)->size;
+}
+
+static void
+adjust_n_magic (abfd, execp)
+     bfd *abfd;
+     struct internal_exec *execp;
+{
+  file_ptr pos = adata (abfd).exec_bytes_size;
+  bfd_vma vma = 0;
+  int pad;
+
+  /* Text.  */
+  obj_textsec (abfd)->filepos = pos;
+  if (!obj_textsec (abfd)->user_set_vma)
+    obj_textsec (abfd)->vma = vma;
+  else
+    vma = obj_textsec (abfd)->vma;
+  pos += obj_textsec (abfd)->size;
+  vma += obj_textsec (abfd)->size;
+
+  /* Data.  */
+  obj_datasec (abfd)->filepos = pos;
+  if (!obj_datasec (abfd)->user_set_vma)
+    obj_datasec (abfd)->vma = BFD_ALIGN (vma, adata (abfd).segment_size);
+  vma = obj_datasec (abfd)->vma;
+
+  /* Since BSS follows data immediately, see if it needs alignment.  */
+  vma += obj_datasec (abfd)->size;
+  pad = align_power (vma, obj_bsssec (abfd)->alignment_power) - vma;
+  obj_datasec (abfd)->size += pad;
+  pos += obj_datasec (abfd)->size;
+
+  /* BSS.  */
+  if (!obj_bsssec (abfd)->user_set_vma)
+    obj_bsssec (abfd)->vma = vma;
+  else
+    vma = obj_bsssec (abfd)->vma;
+
+  /* Fix up exec header.  */
+  execp->a_text = obj_textsec (abfd)->size;
+  execp->a_data = obj_datasec (abfd)->size;
+  execp->a_bss = obj_bsssec (abfd)->size;
+  N_SET_MAGIC (*execp, NMAGIC);
+}
+
+bfd_boolean
+NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end)
+     bfd *abfd;
+     bfd_size_type *text_size;
+     file_ptr *text_end ATTRIBUTE_UNUSED;
+{
+  struct internal_exec *execp = exec_hdr (abfd);
+
+  if (! NAME(aout,make_sections) (abfd))
+    return FALSE;
+
+  if (adata (abfd).magic != undecided_magic)
+    return TRUE;
+
+  obj_textsec (abfd)->size =
+    align_power (obj_textsec (abfd)->size,
+                obj_textsec (abfd)->alignment_power);
+
+  *text_size = obj_textsec (abfd)->size;
+  /* Rule (heuristic) for when to pad to a new page.  Note that there
+     are (at least) two ways demand-paged (ZMAGIC) files have been
+     handled.  Most Berkeley-based systems start the text segment at
+     (TARGET_PAGE_SIZE).  However, newer versions of SUNOS start the text
+     segment right after the exec header; the latter is counted in the
+     text segment size, and is paged in by the kernel with the rest of
+     the text.  */
+
+  /* This perhaps isn't the right way to do this, but made it simpler for me
+     to understand enough to implement it.  Better would probably be to go
+     right from BFD flags to alignment/positioning characteristics.  But the
+     old code was sloppy enough about handling the flags, and had enough
+     other magic, that it was a little hard for me to understand.  I think
+     I understand it better now, but I haven't time to do the cleanup this
+     minute.  */
+
+  if (abfd->flags & D_PAGED)
+    /* Whether or not WP_TEXT is set -- let D_PAGED override.  */
+    adata (abfd).magic = z_magic;
+  else if (abfd->flags & WP_TEXT)
+    adata (abfd).magic = n_magic;
+  else
+    adata (abfd).magic = o_magic;
+
+#ifdef BFD_AOUT_DEBUG /* requires gcc2 */
+#if __GNUC__ >= 2
+  fprintf (stderr, "%s text=<%x,%x,%x> data=<%x,%x,%x> bss=<%x,%x,%x>\n",
+          ({ char *str;
+             switch (adata (abfd).magic)
+               {
+               case n_magic: str = "NMAGIC"; break;
+               case o_magic: str = "OMAGIC"; break;
+               case z_magic: str = "ZMAGIC"; break;
+               default: abort ();
+               }
+             str;
+           }),
+          obj_textsec (abfd)->vma, obj_textsec (abfd)->size,
+               obj_textsec (abfd)->alignment_power,
+          obj_datasec (abfd)->vma, obj_datasec (abfd)->size,
+               obj_datasec (abfd)->alignment_power,
+          obj_bsssec (abfd)->vma, obj_bsssec (abfd)->size,
+               obj_bsssec (abfd)->alignment_power);
+#endif
+#endif
+
+  switch (adata (abfd).magic)
+    {
+    case o_magic:
+      adjust_o_magic (abfd, execp);
+      break;
+    case z_magic:
+      adjust_z_magic (abfd, execp);
+      break;
+    case n_magic:
+      adjust_n_magic (abfd, execp);
+      break;
+    default:
+      abort ();
+    }
+
+#ifdef BFD_AOUT_DEBUG
+  fprintf (stderr, "       text=<%x,%x,%x> data=<%x,%x,%x> bss=<%x,%x>\n",
+          obj_textsec (abfd)->vma, obj_textsec (abfd)->size,
+               obj_textsec (abfd)->filepos,
+          obj_datasec (abfd)->vma, obj_datasec (abfd)->size,
+               obj_datasec (abfd)->filepos,
+          obj_bsssec (abfd)->vma, obj_bsssec (abfd)->size);
+#endif
+
+  return TRUE;
+}
+
+/*
+FUNCTION
+       aout_@var{size}_new_section_hook
+
+SYNOPSIS
+        bfd_boolean aout_@var{size}_new_section_hook,
+          (bfd *abfd,
+           asection *newsect));
+
+DESCRIPTION
+       Called by the BFD in response to a @code{bfd_make_section}
+       request.
+*/
+bfd_boolean
+NAME(aout,new_section_hook) (abfd, newsect)
+     bfd *abfd;
+     asection *newsect;
+{
+  /* Align to double at least.  */
+  newsect->alignment_power = bfd_get_arch_info (abfd)->section_align_power;
+
+  if (bfd_get_format (abfd) == bfd_object)
+    {
+      if (obj_textsec (abfd) == NULL && !strcmp (newsect->name, ".text"))
+       {
+         obj_textsec (abfd)= newsect;
+         newsect->target_index = N_TEXT;
+         return TRUE;
+       }
+
+      if (obj_datasec (abfd) == NULL && !strcmp (newsect->name, ".data"))
+       {
+         obj_datasec (abfd) = newsect;
+         newsect->target_index = N_DATA;
+         return TRUE;
+       }
+
+      if (obj_bsssec (abfd) == NULL && !strcmp (newsect->name, ".bss"))
+       {
+         obj_bsssec (abfd) = newsect;
+         newsect->target_index = N_BSS;
+         return TRUE;
+       }
+    }
+
+  /* We allow more than three sections internally.  */
+  return TRUE;
+}
+
+bfd_boolean
+NAME(aout,set_section_contents) (abfd, section, location, offset, count)
+     bfd *abfd;
+     sec_ptr section;
+     const PTR location;
+     file_ptr offset;
+     bfd_size_type count;
+{
+  file_ptr text_end;
+  bfd_size_type text_size;
+
+  if (! abfd->output_has_begun)
+    {
+      if (! NAME(aout,adjust_sizes_and_vmas) (abfd, &text_size, &text_end))
+       return FALSE;
+    }
+
+  if (section == obj_bsssec (abfd))
+    {
+      bfd_set_error (bfd_error_no_contents);
+      return FALSE;
+    }
+
+  if (section != obj_textsec (abfd)
+      && section != obj_datasec (abfd))
+    {
+      if (aout_section_merge_with_text_p (abfd, section))
+       section->filepos = obj_textsec (abfd)->filepos +
+                          (section->vma - obj_textsec (abfd)->vma);
+      else
+       {
+          (*_bfd_error_handler)
+          (_("%s: can not represent section `%s' in a.out object file format"),
+            bfd_get_filename (abfd), bfd_get_section_name (abfd, section));
+          bfd_set_error (bfd_error_nonrepresentable_section);
+          return FALSE;
+       }
+    }
+
+  if (count != 0)
+    {
+      if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
+         || bfd_bwrite (location, count, abfd) != count)
+       return FALSE;
+    }
+
+  return TRUE;
+}
+\f
+/* Read the external symbols from an a.out file.  */
+
+static bfd_boolean
+aout_get_external_symbols (abfd)
+     bfd *abfd;
+{
+  if (obj_aout_external_syms (abfd) == (struct external_nlist *) NULL)
+    {
+      bfd_size_type count;
+      struct external_nlist *syms;
+      bfd_size_type amt;
+
+      count = exec_hdr (abfd)->a_syms / EXTERNAL_NLIST_SIZE;
+
+#ifdef USE_MMAP
+      if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd),
+                                exec_hdr (abfd)->a_syms,
+                                &obj_aout_sym_window (abfd), TRUE))
+       return FALSE;
+      syms = (struct external_nlist *) obj_aout_sym_window (abfd).data;
+#else
+      /* We allocate using malloc to make the values easy to free
+        later on.  If we put them on the objalloc it might not be
+        possible to free them.  */
+      syms = ((struct external_nlist *)
+             bfd_malloc (count * EXTERNAL_NLIST_SIZE));
+      if (syms == (struct external_nlist *) NULL && count != 0)
+       return FALSE;
+
+      amt = exec_hdr (abfd)->a_syms;
+      if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0
+         || bfd_bread (syms, amt, abfd) != amt)
+       {
+         free (syms);
+         return FALSE;
+       }
+#endif
+
+      obj_aout_external_syms (abfd) = syms;
+      obj_aout_external_sym_count (abfd) = count;
+    }
+
+  if (obj_aout_external_strings (abfd) == NULL
+      && exec_hdr (abfd)->a_syms != 0)
+    {
+      unsigned char string_chars[BYTES_IN_WORD];
+      bfd_size_type stringsize;
+      char *strings;
+      bfd_size_type amt = BYTES_IN_WORD;
+
+      /* Get the size of the strings.  */
+      if (bfd_seek (abfd, obj_str_filepos (abfd), SEEK_SET) != 0
+         || bfd_bread ((PTR) string_chars, amt, abfd) != amt)
+       return FALSE;
+      stringsize = GET_WORD (abfd, string_chars);
+
+#ifdef USE_MMAP
+      if (! bfd_get_file_window (abfd, obj_str_filepos (abfd), stringsize,
+                                &obj_aout_string_window (abfd), TRUE))
+       return FALSE;
+      strings = (char *) obj_aout_string_window (abfd).data;
+#else
+      strings = (char *) bfd_malloc (stringsize + 1);
+      if (strings == NULL)
+       return FALSE;
+
+      /* Skip space for the string count in the buffer for convenience
+        when using indexes.  */
+      amt = stringsize - BYTES_IN_WORD;
+      if (bfd_bread (strings + BYTES_IN_WORD, amt, abfd) != amt)
+       {
+         free (strings);
+         return FALSE;
+       }
+#endif
+
+      /* Ensure that a zero index yields an empty string.  */
+      strings[0] = '\0';
+
+      strings[stringsize - 1] = 0;
+
+      obj_aout_external_strings (abfd) = strings;
+      obj_aout_external_string_size (abfd) = stringsize;
+    }
+
+  return TRUE;
+}
+
+/* Translate an a.out symbol into a BFD symbol.  The desc, other, type
+   and symbol->value fields of CACHE_PTR will be set from the a.out
+   nlist structure.  This function is responsible for setting
+   symbol->flags and symbol->section, and adjusting symbol->value.  */
+
+static bfd_boolean
+translate_from_native_sym_flags (abfd, cache_ptr)
+     bfd *abfd;
+     aout_symbol_type *cache_ptr;
+{
+  flagword visible;
+
+  if ((cache_ptr->type & N_STAB) != 0
+      || cache_ptr->type == N_FN)
+    {
+      asection *sec;
+
+      /* This is a debugging symbol.  */
+      cache_ptr->symbol.flags = BSF_DEBUGGING;
+
+      /* Work out the symbol section.  */
+      switch (cache_ptr->type & N_TYPE)
+       {
+       case N_TEXT:
+       case N_FN:
+         sec = obj_textsec (abfd);
+         break;
+       case N_DATA:
+         sec = obj_datasec (abfd);
+         break;
+       case N_BSS:
+         sec = obj_bsssec (abfd);
+         break;
+       default:
+       case N_ABS:
+         sec = bfd_abs_section_ptr;
+         break;
+       }
+
+      cache_ptr->symbol.section = sec;
+      cache_ptr->symbol.value -= sec->vma;
+
+      return TRUE;
+    }
+
+  /* Get the default visibility.  This does not apply to all types, so
+     we just hold it in a local variable to use if wanted.  */
+  if ((cache_ptr->type & N_EXT) == 0)
+    visible = BSF_LOCAL;
+  else
+    visible = BSF_GLOBAL;
+
+  switch (cache_ptr->type)
+    {
+    default:
+    case N_ABS: case N_ABS | N_EXT:
+      cache_ptr->symbol.section = bfd_abs_section_ptr;
+      cache_ptr->symbol.flags = visible;
+      break;
+
+    case N_UNDF | N_EXT:
+      if (cache_ptr->symbol.value != 0)
+       {
+         /* This is a common symbol.  */
+         cache_ptr->symbol.flags = BSF_GLOBAL;
+         cache_ptr->symbol.section = bfd_com_section_ptr;
+       }
+      else
+       {
+         cache_ptr->symbol.flags = 0;
+         cache_ptr->symbol.section = bfd_und_section_ptr;
+       }
+      break;
+
+    case N_TEXT: case N_TEXT | N_EXT:
+      cache_ptr->symbol.section = obj_textsec (abfd);
+      cache_ptr->symbol.value -= cache_ptr->symbol.section->vma;
+      cache_ptr->symbol.flags = visible;
+      break;
+
+      /* N_SETV symbols used to represent set vectors placed in the
+        data section.  They are no longer generated.  Theoretically,
+        it was possible to extract the entries and combine them with
+        new ones, although I don't know if that was ever actually
+        done.  Unless that feature is restored, treat them as data
+        symbols.  */
+    case N_SETV: case N_SETV | N_EXT:
+    case N_DATA: case N_DATA | N_EXT:
+      cache_ptr->symbol.section = obj_datasec (abfd);
+      cache_ptr->symbol.value -= cache_ptr->symbol.section->vma;
+      cache_ptr->symbol.flags = visible;
+      break;
+
+    case N_BSS: case N_BSS | N_EXT:
+      cache_ptr->symbol.section = obj_bsssec (abfd);
+      cache_ptr->symbol.value -= cache_ptr->symbol.section->vma;
+      cache_ptr->symbol.flags = visible;
+      break;
+
+    case N_SETA: case N_SETA | N_EXT:
+    case N_SETT: case N_SETT | N_EXT:
+    case N_SETD: case N_SETD | N_EXT:
+    case N_SETB: case N_SETB | N_EXT:
+      {
+       /* This code is no longer needed.  It used to be used to make
+           the linker handle set symbols, but they are now handled in
+           the add_symbols routine instead.  */
+#if 0
+       asection *section;
+       arelent_chain *reloc;
+       asection *into_section;
+       bfd_size_type amt;
+
+       /* This is a set symbol.  The name of the symbol is the name
+          of the set (e.g., __CTOR_LIST__).  The value of the symbol
+          is the value to add to the set.  We create a section with
+          the same name as the symbol, and add a reloc to insert the
+          appropriate value into the section.
+
+          This action is actually obsolete; it used to make the
+          linker do the right thing, but the linker no longer uses
+          this function.  */
+
+       section = bfd_get_section_by_name (abfd, cache_ptr->symbol.name);
+       if (section == NULL)
+         {
+           char *copy;
+
+           amt = strlen (cache_ptr->symbol.name) + 1;
+           copy = bfd_alloc (abfd, amt);
+           if (copy == NULL)
+             return FALSE;
+
+           strcpy (copy, cache_ptr->symbol.name);
+           section = bfd_make_section (abfd, copy);
+           if (section == NULL)
+             return FALSE;
+         }
+
+       amt = sizeof (arelent_chain);
+       reloc = (arelent_chain *) bfd_alloc (abfd, amt);
+       if (reloc == NULL)
+         return FALSE;
+
+       /* Build a relocation entry for the constructor.  */
+       switch (cache_ptr->type & N_TYPE)
+         {
+         case N_SETA:
+           into_section = bfd_abs_section_ptr;
+           cache_ptr->type = N_ABS;
+           break;
+         case N_SETT:
+           into_section = obj_textsec (abfd);
+           cache_ptr->type = N_TEXT;
+           break;
+         case N_SETD:
+           into_section = obj_datasec (abfd);
+           cache_ptr->type = N_DATA;
+           break;
+         case N_SETB:
+           into_section = obj_bsssec (abfd);
+           cache_ptr->type = N_BSS;
+           break;
+         }
+
+       /* Build a relocation pointing into the constructor section
+          pointing at the symbol in the set vector specified.  */
+       reloc->relent.addend = cache_ptr->symbol.value;
+       cache_ptr->symbol.section = into_section;
+       reloc->relent.sym_ptr_ptr = into_section->symbol_ptr_ptr;
+
+       /* We modify the symbol to belong to a section depending upon
+          the name of the symbol, and add to the size of the section
+          to contain a pointer to the symbol. Build a reloc entry to
+          relocate to this symbol attached to this section.  */
+       section->flags = SEC_CONSTRUCTOR | SEC_RELOC;
+
+       section->reloc_count++;
+       section->alignment_power = 2;
+
+       reloc->next = section->constructor_chain;
+       section->constructor_chain = reloc;
+       reloc->relent.address = section->size;
+       section->size += BYTES_IN_WORD;
+
+       reloc->relent.howto = CTOR_TABLE_RELOC_HOWTO (abfd);
+
+#endif /* 0 */
+
+       switch (cache_ptr->type & N_TYPE)
+         {
+         case N_SETA:
+           cache_ptr->symbol.section = bfd_abs_section_ptr;
+           break;
+         case N_SETT:
+           cache_ptr->symbol.section = obj_textsec (abfd);
+           break;
+         case N_SETD:
+           cache_ptr->symbol.section = obj_datasec (abfd);
+           break;
+         case N_SETB:
+           cache_ptr->symbol.section = obj_bsssec (abfd);
+           break;
+         }
+
+       cache_ptr->symbol.flags |= BSF_CONSTRUCTOR;
+      }
+      break;
+
+    case N_WARNING:
+      /* This symbol is the text of a warning message.  The next
+        symbol is the symbol to associate the warning with.  If a
+        reference is made to that symbol, a warning is issued.  */
+      cache_ptr->symbol.flags = BSF_DEBUGGING | BSF_WARNING;
+      cache_ptr->symbol.section = bfd_abs_section_ptr;
+      break;
+
+    case N_INDR: case N_INDR | N_EXT:
+      /* An indirect symbol.  This consists of two symbols in a row.
+        The first symbol is the name of the indirection.  The second
+        symbol is the name of the target.  A reference to the first
+        symbol becomes a reference to the second.  */
+      cache_ptr->symbol.flags = BSF_DEBUGGING | BSF_INDIRECT | visible;
+      cache_ptr->symbol.section = bfd_ind_section_ptr;
+      break;
+
+    case N_WEAKU:
+      cache_ptr->symbol.section = bfd_und_section_ptr;
+      cache_ptr->symbol.flags = BSF_WEAK;
+      break;
+
+    case N_WEAKA:
+      cache_ptr->symbol.section = bfd_abs_section_ptr;
+      cache_ptr->symbol.flags = BSF_WEAK;
+      break;
+
+    case N_WEAKT:
+      cache_ptr->symbol.section = obj_textsec (abfd);
+      cache_ptr->symbol.value -= cache_ptr->symbol.section->vma;
+      cache_ptr->symbol.flags = BSF_WEAK;
+      break;
+
+    case N_WEAKD:
+      cache_ptr->symbol.section = obj_datasec (abfd);
+      cache_ptr->symbol.value -= cache_ptr->symbol.section->vma;
+      cache_ptr->symbol.flags = BSF_WEAK;
+      break;
+
+    case N_WEAKB:
+      cache_ptr->symbol.section = obj_bsssec (abfd);
+      cache_ptr->symbol.value -= cache_ptr->symbol.section->vma;
+      cache_ptr->symbol.flags = BSF_WEAK;
+      break;
+    }
+
+  return TRUE;
+}
+
+/* Set the fields of SYM_POINTER according to CACHE_PTR.  */
+
+static bfd_boolean
+translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer)
+     bfd *abfd;
+     asymbol *cache_ptr;
+     struct external_nlist *sym_pointer;
+{
+  bfd_vma value = cache_ptr->value;
+  asection *sec;
+  bfd_vma off;
+
+  /* Mask out any existing type bits in case copying from one section
+     to another.  */
+  sym_pointer->e_type[0] &= ~N_TYPE;
+
+  sec = bfd_get_section (cache_ptr);
+  off = 0;
+
+  if (sec == NULL)
+    {
+      /* This case occurs, e.g., for the *DEBUG* section of a COFF
+        file.  */
+      (*_bfd_error_handler)
+       (_("%s: can not represent section for symbol `%s' in a.out object file format"),
+        bfd_get_filename (abfd),
+        cache_ptr->name != NULL ? cache_ptr->name : _("*unknown*"));
+      bfd_set_error (bfd_error_nonrepresentable_section);
+      return FALSE;
+    }
+
+  if (sec->output_section != NULL)
+    {
+      off = sec->output_offset;
+      sec = sec->output_section;
+    }
+
+  if (bfd_is_abs_section (sec))
+    sym_pointer->e_type[0] |= N_ABS;
+  else if (sec == obj_textsec (abfd))
+    sym_pointer->e_type[0] |= N_TEXT;
+  else if (sec == obj_datasec (abfd))
+    sym_pointer->e_type[0] |= N_DATA;
+  else if (sec == obj_bsssec (abfd))
+    sym_pointer->e_type[0] |= N_BSS;
+  else if (bfd_is_und_section (sec))
+    sym_pointer->e_type[0] = N_UNDF | N_EXT;
+  else if (bfd_is_ind_section (sec))
+    sym_pointer->e_type[0] = N_INDR;
+  else if (bfd_is_com_section (sec))
+    sym_pointer->e_type[0] = N_UNDF | N_EXT;
+  else
+    {
+      if (aout_section_merge_with_text_p (abfd, sec))
+       sym_pointer->e_type[0] |= N_TEXT;
+      else
+       {
+          (*_bfd_error_handler)
+          (_("%s: can not represent section `%s' in a.out object file format"),
+            bfd_get_filename (abfd), bfd_get_section_name (abfd, sec));
+          bfd_set_error (bfd_error_nonrepresentable_section);
+          return FALSE;
+       }
+    }
+
+  /* Turn the symbol from section relative to absolute again.  */
+  value += sec->vma + off;
+
+  if ((cache_ptr->flags & BSF_WARNING) != 0)
+    sym_pointer->e_type[0] = N_WARNING;
+
+  if ((cache_ptr->flags & BSF_DEBUGGING) != 0)
+    sym_pointer->e_type[0] = ((aout_symbol_type *) cache_ptr)->type;
+  else if ((cache_ptr->flags & BSF_GLOBAL) != 0)
+    sym_pointer->e_type[0] |= N_EXT;
+  else if ((cache_ptr->flags & BSF_LOCAL) != 0)
+    sym_pointer->e_type[0] &= ~N_EXT;
+
+  if ((cache_ptr->flags & BSF_CONSTRUCTOR) != 0)
+    {
+      int type = ((aout_symbol_type *) cache_ptr)->type;
+
+      switch (type)
+       {
+       case N_ABS:     type = N_SETA; break;
+       case N_TEXT:    type = N_SETT; break;
+       case N_DATA:    type = N_SETD; break;
+       case N_BSS:     type = N_SETB; break;
+       }
+      sym_pointer->e_type[0] = type;
+    }
+
+  if ((cache_ptr->flags & BSF_WEAK) != 0)
+    {
+      int type;
+
+      switch (sym_pointer->e_type[0] & N_TYPE)
+       {
+       default:
+       case N_ABS:     type = N_WEAKA; break;
+       case N_TEXT:    type = N_WEAKT; break;
+       case N_DATA:    type = N_WEAKD; break;
+       case N_BSS:     type = N_WEAKB; break;
+       case N_UNDF:    type = N_WEAKU; break;
+       }
+      sym_pointer->e_type[0] = type;
+    }
+
+  PUT_WORD (abfd, value, sym_pointer->e_value);
+
+  return TRUE;
+}
+\f
+/* Native-level interface to symbols.  */
+
+asymbol *
+NAME(aout,make_empty_symbol) (abfd)
+     bfd *abfd;
+{
+  bfd_size_type amt = sizeof (aout_symbol_type);
+  aout_symbol_type *new = (aout_symbol_type *) bfd_zalloc (abfd, amt);
+  if (!new)
+    return NULL;
+  new->symbol.the_bfd = abfd;
+
+  return &new->symbol;
+}
+
+/* Translate a set of internal symbols into external symbols.  */
+
+bfd_boolean
+NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic)
+     bfd *abfd;
+     aout_symbol_type *in;
+     struct external_nlist *ext;
+     bfd_size_type count;
+     char *str;
+     bfd_size_type strsize;
+     bfd_boolean dynamic;
+{
+  struct external_nlist *ext_end;
+
+  ext_end = ext + count;
+  for (; ext < ext_end; ext++, in++)
+    {
+      bfd_vma x;
+
+      x = GET_WORD (abfd, ext->e_strx);
+      in->symbol.the_bfd = abfd;
+
+      /* For the normal symbols, the zero index points at the number
+        of bytes in the string table but is to be interpreted as the
+        null string.  For the dynamic symbols, the number of bytes in
+        the string table is stored in the __DYNAMIC structure and the
+        zero index points at an actual string.  */
+      if (x == 0 && ! dynamic)
+       in->symbol.name = "";
+      else if (x < strsize)
+       in->symbol.name = str + x;
+      else
+       return FALSE;
+
+      in->symbol.value = GET_SWORD (abfd,  ext->e_value);
+      in->desc = H_GET_16 (abfd, ext->e_desc);
+      in->other = H_GET_8 (abfd, ext->e_other);
+      in->type = H_GET_8 (abfd,  ext->e_type);
+      in->symbol.udata.p = NULL;
+
+      if (! translate_from_native_sym_flags (abfd, in))
+       return FALSE;
+
+      if (dynamic)
+       in->symbol.flags |= BSF_DYNAMIC;
+    }
+
+  return TRUE;
+}
+
+/* We read the symbols into a buffer, which is discarded when this
+   function exits.  We read the strings into a buffer large enough to
+   hold them all plus all the cached symbol entries.  */
+
+bfd_boolean
+NAME(aout,slurp_symbol_table) (abfd)
+     bfd *abfd;
+{
+  struct external_nlist *old_external_syms;
+  aout_symbol_type *cached;
+  bfd_size_type cached_size;
+
+  /* If there's no work to be done, don't do any.  */
+  if (obj_aout_symbols (abfd) != (aout_symbol_type *) NULL)
+    return TRUE;
+
+  old_external_syms = obj_aout_external_syms (abfd);
+
+  if (! aout_get_external_symbols (abfd))
+    return FALSE;
+
+  cached_size = obj_aout_external_sym_count (abfd);
+  cached_size *= sizeof (aout_symbol_type);
+  cached = (aout_symbol_type *) bfd_zmalloc (cached_size);
+  if (cached == NULL && cached_size != 0)
+    return FALSE;
+
+  /* Convert from external symbol information to internal.  */
+  if (! (NAME(aout,translate_symbol_table)
+        (abfd, cached,
+         obj_aout_external_syms (abfd),
+         obj_aout_external_sym_count (abfd),
+         obj_aout_external_strings (abfd),
+         obj_aout_external_string_size (abfd),
+         FALSE)))
+    {
+      free (cached);
+      return FALSE;
+    }
+
+  bfd_get_symcount (abfd) = obj_aout_external_sym_count (abfd);
+
+  obj_aout_symbols (abfd) = cached;
+
+  /* It is very likely that anybody who calls this function will not
+     want the external symbol information, so if it was allocated
+     because of our call to aout_get_external_symbols, we free it up
+     right away to save space.  */
+  if (old_external_syms == (struct external_nlist *) NULL
+      && obj_aout_external_syms (abfd) != (struct external_nlist *) NULL)
+    {
+#ifdef USE_MMAP
+      bfd_free_window (&obj_aout_sym_window (abfd));
+#else
+      free (obj_aout_external_syms (abfd));
+#endif
+      obj_aout_external_syms (abfd) = NULL;
+    }
+
+  return TRUE;
+}
+\f
+/* We use a hash table when writing out symbols so that we only write
+   out a particular string once.  This helps particularly when the
+   linker writes out stabs debugging entries, because each different
+   contributing object file tends to have many duplicate stabs
+   strings.
+
+   This hash table code breaks dbx on SunOS 4.1.3, so we don't do it
+   if BFD_TRADITIONAL_FORMAT is set.  */
+
+static bfd_size_type add_to_stringtab
+  PARAMS ((bfd *, struct bfd_strtab_hash *, const char *, bfd_boolean));
+static bfd_boolean emit_stringtab
+  PARAMS ((bfd *, struct bfd_strtab_hash *));
+
+/* Get the index of a string in a strtab, adding it if it is not
+   already present.  */
+
+static INLINE bfd_size_type
+add_to_stringtab (abfd, tab, str, copy)
+     bfd *abfd;
+     struct bfd_strtab_hash *tab;
+     const char *str;
+     bfd_boolean copy;
+{
+  bfd_boolean hash;
+  bfd_size_type index;
+
+  /* An index of 0 always means the empty string.  */
+  if (str == 0 || *str == '\0')
+    return 0;
+
+  /* Don't hash if BFD_TRADITIONAL_FORMAT is set, because SunOS dbx
+     doesn't understand a hashed string table.  */
+  hash = TRUE;
+  if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
+    hash = FALSE;
+
+  index = _bfd_stringtab_add (tab, str, hash, copy);
+
+  if (index != (bfd_size_type) -1)
+    {
+      /* Add BYTES_IN_WORD to the return value to account for the
+        space taken up by the string table size.  */
+      index += BYTES_IN_WORD;
+    }
+
+  return index;
+}
+
+/* Write out a strtab.  ABFD is already at the right location in the
+   file.  */
+
+static bfd_boolean
+emit_stringtab (abfd, tab)
+     register bfd *abfd;
+     struct bfd_strtab_hash *tab;
+{
+  bfd_byte buffer[BYTES_IN_WORD];
+  bfd_size_type amt = BYTES_IN_WORD;
+
+  /* The string table starts with the size.  */
+  PUT_WORD (abfd, _bfd_stringtab_size (tab) + BYTES_IN_WORD, buffer);
+  if (bfd_bwrite ((PTR) buffer, amt, abfd) != amt)
+    return FALSE;
+
+  return _bfd_stringtab_emit (abfd, tab);
+}
+\f
+bfd_boolean
+NAME(aout,write_syms) (abfd)
+     bfd *abfd;
+{
+  unsigned int count ;
+  asymbol **generic = bfd_get_outsymbols (abfd);
+  struct bfd_strtab_hash *strtab;
+
+  strtab = _bfd_stringtab_init ();
+  if (strtab == NULL)
+    return FALSE;
+
+  for (count = 0; count < bfd_get_symcount (abfd); count++)
+    {
+      asymbol *g = generic[count];
+      bfd_size_type indx;
+      struct external_nlist nsp;
+      bfd_size_type amt;
+
+      indx = add_to_stringtab (abfd, strtab, g->name, FALSE);
+      if (indx == (bfd_size_type) -1)
+       goto error_return;
+      PUT_WORD (abfd, indx, (bfd_byte *) nsp.e_strx);
+
+      if (bfd_asymbol_flavour (g) == abfd->xvec->flavour)
+       {
+         H_PUT_16 (abfd, aout_symbol (g)->desc,  nsp.e_desc);
+         H_PUT_8  (abfd, aout_symbol (g)->other, nsp.e_other);
+         H_PUT_8  (abfd, aout_symbol (g)->type,  nsp.e_type);
+       }
+      else
+       {
+         H_PUT_16 (abfd, 0, nsp.e_desc);
+         H_PUT_8  (abfd, 0, nsp.e_other);
+         H_PUT_8  (abfd, 0, nsp.e_type);
+       }
+
+      if (! translate_to_native_sym_flags (abfd, g, &nsp))
+       goto error_return;
+
+      amt = EXTERNAL_NLIST_SIZE;
+      if (bfd_bwrite ((PTR) &nsp, amt, abfd) != amt)
+       goto error_return;
+
+      /* NB: `KEEPIT' currently overlays `udata.p', so set this only
+        here, at the end.  */
+      g->KEEPIT = count;
+    }
+
+  if (! emit_stringtab (abfd, strtab))
+    goto error_return;
+
+  _bfd_stringtab_free (strtab);
+
+  return TRUE;
+
+error_return:
+  _bfd_stringtab_free (strtab);
+  return FALSE;
+}
+\f
+long
+NAME(aou