This commit was manufactured by cvs2svn to create tag
'carlton_dictionary-20030627-merge'.

Sprout from gdb_6_0-branch 2003-06-22 18:32:50 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'gdb_6_0-branch'.'
Cherrypick from master 2003-06-27 13:11:17 UTC Elena Zannoni <ezannoni@kwikemart.cygnus.com> '2003-06-27  Elena Zannoni  <ezannoni@redhat.com>':
    ChangeLog
    Makefile.def
    Makefile.in
    Makefile.tpl
    bfd/ChangeLog
    bfd/aout-ns32k.c
    bfd/aoutx.h
    bfd/bfd-in.h
    bfd/bfd-in2.h
    bfd/bfd.c
    bfd/bout.c
    bfd/coff-a29k.c
    bfd/coff-alpha.c
    bfd/coff-arm.c
    bfd/coff-i386.c
    bfd/coff-i860.c
    bfd/coff-i960.c
    bfd/coff-m68k.c
    bfd/coff-m88k.c
    bfd/coff-mcore.c
    bfd/coff-mips.c
    bfd/coff-or32.c
    bfd/coff-ppc.c
    bfd/coff-rs6000.c
    bfd/coff-sh.c
    bfd/coff-tic80.c
    bfd/coff64-rs6000.c
    bfd/cofflink.c
    bfd/cpu-ns32k.c
    bfd/doc/bfdint.texi
    bfd/ecoff.c
    bfd/ecofflink.c
    bfd/elf-bfd.h
    bfd/elf-eh-frame.c
    bfd/elf-hppa.h
    bfd/elf-m10200.c
    bfd/elf-m10300.c
    bfd/elf.c
    bfd/elf32-arm.h
    bfd/elf32-avr.c
    bfd/elf32-cris.c
    bfd/elf32-d10v.c
    bfd/elf32-dlx.c
    bfd/elf32-fr30.c
    bfd/elf32-frv.c
    bfd/elf32-h8300.c
    bfd/elf32-hppa.c
    bfd/elf32-i370.c
    bfd/elf32-i386.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-m68hc1x.c
    bfd/elf32-m68k.c
    bfd/elf32-mcore.c
    bfd/elf32-mips.c
    bfd/elf32-msp430.c
    bfd/elf32-openrisc.c
    bfd/elf32-ppc.c
    bfd/elf32-ppc.h
    bfd/elf32-s390.c
    bfd/elf32-sh.c
    bfd/elf32-sh64.c
    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-mips.c
    bfd/elf64-mmix.c
    bfd/elf64-ppc.c
    bfd/elf64-s390.c
    bfd/elf64-sh64.c
    bfd/elf64-sparc.c
    bfd/elf64-x86-64.c
    bfd/elfcode.h
    bfd/elflink.h
    bfd/elfn32-mips.c
    bfd/elfxx-ia64.c
    bfd/elfxx-mips.c
    bfd/i386linux.c
    bfd/ieee.c
    bfd/libbfd.h
    bfd/libcoff-in.h
    bfd/libcoff.h
    bfd/linker.c
    bfd/m68klinux.c
    bfd/opncls.c
    bfd/pdp11.c
    bfd/pe-mips.c
    bfd/peXXigen.c
    bfd/reloc.c
    bfd/reloc16.c
    bfd/sparclinux.c
    bfd/sunos.c
    bfd/syms.c
    bfd/versados.c
    bfd/version.h
    bfd/vms.c
    bfd/xcofflink.c
    configure
    configure.in
    gdb/ChangeLog
    gdb/MAINTAINERS
    gdb/NEWS
    gdb/PROBLEMS
    gdb/README
    gdb/ada-lang.c
    gdb/alpha-mdebug-tdep.c
    gdb/config/djgpp/fnchange.lst
    gdb/config/m68k/tm-delta68.h
    gdb/config/pa/tm-hppa64.h
    gdb/config/sparc/tm-sparc.h
    gdb/doc/ChangeLog
    gdb/doc/gdb.texinfo
    gdb/dwarf2read.c
    gdb/dwarfread.c
    gdb/frame-base.c
    gdb/gdbarch.c
    gdb/gdbarch.h
    gdb/gdbarch.sh
    gdb/gdbserver/ChangeLog
    gdb/gdbtypes.c
    gdb/gdbtypes.h
    gdb/ia64-tdep.c
    gdb/m68hc11-tdep.c
    gdb/mcore-tdep.c
    gdb/mips-tdep.c
    gdb/ns32k-tdep.c
    gdb/ppc-linux-tdep.c
    gdb/rs6000-tdep.c
    gdb/symfile.c
    gdb/symtab.h
    gdb/testsuite/ChangeLog
    gdb/testsuite/gdb.base/bang.exp
    gdb/testsuite/gdb.base/langs.exp
    gdb/testsuite/gdb.objc/basicclass.exp
    gdb/utils.c
    gdb/vax-tdep.c
    gdb/version.in
    gdb/x86-64-tdep.c
    include/ChangeLog
    include/bfdlink.h
    include/opcode/ChangeLog
    include/opcode/h8300.h
    include/opcode/i386.h
    libiberty/ChangeLog
    libiberty/testsuite/demangle-expected
    opcodes/ChangeLog
    opcodes/i386-dis.c
    sim/common/ChangeLog
    sim/common/nrun.c
    sim/common/sim-reg.c
diff --git a/ChangeLog b/ChangeLog
index 071af0e..569cc68 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2003-06-26  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Rename 'target_libs' to 'target_libraries'.
+	Remove useless reference to 'target_libs'.
+	* configure: Regenerate.
+
+2003-06-23  Keith Seitz  <kseitz@sources.redhat.com>
+
+	* Makefile.tpl: Add maybe-configure-itcl to configure-gdb.
+	* Makefile.in: Regenerate.
+
+2003-06-23  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.def: Introduce flags_to_pass.
+	* Makefile.tpl: Generate BASE_FLAGS_TO_PASS using it.
+	* Makefile.in: Regenerate.
+
+2003-06-23  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* configure.in (noconfigdirs) <cris-*-*>: Disable target-newlib
+	and target-libgloss.
+	<d30v-*-*, fr30-*-*, i960-*-*, m32r-*-*>: Disable gdb.
+	<h8300*-*-*>: Disable libf2c and ${libgcj}.
+	* configure: Regenerate.
+
 2003-06-17  Benjamin Kosnik  <bkoz@redhat.com>
 
 	* configure.in: Update testsuite_flags to new location.
diff --git a/Makefile.def b/Makefile.def
index 6244441..1fd09ab 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -136,3 +136,74 @@
 recursive_targets = { make_target= clean; };
 recursive_targets = { make_target= distclean; };
 recursive_targets = { make_target= maintainer-clean; };
+
+// Flags which need to be passed down.
+
+// Directories etc.
+flags_to_pass = { flag= DESTDIR ; };
+flags_to_pass = { flag= RPATH_ENVVAR ; };
+flags_to_pass = { flag= TARGET_SUBDIR ; };
+flags_to_pass = { flag= bindir ; };
+flags_to_pass = { flag= datadir ; };
+flags_to_pass = { flag= exec_prefix ; };
+flags_to_pass = { flag= includedir ; };
+flags_to_pass = { flag= infodir ; };
+flags_to_pass = { flag= libdir ; };
+flags_to_pass = { flag= libexecdir ; };
+flags_to_pass = { flag= lispdir ; };
+flags_to_pass = { flag= libstdcxx_incdir ; };
+flags_to_pass = { flag= libsubdir ; };
+flags_to_pass = { flag= localstatedir ; };
+flags_to_pass = { flag= mandir ; };
+flags_to_pass = { flag= oldincludedir ; };
+flags_to_pass = { flag= prefix ; };
+flags_to_pass = { flag= sbindir ; };
+flags_to_pass = { flag= sharedstatedir ; };
+flags_to_pass = { flag= sysconfdir ; };
+flags_to_pass = { flag= tooldir ; };
+flags_to_pass = { flag= build_tooldir ; };
+flags_to_pass = { flag= gxx_include_dir ; };
+flags_to_pass = { flag= gcc_version ; };
+flags_to_pass = { flag= gcc_version_trigger ; };
+flags_to_pass = { flag= target_alias ; };
+
+// Build tools
+flags_to_pass = { flag= BISON ; };
+flags_to_pass = { flag= CC_FOR_BUILD ; };
+flags_to_pass = { flag= CXX_FOR_BUILD ; };
+flags_to_pass = { flag= EXPECT ; };
+flags_to_pass = { flag= INSTALL ; };
+flags_to_pass = { flag= INSTALL_DATA ; };
+flags_to_pass = { flag= INSTALL_PROGRAM ; };
+flags_to_pass = { flag= INSTALL_SCRIPT ; };
+flags_to_pass = { flag= LEX ; };
+flags_to_pass = { flag= M4 ; };
+flags_to_pass = { flag= MAKE ; };
+flags_to_pass = { flag= RUNTEST ; };
+flags_to_pass = { flag= RUNTESTFLAGS ; };
+flags_to_pass = { flag= SHELL ; };
+flags_to_pass = { flag= YACC ; };
+
+// Host tools
+flags_to_pass = { flag= AR_FLAGS ; };
+flags_to_pass = { flag= CFLAGS ; };
+flags_to_pass = { flag= CXXFLAGS ; };
+flags_to_pass = { flag= LDFLAGS ; };
+flags_to_pass = { flag= LIBCFLAGS ; };
+flags_to_pass = { flag= LIBCXXFLAGS ; };
+
+// Target tools
+flags_to_pass = { flag= AR_FOR_TARGET ; };
+flags_to_pass = { flag= AS_FOR_TARGET ; };
+flags_to_pass = { flag= CC_FOR_TARGET ; };
+flags_to_pass = { flag= CFLAGS_FOR_TARGET ; };
+flags_to_pass = { flag= CXX_FOR_TARGET ; };
+flags_to_pass = { flag= CXXFLAGS_FOR_TARGET ; };
+flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; };
+flags_to_pass = { flag= GCJ_FOR_TARGET ; };
+flags_to_pass = { flag= LD_FOR_TARGET ; };
+flags_to_pass = { flag= LIBCFLAGS_FOR_TARGET ; };
+flags_to_pass = { flag= LIBCXXFLAGS_FOR_TARGET ; };
+flags_to_pass = { flag= NM_FOR_TARGET ; };
+flags_to_pass = { flag= RANLIB_FOR_TARGET ; };
+flags_to_pass = { flag= WINDRES_FOR_TARGET ; };
diff --git a/Makefile.in b/Makefile.in
index 0085863..9137641 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -386,47 +386,10 @@
 ###
 
 # Flags to pass down to all sub-makes.
-# Please keep these in alphabetical order.
 BASE_FLAGS_TO_PASS = \
-	"AR_FLAGS=$(AR_FLAGS)" \
-	"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
-	"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
-	"BISON=$(BISON)" \
-	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
-	"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
-	"CFLAGS=$(CFLAGS)" \
-	"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
-	"GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \
-	"CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
-	"CXXFLAGS=$(CXXFLAGS)" \
-	"CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
-	"CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
 	"DESTDIR=$(DESTDIR)" \
-	"DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
-	"INSTALL=$(INSTALL)" \
-	"INSTALL_DATA=$(INSTALL_DATA)" \
-	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
-	"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
-	"LDFLAGS=$(LDFLAGS)" \
-	"LEX=$(LEX)" \
-	"LD_FOR_TARGET=$(LD_FOR_TARGET)" \
-	"LIBCFLAGS=$(LIBCFLAGS)" \
-	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
-	"LIBCXXFLAGS=$(LIBCXXFLAGS)" \
-	"LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
-	"M4=$(M4)" \
-	"MAKE=$(MAKE)" \
-	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
-	"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
-	"RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
 	"RPATH_ENVVAR=$(RPATH_ENVVAR)" \
-	"SHELL=$(SHELL)" \
-	"EXPECT=$(EXPECT)" \
-	"RUNTEST=$(RUNTEST)" \
-	"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
 	"TARGET_SUBDIR=$(TARGET_SUBDIR)" \
-	"WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \
-	"YACC=$(YACC)" \
 	"bindir=$(bindir)" \
 	"datadir=$(datadir)" \
 	"exec_prefix=$(exec_prefix)" \
@@ -449,7 +412,43 @@
 	"gxx_include_dir=$(gxx_include_dir)" \
 	"gcc_version=$(gcc_version)" \
 	"gcc_version_trigger=$(gcc_version_trigger)" \
-	"target_alias=$(target_alias)" 
+	"target_alias=$(target_alias)" \
+	"BISON=$(BISON)" \
+	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
+	"CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
+	"EXPECT=$(EXPECT)" \
+	"INSTALL=$(INSTALL)" \
+	"INSTALL_DATA=$(INSTALL_DATA)" \
+	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
+	"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
+	"LEX=$(LEX)" \
+	"M4=$(M4)" \
+	"MAKE=$(MAKE)" \
+	"RUNTEST=$(RUNTEST)" \
+	"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
+	"SHELL=$(SHELL)" \
+	"YACC=$(YACC)" \
+	"AR_FLAGS=$(AR_FLAGS)" \
+	"CFLAGS=$(CFLAGS)" \
+	"CXXFLAGS=$(CXXFLAGS)" \
+	"LDFLAGS=$(LDFLAGS)" \
+	"LIBCFLAGS=$(LIBCFLAGS)" \
+	"LIBCXXFLAGS=$(LIBCXXFLAGS)" \
+	"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
+	"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
+	"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
+	"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
+	"CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
+	"CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
+	"DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
+	"GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \
+	"LD_FOR_TARGET=$(LD_FOR_TARGET)" \
+	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
+	"LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
+	"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
+	"RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
+	"WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \
+	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" 
 
 # For any flags above that may contain shell code that varies from one
 # target library to another.  When doing recursive invocations of the
@@ -23748,7 +23747,7 @@
 
 # Host modules specific to gdb.
 # GDB needs to know that the simulator is being built.
-configure-gdb: maybe-configure-tcl maybe-configure-tk maybe-configure-sim
+configure-gdb: maybe-configure-itcl maybe-configure-tcl maybe-configure-tk maybe-configure-sim
 GDB_TK = @GDB_TK@
 all-gdb: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-mmalloc maybe-all-readline maybe-all-bison maybe-all-byacc maybe-all-sim $(gdbnlmrequirements) $(GDB_TK)
 install-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui
diff --git a/Makefile.tpl b/Makefile.tpl
index f3a875b..0729415 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -389,70 +389,9 @@
 ###
 
 # Flags to pass down to all sub-makes.
-# Please keep these in alphabetical order.
-BASE_FLAGS_TO_PASS = \
-	"AR_FLAGS=$(AR_FLAGS)" \
-	"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
-	"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
-	"BISON=$(BISON)" \
-	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
-	"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
-	"CFLAGS=$(CFLAGS)" \
-	"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
-	"GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \
-	"CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
-	"CXXFLAGS=$(CXXFLAGS)" \
-	"CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
-	"CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
-	"DESTDIR=$(DESTDIR)" \
-	"DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
-	"INSTALL=$(INSTALL)" \
-	"INSTALL_DATA=$(INSTALL_DATA)" \
-	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
-	"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
-	"LDFLAGS=$(LDFLAGS)" \
-	"LEX=$(LEX)" \
-	"LD_FOR_TARGET=$(LD_FOR_TARGET)" \
-	"LIBCFLAGS=$(LIBCFLAGS)" \
-	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
-	"LIBCXXFLAGS=$(LIBCXXFLAGS)" \
-	"LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
-	"M4=$(M4)" \
-	"MAKE=$(MAKE)" \
-	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
-	"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
-	"RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
-	"RPATH_ENVVAR=$(RPATH_ENVVAR)" \
-	"SHELL=$(SHELL)" \
-	"EXPECT=$(EXPECT)" \
-	"RUNTEST=$(RUNTEST)" \
-	"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
-	"TARGET_SUBDIR=$(TARGET_SUBDIR)" \
-	"WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \
-	"YACC=$(YACC)" \
-	"bindir=$(bindir)" \
-	"datadir=$(datadir)" \
-	"exec_prefix=$(exec_prefix)" \
-	"includedir=$(includedir)" \
-	"infodir=$(infodir)" \
-	"libdir=$(libdir)" \
-	"libexecdir=$(libexecdir)" \
-	"lispdir=$(lispdir)" \
-	"libstdcxx_incdir=$(libstdcxx_incdir)" \
-	"libsubdir=$(libsubdir)" \
-	"localstatedir=$(localstatedir)" \
-	"mandir=$(mandir)" \
-	"oldincludedir=$(oldincludedir)" \
-	"prefix=$(prefix)" \
-	"sbindir=$(sbindir)" \
-	"sharedstatedir=$(sharedstatedir)" \
-	"sysconfdir=$(sysconfdir)" \
-	"tooldir=$(tooldir)" \
-	"build_tooldir=$(build_tooldir)" \
-	"gxx_include_dir=$(gxx_include_dir)" \
-	"gcc_version=$(gcc_version)" \
-	"gcc_version_trigger=$(gcc_version_trigger)" \
-	"target_alias=$(target_alias)" 
+BASE_FLAGS_TO_PASS = [+ FOR flags_to_pass +]\
+	"[+flag+]=$([+flag+])" [+ ENDFOR flags_to_pass +]\
+	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" 
 
 # For any flags above that may contain shell code that varies from one
 # target library to another.  When doing recursive invocations of the
@@ -1353,7 +1292,7 @@
 
 # Host modules specific to gdb.
 # GDB needs to know that the simulator is being built.
-configure-gdb: maybe-configure-tcl maybe-configure-tk maybe-configure-sim
+configure-gdb: maybe-configure-itcl maybe-configure-tcl maybe-configure-tk maybe-configure-sim
 GDB_TK = @GDB_TK@
 all-gdb: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-mmalloc maybe-all-readline maybe-all-bison maybe-all-byacc maybe-all-sim $(gdbnlmrequirements) $(GDB_TK)
 install-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 2e1a2a3..44159e5 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,156 @@
+2003-06-27  Nick Clifton  <nickc@redhat.com>
+
+	* opncls.c (bfd_add_gnu_debuglink_section): Rename to
+	bfd_add_gnu_debuglink_section and only create the section, do not
+	fill in its contents.
+	(bfd_fill_in_gnu_debuglink_section): New function.  Fill in the
+	contents of a .gnu-debuglink section.
+	* bfd-in2.h: Regenerate.
+
+2003-06-27  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+	* elfxx-mips.c: Revert .got alignment to 2**4.
+
+2003-06-27  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+	* elf32-mips.c: Fix addend for _gp_disp special symbol.
+
+2003-06-27  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+	* elfxx-mips.c (_bfd_mips_elf_fake_sections): Remove non-default
+	relocation header setup.
+
+2003-06-25  Alan Modra  <amodra@bigpond.net.au>
+
+	* elf32-ppc.c (ppc_elf_howto_table): Remove unnecessary cast.
+	(ppc_elf_reloc_type_lookup): Modify comment.
+	(ppc_elf_info_to_howto): Ditto.
+	(ppc_elf_relocate_section): Ditto.
+	(ppc_elf_check_relocs): Call ppc_elf_howto_init.
+
+2003-06-25  Alan Modra  <amodra@bigpond.net.au>
+
+	* aout-ns32k.c: Correct spelling of "relocatable".
+	* aoutx.h: Likewise.
+	* bfd-in.h: Likewise.
+	* bfd.c: Likewise.
+	* bout.c: Likewise.
+	* coff-a29k.c: Likewise.
+	* coff-alpha.c: Likewise.
+	* coff-arm.c: Likewise.
+	* coff-i386.c: Likewise.
+	* coff-i860.c: Likewise.
+	* coff-i960.c: Likewise.
+	* coff-m68k.c: Likewise.
+	* coff-m88k.c: Likewise.
+	* coff-mcore.c: Likewise.
+	* coff-mips.c: Likewise.
+	* coff-or32.c: Likewise.
+	* coff-ppc.c: Likewise.
+	* coff-rs6000.c: Likewise.
+	* coff-sh.c: Likewise.
+	* coff-tic80.c: Likewise.
+	* coff64-rs6000.c: Likewise.
+	* cofflink.c: Likewise.
+	* cpu-ns32k.c: Likewise.
+	* ecoff.c: Likewise.
+	* ecofflink.c: Likewise.
+	* elf-bfd.h: Likewise.
+	* elf-eh-frame.c: Likewise.
+	* elf-hppa.h: Likewise.
+	* elf-m10200.c: Likewise.
+	* elf-m10300.c: Likewise.
+	* elf.c: Likewise.
+	* elf32-arm.h: Likewise.
+	* elf32-avr.c: Likewise.
+	* elf32-cris.c: Likewise.
+	* elf32-d10v.c: Likewise.
+	* elf32-dlx.c: Likewise.
+	* elf32-fr30.c: Likewise.
+	* elf32-frv.c: Likewise.
+	* elf32-h8300.c: Likewise.
+	* elf32-hppa.c: Likewise.
+	* elf32-i370.c: Likewise.
+	* elf32-i386.c: Likewise.
+	* elf32-i860.c: Likewise.
+	* elf32-i960.c: Likewise.
+	* elf32-ip2k.c: Likewise.
+	* elf32-iq2000.c: Likewise.
+	* elf32-m32r.c: Likewise.
+	* elf32-m68hc11.c: Likewise.
+	* elf32-m68hc1x.c: Likewise.
+	* elf32-m68k.c: Likewise.
+	* elf32-mcore.c: Likewise.
+	* elf32-mips.c: Likewise.
+	* elf32-msp430.c: Likewise.
+	* elf32-openrisc.c: Likewise.
+	* elf32-ppc.c: Likewise.
+	* elf32-s390.c: Likewise.
+	* elf32-sh.c: Likewise.
+	* elf32-sh64.c: Likewise.
+	* elf32-sparc.c: Likewise.
+	* elf32-v850.c: Likewise.
+	* elf32-vax.c: Likewise.
+	* elf32-xstormy16.c: Likewise.
+	* elf32-xtensa.c: Likewise.
+	* elf64-alpha.c: Likewise.
+	* elf64-hppa.c: Likewise.
+	* elf64-mips.c: Likewise.
+	* elf64-mmix.c: Likewise.
+	* elf64-ppc.c: Likewise.
+	* elf64-s390.c: Likewise.
+	* elf64-sh64.c: Likewise.
+	* elf64-sparc.c: Likewise.
+	* elf64-x86-64.c: Likewise.
+	* elfcode.h: Likewise.
+	* elflink.h: Likewise.
+	* elfn32-mips.c: Likewise.
+	* elfxx-ia64.c: Likewise.
+	* elfxx-mips.c: Likewise.
+	* i386linux.c: Likewise.
+	* ieee.c: Likewise.
+	* libcoff-in.h: Likewise.
+	* linker.c: Likewise.
+	* m68klinux.c: Likewise.
+	* pdp11.c: Likewise.
+	* pe-mips.c: Likewise.
+	* peXXigen.c: Likewise.
+	* reloc.c: Likewise.
+	* reloc16.c: Likewise.
+	* sparclinux.c: Likewise.
+	* sunos.c: Likewise.
+	* syms.c: Likewise.
+	* versados.c: Likewise.
+	* vms.c: Likewise.
+	* xcofflink.c: Likewise.
+	* bfd-in2.h: Regenerate.
+	* libcoff.h: Regenerate.
+	* libbfd.h: Regenerate.
+
+2003-06-24  Alan Modra  <amodra@bigpond.net.au>
+
+	* elf32-ppc.c (ppc_elf_check_relocs): Report plt reloc against
+	local sym errors.
+
+	* elf32-i386.c: Convert to C90 function definitions, remove unnecessary
+	prototypes and casts.  Replace PTR with void *.  Formatting.
+	* elf32-ppc.c: Likewise.  Break long strings too.
+	(ppc_elf_relax_section): Use enum elf_ppc_reloc_type for r_type.
+	(ppc_elf_unhandled_reloc): Internationalize error message.
+	* elf32-ppc.h: Remove PARAMS.
+
+2003-06-23  Mark Mitchell  <mark@codesourcery.com>
+
+	* elf32-ppc.c (ppc_elf_begin_write_processing): Use bytes to count
+	APUinfo slots.
+	(ppc_elf_final_write_processing): Likewise.
+
+2003-06-23  H.J. Lu <hongjiu.lu@intel.com>
+
+	* elflink.h (elf_link_input_bfd): Check raw size when using
+	kept_section to preserve debug information discarded by
+	linkonce.
+
 2003-06-20  Alan Modra  <amodra@bigpond.net.au>
 
 	* elf64-ppc.c (struct ppc_link_hash_table): Add top_id.
@@ -2580,7 +2733,7 @@
 	in a local var.  Comment typo fixes.
 	(h8300_bfd_link_add_symbols): Likewise.
 
-	* bfd/reloc.c (struct reloc_howto_struct): Revise src_mask and
+	* reloc.c (struct reloc_howto_struct): Revise src_mask and
 	dst_mask comments.
 	* bfd-in2.h: Regenerate.
 
@@ -4331,9 +4484,9 @@
 
 2002-08-16  Stephen Clarke <stephen.clarke@superh.com>
 
-	* bfd/elf32-sh.c (sh_elf_gc_mark_hook): For sh64, skip indirect
+	* elf32-sh.c (sh_elf_gc_mark_hook): For sh64, skip indirect
 	symbols when looking for section referred to by a relocation.
-	* bfd/elf64-sh.c (sh_elf64_gc_mark_hook): Likewise.
+	* elf64-sh.c (sh_elf64_gc_mark_hook): Likewise.
 
 2002-08-15  Alan Modra  <amodra@bigpond.net.au>
 
diff --git a/bfd/aout-ns32k.c b/bfd/aout-ns32k.c
index 0972b5d..8092705 100644
--- a/bfd/aout-ns32k.c
+++ b/bfd/aout-ns32k.c
@@ -65,7 +65,7 @@
 		       struct reloc_std_external *));
 
 /* The ns32k series is ah, unusual, when it comes to relocation.
-   There are three storage methods for relocateable objects.  There
+   There are three storage methods for relocatable objects.  There
    are displacements, immediate operands and ordinary twos complement
    data. Of these, only the last fits into the standard relocation
    scheme.  Immediate operands are stored huffman encoded and
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index 7f02d13..674fc76 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -3749,7 +3749,7 @@
   includes_hash_initialized = TRUE;
 
   /* Figure out the largest section size.  Also, if generating
-     relocateable output, count the relocs.  */
+     relocatable output, count the relocs.  */
   trsize = 0;
   drsize = 0;
   max_contents_size = 0;
@@ -3759,7 +3759,7 @@
     {
       bfd_size_type sz;
 
-      if (info->relocateable)
+      if (info->relocatable)
 	{
 	  if (bfd_get_flavour (sub) == bfd_target_aout_flavour)
 	    {
@@ -3773,7 +3773,7 @@
 		 work out the number of relocs needed, and then multiply
 		 by the reloc size.  */
 	      (*_bfd_error_handler)
-		(_("%s: relocateable link from %s to %s not supported"),
+		(_("%s: relocatable link from %s to %s not supported"),
 		 bfd_get_filename (abfd),
 		 sub->xvec->name, abfd->xvec->name);
 	      bfd_set_error (bfd_error_invalid_operation);
@@ -3803,7 +3803,7 @@
 	}
     }
 
-  if (info->relocateable)
+  if (info->relocatable)
     {
       if (obj_textsec (abfd) != (asection *) NULL)
 	trsize += (_bfd_count_link_order_relocs (obj_textsec (abfd)
@@ -4786,9 +4786,9 @@
 				  input_size))
     return FALSE;
 
-  /* If we are producing relocateable output, the relocs were
+  /* If we are producing relocatable output, the relocs were
      modified, and we now write them out.  */
-  if (finfo->info->relocateable && rel_size > 0)
+  if (finfo->info->relocatable && rel_size > 0)
     {
       if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0)
 	return FALSE;
@@ -4850,7 +4850,7 @@
 	     struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *,
 	     bfd_vma *));
   bfd *output_bfd;
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   struct external_nlist *syms;
   char *strings;
   struct aout_link_hash_entry **sym_hashes;
@@ -4866,7 +4866,7 @@
   BFD_ASSERT (input_bfd->xvec->header_byteorder
 	      == output_bfd->xvec->header_byteorder);
 
-  relocateable = finfo->info->relocateable;
+  relocatable = finfo->info->relocatable;
   syms = obj_aout_external_syms (input_bfd);
   strings = obj_aout_external_strings (input_bfd);
   sym_hashes = obj_aout_sym_hashes (input_bfd);
@@ -4935,9 +4935,9 @@
       }
 #endif
 
-      if (relocateable)
+      if (relocatable)
 	{
-	  /* We are generating a relocateable output file, and must
+	  /* We are generating a relocatable output file, and must
 	     modify the reloc accordingly.  */
 	  if (r_extern)
 	    {
@@ -5195,7 +5195,7 @@
 	     struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *,
 	     bfd_vma *));
   bfd *output_bfd;
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   struct external_nlist *syms;
   char *strings;
   struct aout_link_hash_entry **sym_hashes;
@@ -5211,7 +5211,7 @@
   BFD_ASSERT (input_bfd->xvec->header_byteorder
 	      == output_bfd->xvec->header_byteorder);
 
-  relocateable = finfo->info->relocateable;
+  relocatable = finfo->info->relocatable;
   syms = obj_aout_external_syms (input_bfd);
   strings = obj_aout_external_strings (input_bfd);
   sym_hashes = obj_aout_sym_hashes (input_bfd);
@@ -5256,9 +5256,9 @@
 
       BFD_ASSERT (r_type < TABLE_SIZE (howto_table_ext));
 
-      if (relocateable)
+      if (relocatable)
 	{
-	  /* We are generating a relocateable output file, and must
+	  /* We are generating a relocatable output file, and must
 	     modify the reloc accordingly.  */
 	  if (r_extern
 	      || r_type == (unsigned int) RELOC_BASE10
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index fdf5f1c..977095e 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -619,7 +619,7 @@
 extern bfd_boolean bfd_ecoff_debug_externals
   PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
 	   const struct ecoff_debug_swap *swap,
-	   bfd_boolean relocateable,
+	   bfd_boolean relocatable,
 	   bfd_boolean (*get_extr) (struct symbol_cache_entry *,
 				    struct ecoff_extr *),
 	   void (*set_index) (struct symbol_cache_entry *,
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 71346c1..c6815cc 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -626,7 +626,7 @@
 extern bfd_boolean bfd_ecoff_debug_externals
   PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
 	   const struct ecoff_debug_swap *swap,
-	   bfd_boolean relocateable,
+	   bfd_boolean relocatable,
 	   bfd_boolean (*get_extr) (struct symbol_cache_entry *,
 				    struct ecoff_extr *),
 	   void (*set_index) (struct symbol_cache_entry *,
@@ -911,8 +911,11 @@
 char *
 bfd_follow_gnu_debuglink PARAMS ((bfd *abfd, const char *dir));
 
+struct sec *
+bfd_create_gnu_debuglink_section PARAMS ((bfd * abfd, const char * filename));
+
 bfd_boolean
-bfd_add_gnu_debuglink PARAMS ((bfd * abfd, const char * filename));
+bfd_fill_in_gnu_debuglink_section PARAMS ((bfd * abfd, struct sec * sect, const char * filename));
 
 /* Extracted from libbfd.c.  */
 
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 99c5ea6..e54bd89 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1164,12 +1164,12 @@
 
 bfd_byte *
 bfd_get_relocated_section_contents (abfd, link_info, link_order, data,
-				    relocateable, symbols)
+				    relocatable, symbols)
      bfd *abfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   bfd *abfd2;
@@ -1188,7 +1188,7 @@
 
   fn = abfd2->xvec->_bfd_get_relocated_section_contents;
 
-  return (*fn) (abfd, link_info, link_order, data, relocateable, symbols);
+  return (*fn) (abfd, link_info, link_order, data, relocatable, symbols);
 }
 
 /* Record information about an ELF program header.  */
diff --git a/bfd/bout.c b/bfd/bout.c
index b839929..43537eb 100644
--- a/bfd/bout.c
+++ b/bfd/bout.c
@@ -1,6 +1,6 @@
 /* BFD back-end for Intel 960 b.out binaries.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002
+   2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -1298,12 +1298,12 @@
 
 static bfd_byte *
 b_out_bfd_get_relocated_section_contents (output_bfd, link_info, link_order,
-					  data, relocateable, symbols)
+					  data, relocatable, symbols)
      bfd *output_bfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   /* Get enough memory to hold the stuff.  */
@@ -1317,11 +1317,11 @@
   if (reloc_size < 0)
     goto error_return;
 
-  /* If producing relocateable output, don't bother to relax.  */
-  if (relocateable)
+  /* If producing relocatable output, don't bother to relax.  */
+  if (relocatable)
     return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
 						       link_order,
-						       data, relocateable,
+						       data, relocatable,
 						       symbols);
 
   reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size);
diff --git a/bfd/coff-a29k.c b/bfd/coff-a29k.c
index 844d371..444dbc2 100644
--- a/bfd/coff-a29k.c
+++ b/bfd/coff-a29k.c
@@ -1,5 +1,6 @@
 /* BFD back-end for AMD 29000 COFF binaries.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001,
+   2002, 2003
    Free Software Foundation, Inc.
    Contributed by David Wood at New York University 7/8/91.
 
@@ -327,10 +328,10 @@
   bfd_boolean hihalf;
   bfd_vma hihalf_val;
 
-  /* If we are performing a relocateable link, we don't need to do a
+  /* If we are performing a relocatable link, we don't need to do a
      thing.  The caller will take care of adjusting the reloc
      addresses and symbol indices.  */
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   hihalf = FALSE;
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index 14e0ee1..e9dd416 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -1,5 +1,5 @@
 /* BFD back-end for ALPHA Extended-Coff files.
-   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Modified from coff-mips.c by Steve Chamberlain <sac@cygnus.com> and
    Ian Lance Taylor <ian@cygnus.com>.
@@ -53,7 +53,7 @@
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static bfd_byte *alpha_ecoff_get_relocated_section_contents
   PARAMS ((bfd *abfd, struct bfd_link_info *, struct bfd_link_order *,
-	   bfd_byte *data, bfd_boolean relocateable, asymbol **symbols));
+	   bfd_byte *data, bfd_boolean relocatable, asymbol **symbols));
 static bfd_vma alpha_convert_external_reloc
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, struct external_reloc *,
 	   struct ecoff_link_hash_entry *));
@@ -753,12 +753,12 @@
 
 static bfd_byte *
 alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
-					    data, relocateable, symbols)
+					    data, relocatable, symbols)
      bfd *abfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   bfd *input_bfd = link_order->u.indirect.section->owner;
@@ -766,7 +766,7 @@
   long reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section);
   arelent **reloc_vector = NULL;
   long reloc_count;
-  bfd *output_bfd = relocateable ? abfd : (bfd *) NULL;
+  bfd *output_bfd = relocatable ? abfd : (bfd *) NULL;
   bfd_vma gp;
   bfd_boolean gp_undefined;
   bfd_vma stack[RELOC_STACKSIZE];
@@ -798,7 +798,7 @@
   gp = _bfd_get_gp_value (abfd);
   if (gp == 0)
     {
-      if (relocateable)
+      if (relocatable)
 	{
 	  asection *sec;
 	  bfd_vma lo;
@@ -858,7 +858,7 @@
 	case ALPHA_R_SREL16:
 	case ALPHA_R_SREL32:
 	case ALPHA_R_SREL64:
-	  if (relocateable
+	  if (relocatable
 	      && ((*rel->sym_ptr_ptr)->flags & BSF_SECTION_SYM) == 0)
 	    {
 	      rel->address += input_section->output_offset;
@@ -991,7 +991,7 @@
 	    asymbol *symbol;
 	    bfd_vma relocation;
 
-	    if (relocateable)
+	    if (relocatable)
 	      {
 		rel->address += input_section->output_offset;
 		break;
@@ -1024,7 +1024,7 @@
 	    bfd_vma val;
 	    int offset, size;
 
-	    if (relocateable)
+	    if (relocatable)
 	      {
 		rel->address += input_section->output_offset;
 		break;
@@ -1051,7 +1051,7 @@
 	    asymbol *symbol;
 	    bfd_vma relocation;
 
-	    if (relocateable)
+	    if (relocatable)
 	      {
 		rel->address += input_section->output_offset;
 		break;
@@ -1084,7 +1084,7 @@
 	    asymbol *symbol;
 	    bfd_vma relocation;
 
-	    if (relocateable)
+	    if (relocatable)
 	      {
 		rel->address += input_section->output_offset;
 		break;
@@ -1121,7 +1121,7 @@
 	  abort ();
 	}
 
-      if (relocateable)
+      if (relocatable)
 	{
 	  asection *os = input_section->output_section;
 
@@ -1248,7 +1248,7 @@
 }
 
 /* A helper routine for alpha_relocate_section which converts an
-   external reloc when generating relocateable output.  Returns the
+   external reloc when generating relocatable output.  Returns the
    relocation amount.  */
 
 static bfd_vma
@@ -1262,7 +1262,7 @@
   unsigned long r_symndx;
   bfd_vma relocation;
 
-  BFD_ASSERT (info->relocateable);
+  BFD_ASSERT (info->relocatable);
 
   if (h->root.type == bfd_link_hash_defined
       || h->root.type == bfd_link_hash_defweak)
@@ -1443,7 +1443,7 @@
 
   lita_sec = symndx_to_section[RELOC_SECTION_LITA];
   gp = _bfd_get_gp_value (output_bfd);
-  if (! info->relocateable && lita_sec != NULL)
+  if (! info->relocatable && lita_sec != NULL)
     {
       struct ecoff_section_tdata *lita_sec_data;
 
@@ -1552,7 +1552,7 @@
 	     not otherwise used for anything.  For some reason, the
 	     address of the relocation does not appear to include the
 	     section VMA, unlike the other relocation types.  */
-	  if (info->relocateable)
+	  if (info->relocatable)
 	    H_PUT_64 (input_bfd, input_section->output_offset + r_vaddr,
 		      ext_rel->r_vaddr);
 	  adjust_addrp = FALSE;
@@ -1705,7 +1705,7 @@
 	      if (h == (struct ecoff_link_hash_entry *) NULL)
 		abort ();
 
-	      if (! info->relocateable)
+	      if (! info->relocatable)
 		{
 		  if (h->root.type == bfd_link_hash_defined
 		      || h->root.type == bfd_link_hash_defweak)
@@ -1748,7 +1748,7 @@
 
 	  addend += r_vaddr;
 
-	  if (info->relocateable)
+	  if (info->relocatable)
 	    {
 	      /* Adjust r_vaddr by the addend.  */
 	      H_PUT_64 (input_bfd, addend, ext_rel->r_vaddr);
@@ -1782,9 +1782,9 @@
 
 	case ALPHA_R_OP_STORE:
 	  /* Store a value from the reloc stack into a bitfield.  If
-	     we are generating relocateable output, all we do is
+	     we are generating relocatable output, all we do is
 	     adjust the address of the reloc.  */
-	  if (! info->relocateable)
+	  if (! info->relocatable)
 	    {
 	      bfd_vma mask;
 	      bfd_vma val;
@@ -1850,9 +1850,9 @@
 		abort ();
 	    }
 
-	  if (info->relocateable)
+	  if (info->relocatable)
 	    {
-	      /* We are generating relocateable output, and must
+	      /* We are generating relocatable output, and must
 		 convert the existing reloc.  */
 	      if (r_extern)
 		{
@@ -1975,7 +1975,7 @@
 	    }
 	}
 
-      if (info->relocateable && adjust_addrp)
+      if (info->relocatable && adjust_addrp)
 	{
 	  /* Change the address of the relocation.  */
 	  H_PUT_64 (input_bfd,
diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c
index a88cdba..98d7048 100644
--- a/bfd/coff-arm.c
+++ b/bfd/coff-arm.c
@@ -1,6 +1,6 @@
 /* BFD back-end for ARM COFF files.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002
+   2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -1247,13 +1247,13 @@
 	return FALSE;
 
       /* The relocation_section function will skip pcrel_offset relocs
-         when doing a relocateable link.  However, we want to convert
+         when doing a relocatable link.  However, we want to convert
          ARM26 to ARM26D relocs if possible.  We return a fake howto in
          this case without pcrel_offset set, and adjust the addend to
          compensate.  */
       if (rel->r_type == ARM_26
           && h != NULL
-          && info->relocateable
+          && info->relocatable
           && (h->root.type == bfd_link_hash_defined
 	      || h->root.type == bfd_link_hash_defweak)
           && (h->root.u.def.section->output_section
@@ -1283,18 +1283,18 @@
 	 the next opcode's pc, so is off by one.  */
 #if 0 /* This appears to have been true for WINCE 2.0, but it is not
 	 true for WINCE 3.0.  */
-      if (howto->pc_relative && !info->relocateable)
+      if (howto->pc_relative && !info->relocatable)
 	addend -= 8;
 #endif
 #endif
 
-      /* If we are doing a relocateable link, then we can just ignore
+      /* If we are doing a relocatable link, then we can just ignore
          a PC relative reloc that is pcrel_offset.  It will already
-         have the correct value.  If this is not a relocateable link,
+         have the correct value.  If this is not a relocatable link,
          then we should ignore the symbol value.  */
       if (howto->pc_relative && howto->pcrel_offset)
         {
-          if (info->relocateable)
+          if (info->relocatable)
             continue;
 	  /* FIXME - it is not clear which targets need this next test
 	     and which do not.  It is known that it is needed for the
@@ -1341,7 +1341,7 @@
              stub generation to the final linker pass. If we fail to
 	     verify that the name is defined, we'll try to build stubs
 	     for an undefined name...  */
-          if (! info->relocateable
+          if (! info->relocatable
 	      && (   h->root.type == bfd_link_hash_defined
 		  || h->root.type == bfd_link_hash_defweak))
             {
@@ -1595,7 +1595,7 @@
 		     + sec->output_offset);
 	      }
 
-	  else if (! info->relocateable)
+	  else if (! info->relocatable)
 	    {
 	      if (! ((*info->callbacks->undefined_symbol)
 		     (info, h->root.root.string, input_bfd, input_section,
@@ -1617,7 +1617,7 @@
 	rstat = bfd_reloc_ok;
 #ifndef ARM_WINCE
       /* Only perform this fix during the final link, not a relocatable link.  nickc@cygnus.com  */
-      else if (! info->relocateable
+      else if (! info->relocatable
 	       && howto->type == ARM_THUMB23)
         {
           /* This is pretty much a copy of what the default
@@ -1743,7 +1743,7 @@
 	 Is this the best way to fix up thumb addresses? krk@cygnus.com
 	 Probably not, but it works, and if it works it don't need fixing!  nickc@cygnus.com */
       /* Only perform this fix during the final link, not a relocatable link.  nickc@cygnus.com  */
-      if (! info->relocateable
+      if (! info->relocatable
 	  && (rel->r_type == ARM_32 || rel->r_type == ARM_RVA32))
 	{
 	  /* Determine if we need to set the bottom bit of a relocated address
@@ -2023,7 +2023,7 @@
 
   /* If we are only performing a partial link do not bother
      getting a bfd to hold the glue.  */
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   globals = coff_arm_hash_table (info);
@@ -2078,7 +2078,7 @@
 
   /* If we are only performing a partial link do not bother
      to construct any glue.  */
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   /* Here we have a bfd that is to be included on the link.  We have a hook
@@ -2198,7 +2198,7 @@
 #define coff_bfd_copy_private_bfd_data          coff_arm_copy_private_bfd_data
 #define coff_bfd_link_hash_table_create		coff_arm_link_hash_table_create
 
-/* When doing a relocateable link, we want to convert ARM26 relocs
+/* When doing a relocatable link, we want to convert ARM26 relocs
    into ARM26D relocs.  */
 
 static bfd_boolean
diff --git a/bfd/coff-i386.c b/bfd/coff-i386.c
index f083ae1..a24344a 100644
--- a/bfd/coff-i386.c
+++ b/bfd/coff-i386.c
@@ -1,6 +1,6 @@
 /* BFD back-end for Intel 386 COFF files.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002
+   2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -56,7 +56,7 @@
    section for a reference to a common symbol is the value itself plus
    any desired offset.  Ian Taylor, Cygnus Support.  */
 
-/* If we are producing relocateable output, we need to do some
+/* If we are producing relocatable output, we need to do some
    adjustments to the object file that are not done by the
    bfd_perform_relocation function.  This function is called by every
    reloc type to make any required adjustments.  */
@@ -103,7 +103,7 @@
     {
       /* For some reason bfd_perform_relocation always effectively
 	 ignores the addend for a COFF target when producing
-	 relocateable output.  This seems to be always wrong for 386
+	 relocatable output.  This seems to be always wrong for 386
 	 COFF, so we handle the addend here instead.  */
 #ifdef COFF_WITH_PE
       if (output_bfd == (bfd *) NULL)
@@ -386,7 +386,7 @@
 
 /* The PE relocate section routine.  The only difference between this
    and the regular routine is that we don't want to do anything for a
-   relocateable link.  */
+   relocatable link.  */
 
 static bfd_boolean coff_pe_i386_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
@@ -405,7 +405,7 @@
      struct internal_syment *syms;
      asection **sections;
 {
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   return _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
@@ -470,7 +470,7 @@
 
 #ifndef COFF_WITH_PE
   /* If the output symbol is common (in which case this must be a
-     relocateable link), we need to add in the final size of the
+     relocatable link), we need to add in the final size of the
      common symbol.  */
   if (h != NULL && h->root.type == bfd_link_hash_common)
     *addendp += h->root.u.c.size;
diff --git a/bfd/coff-i860.c b/bfd/coff-i860.c
index 767692d..b862ff7 100644
--- a/bfd/coff-i860.c
+++ b/bfd/coff-i860.c
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 860 COFF files.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Created mostly by substituting "860" for "386" in coff-i386.c
    Harry Dolan <dolan@ssd.intel.com>, October 1995
@@ -47,7 +47,7 @@
    section for a reference to a common symbol is the value itself plus
    any desired offset.  Ian Taylor, Cygnus Support.  */
 
-/* If we are producing relocateable output, we need to do some
+/* If we are producing relocatable output, we need to do some
    adjustments to the object file that are not done by the
    bfd_perform_relocation function.  This function is called by every
    reloc type to make any required adjustments.  */
@@ -87,7 +87,7 @@
     {
       /* For some reason bfd_perform_relocation always effectively
 	 ignores the addend for a COFF target when producing
-	 relocateable output.  This seems to be always wrong for 860
+	 relocatable output.  This seems to be always wrong for 860
 	 COFF, so we handle the addend here instead.  */
       diff = reloc_entry->addend;
     }
@@ -348,7 +348,7 @@
     }
 
   /* If the output symbol is common (in which case this must be a
-     relocateable link), we need to add in the final size of the
+     relocatable link), we need to add in the final size of the
      common symbol.  */
   if (h != NULL && h->root.type == bfd_link_hash_common)
     *addendp += h->root.u.c.size;
diff --git a/bfd/coff-i960.c b/bfd/coff-i960.c
index e4dc053..3a04753 100644
--- a/bfd/coff-i960.c
+++ b/bfd/coff-i960.c
@@ -1,6 +1,6 @@
 /* BFD back-end for Intel 960 COFF files.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001,
-   2002 Free Software Foundation, Inc.
+   2002, 2003 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -180,12 +180,12 @@
    same object file.  It appears to simply discard such relocs, rather
    than adding their values into the object file.  We handle this here
    by converting all relocs against defined symbols into relocs
-   against the section symbol, when generating a relocateable output
+   against the section symbol, when generating a relocatable output
    file.
 
    Note that this function is only called if we are not using the COFF
    specific backend linker.  It only does something when doing a
-   relocateable link, which will almost certainly fail when not
+   relocatable link, which will almost certainly fail when not
    generating COFF i960 output, so this function is actually no longer
    useful.  It was used before this target was converted to use the
    COFF specific backend linker.  */
@@ -205,7 +205,7 @@
 
   if (output_bfd == NULL)
     {
-      /* Not generating relocateable output file.  */
+      /* Not generating relocatable output file.  */
       return bfd_reloc_continue;
     }
 
@@ -328,7 +328,7 @@
   asection *o;
   bfd_byte *esym;
 
-  if (! info->relocateable)
+  if (! info->relocatable)
     return TRUE;
 
   esym = (bfd_byte *) bfd_malloc (symesz);
@@ -455,7 +455,7 @@
 		     + sec->output_section->vma
 		     + sec->output_offset);
 	    }
-	  else if (! info->relocateable)
+	  else if (! info->relocatable)
 	    {
 	      if (! ((*info->callbacks->undefined_symbol)
 		     (info, h->root.root.string, input_bfd, input_section,
@@ -466,7 +466,7 @@
 
       done = FALSE;
 
-      if (howto->type == R_OPTCALL && ! info->relocateable && symndx != -1)
+      if (howto->type == R_OPTCALL && ! info->relocatable && symndx != -1)
 	{
 	  int class;
 
diff --git a/bfd/coff-m68k.c b/bfd/coff-m68k.c
index a293b87..0947811 100644
--- a/bfd/coff-m68k.c
+++ b/bfd/coff-m68k.c
@@ -1,6 +1,6 @@
 /* BFD back-end for Motorola 68000 COFF binaries.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999,
-   2000, 2001, 2002
+   2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -250,7 +250,7 @@
    symbol is the value itself plus any desired offset.  (taken from
    work done by Ian Taylor, Cygnus Support, for I386 COFF).  */
 
-/* If we are producing relocateable output, we need to do some
+/* If we are producing relocatable output, we need to do some
    adjustments to the object file that are not done by the
    bfd_perform_relocation function.  This function is called by every
    reloc type to make any required adjustments.  */
@@ -290,7 +290,7 @@
     {
       /* For some reason bfd_perform_relocation always effectively
 	 ignores the addend for a COFF target when producing
-	 relocateable output.  This seems to be always wrong for 386
+	 relocatable output.  This seems to be always wrong for 386
 	 COFF, so we handle the addend here instead.  */
       diff = reloc_entry->addend;
     }
@@ -409,7 +409,7 @@
     }
 
   /* If the output symbol is common (in which case this must be a
-     relocateable link), we need to add in the final size of the
+     relocatable link), we need to add in the final size of the
      common symbol.  */
   if (h != NULL && h->root.type == bfd_link_hash_common)
     *addendp += h->root.u.c.size;
@@ -445,7 +445,7 @@
   bfd_byte *p;
   bfd_size_type amt;
 
-  BFD_ASSERT (! info->relocateable);
+  BFD_ASSERT (! info->relocatable);
 
   *errmsg = NULL;
 
diff --git a/bfd/coff-m88k.c b/bfd/coff-m88k.c
index aa88b99..a8b2c55 100644
--- a/bfd/coff-m88k.c
+++ b/bfd/coff-m88k.c
@@ -1,6 +1,6 @@
 /* BFD back-end for Motorola 88000 COFF "Binary Compatability Standard" files.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000,
-   2001, 2002
+   2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -120,7 +120,7 @@
 			(unsigned char *) data + addr);
 	}
 
-      /* If we are not producing relocateable output, return an error if
+      /* If we are not producing relocatable output, return an error if
 	 the symbol is not defined.  */
       if (bfd_is_und_section (symbol->section) && output_bfd == (bfd *) NULL)
 	return bfd_reloc_undefined;
diff --git a/bfd/coff-mcore.c b/bfd/coff-mcore.c
index c30f5aa..c4b0735 100644
--- a/bfd/coff-mcore.c
+++ b/bfd/coff-mcore.c
@@ -1,5 +1,5 @@
 /* BFD back-end for Motorola MCore COFF/PE
-   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -388,10 +388,10 @@
   bfd_boolean hihalf;
   bfd_vma hihalf_val;
 
-  /* If we are performing a relocateable link, we don't need to do a
+  /* If we are performing a relocatable link, we don't need to do a
      thing.  The caller will take care of adjusting the reloc
      addresses and symbol indices.  */
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   /* Check if we have the same endianess */
diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c
index 6bb1b9f..d6d8218 100644
--- a/bfd/coff-mips.c
+++ b/bfd/coff-mips.c
@@ -1,6 +1,6 @@
 /* BFD back-end for MIPS Extended-Coff files.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002
+   2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Original version by Per Bothner.
    Full support added by Ian Lance Taylor, ian@cygnus.com.
@@ -551,7 +551,7 @@
 }
 
 /* ECOFF relocs are either against external symbols, or against
-   sections.  If we are producing relocateable output, and the reloc
+   sections.  If we are producing relocatable output, and the reloc
    is against an external symbol, and nothing has given us any
    additional addend, the resulting reloc will also be against the
    same symbol.  In such a case, we don't want to change anything
@@ -559,7 +559,7 @@
    final link time.  Rather than put special case code into
    bfd_perform_relocation, all the reloc types use this howto
    function.  It just short circuits the reloc if producing
-   relocateable output against an external symbol.  */
+   relocatable output against an external symbol.  */
 
 static bfd_reloc_status_type
 mips_generic_reloc (abfd,
@@ -758,7 +758,7 @@
      bfd *output_bfd;
      char **error_message;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_vma gp;
   bfd_vma relocation;
   unsigned long val;
@@ -777,27 +777,27 @@
     }
 
   if (output_bfd != (bfd *) NULL)
-    relocateable = TRUE;
+    relocatable = TRUE;
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
-  if (bfd_is_und_section (symbol->section) && ! relocateable)
+  if (bfd_is_und_section (symbol->section) && ! relocatable)
     return bfd_reloc_undefined;
 
   /* We have to figure out the gp value, so that we can adjust the
      symbol value correctly.  We look up the symbol _gp in the output
      BFD.  If we can't find it, we're stuck.  We cache it in the ECOFF
      target data.  We don't need to adjust the symbol value for an
-     external symbol if we are producing relocateable output.  */
+     external symbol if we are producing relocatable output.  */
   gp = _bfd_get_gp_value (output_bfd);
   if (gp == 0
-      && (! relocateable
+      && (! relocatable
 	  || (symbol->flags & BSF_SECTION_SYM) != 0))
     {
-      if (relocateable)
+      if (relocatable)
 	{
 	  /* Make up a value.  */
 	  gp = symbol->section->output_section->vma + 0x4000;
@@ -861,16 +861,16 @@
     val -= 0x10000;
 
   /* Adjust val for the final section location and GP value.  If we
-     are producing relocateable output, we don't want to do this for
+     are producing relocatable output, we don't want to do this for
      an external symbol.  */
-  if (! relocateable
+  if (! relocatable
       || (symbol->flags & BSF_SECTION_SYM) != 0)
     val += relocation - gp;
 
   insn = (insn &~ (unsigned) 0xffff) | (val & 0xffff);
   bfd_put_32 (abfd, (bfd_vma) insn, (bfd_byte *) data + reloc_entry->address);
 
-  if (relocateable)
+  if (relocatable)
     reloc_entry->address += input_section->output_offset;
 
   /* Make sure it fit in 16 bits.  */
@@ -1046,7 +1046,7 @@
     }
 
   /* bfd_perform_relocation does not handle pcrel_offset relocations
-     correctly when generating a relocateable file, so handle them
+     correctly when generating a relocatable file, so handle them
      directly here.  */
   if (output_bfd != (bfd *) NULL)
     {
@@ -1413,7 +1413,7 @@
 		 and the GP value of OUTPUT_BFD (which is in GP).  */
 	      addend = ecoff_data (input_bfd)->gp - gp;
 	    }
-	  else if (! info->relocateable
+	  else if (! info->relocatable
 		   || h->root.type == bfd_link_hash_defined
 		   || h->root.type == bfd_link_hash_defweak)
 	    {
@@ -1432,7 +1432,7 @@
 	      /* This is a relocation against an undefined or common
 		 symbol.  The current addend in the instruction is
 		 simply the desired offset into the symbol (normally
-		 zero).  We are generating relocateable output, and we
+		 zero).  We are generating relocatable output, and we
 		 aren't going to define this symbol, so we just leave
 		 the instruction alone.  */
 	      addend = 0;
@@ -1446,7 +1446,7 @@
       if (offsets != NULL
 	  && offsets[i] != 0)
 	{
-	  BFD_ASSERT (! info->relocateable);
+	  BFD_ASSERT (! info->relocatable);
 	  BFD_ASSERT (int_rel.r_type == MIPS_R_PCREL16
 		      || int_rel.r_type == MIPS_R_RELHI
 		      || int_rel.r_type == MIPS_R_RELLO);
@@ -1524,9 +1524,9 @@
 	    }
 	}
 
-      if (info->relocateable)
+      if (info->relocatable)
 	{
-	  /* We are generating relocateable output, and must convert
+	  /* We are generating relocatable output, and must convert
 	     the existing reloc.  */
 	  if (int_rel.r_extern)
 	    {
@@ -2348,7 +2348,7 @@
   bfd_byte *p;
   bfd_size_type amt;
 
-  BFD_ASSERT (! info->relocateable);
+  BFD_ASSERT (! info->relocatable);
 
   *errmsg = NULL;
 
diff --git a/bfd/coff-or32.c b/bfd/coff-or32.c
index 6bec813..b21cdf3 100644
--- a/bfd/coff-or32.c
+++ b/bfd/coff-or32.c
@@ -1,5 +1,5 @@
 /* BFD back-end for OpenRISC 1000 COFF binaries.
-   Copyright 2002 Free Software Foundation, Inc.
+   Copyright 2002, 2003 Free Software Foundation, Inc.
    Contributed by Ivan Guzvinec  <ivang@opencores.org>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -360,10 +360,10 @@
   bfd_boolean hihalf;
   bfd_vma hihalf_val;
 
-  /* If we are performing a relocateable link, we don't need to do a
+  /* If we are performing a relocatable link, we don't need to do a
      thing.  The caller will take care of adjusting the reloc
      addresses and symbol indices.  */
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   hihalf = FALSE;
diff --git a/bfd/coff-ppc.c b/bfd/coff-ppc.c
index 067f2b6..cf54942 100644
--- a/bfd/coff-ppc.c
+++ b/bfd/coff-ppc.c
@@ -1088,10 +1088,10 @@
   bfd_vma relocation;
   reloc_howto_type *howto = 0;
 
-  /* If we are performing a relocateable link, we don't need to do a
+  /* If we are performing a relocatable link, we don't need to do a
      thing.  The caller will take care of adjusting the reloc
      addresses and symbol indices.  */
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   hihalf = FALSE;
@@ -2325,7 +2325,7 @@
 		  || info->strip == strip_some)
 		o->lineno_count += sec->lineno_count;
 
-	      if (info->relocateable)
+	      if (info->relocatable)
 		o->reloc_count += sec->reloc_count;
 
 	      if (sec->_raw_size > max_contents_size)
@@ -2335,7 +2335,7 @@
 	      if (sec->reloc_count > max_reloc_count)
 		max_reloc_count = sec->reloc_count;
 	    }
-	  else if (info->relocateable
+	  else if (info->relocatable
 		   && (p->type == bfd_section_reloc_link_order
 		       || p->type == bfd_symbol_reloc_link_order))
 	    ++o->reloc_count;
@@ -2350,9 +2350,9 @@
 	}
     }
 
-  /* If doing a relocateable link, allocate space for the pointers we
+  /* If doing a relocatable link, allocate space for the pointers we
      need to keep.  */
-  if (info->relocateable)
+  if (info->relocatable)
     {
       unsigned int i;
 
@@ -2401,9 +2401,9 @@
 
 	     Because of this problem, we also keep the relocs in
 	     memory until the end of the link.  This wastes memory,
-	     but only when doing a relocateable link, which is not the
+	     but only when doing a relocatable link, which is not the
 	     common case.  */
-	  BFD_ASSERT (info->relocateable);
+	  BFD_ASSERT (info->relocatable);
 	  amt = o->reloc_count;
 	  amt *= sizeof (struct internal_reloc);
 	  finfo.section_info[o->target_index].relocs =
@@ -2455,7 +2455,7 @@
   finfo.linenos = (bfd_byte *) bfd_malloc (amt);
   finfo.contents = (bfd_byte *) bfd_malloc (max_contents_size);
   finfo.external_relocs = (bfd_byte *) bfd_malloc (max_reloc_count * relsz);
-  if (! info->relocateable)
+  if (! info->relocatable)
     {
       amt = max_reloc_count * sizeof (struct internal_reloc);
       finfo.internal_relocs = (struct internal_reloc *) bfd_malloc (amt);
@@ -2467,7 +2467,7 @@
       || (finfo.linenos == NULL && max_lineno_count > 0)
       || (finfo.contents == NULL && max_contents_size > 0)
       || (finfo.external_relocs == NULL && max_reloc_count > 0)
-      || (! info->relocateable
+      || (! info->relocatable
 	  && finfo.internal_relocs == NULL
 	  && max_reloc_count > 0))
     goto error_return;
@@ -2602,7 +2602,7 @@
       finfo.outsyms = NULL;
     }
 
-  if (info->relocateable)
+  if (info->relocatable)
     {
       /* Now that we have written out all the global symbols, we know
 	 the symbol indices to use for relocs against them, and we can
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 87b80b6..8ba305c 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -1,5 +1,5 @@
 /* BFD back-end for IBM RS/6000 "XCOFF" files.
-   Copyright 1990-1999, 2000, 2001, 2002
+   Copyright 1990-1999, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    FIXME: Can someone provide a transliteration of this name into ASCII?
    Using the following chars caused a compiler warning on HIUX (so I replaced
@@ -3426,7 +3426,7 @@
 
 		}
 	      else if ((0 == (h->flags & (XCOFF_DEF_DYNAMIC | XCOFF_IMPORT)))
-		       && ! info->relocateable)
+		       && ! info->relocatable)
 		{
 		  if (! ((*info->callbacks->undefined_symbol)
 			 (info, h->root.root.string, input_bfd, input_section,
diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c
index c9997db..6b1468e 100644
--- a/bfd/coff-sh.c
+++ b/bfd/coff-sh.c
@@ -706,7 +706,7 @@
 
   *again = FALSE;
 
-  if (link_info->relocateable
+  if (link_info->relocatable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0)
     return TRUE;
@@ -2969,7 +2969,7 @@
 		     + sec->output_section->vma
 		     + sec->output_offset);
 	    }
-	  else if (! info->relocateable)
+	  else if (! info->relocatable)
 	    {
 	      if (! ((*info->callbacks->undefined_symbol)
 		     (info, h->root.root.string, input_bfd, input_section,
@@ -3024,12 +3024,12 @@
 
 static bfd_byte *
 sh_coff_get_relocated_section_contents (output_bfd, link_info, link_order,
-					data, relocateable, symbols)
+					data, relocatable, symbols)
      bfd *output_bfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   asection *input_section = link_order->u.indirect.section;
@@ -3040,12 +3040,12 @@
 
   /* We only need to handle the case of relaxing, or of having a
      particular set of section contents, specially.  */
-  if (relocateable
+  if (relocatable
       || coff_section_data (input_bfd, input_section) == NULL
       || coff_section_data (input_bfd, input_section)->contents == NULL)
     return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
 						       link_order, data,
-						       relocateable,
+						       relocatable,
 						       symbols);
 
   memcpy (data, coff_section_data (input_bfd, input_section)->contents,
diff --git a/bfd/coff-tic80.c b/bfd/coff-tic80.c
index 7329b7b..c7ec9bd 100644
--- a/bfd/coff-tic80.c
+++ b/bfd/coff-tic80.c
@@ -1,5 +1,6 @@
 /* BFD back-end for Texas Instruments TMS320C80 Multimedia Video Processor (MVP).
-   Copyright 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 1999, 2000, 2001, 2002, 2003
+   Free Software Foundation, Inc.
 
    Written by Fred Fish (fnf@cygnus.com)
 
@@ -576,7 +577,7 @@
 		     + sec->output_offset);
 	      }
 
-	  else if (! info->relocateable)
+	  else if (! info->relocatable)
 	    {
 	      if (! ((*info->callbacks->undefined_symbol)
 		     (info, h->root.root.string, input_bfd, input_section,
diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index dcb96dd..c6b1803 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -1,5 +1,5 @@
 /* BFD back-end for IBM RS/6000 "XCOFF64" files.
-   Copyright 2000, 2001, 2002
+   Copyright 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written Clinton Popetz.
    Contributed by Cygnus Support.
@@ -1277,7 +1277,7 @@
 			 + sec->output_offset);
 		}
 	      else if ((0 == (h->flags & (XCOFF_DEF_DYNAMIC | XCOFF_IMPORT)))
-		       && ! info->relocateable)
+		       && ! info->relocatable)
 		{
 		  if (! ((*info->callbacks->undefined_symbol)
 			 (info, h->root.root.string, input_bfd, input_section,
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 4e61388..59b32ed 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -1,5 +1,5 @@
 /* COFF specific linker code.
-   Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+   Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
@@ -597,9 +597,9 @@
       sym_hash += sym.n_numaux + 1;
     }
 
-  /* If this is a non-traditional, non-relocateable link, try to
+  /* If this is a non-traditional, non-relocatable link, try to
      optimize the handling of any .stab/.stabstr sections.  */
-  if (! info->relocateable
+  if (! info->relocatable
       && ! info->traditional_format
       && info->hash->creator->flavour == bfd_get_flavour (abfd)
       && (info->strip != strip_all && info->strip != strip_debugger))
@@ -739,7 +739,7 @@
 		  || info->strip == strip_some)
 		o->lineno_count += sec->lineno_count;
 
-	      if (info->relocateable)
+	      if (info->relocatable)
 		o->reloc_count += sec->reloc_count;
 
 	      if (sec->_raw_size > max_contents_size)
@@ -749,7 +749,7 @@
 	      if (sec->reloc_count > max_reloc_count)
 		max_reloc_count = sec->reloc_count;
 	    }
-	  else if (info->relocateable
+	  else if (info->relocatable
 		   && (p->type == bfd_section_reloc_link_order
 		       || p->type == bfd_symbol_reloc_link_order))
 	    ++o->reloc_count;
@@ -782,9 +782,9 @@
 	}
     }
 
-  /* If doing a relocateable link, allocate space for the pointers we
+  /* If doing a relocatable link, allocate space for the pointers we
      need to keep.  */
-  if (info->relocateable)
+  if (info->relocatable)
     {
       unsigned int i;
 
@@ -830,9 +830,9 @@
 
 	     Because of this problem, we also keep the relocs in
 	     memory until the end of the link.  This wastes memory,
-	     but only when doing a relocateable link, which is not the
+	     but only when doing a relocatable link, which is not the
 	     common case.  */
-	  BFD_ASSERT (info->relocateable);
+	  BFD_ASSERT (info->relocatable);
 	  amt = o->reloc_count;
 	  amt *= sizeof (struct internal_reloc);
 	  finfo.section_info[o->target_index].relocs =
@@ -884,7 +884,7 @@
   finfo.contents = (bfd_byte *) bfd_malloc (max_contents_size);
   amt = max_reloc_count * relsz;
   finfo.external_relocs = (bfd_byte *) bfd_malloc (amt);
-  if (! info->relocateable)
+  if (! info->relocatable)
     {
       amt = max_reloc_count * sizeof (struct internal_reloc);
       finfo.internal_relocs = (struct internal_reloc *) bfd_malloc (amt);
@@ -896,7 +896,7 @@
       || (finfo.linenos == NULL && max_lineno_count > 0)
       || (finfo.contents == NULL && max_contents_size > 0)
       || (finfo.external_relocs == NULL && max_reloc_count > 0)
-      || (! info->relocateable
+      || (! info->relocatable
 	  && finfo.internal_relocs == NULL
 	  && max_reloc_count > 0))
     goto error_return;
@@ -1033,7 +1033,7 @@
       finfo.outsyms = NULL;
     }
 
-  if (info->relocateable && max_output_reloc_count > 0)
+  if (info->relocatable && max_output_reloc_count > 0)
     {
       /* Now that we have written out all the global symbols, we know
 	 the symbol indices to use for relocs against them, and we can
@@ -1334,8 +1334,8 @@
       internal_relocs = _bfd_coff_read_internal_relocs
 	(input_bfd, a, FALSE,
 	 finfo->external_relocs,
-	 finfo->info->relocateable,
-	 (finfo->info->relocateable
+	 finfo->info->relocatable,
+	 (finfo->info->relocatable
 	  ? (finfo->section_info[ a->output_section->target_index ].relocs + a->output_section->reloc_count)
 	  : finfo->internal_relocs)
 	);
@@ -1430,7 +1430,7 @@
      going to be involved in the relocations */
   if ((   finfo->info->strip   != strip_none
        || finfo->info->discard != discard_none)
-      && finfo->info->relocateable)
+      && finfo->info->relocatable)
     {
       /* mark the symbol array as 'not-used' */
       memset (indexp, 0, obj_raw_syment_count (input_bfd) * sizeof * indexp);
@@ -1477,7 +1477,7 @@
          relocation.  */
       if ((finfo->info->strip != strip_none
 	   || finfo->info->discard != discard_none)
-	  && finfo->info->relocateable)
+	  && finfo->info->relocatable)
 	dont_skip_symbol = *indexp;
       else
 	dont_skip_symbol = FALSE;
@@ -2356,8 +2356,8 @@
 	  target_index = o->output_section->target_index;
 	  internal_relocs = (_bfd_coff_read_internal_relocs
 			     (input_bfd, o, FALSE, finfo->external_relocs,
-			      finfo->info->relocateable,
-			      (finfo->info->relocateable
+			      finfo->info->relocatable,
+			      (finfo->info->relocatable
 			       ? (finfo->section_info[target_index].relocs
 				  + o->output_section->reloc_count)
 			       : finfo->internal_relocs)));
@@ -2374,7 +2374,7 @@
 					   finfo->sec_ptrs))
 	    return FALSE;
 
-	  if (finfo->info->relocateable)
+	  if (finfo->info->relocatable)
 	    {
 	      bfd_vma offset;
 	      struct internal_reloc *irelend;
@@ -2608,9 +2608,9 @@
 
   /* When a weak symbol is not overriden by a strong one,
      turn it into an external symbol when not building a
-     shared or relocateable object.  */
+     shared or relocatable object.  */
   if (! finfo->info->shared
-      && ! finfo->info->relocateable
+      && ! finfo->info->relocatable
       && IS_WEAK_EXTERNAL (finfo->output_bfd, isym))
     isym.n_sclass = C_EXT;
 
@@ -2666,7 +2666,7 @@
 
 	      if (sec->reloc_count > 0xffff
 		  && (! obj_pe (output_bfd)
-		      || finfo->info->relocateable))
+		      || finfo->info->relocatable))
 		(*_bfd_error_handler)
 		  (_("%s: %s: reloc overflow: 0x%lx > 0xffff"),
 		   bfd_get_filename (output_bfd),
@@ -2675,7 +2675,7 @@
 
 	      if (sec->lineno_count > 0xffff
 		  && (! obj_pe (output_bfd)
-		      || finfo->info->relocateable))
+		      || finfo->info->relocatable))
 		(*_bfd_error_handler)
 		  (_("%s: warning: %s: line number overflow: 0x%lx > 0xffff"),
 		   bfd_get_filename (output_bfd),
@@ -2938,13 +2938,13 @@
       if (howto == NULL)
 	return FALSE;
 
-      /* If we are doing a relocateable link, then we can just ignore
+      /* If we are doing a relocatable link, then we can just ignore
          a PC relative reloc that is pcrel_offset.  It will already
-         have the correct value.  If this is not a relocateable link,
+         have the correct value.  If this is not a relocatable link,
          then we should ignore the symbol value.  */
       if (howto->pc_relative && howto->pcrel_offset)
 	{
-	  if (info->relocateable)
+	  if (info->relocatable)
 	    continue;
 	  if (sym != NULL && sym->n_scnum != 0)
 	    addend += sym->n_value;
@@ -2987,7 +2987,7 @@
 	  else if (h->root.type == bfd_link_hash_undefweak)
 	    val = 0;
 
-	  else if (! info->relocateable)
+	  else if (! info->relocatable)
 	    {
 	      if (! ((*info->callbacks->undefined_symbol)
 		     (info, h->root.root.string, input_bfd, input_section,
diff --git a/bfd/cpu-ns32k.c b/bfd/cpu-ns32k.c
index 1fe67d9..1a12b16 100644
--- a/bfd/cpu-ns32k.c
+++ b/bfd/cpu-ns32k.c
@@ -1,5 +1,5 @@
 /* BFD support for the ns32k architecture.
-   Copyright 1990, 1991, 1994, 1995, 1998, 2000, 2001, 2002
+   Copyright 1990, 1991, 1994, 1995, 1998, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Almost totally rewritten by Ian Dall from initial work
    by Andrew Cagney.
@@ -182,7 +182,7 @@
       return bfd_reloc_ok;
     }
 
-  /* If we are not producing relocateable output, return an error if
+  /* If we are not producing relocatable output, return an error if
      the symbol is not defined.  An undefined weak symbol is
      considered to have a value of zero (SVR4 ABI, p. 4-27).  */
   if (symbol->section == &bfd_und_section
@@ -236,7 +236,7 @@
 	 include the position of the location; for example, m88kbcs,
 	 or ELF.  For those targets, pcrel_offset is TRUE.
 
-	 If we are producing relocateable output, then we must ensure
+	 If we are producing relocatable output, then we must ensure
 	 that this reloc will be correctly computed when the final
 	 relocation is done.  If pcrel_offset is FALSE we want to wind
 	 up with the negative of the location within the section,
@@ -245,7 +245,7 @@
 	 we do not want to adjust the existing addend at all.
 
 	 FIXME: This seems logical to me, but for the case of
-	 producing relocateable output it is not what the code
+	 producing relocatable output it is not what the code
 	 actually does.  I don't want to change it, because it seems
 	 far too likely that something will break.  */
       relocation -=
@@ -297,7 +297,7 @@
 		 should not have any tests that depend upon the flavour.  It's
 		 seem like entirely the wrong place for such a thing.  The
 		 second obvious point is that the current code ignores the
-		 reloc addend when producing relocateable output for COFF.
+		 reloc addend when producing relocatable output for COFF.
 		 That's peculiar.  In fact, I really have no idea what the
 		 point of the line you want to remove is.
 
@@ -315,10 +315,10 @@
 		 (coff-i386 does subtract the old value, to be compatible with
 		 existing coff-i386 targets, like SCO).
 
-		 So everything works fine when not producing relocateable
-		 output.  When we are producing relocateable output, logically
+		 So everything works fine when not producing relocatable
+		 output.  When we are producing relocatable output, logically
 		 we should do exactly what we do when not producing
-		 relocateable output.  Therefore, your patch is correct.  In
+		 relocatable output.  Therefore, your patch is correct.  In
 		 fact, it should probably always just set reloc_entry->addend
 		 to 0 for all cases, since it is, in fact, going to add the
 		 value into the object file.  This won't hurt the COFF code,
@@ -326,7 +326,7 @@
 		 to other formats (the thing to check for would be whether
 		 any formats both use the addend and set partial_inplace).
 
-		 When I wanted to make coff-i386 produce relocateable output,
+		 When I wanted to make coff-i386 produce relocatable output,
 		 I ran into the problem that you are running into: I wanted
 		 to remove that line.  Rather than risk it, I made the
 		 coff-i386 relocs use a special function; it's coff_i386_reloc
diff --git a/bfd/doc/bfdint.texi b/bfd/doc/bfdint.texi
index 27375cd..4566731 100644
--- a/bfd/doc/bfdint.texi
+++ b/bfd/doc/bfdint.texi
@@ -1,6 +1,6 @@
 \input texinfo
 @c Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,
-@c 2000, 2001
+@c 2000, 2001, 2002, 2003
 @c Free Software Foundation, Inc.
 @setfilename bfdint.info
 
@@ -835,7 +835,7 @@
 
 @item _bfd_get_relocated_section_contents
 Read the contents of a section and apply the relocation information.
-This handles both a final link and a relocateable link; in the latter
+This handles both a final link and a relocatable link; in the latter
 case, it adjust the relocation information as well.  This is called via
 @samp{bfd_get_relocated_section_contents}.  Most targets implement it by
 calling @samp{bfd_generic_get_relocated_section_contents}.
@@ -1169,7 +1169,7 @@
 section as the value to store.  In the IEEE object file format,
 relocations may involve arbitrary expressions.
 
-When doing a relocateable link, the linker may or may not have to do
+When doing a relocatable link, the linker may or may not have to do
 anything with a relocation, depending upon the definition of the
 relocation.  Simple relocations generally do not require any special
 action.
@@ -1240,9 +1240,9 @@
 @itemize @bullet
 @item
 Make sure you clearly understand what the contents of the section should
-look like after assembly, after a relocateable link, and after a final
+look like after assembly, after a relocatable link, and after a final
 link.  Make sure you clearly understand the operations the linker must
-perform during a relocateable link and during a final link.
+perform during a relocatable link and during a final link.
 
 @item
 Write a howto structure for the relocation.  The howto structure is
@@ -1257,7 +1257,7 @@
 able to handle that.  You may need to set the @samp{special_function}
 field to handle assembly correctly.  Be careful to ensure that any code
 you write to handle the assembler will also work correctly when doing a
-relocateable link.  For example, see @samp{bfd_elf_generic_reloc}.
+relocatable link.  For example, see @samp{bfd_elf_generic_reloc}.
 
 @item
 Test the assembler.  Consider the cases of relocation against an
@@ -1271,14 +1271,14 @@
 required handling to the target specific relocation function.  In simple
 cases this will just involve a call to @samp{_bfd_final_link_relocate}
 or @samp{_bfd_relocate_contents}, depending upon the definition of the
-relocation and whether the link is relocateable or not.
+relocation and whether the link is relocatable or not.
 
 @item
 Test the linker.  Test the case of a final link.  If the relocation can
 overflow, use a linker script to force an overflow and make sure the
-error is reported correctly.  Test a relocateable link, whether the
-symbol is defined or undefined in the relocateable output.  For both the
-final and relocateable link, test the case when the symbol is a common
+error is reported correctly.  Test a relocatable link, whether the
+symbol is defined or undefined in the relocatable output.  For both the
+final and relocatable link, test the case when the symbol is a common
 symbol, when the symbol looked like a common symbol but became a defined
 symbol, when the symbol is defined in a different object file, and when
 the symbol is defined in the same object file.
@@ -1291,7 +1291,7 @@
 doing a link in which the output object file format is S-records.
 
 @item
-Using the linker to generate relocateable output in a different object
+Using the linker to generate relocatable output in a different object
 file format is impossible in the general case, so you generally don't
 have to worry about that.  The GNU linker makes sure to stop that from
 happening when an input file in a different format has relocations.
@@ -1350,7 +1350,7 @@
 of howto structure was being used by a particular format.
 
 The new howto structure would clearly define the relocation behaviour in
-the case of an assembly, a relocateable link, and a final link.  At
+the case of an assembly, a relocatable link, and a final link.  At
 least one special function would be defined as an escape, and it might
 make sense to define more.
 
@@ -1566,7 +1566,7 @@
 files (but not in executables, except when using dynamic linking).
 However, this is outweighed by the simplicity of addend handling when
 using @samp{Rela} relocations.  With @samp{Rel} relocations, the addend
-must be stored in the section contents, which makes relocateable links
+must be stored in the section contents, which makes relocatable links
 more complex.
 
 For example, consider C code like @code{i = a[1000];} where @samp{a} is
@@ -1578,7 +1578,7 @@
 If you are adding support for a RISC chip which uses two or more
 instructions to load an address, then the addend may not fit in a single
 instruction, and will have to be somehow split among the instructions.
-This makes linking awkward, particularly when doing a relocateable link
+This makes linking awkward, particularly when doing a relocatable link
 in which the addend may have to be updated.  It can be done---the MIPS
 ELF support does it---but it should be avoided when possible.
 
@@ -1645,7 +1645,7 @@
 information.  In simple cases, this is little more than a loop over the
 relocations which computes the value of each relocation and calls
 @samp{_bfd_final_link_relocate}.  The function must check for a
-relocateable link, and in that case normally needs to do nothing other
+relocatable link, and in that case normally needs to do nothing other
 than adjust the addend for relocations against a section symbol.
 
 The complex cases generally have to do with dynamic linker support.  GOT
diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index 4d9b3d4..ce18f54 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -4160,7 +4160,7 @@
 			    ecoff_link_write_external,
 			    (PTR) &einfo);
 
-  if (info->relocateable)
+  if (info->relocatable)
     {
       /* We need to make a pass over the link_orders to count up the
 	 number of relocations we will need to output, so that we know
@@ -4190,7 +4190,7 @@
 
   bfd_ecoff_debug_free (handle, abfd, debug, &backend->debug_swap, info);
 
-  if (info->relocateable)
+  if (info->relocatable)
     {
       /* Now reset the reloc_count field of the sections in the output
 	 BFD to 0, so that we can use them to keep track of how many
@@ -4210,7 +4210,7 @@
 	ecoff_data (abfd)->gp = (h->u.def.value
 				 + h->u.def.section->output_section->vma
 				 + h->u.def.section->output_offset);
-      else if (info->relocateable)
+      else if (info->relocatable)
 	{
 	  bfd_vma lo;
 
@@ -4608,11 +4608,11 @@
 				  cooked_size))
     goto error_return;
 
-  /* If we are producing relocateable output, the relocs were
+  /* If we are producing relocatable output, the relocs were
      modified, and we write them out now.  We use the reloc_count
      field of output_section to keep track of the number of relocs we
      have output so far.  */
-  if (info->relocateable)
+  if (info->relocatable)
     {
       file_ptr pos = (output_section->rel_filepos
 		      + output_section->reloc_count * external_reloc_size);
diff --git a/bfd/ecofflink.c b/bfd/ecofflink.c
index b74f18a..89edae3 100644
--- a/bfd/ecofflink.c
+++ b/bfd/ecofflink.c
@@ -1,5 +1,5 @@
 /* Routines to link ECOFF debugging information.
-   Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002
+   Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>.
 
@@ -526,7 +526,7 @@
 
   ainfo->largest_file_shuffle = 0;
 
-  if (! info->relocateable)
+  if (! info->relocatable)
     {
       if (! bfd_hash_table_init (&ainfo->str_hash.table, string_hash_newfunc))
 	return NULL;
@@ -559,7 +559,7 @@
 
   bfd_hash_table_free (&ainfo->fdr_hash.table);
 
-  if (! info->relocateable)
+  if (! info->relocatable)
     bfd_hash_table_free (&ainfo->str_hash.table);
 
   objalloc_free (ainfo->memory);
@@ -879,9 +879,9 @@
 	  /* If we are doing a final link, we hash all the strings in
 	     the local symbol table together.  This reduces the amount
 	     of space required by debugging information.  We don't do
-	     this when performing a relocateable link because it would
+	     this when performing a relocatable link because it would
 	     prevent us from easily merging different FDR's.  */
-	  if (! info->relocateable)
+	  if (! info->relocatable)
 	    {
 	      bfd_boolean ffilename;
 	      const char *name;
@@ -958,7 +958,7 @@
 	  fdr.iauxBase = output_symhdr->iauxMax;
 	  output_symhdr->iauxMax += fdr.caux;
 	}
-      if (! info->relocateable)
+      if (! info->relocatable)
 	{
 
 	  /* When are are hashing strings, we lie about the number of
@@ -1127,7 +1127,7 @@
 
   symhdr = &debug->symbolic_header;
   len = strlen (string);
-  if (info->relocateable)
+  if (info->relocatable)
     {
       if (!add_memory_shuffle (ainfo, &ainfo->ss, &ainfo->ss_end, (PTR) string,
 			       len + 1))
@@ -1287,12 +1287,12 @@
    this interface, so that must be changed to do something else.  */
 
 bfd_boolean
-bfd_ecoff_debug_externals (abfd, debug, swap, relocateable, get_extr,
+bfd_ecoff_debug_externals (abfd, debug, swap, relocatable, get_extr,
 			   set_index)
      bfd *abfd;
      struct ecoff_debug_info *debug;
      const struct ecoff_debug_swap *swap;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      bfd_boolean (*get_extr) PARAMS ((asymbol *, EXTR *));
      void (*set_index) PARAMS ((asymbol *, bfd_size_type));
 {
@@ -1317,7 +1317,7 @@
 
       /* If we're producing an executable, move common symbols into
 	 bss.  */
-      if (! relocateable)
+      if (! relocatable)
 	{
 	  if (esym.asym.sc == scCommon)
 	    esym.asym.sc = scBss;
@@ -1694,7 +1694,7 @@
 
   /* The string table is written out from the hash table if this is a
      final link.  */
-  if (info->relocateable)
+  if (info->relocatable)
     {
       BFD_ASSERT (ainfo->ss_hash == (struct string_hash_entry *) NULL);
       if (! ecoff_write_shuffle (abfd, swap, ainfo->ss, space))
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index d397307..5e4c180 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -706,7 +706,7 @@
 
      This function is responsible for adjust the section contents as
      necessary, and (if using Rela relocs and generating a
-     relocateable output file) adjusting the reloc addend as
+     relocatable output file) adjusting the reloc addend as
      necessary.
 
      This function does not have to worry about setting the reloc
@@ -720,7 +720,7 @@
      The global hash table entry for the global symbols can be found
      via elf_sym_hashes (input_bfd).
 
-     When generating relocateable output, this function must handle
+     When generating relocatable output, this function must handle
      STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
      going to be the section symbol corresponding to the output
      section, which means that the addend must be adjusted
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index 7d0b52b..e422aa9 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -403,7 +403,7 @@
 		 in which case we can remove it provided we adjust
 		 all FDEs.  Also, it can be removed if we have removed
 		 all FDEs using it.  */
-	      if ((!info->relocateable
+	      if ((!info->relocatable
 		   && cie_compare (&cie, &hdr_info->last_cie) == 0)
 		  || cie_usage_count == 0)
 		{
diff --git a/bfd/elf-hppa.h b/bfd/elf-hppa.h
index 5e4458c..f372746 100644
--- a/bfd/elf-hppa.h
+++ b/bfd/elf-hppa.h
@@ -1,5 +1,5 @@
 /* Common code for PA ELF implementations.
-   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -1159,7 +1159,7 @@
 
      Ultimately we should have better controls over the generic ELF BFD
      linker code.  */
-  if (! info->relocateable
+  if (! info->relocatable
       && ! (info->shared
 	    && !info->no_undefined)
       && h->root.type == bfd_link_hash_undefined
@@ -1195,7 +1195,7 @@
 
      Ultimately we should have better controls over the generic ELF BFD
      linker code.  */
-  if (! info->relocateable
+  if (! info->relocatable
       && ! (info->shared
 	    && !info->no_undefined)
       && h->root.type == bfd_link_hash_undefined
@@ -1265,7 +1265,7 @@
   bfd_boolean retval;
   struct elf64_hppa_link_hash_table *hppa_info = elf64_hppa_hash_table (info);
 
-  if (! info->relocateable)
+  if (! info->relocatable)
     {
       struct elf_link_hash_entry *gp;
       bfd_vma gp_val;
@@ -1376,7 +1376,7 @@
   Elf_Internal_Rela *relend;
   struct elf64_hppa_link_hash_table *hppa_info;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   hppa_info = elf64_hppa_hash_table (info);
diff --git a/bfd/elf-m10200.c b/bfd/elf-m10200.c
index c35adcb..09d7d99 100644
--- a/bfd/elf-m10200.c
+++ b/bfd/elf-m10200.c
@@ -343,7 +343,7 @@
   struct elf_link_hash_entry **sym_hashes;
   Elf_Internal_Rela *rel, *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -512,10 +512,10 @@
   /* Assume nothing changes.  */
   *again = FALSE;
 
-  /* We don't have to do anything for a relocateable link, if
+  /* We don't have to do anything for a relocatable link, if
      this section does not have relocs, or if this is not a
      code section.  */
-  if (link_info->relocateable
+  if (link_info->relocatable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
@@ -1305,12 +1305,12 @@
 
 static bfd_byte *
 mn10200_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
-					    data, relocateable, symbols)
+					    data, relocatable, symbols)
      bfd *output_bfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -1322,11 +1322,11 @@
 
   /* We only need to handle the case of relaxing, or of having a
      particular set of section contents, specially.  */
-  if (relocateable
+  if (relocatable
       || elf_section_data (input_section)->this_hdr.contents == NULL)
     return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
 						       link_order, data,
-						       relocateable,
+						       relocatable,
 						       symbols);
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index cad2b9c..15d1a33 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -350,7 +350,7 @@
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -550,7 +550,7 @@
   struct elf32_mn10300_link_hash_entry **sym_hashes;
   Elf_Internal_Rela *rel, *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -1334,10 +1334,10 @@
   /* For error_return.  */
   section = sec;
 
-  /* We don't have to do anything for a relocateable link, if
+  /* We don't have to do anything for a relocatable link, if
      this section does not have relocs, or if this is not a
      code section.  */
-  if (link_info->relocateable
+  if (link_info->relocatable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
@@ -2541,12 +2541,12 @@
 
 static bfd_byte *
 mn10300_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
-					    data, relocateable, symbols)
+					    data, relocatable, symbols)
      bfd *output_bfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -2558,11 +2558,11 @@
 
   /* We only need to handle the case of relaxing, or of having a
      particular set of section contents, specially.  */
-  if (relocateable
+  if (relocatable
       || elf_section_data (input_section)->this_hdr.contents == NULL)
     return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
 						       link_order, data,
-						       relocateable,
+						       relocatable,
 						       symbols);
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf.c b/bfd/elf.c
index 906e13d..470f3c2 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -936,7 +936,7 @@
   "SHT_NOBITS", "SHT_REL", "SHT_SHLIB", "SHT_DYNSYM",
 };
 
-/* ELF relocs are against symbols.  If we are producing relocateable
+/* ELF relocs are against symbols.  If we are producing relocatable
    output, and the reloc is against an external symbol, and nothing
    has given us any additional addend, the resulting reloc will also
    be against the same symbol.  In such a case, we don't want to
@@ -944,7 +944,7 @@
    all be done at final link time.  Rather than put special case code
    into bfd_perform_relocation, all the reloc types use this howto
    function.  It just short circuits the reloc if producing
-   relocateable output against an external symbol.  */
+   relocatable output against an external symbol.  */
 
 bfd_reloc_status_type
 bfd_elf_generic_reloc (abfd,
@@ -1838,7 +1838,7 @@
          SHF_ALLOC is set, and this is a shared object, then we also
          treat this section as a BFD section.  We can not base the
          decision purely on SHF_ALLOC, because that flag is sometimes
-         set in a relocateable object file, which would confuse the
+         set in a relocatable object file, which would confuse the
          linker.  */
       if ((hdr->sh_flags & SHF_ALLOC) != 0
 	  && (abfd->flags & DYNAMIC) != 0
diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h
index ba286b1..e2d66ad 100644
--- a/bfd/elf32-arm.h
+++ b/bfd/elf32-arm.h
@@ -564,7 +564,7 @@
 
   /* If we are only performing a partial
      link do not bother adding the glue.  */
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   sec = bfd_get_section_by_name (abfd, ARM2THUMB_GLUE_SECTION_NAME);
@@ -620,7 +620,7 @@
 
   /* If we are only performing a partial link
      do not bother getting a bfd to hold the glue.  */
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   globals = elf32_arm_hash_table (info);
@@ -652,7 +652,7 @@
 
   /* If we are only performing a partial link do not bother
      to construct any glue.  */
-  if (link_info->relocateable)
+  if (link_info->relocatable)
     return TRUE;
 
   /* Here we have a bfd that is to be included on the link.  We have a hook
@@ -1838,7 +1838,7 @@
   const char *name;
 
 #if !USE_REL
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 #endif
 
@@ -1870,9 +1870,9 @@
       howto = bfd_reloc.howto;
 
 #if USE_REL
-      if (info->relocateable)
+      if (info->relocatable)
 	{
-	  /* This is a relocateable link.  We don't have to change
+	  /* This is a relocatable link.  We don't have to change
 	     anything, unless the reloc is against a section symbol,
 	     in which case we have to adjust according to where the
 	     section symbol winds up in the output section.  */
@@ -2630,7 +2630,7 @@
   asection *sgot, *srelgot, *sreloc;
   bfd_vma *local_got_offsets;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   sgot = srelgot = sreloc = NULL;
diff --git a/bfd/elf32-avr.c b/bfd/elf32-avr.c
index a701dc9..defa9ce 100644
--- a/bfd/elf32-avr.c
+++ b/bfd/elf32-avr.c
@@ -1,5 +1,5 @@
 /* AVR-specific support for 32-bit ELF
-   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    Contributed by Denis Chertykov <denisc@overta.ru>
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -455,7 +455,7 @@
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -719,7 +719,7 @@
   Elf_Internal_Rela *           rel;
   Elf_Internal_Rela *           relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index 1d278a0..4618a8f 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -799,7 +799,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
@@ -2274,7 +2274,7 @@
   asection *srelgot;
   asection *sreloc;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
diff --git a/bfd/elf32-d10v.c b/bfd/elf32-d10v.c
index 1d6912a..cc5eddc 100644
--- a/bfd/elf32-d10v.c
+++ b/bfd/elf32-d10v.c
@@ -1,5 +1,6 @@
 /* D10V-specific support for 32-bit ELF
-   Copyright 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 1996, 1998, 1999, 2000, 2001, 2002, 2003
+   Free Software Foundation, Inc.
    Contributed by Martin Hunt (hunt@cygnus.com).
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -303,7 +304,7 @@
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -388,9 +389,9 @@
 
       howto = elf_d10v_howto_table + r_type;
 
-      if (info->relocateable)
+      if (info->relocatable)
 	{
-	  /* This is a relocateable link.  We don't have to change
+	  /* This is a relocatable link.  We don't have to change
 	     anything, unless the reloc is against a section symbol,
 	     in which case we have to adjust according to where the
 	     section symbol winds up in the output section.  */
diff --git a/bfd/elf32-dlx.c b/bfd/elf32-dlx.c
index a1f7d0d..1f380e8 100644
--- a/bfd/elf32-dlx.c
+++ b/bfd/elf32-dlx.c
@@ -1,5 +1,5 @@
 /* DLX specific support for 32-bit ELF
-   Copyright 2002 Free Software Foundation, Inc.
+   Copyright 2002, 2003 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -320,7 +320,7 @@
   return ret;
 }
 
-/* ELF relocs are against symbols.  If we are producing relocateable
+/* ELF relocs are against symbols.  If we are producing relocatable
    output, and the reloc is against an external symbol, and nothing
    has given us any additional addend, the resulting reloc will also
    be against the same symbol.  In such a case, we don't want to
@@ -328,7 +328,7 @@
    all be done at final link time.  Rather than put special case code
    into bfd_perform_relocation, all the reloc types use this howto
    function.  It just short circuits the reloc if producing
-   relocateable output against an external symbol.  */
+   relocatable output against an external symbol.  */
 
 static bfd_reloc_status_type
 elf32_dlx_relocate16  (abfd, reloc_entry, symbol, data,
@@ -532,7 +532,7 @@
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-fr30.c b/bfd/elf32-fr30.c
index 2311316..c4e2290 100644
--- a/bfd/elf32-fr30.c
+++ b/bfd/elf32-fr30.c
@@ -1,5 +1,6 @@
 /* FR30-specific support for 32-bit ELF.
-   Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 1998, 1999, 2000, 2001, 2002, 2003
+   Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -478,7 +479,7 @@
    zero.
 
    This function is responsible for adjusting the section contents as
-   necessary, and (if using Rela relocs and generating a relocateable
+   necessary, and (if using Rela relocs and generating a relocatable
    output file) adjusting the reloc addend as necessary.
 
    This function does not have to worry about setting the reloc
@@ -492,7 +493,7 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
@@ -515,7 +516,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -726,7 +727,7 @@
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c
index 08dae26..19fb324 100644
--- a/bfd/elf32-frv.c
+++ b/bfd/elf32-frv.c
@@ -1,5 +1,5 @@
 /* FRV-specific support for 32-bit ELF.
-   Copyright 2002 Free Software Foundation, Inc.
+   Copyright 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -651,7 +651,7 @@
    zero.
 
    This function is responsible for adjusting the section contents as
-   necessary, and (if using Rela relocs and generating a relocateable
+   necessary, and (if using Rela relocs and generating a relocatable
    output file) adjusting the reloc addend as necessary.
 
    This function does not have to worry about setting the reloc
@@ -665,7 +665,7 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
@@ -688,7 +688,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -907,7 +907,7 @@
      bfd_vma *valp;
 {
   if (sym->st_shndx == SHN_COMMON
-      && !info->relocateable
+      && !info->relocatable
       && (int)sym->st_size <= (int)bfd_get_gp_size (abfd))
     {
       /* Common symbols less than or equal to -G nn bytes are
@@ -947,7 +947,7 @@
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-h8300.c b/bfd/elf32-h8300.c
index e4929fb..1b623f2 100644
--- a/bfd/elf32-h8300.c
+++ b/bfd/elf32-h8300.c
@@ -426,7 +426,7 @@
   struct elf_link_hash_entry **sym_hashes;
   Elf_Internal_Rela *rel, *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -706,10 +706,10 @@
   /* Assume nothing changes.  */
   *again = FALSE;
 
-  /* We don't have to do anything for a relocateable link, if
+  /* We don't have to do anything for a relocatable link, if
      this section does not have relocs, or if this is not a
      code section.  */
-  if (link_info->relocateable
+  if (link_info->relocatable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
@@ -1378,12 +1378,12 @@
 
 static bfd_byte *
 elf32_h8_get_relocated_section_contents (output_bfd, link_info, link_order,
-					 data, relocateable, symbols)
+					 data, relocatable, symbols)
      bfd *output_bfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -1395,11 +1395,11 @@
 
   /* We only need to handle the case of relaxing, or of having a
      particular set of section contents, specially.  */
-  if (relocateable
+  if (relocatable
       || elf_section_data (input_section)->this_hdr.contents == NULL)
     return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
 						       link_order, data,
-						       relocateable,
+						       relocatable,
 						       symbols);
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index e448c43..ca3e8e1 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -1214,7 +1214,7 @@
   asection *sreloc;
   asection *stubreloc;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   htab = hppa_link_hash_table (info);
@@ -3593,7 +3593,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf32-i370.c b/bfd/elf32-i370.c
index 8b74baa..2eacb81 100644
--- a/bfd/elf32-i370.c
+++ b/bfd/elf32-i370.c
@@ -1,5 +1,5 @@
 /* i370-specific support for 32-bit ELF
-   Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002
+   Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
    Hacked by Linas Vepstas for i370 linas@linas.org
@@ -971,7 +971,7 @@
   bfd_vma *local_got_offsets;
   asection *sreloc;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
 #ifdef DEBUG
@@ -1200,7 +1200,7 @@
 
    This function is responsible for adjust the section contents as
    necessary, and (if using Rela relocs and generating a
-   relocateable output file) adjusting the reloc addend as
+   relocatable output file) adjusting the reloc addend as
    necessary.
 
    This function does not have to worry about setting the reloc
@@ -1214,7 +1214,7 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
@@ -1241,7 +1241,7 @@
   bfd_vma *local_got_offsets;
   bfd_boolean ret = TRUE;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
 #ifdef DEBUG
@@ -1249,7 +1249,7 @@
 	   bfd_archive_filename (input_bfd),
 	   bfd_section_name(input_bfd, input_section),
 	   (long) input_section->reloc_count,
-	   (info->relocateable) ? " (relocatable)" : "");
+	   (info->relocatable) ? " (relocatable)" : "");
 #endif
 
   if (!i370_elf_howto_table[ R_I370_ADDR31 ])	/* Initialize howto table if needed */
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index cd3dc9a..3c7bbd9 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -24,69 +24,8 @@
 #include "libbfd.h"
 #include "elf-bfd.h"
 
-static reloc_howto_type *elf_i386_reloc_type_lookup
-  PARAMS ((bfd *, bfd_reloc_code_real_type));
-static void elf_i386_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
-static bfd_boolean elf_i386_is_local_label_name
-  PARAMS ((bfd *, const char *));
-static bfd_boolean elf_i386_grok_prstatus
-  PARAMS ((bfd *abfd, Elf_Internal_Note *note));
-static bfd_boolean elf_i386_grok_psinfo
-  PARAMS ((bfd *abfd, Elf_Internal_Note *note));
-static struct bfd_hash_entry *link_hash_newfunc
-  PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-static struct bfd_link_hash_table *elf_i386_link_hash_table_create
-  PARAMS ((bfd *));
-static bfd_boolean create_got_section
-  PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean elf_i386_create_dynamic_sections
-  PARAMS ((bfd *, struct bfd_link_info *));
-static void elf_i386_copy_indirect_symbol
-  PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
-	   struct elf_link_hash_entry *));
-static int elf_i386_tls_transition
-  PARAMS ((struct bfd_link_info *, int, int));
-
-static bfd_boolean elf_i386_mkobject
-  PARAMS ((bfd *));
-static bfd_boolean elf_i386_object_p
-  PARAMS ((bfd *));
-static bfd_boolean elf_i386_check_relocs
-  PARAMS ((bfd *, struct bfd_link_info *, asection *,
-	   const Elf_Internal_Rela *));
-static asection *elf_i386_gc_mark_hook
-  PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
-	   struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static bfd_boolean elf_i386_gc_sweep_hook
-  PARAMS ((bfd *, struct bfd_link_info *, asection *,
-	   const Elf_Internal_Rela *));
-static bfd_boolean elf_i386_adjust_dynamic_symbol
-  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static bfd_boolean allocate_dynrelocs
-  PARAMS ((struct elf_link_hash_entry *, PTR));
-static bfd_boolean readonly_dynrelocs
-  PARAMS ((struct elf_link_hash_entry *, PTR));
-static bfd_boolean elf_i386_fake_sections
-  PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
-static bfd_boolean elf_i386_size_dynamic_sections
-  PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_vma dtpoff_base
-  PARAMS ((struct bfd_link_info *));
-static bfd_vma tpoff
-  PARAMS ((struct bfd_link_info *, bfd_vma));
-static bfd_boolean elf_i386_relocate_section
-  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
-	   Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static bfd_boolean elf_i386_finish_dynamic_symbol
-  PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
-	   Elf_Internal_Sym *));
-static enum elf_reloc_type_class elf_i386_reloc_type_class
-  PARAMS ((const Elf_Internal_Rela *));
-static bfd_boolean elf_i386_finish_dynamic_sections
-  PARAMS ((bfd *, struct bfd_link_info *));
-
-#define USE_REL	1		/* 386 uses REL relocations instead of RELA.  */
+/* 386 uses REL relocations instead of RELA.  */
+#define USE_REL	1
 
 #include "elf/i386.h"
 
@@ -130,8 +69,8 @@
      R_386_standard counts the number up to this point, and
      R_386_ext_offset is the value to subtract from a reloc type of
      R_386_16 thru R_386_PC8 to form an index into this table.  */
-#define R_386_standard ((unsigned int) R_386_GOTPC + 1)
-#define R_386_ext_offset ((unsigned int) R_386_TLS_TPOFF - R_386_standard)
+#define R_386_standard (R_386_GOTPC + 1)
+#define R_386_ext_offset (R_386_TLS_TPOFF - R_386_standard)
 
   /* These relocs are a GNU extension.  */
   HOWTO(R_386_TLS_TPOFF, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
@@ -165,8 +104,8 @@
 	bfd_elf_generic_reloc, "R_386_PC8",
 	TRUE, 0xff, 0xff, TRUE),
 
-#define R_386_ext ((unsigned int) R_386_PC8 + 1 - R_386_ext_offset)
-#define R_386_tls_offset ((unsigned int) R_386_TLS_LDO_32 - R_386_ext)
+#define R_386_ext (R_386_PC8 + 1 - R_386_ext_offset)
+#define R_386_tls_offset (R_386_TLS_LDO_32 - R_386_ext)
   /* These are common with Solaris TLS implementation.  */
   HOWTO(R_386_TLS_LDO_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_386_TLS_LDO_32",
@@ -188,8 +127,8 @@
 	TRUE, 0xffffffff, 0xffffffff, FALSE),
 
   /* Another gap.  */
-#define R_386_tls ((unsigned int) R_386_TLS_TPOFF32 + 1 - R_386_tls_offset)
-#define R_386_vt_offset ((unsigned int) R_386_GNU_VTINHERIT - R_386_tls)
+#define R_386_tls (R_386_TLS_TPOFF32 + 1 - R_386_tls_offset)
+#define R_386_vt_offset (R_386_GNU_VTINHERIT - R_386_tls)
 
 /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_386_GNU_VTINHERIT,	/* type */
@@ -221,146 +160,144 @@
 	 0,			/* dst_mask */
 	 FALSE)			/* pcrel_offset */
 
-#define R_386_vt ((unsigned int) R_386_GNU_VTENTRY + 1 - R_386_vt_offset)
+#define R_386_vt (R_386_GNU_VTENTRY + 1 - R_386_vt_offset)
 
 };
 
 #ifdef DEBUG_GEN_RELOC
-#define TRACE(str) fprintf (stderr, "i386 bfd reloc lookup %d (%s)\n", code, str)
+#define TRACE(str) \
+  fprintf (stderr, "i386 bfd reloc lookup %d (%s)\n", code, str)
 #else
 #define TRACE(str)
 #endif
 
 static reloc_howto_type *
-elf_i386_reloc_type_lookup (abfd, code)
-     bfd *abfd ATTRIBUTE_UNUSED;
-     bfd_reloc_code_real_type code;
+elf_i386_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+			    bfd_reloc_code_real_type code)
 {
   switch (code)
     {
     case BFD_RELOC_NONE:
       TRACE ("BFD_RELOC_NONE");
-      return &elf_howto_table[(unsigned int) R_386_NONE ];
+      return &elf_howto_table[R_386_NONE];
 
     case BFD_RELOC_32:
       TRACE ("BFD_RELOC_32");
-      return &elf_howto_table[(unsigned int) R_386_32 ];
+      return &elf_howto_table[R_386_32];
 
     case BFD_RELOC_CTOR:
       TRACE ("BFD_RELOC_CTOR");
-      return &elf_howto_table[(unsigned int) R_386_32 ];
+      return &elf_howto_table[R_386_32];
 
     case BFD_RELOC_32_PCREL:
       TRACE ("BFD_RELOC_PC32");
-      return &elf_howto_table[(unsigned int) R_386_PC32 ];
+      return &elf_howto_table[R_386_PC32];
 
     case BFD_RELOC_386_GOT32:
       TRACE ("BFD_RELOC_386_GOT32");
-      return &elf_howto_table[(unsigned int) R_386_GOT32 ];
+      return &elf_howto_table[R_386_GOT32];
 
     case BFD_RELOC_386_PLT32:
       TRACE ("BFD_RELOC_386_PLT32");
-      return &elf_howto_table[(unsigned int) R_386_PLT32 ];
+      return &elf_howto_table[R_386_PLT32];
 
     case BFD_RELOC_386_COPY:
       TRACE ("BFD_RELOC_386_COPY");
-      return &elf_howto_table[(unsigned int) R_386_COPY ];
+      return &elf_howto_table[R_386_COPY];
 
     case BFD_RELOC_386_GLOB_DAT:
       TRACE ("BFD_RELOC_386_GLOB_DAT");
-      return &elf_howto_table[(unsigned int) R_386_GLOB_DAT ];
+      return &elf_howto_table[R_386_GLOB_DAT];
 
     case BFD_RELOC_386_JUMP_SLOT:
       TRACE ("BFD_RELOC_386_JUMP_SLOT");
-      return &elf_howto_table[(unsigned int) R_386_JUMP_SLOT ];
+      return &elf_howto_table[R_386_JUMP_SLOT];
 
     case BFD_RELOC_386_RELATIVE:
       TRACE ("BFD_RELOC_386_RELATIVE");
-      return &elf_howto_table[(unsigned int) R_386_RELATIVE ];
+      return &elf_howto_table[R_386_RELATIVE];
 
     case BFD_RELOC_386_GOTOFF:
       TRACE ("BFD_RELOC_386_GOTOFF");
-      return &elf_howto_table[(unsigned int) R_386_GOTOFF ];
+      return &elf_howto_table[R_386_GOTOFF];
 
     case BFD_RELOC_386_GOTPC:
       TRACE ("BFD_RELOC_386_GOTPC");
-      return &elf_howto_table[(unsigned int) R_386_GOTPC ];
+      return &elf_howto_table[R_386_GOTPC];
 
       /* These relocs are a GNU extension.  */
     case BFD_RELOC_386_TLS_TPOFF:
       TRACE ("BFD_RELOC_386_TLS_TPOFF");
-      return &elf_howto_table[(unsigned int) R_386_TLS_TPOFF - R_386_ext_offset];
+      return &elf_howto_table[R_386_TLS_TPOFF - R_386_ext_offset];
 
     case BFD_RELOC_386_TLS_IE:
       TRACE ("BFD_RELOC_386_TLS_IE");
-      return &elf_howto_table[(unsigned int) R_386_TLS_IE - R_386_ext_offset];
+      return &elf_howto_table[R_386_TLS_IE - R_386_ext_offset];
 
     case BFD_RELOC_386_TLS_GOTIE:
       TRACE ("BFD_RELOC_386_TLS_GOTIE");
-      return &elf_howto_table[(unsigned int) R_386_TLS_GOTIE - R_386_ext_offset];
+      return &elf_howto_table[R_386_TLS_GOTIE - R_386_ext_offset];
 
     case BFD_RELOC_386_TLS_LE:
       TRACE ("BFD_RELOC_386_TLS_LE");
-      return &elf_howto_table[(unsigned int) R_386_TLS_LE - R_386_ext_offset];
+      return &elf_howto_table[R_386_TLS_LE - R_386_ext_offset];
 
     case BFD_RELOC_386_TLS_GD:
       TRACE ("BFD_RELOC_386_TLS_GD");
-      return &elf_howto_table[(unsigned int) R_386_TLS_GD - R_386_ext_offset];
+      return &elf_howto_table[R_386_TLS_GD - R_386_ext_offset];
 
     case BFD_RELOC_386_TLS_LDM:
       TRACE ("BFD_RELOC_386_TLS_LDM");
-      return &elf_howto_table[(unsigned int) R_386_TLS_LDM - R_386_ext_offset];
+      return &elf_howto_table[R_386_TLS_LDM - R_386_ext_offset];
 
     case BFD_RELOC_16:
       TRACE ("BFD_RELOC_16");
-      return &elf_howto_table[(unsigned int) R_386_16 - R_386_ext_offset];
+      return &elf_howto_table[R_386_16 - R_386_ext_offset];
 
     case BFD_RELOC_16_PCREL:
       TRACE ("BFD_RELOC_16_PCREL");
-      return &elf_howto_table[(unsigned int) R_386_PC16 - R_386_ext_offset];
+      return &elf_howto_table[R_386_PC16 - R_386_ext_offset];
 
     case BFD_RELOC_8:
       TRACE ("BFD_RELOC_8");
-      return &elf_howto_table[(unsigned int) R_386_8 - R_386_ext_offset];
+      return &elf_howto_table[R_386_8 - R_386_ext_offset];
 
     case BFD_RELOC_8_PCREL:
       TRACE ("BFD_RELOC_8_PCREL");
-      return &elf_howto_table[(unsigned int) R_386_PC8 - R_386_ext_offset];
+      return &elf_howto_table[R_386_PC8 - R_386_ext_offset];
 
     /* Common with Sun TLS implementation.  */
     case BFD_RELOC_386_TLS_LDO_32:
       TRACE ("BFD_RELOC_386_TLS_LDO_32");
-      return &elf_howto_table[(unsigned int) R_386_TLS_LDO_32 - R_386_tls_offset];
+      return &elf_howto_table[R_386_TLS_LDO_32 - R_386_tls_offset];
 
     case BFD_RELOC_386_TLS_IE_32:
       TRACE ("BFD_RELOC_386_TLS_IE_32");
-      return &elf_howto_table[(unsigned int) R_386_TLS_IE_32 - R_386_tls_offset];
+      return &elf_howto_table[R_386_TLS_IE_32 - R_386_tls_offset];
 
     case BFD_RELOC_386_TLS_LE_32:
       TRACE ("BFD_RELOC_386_TLS_LE_32");
-      return &elf_howto_table[(unsigned int) R_386_TLS_LE_32 - R_386_tls_offset];
+      return &elf_howto_table[R_386_TLS_LE_32 - R_386_tls_offset];
 
     case BFD_RELOC_386_TLS_DTPMOD32:
       TRACE ("BFD_RELOC_386_TLS_DTPMOD32");
-      return &elf_howto_table[(unsigned int) R_386_TLS_DTPMOD32 - R_386_tls_offset];
+      return &elf_howto_table[R_386_TLS_DTPMOD32 - R_386_tls_offset];
 
     case BFD_RELOC_386_TLS_DTPOFF32:
       TRACE ("BFD_RELOC_386_TLS_DTPOFF32");
-      return &elf_howto_table[(unsigned int) R_386_TLS_DTPOFF32 - R_386_tls_offset];
+      return &elf_howto_table[R_386_TLS_DTPOFF32 - R_386_tls_offset];
 
     case BFD_RELOC_386_TLS_TPOFF32:
       TRACE ("BFD_RELOC_386_TLS_TPOFF32");
-      return &elf_howto_table[(unsigned int) R_386_TLS_TPOFF32 - R_386_tls_offset];
+      return &elf_howto_table[R_386_TLS_TPOFF32 - R_386_tls_offset];
 
     case BFD_RELOC_VTABLE_INHERIT:
       TRACE ("BFD_RELOC_VTABLE_INHERIT");
-      return &elf_howto_table[(unsigned int) R_386_GNU_VTINHERIT
-			     - R_386_vt_offset];
+      return &elf_howto_table[R_386_GNU_VTINHERIT - R_386_vt_offset];
 
     case BFD_RELOC_VTABLE_ENTRY:
       TRACE ("BFD_RELOC_VTABLE_ENTRY");
-      return &elf_howto_table[(unsigned int) R_386_GNU_VTENTRY
-			     - R_386_vt_offset];
+      return &elf_howto_table[R_386_GNU_VTENTRY - R_386_vt_offset];
 
     default:
       break;
@@ -371,10 +308,9 @@
 }
 
 static void
-elf_i386_info_to_howto_rel (abfd, cache_ptr, dst)
-     bfd *abfd ATTRIBUTE_UNUSED;
-     arelent *cache_ptr;
-     Elf_Internal_Rela *dst;
+elf_i386_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED,
+			    arelent *cache_ptr,
+			    Elf_Internal_Rela *dst)
 {
   unsigned int r_type = ELF32_R_TYPE (dst->r_info);
   unsigned int indx;
@@ -389,7 +325,7 @@
     {
       (*_bfd_error_handler) (_("%s: invalid relocation type %d"),
 			     bfd_archive_filename (abfd), (int) r_type);
-      indx = (unsigned int) R_386_NONE;
+      indx = R_386_NONE;
     }
   cache_ptr->howto = &elf_howto_table[indx];
 }
@@ -401,9 +337,7 @@
    _bfd_elf_is_local_label_name.  */
 
 static bfd_boolean
-elf_i386_is_local_label_name (abfd, name)
-     bfd *abfd;
-     const char *name;
+elf_i386_is_local_label_name (bfd *abfd, const char *name)
 {
   if (name[0] == '.' && name[1] == 'X')
     return TRUE;
@@ -413,9 +347,7 @@
 
 /* Support for core dump NOTE sections.  */
 static bfd_boolean
-elf_i386_grok_prstatus (abfd, note)
-     bfd *abfd;
-     Elf_Internal_Note *note;
+elf_i386_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
 {
   int offset;
   size_t raw_size;
@@ -445,9 +377,7 @@
 }
 
 static bfd_boolean
-elf_i386_grok_psinfo (abfd, note)
-     bfd *abfd;
-     Elf_Internal_Note *note;
+elf_i386_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
 {
   switch (note->descsz)
     {
@@ -456,9 +386,9 @@
 
       case 124:		/* Linux/i386 elf_prpsinfo */
 	elf_tdata (abfd)->core_program
-	 = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16);
+	  = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16);
 	elf_tdata (abfd)->core_command
-	 = _bfd_elfcore_strndup (abfd, note->descdata + 44, 80);
+	  = _bfd_elfcore_strndup (abfd, note->descdata + 44, 80);
     }
 
   /* Note that for some reason, a spurious space is tacked
@@ -607,8 +537,7 @@
   (elf_i386_tdata (abfd)->local_got_tls_type)
 
 static bfd_boolean
-elf_i386_mkobject (abfd)
-     bfd *abfd;
+elf_i386_mkobject (bfd *abfd)
 {
   bfd_size_type amt = sizeof (struct elf_i386_obj_tdata);
   abfd->tdata.any = bfd_zalloc (abfd, amt);
@@ -618,8 +547,7 @@
 }
 
 static bfd_boolean
-elf_i386_object_p (abfd)
-  bfd *abfd;
+elf_i386_object_p (bfd *abfd)
 {
   /* Allocate our special target data.  */
   struct elf_i386_obj_tdata *new_tdata;
@@ -664,10 +592,9 @@
 /* Create an entry in an i386 ELF linker hash table.  */
 
 static struct bfd_hash_entry *
-link_hash_newfunc (entry, table, string)
-     struct bfd_hash_entry *entry;
-     struct bfd_hash_table *table;
-     const char *string;
+link_hash_newfunc (struct bfd_hash_entry *entry,
+		   struct bfd_hash_table *table,
+		   const char *string)
 {
   /* Allocate the structure if it has not already been allocated by a
      subclass.  */
@@ -696,13 +623,12 @@
 /* Create an i386 ELF linker hash table.  */
 
 static struct bfd_link_hash_table *
-elf_i386_link_hash_table_create (abfd)
-     bfd *abfd;
+elf_i386_link_hash_table_create (bfd *abfd)
 {
   struct elf_i386_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_i386_link_hash_table);
 
-  ret = (struct elf_i386_link_hash_table *) bfd_malloc (amt);
+  ret = bfd_malloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -729,9 +655,7 @@
    shortcuts to them in our hash table.  */
 
 static bfd_boolean
-create_got_section (dynobj, info)
-     bfd *dynobj;
-     struct bfd_link_info *info;
+create_got_section (bfd *dynobj, struct bfd_link_info *info)
 {
   struct elf_i386_link_hash_table *htab;
 
@@ -760,9 +684,7 @@
    hash table.  */
 
 static bfd_boolean
-elf_i386_create_dynamic_sections (dynobj, info)
-     bfd *dynobj;
-     struct bfd_link_info *info;
+elf_i386_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
 {
   struct elf_i386_link_hash_table *htab;
 
@@ -789,9 +711,9 @@
 /* Copy the extra info we tack onto an elf_link_hash_entry.  */
 
 static void
-elf_i386_copy_indirect_symbol (bed, dir, ind)
-     struct elf_backend_data *bed;
-     struct elf_link_hash_entry *dir, *ind;
+elf_i386_copy_indirect_symbol (struct elf_backend_data *bed,
+			       struct elf_link_hash_entry *dir,
+			       struct elf_link_hash_entry *ind)
 {
   struct elf_i386_link_hash_entry *edir, *eind;
 
@@ -854,10 +776,7 @@
 }
 
 static int
-elf_i386_tls_transition (info, r_type, is_local)
-     struct bfd_link_info *info;
-     int r_type;
-     int is_local;
+elf_i386_tls_transition (struct bfd_link_info *info, int r_type, int is_local)
 {
   if (info->shared)
     return r_type;
@@ -886,11 +805,10 @@
    table, and dynamic reloc sections.  */
 
 static bfd_boolean
-elf_i386_check_relocs (abfd, info, sec, relocs)
-     bfd *abfd;
-     struct bfd_link_info *info;
-     asection *sec;
-     const Elf_Internal_Rela *relocs;
+elf_i386_check_relocs (bfd *abfd,
+		       struct bfd_link_info *info,
+		       asection *sec,
+		       const Elf_Internal_Rela *relocs)
 {
   struct elf_i386_link_hash_table *htab;
   Elf_Internal_Shdr *symtab_hdr;
@@ -899,7 +817,7 @@
   const Elf_Internal_Rela *rel_end;
   asection *sreloc;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   htab = elf_i386_hash_table (info);
@@ -1004,8 +922,7 @@
 
 		    size = symtab_hdr->sh_info;
 		    size *= (sizeof (bfd_signed_vma) + sizeof(char));
-		    local_got_refcounts = ((bfd_signed_vma *)
-					   bfd_zalloc (abfd, size));
+		    local_got_refcounts = bfd_zalloc (abfd, size);
 		    if (local_got_refcounts == NULL)
 		      return FALSE;
 		    elf_local_got_refcounts (abfd) = local_got_refcounts;
@@ -1029,7 +946,8 @@
 		else
 		  {
 		    (*_bfd_error_handler)
-		      (_("%s: `%s' accessed both as normal and thread local symbol"),
+		      (_("%s: `%s' accessed both as normal and "
+			 "thread local symbol"),
 		       bfd_archive_filename (abfd),
 		       h ? h->root.root.string : "<local>");
 		    return FALSE;
@@ -1195,8 +1113,7 @@
 	      if (p == NULL || p->sec != sec)
 		{
 		  bfd_size_type amt = sizeof *p;
-		  p = ((struct elf_i386_dyn_relocs *)
-		       bfd_alloc (htab->elf.dynobj, amt));
+		  p = bfd_alloc (htab->elf.dynobj, amt);
 		  if (p == NULL)
 		    return FALSE;
 		  p->next = *head;
@@ -1238,12 +1155,11 @@
    relocation.  */
 
 static asection *
-elf_i386_gc_mark_hook (sec, info, rel, h, sym)
-     asection *sec;
-     struct bfd_link_info *info ATTRIBUTE_UNUSED;
-     Elf_Internal_Rela *rel;
-     struct elf_link_hash_entry *h;
-     Elf_Internal_Sym *sym;
+elf_i386_gc_mark_hook (asection *sec,
+		       struct bfd_link_info *info ATTRIBUTE_UNUSED,
+		       Elf_Internal_Rela *rel,
+		       struct elf_link_hash_entry *h,
+		       Elf_Internal_Sym *sym)
 {
   if (h != NULL)
     {
@@ -1277,11 +1193,10 @@
 /* Update the got entry reference counts for the section being removed.  */
 
 static bfd_boolean
-elf_i386_gc_sweep_hook (abfd, info, sec, relocs)
-     bfd *abfd;
-     struct bfd_link_info *info;
-     asection *sec;
-     const Elf_Internal_Rela *relocs;
+elf_i386_gc_sweep_hook (bfd *abfd,
+			struct bfd_link_info *info,
+			asection *sec,
+			const Elf_Internal_Rela *relocs)
 {
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
@@ -1375,9 +1290,8 @@
    understand.  */
 
 static bfd_boolean
-elf_i386_adjust_dynamic_symbol (info, h)
-     struct bfd_link_info *info;
-     struct elf_link_hash_entry *h;
+elf_i386_adjust_dynamic_symbol (struct bfd_link_info *info,
+				struct elf_link_hash_entry *h)
 {
   struct elf_i386_link_hash_table *htab;
   asection *s;
@@ -1534,9 +1448,7 @@
    dynamic relocs.  */
 
 static bfd_boolean
-allocate_dynrelocs (h, inf)
-     struct elf_link_hash_entry *h;
-     PTR inf;
+allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
 {
   struct bfd_link_info *info;
   struct elf_i386_link_hash_table *htab;
@@ -1748,9 +1660,7 @@
 /* Find any dynamic relocs that apply to read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (h, inf)
-     struct elf_link_hash_entry *h;
-     PTR inf;
+readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
 {
   struct elf_i386_link_hash_entry *eh;
   struct elf_i386_dyn_relocs *p;
@@ -1779,9 +1689,8 @@
 /* Set the sizes of the dynamic sections.  */
 
 static bfd_boolean
-elf_i386_size_dynamic_sections (output_bfd, info)
-     bfd *output_bfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info *info;
+elf_i386_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
+				struct bfd_link_info *info)
 {
   struct elf_i386_link_hash_table *htab;
   bfd *dynobj;
@@ -1948,7 +1857,7 @@
 	 section's contents are written out.  This should not happen,
 	 but this way if it does, we get a R_386_NONE reloc instead
 	 of garbage.  */
-      s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
+      s->contents = bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL)
 	return FALSE;
     }
@@ -1961,7 +1870,7 @@
 	 the .dynamic section.  The DT_DEBUG entry is filled in by the
 	 dynamic linker and used by the debugger.  */
 #define add_dynamic_entry(TAG, VAL) \
-  bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
+  bfd_elf32_add_dynamic_entry (info, (TAG), (VAL))
 
       if (info->executable)
 	{
@@ -2007,10 +1916,9 @@
    section name, which is a hack, but ought to work.  */
 
 static bfd_boolean
-elf_i386_fake_sections (abfd, hdr, sec)
-     bfd *abfd ATTRIBUTE_UNUSED;
-     Elf_Internal_Shdr *hdr;
-     asection *sec;
+elf_i386_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
+			Elf_Internal_Shdr *hdr,
+			asection *sec)
 {
   register const char *name;
 
@@ -2043,8 +1951,7 @@
    This is PT_TLS segment p_vaddr.  */
 
 static bfd_vma
-dtpoff_base (info)
-     struct bfd_link_info *info;
+dtpoff_base (struct bfd_link_info *info)
 {
   /* If tls_segment is NULL, we should have signalled an error already.  */
   if (elf_hash_table (info)->tls_segment == NULL)
@@ -2056,9 +1963,7 @@
    if STT_TLS virtual address is ADDRESS.  */
 
 static bfd_vma
-tpoff (info, address)
-     struct bfd_link_info *info;
-     bfd_vma address;
+tpoff (struct bfd_link_info *info, bfd_vma address)
 {
   struct elf_link_tls_segment *tls_segment
     = elf_hash_table (info)->tls_segment;
@@ -2073,16 +1978,14 @@
 /* Relocate an i386 ELF section.  */
 
 static bfd_boolean
-elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
-			   contents, relocs, local_syms, local_sections)
-     bfd *output_bfd;
-     struct bfd_link_info *info;
-     bfd *input_bfd;
-     asection *input_section;
-     bfd_byte *contents;
-     Elf_Internal_Rela *relocs;
-     Elf_Internal_Sym *local_syms;
-     asection **local_sections;
+elf_i386_relocate_section (bfd *output_bfd,
+			   struct bfd_link_info *info,
+			   bfd *input_bfd,
+			   asection *input_section,
+			   bfd_byte *contents,
+			   Elf_Internal_Rela *relocs,
+			   Elf_Internal_Sym *local_syms,
+			   asection **local_sections)
 {
   struct elf_i386_link_hash_table *htab;
   Elf_Internal_Shdr *symtab_hdr;
@@ -2114,11 +2017,11 @@
       int tls_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
-      if (r_type == (int) R_386_GNU_VTINHERIT
-	  || r_type == (int) R_386_GNU_VTENTRY)
+      if (r_type == R_386_GNU_VTINHERIT
+	  || r_type == R_386_GNU_VTENTRY)
 	continue;
 
-      if ((indx = (unsigned) r_type) >= R_386_standard
+      if ((indx = r_type) >= R_386_standard
 	  && ((indx = r_type - R_386_ext_offset) - R_386_standard
 	      >= R_386_ext - R_386_standard)
 	  && ((indx = r_type - R_386_tls_offset) - R_386_ext
@@ -2131,7 +2034,7 @@
 
       r_symndx = ELF32_R_SYM (rel->r_info);
 
-      if (info->relocateable)
+      if (info->relocatable)
 	{
 	  bfd_vma val;
 	  bfd_byte *where;
@@ -2633,12 +2536,14 @@
 		  if (val == 0xa1)
 		    {
 		      /* movl foo, %eax.  */
-		      bfd_put_8 (output_bfd, 0xb8, contents + rel->r_offset - 1);
+		      bfd_put_8 (output_bfd, 0xb8,
+				 contents + rel->r_offset - 1);
 		    }
 		  else
 		    {
 		      BFD_ASSERT (rel->r_offset >= 2);
-		      type = bfd_get_8 (input_bfd, contents + rel->r_offset - 2);
+		      type = bfd_get_8 (input_bfd,
+					contents + rel->r_offset - 2);
 		      switch (type)
 			{
 			case 0x8b:
@@ -3010,7 +2915,7 @@
 
       r = _bfd_final_link_relocate (howto, input_bfd, input_section,
 				    contents, rel->r_offset,
-				    relocation, (bfd_vma) 0);
+				    relocation, 0);
 
       if (r != bfd_reloc_ok)
 	{
@@ -3032,7 +2937,7 @@
 	  if (r == bfd_reloc_overflow)
 	    {
 	      if (! ((*info->callbacks->reloc_overflow)
-		     (info, name, howto->name, (bfd_vma) 0,
+		     (info, name, howto->name, 0,
 		      input_bfd, input_section, rel->r_offset)))
 		return FALSE;
 	    }
@@ -3055,11 +2960,10 @@
    dynamic sections here.  */
 
 static bfd_boolean
-elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym)
-     bfd *output_bfd;
-     struct bfd_link_info *info;
-     struct elf_link_hash_entry *h;
-     Elf_Internal_Sym *sym;
+elf_i386_finish_dynamic_symbol (bfd *output_bfd,
+				struct bfd_link_info *info,
+				struct elf_link_hash_entry *h,
+				Elf_Internal_Sym *sym)
 {
   struct elf_i386_link_hash_table *htab;
 
@@ -3218,10 +3122,9 @@
    dynamic linker, before writing them out.  */
 
 static enum elf_reloc_type_class
-elf_i386_reloc_type_class (rela)
-     const Elf_Internal_Rela *rela;
+elf_i386_reloc_type_class (const Elf_Internal_Rela *rela)
 {
-  switch ((int) ELF32_R_TYPE (rela->r_info))
+  switch (ELF32_R_TYPE (rela->r_info))
     {
     case R_386_RELATIVE:
       return reloc_class_relative;
@@ -3237,9 +3140,8 @@
 /* Finish up the dynamic sections.  */
 
 static bfd_boolean
-elf_i386_finish_dynamic_sections (output_bfd, info)
-     bfd *output_bfd;
-     struct bfd_link_info *info;
+elf_i386_finish_dynamic_sections (bfd *output_bfd,
+				  struct bfd_link_info *info)
 {
   struct elf_i386_link_hash_table *htab;
   bfd *dynobj;
@@ -3348,11 +3250,11 @@
       if (htab->sgotplt->_raw_size > 0)
 	{
 	  bfd_put_32 (output_bfd,
-		      (sdyn == NULL ? (bfd_vma) 0
+		      (sdyn == NULL ? 0
 		       : sdyn->output_section->vma + sdyn->output_offset),
 		      htab->sgotplt->contents);
-	  bfd_put_32 (output_bfd, (bfd_vma) 0, htab->sgotplt->contents + 4);
-	  bfd_put_32 (output_bfd, (bfd_vma) 0, htab->sgotplt->contents + 8);
+	  bfd_put_32 (output_bfd, 0, htab->sgotplt->contents + 4);
+	  bfd_put_32 (output_bfd, 0, htab->sgotplt->contents + 8);
 	}
 
       elf_section_data (htab->sgotplt->output_section)->this_hdr.sh_entsize = 4;
@@ -3413,13 +3315,9 @@
    "FreeBSD" label in the ELF header.  So we put this label on all
    executables and (for simplicity) also all other object files.  */
 
-static void elf_i386_post_process_headers
-  PARAMS ((bfd *, struct bfd_link_info *));
-
 static void
-elf_i386_post_process_headers (abfd, link_info)
-     bfd *abfd;
-     struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
+elf_i386_post_process_headers (bfd *abfd,
+			       struct bfd_link_info *info ATTRIBUTE_UNUSED)
 {
   Elf_Internal_Ehdr *i_ehdrp;
 
diff --git a/bfd/elf32-i860.c b/bfd/elf32-i860.c
index 74112f1..cec42be 100644
--- a/bfd/elf32-i860.c
+++ b/bfd/elf32-i860.c
@@ -1,5 +1,5 @@
 /* Intel i860 specific support for 32-bit ELF.
-   Copyright 1993, 1995, 1999, 2000, 2001, 2002
+   Copyright 1993, 1995, 1999, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
 
    Full i860 support contributed by Jason Eckhardt <jle@cygnus.com>.
@@ -840,7 +840,7 @@
    zero.
 
    This function is responsible for adjusting the section contents as
-   necessary, and (if using Rela relocs and generating a relocateable
+   necessary, and (if using Rela relocs and generating a relocatable
    output file) adjusting the reloc addend as necessary.
 
    This function does not have to worry about setting the reloc
@@ -854,7 +854,7 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
@@ -876,7 +876,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf32-i960.c b/bfd/elf32-i960.c
index 4a1e931..6218e1a 100644
--- a/bfd/elf32-i960.c
+++ b/bfd/elf32-i960.c
@@ -1,5 +1,5 @@
 /* Intel 860 specific support for 32-bit ELF
-   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -96,7 +96,7 @@
   cache_ptr->howto = &elf_howto_table[(int) type];
 }
 
-/* ELF relocs are against symbols.  If we are producing relocateable
+/* ELF relocs are against symbols.  If we are producing relocatable
    output, and the reloc is against an external symbol, and nothing
    has given us any additional addend, the resulting reloc will also
    be against the same symbol.  In such a case, we don't want to
@@ -104,7 +104,7 @@
    all be done at final link time.  Rather than put special case code
    into bfd_perform_relocation, all the reloc types use this howto
    function.  It just short circuits the reloc if producing
-   relocateable output against an external symbol.  */
+   relocatable output against an external symbol.  */
 
 bfd_reloc_status_type
 elf32_i960_relocate (abfd,
diff --git a/bfd/elf32-ip2k.c b/bfd/elf32-ip2k.c
index e10e941..4cb28bb 100644
--- a/bfd/elf32-ip2k.c
+++ b/bfd/elf32-ip2k.c
@@ -834,7 +834,7 @@
   /* We don't have to do anything for a relocatable link,
      if this section does not have relocs, or if this is
      not a code section.  */
-  if (link_info->relocateable
+  if (link_info->relocatable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
@@ -1456,7 +1456,7 @@
    zero.
 
    This function is responsible for adjusting the section contents as
-   necessary, and (if using Rela relocs and generating a relocateable
+   necessary, and (if using Rela relocs and generating a relocatable
    output file) adjusting the reloc addend as necessary.
 
    This function does not have to worry about setting the reloc
@@ -1470,7 +1470,7 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
@@ -1493,7 +1493,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf32-iq2000.c b/bfd/elf32-iq2000.c
index ebdd303..e2a3b17 100644
--- a/bfd/elf32-iq2000.c
+++ b/bfd/elf32-iq2000.c
@@ -458,7 +458,7 @@
   const Elf_Internal_Rela *rel_end;
   bfd_boolean changed = FALSE;
   
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
   
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -531,7 +531,7 @@
    zero.
 
    This function is responsible for adjusting the section contents as
-   necessary, and (if using Rela relocs and generating a relocateable
+   necessary, and (if using Rela relocs and generating a relocatable
    output file) adjusting the reloc addend as necessary.
 
    This function does not have to worry about setting the reloc
@@ -545,7 +545,7 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
diff --git a/bfd/elf32-m32r.c b/bfd/elf32-m32r.c
index 3116ace..34773ce 100644
--- a/bfd/elf32-m32r.c
+++ b/bfd/elf32-m32r.c
@@ -840,7 +840,7 @@
      asection **secp;
      bfd_vma *valp;
 {
-  if (! info->relocateable
+  if (! info->relocatable
       && (*namep)[0] == '_' && (*namep)[1] == 'S'
       && strcmp (*namep, "_SDA_BASE_") == 0
       && info->hash->creator->flavour == bfd_target_elf_flavour)
@@ -903,7 +903,7 @@
    symbol value correctly.  We look up the symbol _SDA_BASE_ in the output
    BFD.  If we can't find it, we're stuck.  We cache it in the ELF
    target data.  We don't need to adjust the symbol value for an
-   external symbol if we are producing relocateable output.  */
+   external symbol if we are producing relocatable output.  */
 
 static bfd_reloc_status_type
 m32r_elf_final_sda_base (output_bfd, info, error_message, psb)
@@ -948,7 +948,7 @@
 
    This function is responsible for adjust the section contents as
    necessary, and (if using Rela relocs and generating a
-   relocateable output file) adjusting the reloc addend as
+   relocatable output file) adjusting the reloc addend as
    necessary.
 
    This function does not have to worry about setting the reloc
@@ -962,7 +962,7 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
@@ -987,7 +987,7 @@
   bfd_boolean ret = TRUE;
 
 #if !USE_REL
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 #endif
 
@@ -1031,9 +1031,9 @@
       r_symndx = ELF32_R_SYM (rel->r_info);
 
 #if USE_REL
-      if (info->relocateable)
+      if (info->relocatable)
 	{
-	  /* This is a relocateable link.  We don't have to change
+	  /* This is a relocatable link.  We don't have to change
 	     anything, unless the reloc is against a section symbol,
 	     in which case we have to adjust according to where the
 	     section symbol winds up in the output section.  */
@@ -1350,10 +1350,10 @@
   /* Assume nothing changes.  */
   *again = FALSE;
 
-  /* We don't have to do anything for a relocateable link, if
+  /* We don't have to do anything for a relocatable link, if
      this section does not have relocs, or if this is not a
      code section.  */
-  if (link_info->relocateable
+  if (link_info->relocatable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0
@@ -1744,12 +1744,12 @@
 
 static bfd_byte *
 m32r_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
-					 data, relocateable, symbols)
+					 data, relocatable, symbols)
      bfd *output_bfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -1762,11 +1762,11 @@
 
   /* We only need to handle the case of relaxing, or of having a
      particular set of section contents, specially.  */
-  if (relocateable
+  if (relocatable
       || elf_section_data (input_section)->this_hdr.contents == NULL)
     return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
 						       link_order, data,
-						       relocateable,
+						       relocatable,
 						       symbols);
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -2050,7 +2050,7 @@
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-m68hc11.c b/bfd/elf32-m68hc11.c
index 1b95105..0383907 100644
--- a/bfd/elf32-m68hc11.c
+++ b/bfd/elf32-m68hc11.c
@@ -687,10 +687,10 @@
   /* Assume nothing changes.  */
   *again = FALSE;
 
-  /* We don't have to do anything for a relocateable link, if
+  /* We don't have to do anything for a relocatable link, if
      this section does not have relocs, or if this is not a
      code section.  */
-  if (link_info->relocateable
+  if (link_info->relocatable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
diff --git a/bfd/elf32-m68hc1x.c b/bfd/elf32-m68hc1x.c
index 176a256..a3def11 100644
--- a/bfd/elf32-m68hc1x.c
+++ b/bfd/elf32-m68hc1x.c
@@ -956,7 +956,7 @@
   const Elf_Internal_Rela *     rel;
   const Elf_Internal_Rela *     rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = & elf_tdata (abfd)->symtab_hdr;
@@ -1152,9 +1152,9 @@
           || r_type == R_M68HC11_GNU_VTINHERIT )
         continue;
 
-      if (info->relocateable)
+      if (info->relocatable)
 	{
-	  /* This is a relocateable link.  We don't have to change
+	  /* This is a relocatable link.  We don't have to change
 	     anything, unless the reloc is against a section symbol,
 	     in which case we have to adjust according to where the
 	     section symbol winds up in the output section.  */
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index 1cf23d6..1320429 100644
--- a/bfd/elf32-m68k.c
+++ b/bfd/elf32-m68k.c
@@ -427,7 +427,7 @@
   asection *srelgot;
   asection *sreloc;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
@@ -1358,7 +1358,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
@@ -2153,7 +2153,7 @@
   bfd_byte *p;
   bfd_size_type amt;
 
-  BFD_ASSERT (! info->relocateable);
+  BFD_ASSERT (! info->relocatable);
 
   *errmsg = NULL;
 
diff --git a/bfd/elf32-mcore.c b/bfd/elf32-mcore.c
index 927418e..e88f01d 100644
--- a/bfd/elf32-mcore.c
+++ b/bfd/elf32-mcore.c
@@ -1,5 +1,5 @@
 /* Motorola MCore specific support for 32-bit ELF
-   Copyright 1994, 1995, 1999, 2000, 2001, 2002
+   Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -367,7 +367,7 @@
 
    This function is responsible for adjust the section contents as
    necessary, and (if using Rela relocs and generating a
-   relocateable output file) adjusting the reloc addend as
+   relocatable output file) adjusting the reloc addend as
    necessary.
 
    This function does not have to worry about setting the reloc
@@ -381,7 +381,7 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
@@ -411,10 +411,10 @@
 	   bfd_archive_filename (input_bfd),
 	   bfd_section_name(input_bfd, input_section),
 	   (long) input_section->reloc_count,
-	   (info->relocateable) ? " (relocatable)" : "");
+	   (info->relocatable) ? " (relocatable)" : "");
 #endif
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   if (! mcore_elf_howto_table [R_MCORE_PCRELIMM8BY4])	/* Initialize howto table if needed */
@@ -637,7 +637,7 @@
   const Elf_Internal_Rela * rel;
   const Elf_Internal_Rela * rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = & elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c
index 67688c9..e495cc4 100644
--- a/bfd/elf32-mips.c
+++ b/bfd/elf32-mips.c
@@ -803,21 +803,21 @@
 
   if (strcmp (bfd_asymbol_name (symbol), "_gp_disp") == 0)
     {
-      bfd_boolean relocateable;
+      bfd_boolean relocatable;
       bfd_vma gp;
 
       if (ret == bfd_reloc_undefined)
 	abort ();
 
       if (output_bfd != NULL)
-	relocateable = TRUE;
+	relocatable = TRUE;
       else
 	{
-	  relocateable = FALSE;
+	  relocatable = FALSE;
 	  output_bfd = symbol->section->output_section->owner;
 	}
 
-      ret = mips_elf_final_gp (output_bfd, symbol, relocateable,
+      ret = mips_elf_final_gp (output_bfd, symbol, relocatable,
 			       error_message, &gp);
       if (ret != bfd_reloc_ok)
 	return ret;
@@ -887,41 +887,42 @@
 	  unsigned long vallo;
 	  struct mips_hi16 *next;
 
-	  /* Do the HI16 relocation.  Note that we actually don't need
-	     to know anything about the LO16 itself, except where to
-	     find the low 16 bits of the addend needed by the LO16.  */
-	  insn = bfd_get_32 (abfd, l->addr);
-	  vallo = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
-
-	  /* The low order 16 bits are always treated as a signed
-	     value.  */
-	  vallo = ((vallo & 0xffff) ^ 0x8000) - 0x8000;
-	  val = ((insn & 0xffff) << 16) + vallo;
-	  val += l->addend;
-
-	  /* If PC-relative, we need to subtract out the address of the LO
-	     half of the HI/LO.  (The actual relocation is relative
-	     to that instruction.)  */
-	  if (reloc_entry->howto->pc_relative)
-	    val -= reloc_entry->address;
-
-	  /* At this point, "val" has the value of the combined HI/LO
-	     pair.  If the low order 16 bits (which will be used for
-	     the LO16 insn) are negative, then we will need an
-	     adjustment for the high order 16 bits.  */
-	  val += 0x8000;
-	  val = (val >> 16) & 0xffff;
-
-	  insn &= ~ (bfd_vma) 0xffff;
-	  insn |= val;
-	  bfd_put_32 (abfd, (bfd_vma) insn, l->addr);
-
 	  if (strcmp (bfd_asymbol_name (symbol), "_gp_disp") == 0)
 	    {
 	      gp_disp_relent = *reloc_entry;
 	      reloc_entry = &gp_disp_relent;
 	      reloc_entry->addend = l->addend;
 	    }
+	  else
+	    {
+	      /* Do the HI16 relocation.  Note that we actually don't need
+		 to know anything about the LO16 itself, except where to
+		 find the low 16 bits of the addend needed by the LO16.  */
+	      insn = bfd_get_32 (abfd, l->addr);
+	      vallo = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
+	      /* The low order 16 bits are always treated as a signed
+		 value.  */
+	      vallo = ((vallo & 0xffff) ^ 0x8000) - 0x8000;
+	      val = ((insn & 0xffff) << 16) + vallo;
+	      val += l->addend;
+
+	      /* If PC-relative, we need to subtract out the address of the LO
+		 half of the HI/LO.  (The actual relocation is relative
+		 to that instruction.)  */
+	      if (reloc_entry->howto->pc_relative)
+		val -= reloc_entry->address;
+
+	      /* At this point, "val" has the value of the combined HI/LO
+		 pair.  If the low order 16 bits (which will be used for
+		 the LO16 insn) are negative, then we will need an
+		 adjustment for the high order 16 bits.  */
+	      val += 0x8000;
+	      val = (val >> 16) & 0xffff;
+
+	      insn &= ~ (bfd_vma) 0xffff;
+	      insn |= val;
+	      bfd_put_32 (abfd, (bfd_vma) insn, l->addr);
+	    }
 
 	  next = l->next;
 	  free (l);
@@ -1053,18 +1054,18 @@
    symbol value correctly.  We look up the symbol _gp in the output
    BFD.  If we can't find it, we're stuck.  We cache it in the ELF
    target data.  We don't need to adjust the symbol value for an
-   external symbol if we are producing relocateable output.  */
+   external symbol if we are producing relocatable output.  */
 
 static bfd_reloc_status_type
-mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
+mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, pgp)
      bfd *output_bfd;
      asymbol *symbol;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      char **error_message;
      bfd_vma *pgp;
 {
   if (bfd_is_und_section (symbol->section)
-      && ! relocateable)
+      && ! relocatable)
     {
       *pgp = 0;
       return bfd_reloc_undefined;
@@ -1072,10 +1073,10 @@
 
   *pgp = _bfd_get_gp_value (output_bfd);
   if (*pgp == 0
-      && (! relocateable
+      && (! relocatable
 	  || (symbol->flags & BSF_SECTION_SYM) != 0))
     {
-      if (relocateable)
+      if (relocatable)
 	{
 	  /* Make up a value.  */
 	  *pgp = symbol->section->output_section->vma + 0x4000;
@@ -1109,7 +1110,7 @@
      bfd *output_bfd;
      char **error_message;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1124,20 +1125,20 @@
     }
 
   if (output_bfd != (bfd *) NULL)
-    relocateable = TRUE;
+    relocatable = TRUE;
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
-  ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message,
+  ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message,
 			   &gp);
   if (ret != bfd_reloc_ok)
     return ret;
 
   return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
-					input_section, relocateable,
+					input_section, relocatable,
 					data, gp);
 }
 
@@ -1155,7 +1156,7 @@
      bfd *output_bfd;
      char **error_message;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1171,30 +1172,30 @@
     }
 
   if (output_bfd != (bfd *) NULL)
-    relocateable = TRUE;
+    relocatable = TRUE;
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
-  ret = mips_elf_final_gp (output_bfd, symbol, relocateable,
+  ret = mips_elf_final_gp (output_bfd, symbol, relocatable,
 			   error_message, &gp);
   if (ret != bfd_reloc_ok)
     return ret;
 
   return gprel32_with_gp (abfd, symbol, reloc_entry, input_section,
-			  relocateable, data, gp);
+			  relocatable, data, gp);
 }
 
 static bfd_reloc_status_type
-gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocateable, data,
+gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocatable, data,
 		 gp)
      bfd *abfd;
      asymbol *symbol;
      arelent *reloc_entry;
      asection *input_section;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      PTR data;
      bfd_vma gp;
 {
@@ -1219,9 +1220,9 @@
     val += bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
 
   /* Adjust val for the final section location and GP value.  If we
-     are producing relocateable output, we don't want to do this for
+     are producing relocatable output, we don't want to do this for
      an external symbol.  */
-  if (! relocateable
+  if (! relocatable
       || (symbol->flags & BSF_SECTION_SYM) != 0)
     val += relocation - gp;
 
@@ -1230,7 +1231,7 @@
   else
     reloc_entry->addend = val;
 
-  if (relocateable)
+  if (relocatable)
     reloc_entry->address += input_section->output_offset;
 
   return bfd_reloc_ok;
@@ -1331,7 +1332,7 @@
      bfd *output_bfd;
      char **error_message;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
   unsigned short extend = 0;
@@ -1350,14 +1351,14 @@
     }
 
   if (output_bfd != NULL)
-    relocateable = TRUE;
+    relocatable = TRUE;
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
-  ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message,
+  ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message,
 			   &gp);
   if (ret != bfd_reloc_ok)
     return ret;
@@ -1387,9 +1388,9 @@
   _bfd_mips_elf_sign_extend(val, 16);
 
   /* Adjust val for the final section location and GP value.  If we
-     are producing relocateable output, we don't want to do this for
+     are producing relocatable output, we don't want to do this for
      an external symbol.  */
-  if (! relocateable
+  if (! relocatable
       || (symbol->flags & BSF_SECTION_SYM) != 0)
     val += relocation - gp;
 
@@ -1408,7 +1409,7 @@
   else
     reloc_entry->addend = val;
 
-  if (relocateable)
+  if (relocatable)
     reloc_entry->address += input_section->output_offset;
   else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0))
     return bfd_reloc_overflow;
@@ -1729,7 +1730,7 @@
   Elf_Internal_Rela *irel, *irelend;
   bfd_byte *p;
 
-  BFD_ASSERT (! info->relocateable);
+  BFD_ASSERT (! info->relocatable);
 
   *errmsg = NULL;
 
diff --git a/bfd/elf32-msp430.c b/bfd/elf32-msp430.c
index 694a30f..23f5069 100644
--- a/bfd/elf32-msp430.c
+++ b/bfd/elf32-msp430.c
@@ -1,5 +1,5 @@
 /*  MSP430-specific support for 32-bit ELF
-    Copyright (C) 2002 Free Software Foundation, Inc.
+    Copyright (C) 2002, 2003 Free Software Foundation, Inc.
     Contributed by Dmitry Diky <diwil@mail.ru>
 
     This file is part of BFD, the Binary File Descriptor library.
@@ -278,7 +278,7 @@
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-openrisc.c b/bfd/elf32-openrisc.c
index 8e8d0bc..a9b6d1d 100644
--- a/bfd/elf32-openrisc.c
+++ b/bfd/elf32-openrisc.c
@@ -1,5 +1,5 @@
 /* OpenRISC-specific support for 32-bit ELF.
-   Copyright 2001, 2002 Free Software Foundation, Inc.
+   Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
    Contributed by Johan Rydberg, jrydberg@opencores.org
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -298,7 +298,7 @@
    zero.
 
    This function is responsible for adjusting the section contents as
-   necessary, and (if using Rela relocs and generating a relocateable
+   necessary, and (if using Rela relocs and generating a relocatable
    output file) adjusting the reloc addend as necessary.
 
    This function does not have to worry about setting the reloc
@@ -312,7 +312,7 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
@@ -335,7 +335,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -529,7 +529,7 @@
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index d2cbd83..2e1353f 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -35,88 +35,10 @@
 
 /* RELA relocations are used here.  */
 
-static struct bfd_hash_entry *ppc_elf_link_hash_newfunc
-  PARAMS ((struct bfd_hash_entry *entry, struct bfd_hash_table *table,
-	   const char *string));
-static struct bfd_link_hash_table *ppc_elf_link_hash_table_create
-  PARAMS ((bfd *abfd));
-static void ppc_elf_copy_indirect_symbol
-  PARAMS ((struct elf_backend_data *bed, struct elf_link_hash_entry *dir,
-	   struct elf_link_hash_entry *ind));
-static reloc_howto_type *ppc_elf_reloc_type_lookup
-  PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
-static void ppc_elf_info_to_howto
-  PARAMS ((bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst));
-static void ppc_elf_howto_init
-  PARAMS ((void));
-static int ppc_elf_sort_rela
-  PARAMS ((const PTR, const PTR));
-static bfd_boolean ppc_elf_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
 static bfd_reloc_status_type ppc_elf_addr16_ha_reloc
-  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+  (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
 static bfd_reloc_status_type ppc_elf_unhandled_reloc
-  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static bfd_boolean ppc_elf_object_p
-  PARAMS ((bfd *));
-static bfd_boolean ppc_elf_set_private_flags
-  PARAMS ((bfd *, flagword));
-static bfd_boolean ppc_elf_merge_private_bfd_data
-  PARAMS ((bfd *, bfd *));
-static int ppc_elf_additional_program_headers
-  PARAMS ((bfd *));
-static bfd_boolean ppc_elf_modify_segment_map
-  PARAMS ((bfd *));
-static bfd_boolean ppc_elf_create_got
-  PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean ppc_elf_create_dynamic_sections
-  PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean ppc_elf_section_from_shdr
-  PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
-static bfd_boolean ppc_elf_fake_sections
-  PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
-static elf_linker_section_t *ppc_elf_create_linker_section
-  PARAMS ((bfd *abfd, struct bfd_link_info *info,
-	   enum elf_linker_section_enum));
-static bfd_boolean update_local_sym_info
-  PARAMS ((bfd *, Elf_Internal_Shdr *, unsigned long, int));
-static void bad_shared_reloc
-  PARAMS ((bfd *, enum elf_ppc_reloc_type));
-static bfd_boolean ppc_elf_check_relocs
-  PARAMS ((bfd *, struct bfd_link_info *, asection *,
-	   const Elf_Internal_Rela *));
-static asection *ppc_elf_gc_mark_hook
-  PARAMS ((asection *sec, struct bfd_link_info *info, Elf_Internal_Rela *rel,
-	   struct elf_link_hash_entry *h, Elf_Internal_Sym *sym));
-static bfd_boolean ppc_elf_gc_sweep_hook
-  PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *sec,
-	   const Elf_Internal_Rela *relocs));
-static bfd_boolean ppc_elf_adjust_dynamic_symbol
-  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static bfd_boolean allocate_dynrelocs
-  PARAMS ((struct elf_link_hash_entry *, PTR));
-static bfd_boolean readonly_dynrelocs
-  PARAMS ((struct elf_link_hash_entry *, PTR));
-static bfd_boolean ppc_elf_size_dynamic_sections
-  PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean ppc_elf_relocate_section
-  PARAMS ((bfd *, struct bfd_link_info *info, bfd *, asection *, bfd_byte *,
-	   Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms,
-	   asection **));
-static bfd_boolean ppc_elf_add_symbol_hook
-  PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
-	   const char **, flagword *, asection **, bfd_vma *));
-static bfd_boolean ppc_elf_finish_dynamic_symbol
-  PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
-	   Elf_Internal_Sym *));
-static bfd_boolean ppc_elf_finish_dynamic_sections
-  PARAMS ((bfd *, struct bfd_link_info *));
-static enum elf_reloc_type_class ppc_elf_reloc_type_class
-  PARAMS ((const Elf_Internal_Rela *));
-static bfd_boolean ppc_elf_grok_prstatus
-  PARAMS ((bfd *abfd, Elf_Internal_Note *note));
-static bfd_boolean ppc_elf_grok_psinfo
-  PARAMS ((bfd *abfd, Elf_Internal_Note *note));
+  (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
 
 /* Branch prediction bit for branch taken relocs.  */
 #define BRANCH_PREDICT_BIT 0x200000
@@ -235,10 +157,9 @@
 /* Create an entry in a PPC ELF linker hash table.  */
 
 static struct bfd_hash_entry *
-ppc_elf_link_hash_newfunc (entry, table, string)
-     struct bfd_hash_entry *entry;
-     struct bfd_hash_table *table;
-     const char *string;
+ppc_elf_link_hash_newfunc (struct bfd_hash_entry *entry,
+			   struct bfd_hash_table *table,
+			   const char *string)
 {
   /* Allocate the structure if it has not already been allocated by a
      subclass.  */
@@ -264,13 +185,11 @@
 /* Create a PPC ELF linker hash table.  */
 
 static struct bfd_link_hash_table *
-ppc_elf_link_hash_table_create (abfd)
-     bfd *abfd;
+ppc_elf_link_hash_table_create (bfd *abfd)
 {
   struct ppc_elf_link_hash_table *ret;
 
-  ret = ((struct ppc_elf_link_hash_table *)
-	 bfd_malloc (sizeof (struct ppc_elf_link_hash_table)));
+  ret = bfd_malloc (sizeof (struct ppc_elf_link_hash_table));
   if (ret == NULL)
     return NULL;
 
@@ -308,9 +227,9 @@
 /* Copy the extra info we tack onto an elf_link_hash_entry.  */
 
 static void
-ppc_elf_copy_indirect_symbol (bed, dir, ind)
-     struct elf_backend_data *bed;
-     struct elf_link_hash_entry *dir, *ind;
+ppc_elf_copy_indirect_symbol (struct elf_backend_data *bed,
+			      struct elf_link_hash_entry *dir,
+			      struct elf_link_hash_entry *ind)
 {
   struct ppc_elf_link_hash_entry *edir, *eind;
 
@@ -367,7 +286,7 @@
     _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
 }
 
-static reloc_howto_type *ppc_elf_howto_table[(int) R_PPC_max];
+static reloc_howto_type *ppc_elf_howto_table[R_PPC_max];
 
 static reloc_howto_type ppc_elf_howto_raw[] = {
   /* This reloc does nothing.  */
@@ -1606,7 +1525,7 @@
 /* Initialize the ppc_elf_howto_table, so that linear accesses can be done.  */
 
 static void
-ppc_elf_howto_init ()
+ppc_elf_howto_init (void)
 {
   unsigned int i, type;
 
@@ -1647,23 +1566,20 @@
 /* Sort sections by address.  */
 
 static int
-ppc_elf_sort_rela (arg1, arg2)
-     const PTR arg1;
-     const PTR arg2;
+ppc_elf_sort_rela (const void *arg1, const void *arg2)
 {
-  const Elf_Internal_Rela **rela1 = (const Elf_Internal_Rela**) arg1;
-  const Elf_Internal_Rela **rela2 = (const Elf_Internal_Rela**) arg2;
+  const Elf_Internal_Rela * const *rela1 = arg1;
+  const Elf_Internal_Rela * const *rela2 = arg2;
 
   /* Sort by offset.  */
   return ((*rela1)->r_offset - (*rela2)->r_offset);
 }
 
 static bfd_boolean
-ppc_elf_relax_section (abfd, isec, link_info, again)
-     bfd *abfd;
-     asection *isec;
-     struct bfd_link_info *link_info;
-     bfd_boolean *again;
+ppc_elf_relax_section (bfd *abfd,
+		       asection *isec,
+		       struct bfd_link_info *link_info,
+		       bfd_boolean *again)
 {
 #define PAGESIZE 0x1000
 
@@ -1695,7 +1611,7 @@
       else
 	{
 	  /* Go get them off disk.  */
-	  contents = (bfd_byte *) bfd_malloc (isec->_raw_size);
+	  contents = bfd_malloc (isec->_raw_size);
 	  if (contents == NULL)
 	    goto error_return;
 	  free_contents = contents;
@@ -1714,8 +1630,7 @@
 
 	  /* Get a copy of the native relocations.  */
 	  internal_relocs
-	    = _bfd_elf_link_read_relocs (abfd, isec, (PTR) NULL,
-					 (Elf_Internal_Rela *) NULL,
+	    = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL,
 					 link_info->keep_memory);
 	  if (internal_relocs == NULL)
 	    goto error_return;
@@ -1725,15 +1640,15 @@
 	  /* Setup a faster access method for the reloc info we need.  */
 	  amt = isec->reloc_count;
 	  amt *= sizeof (Elf_Internal_Rela*);
-	  rela_comb = (Elf_Internal_Rela**) bfd_malloc (amt);
+	  rela_comb = bfd_malloc (amt);
 	  if (rela_comb == NULL)
 	    goto error_return;
 	  for (n = 0; n < isec->reloc_count; ++n)
 	    {
-	      long r_type;
+	      enum elf_ppc_reloc_type r_type;
 
 	      r_type = ELF32_R_TYPE (internal_relocs[n].r_info);
-	      if (r_type < 0 || r_type >= (int) R_PPC_max)
+	      if (r_type >= R_PPC_max)
 		goto error_return;
 
 	      /* Prologue constants are sometimes present in the ".text"
@@ -1861,7 +1776,7 @@
 #undef BO4
 	      if (modified)
 		{
-		  bfd_put_32 (abfd, (bfd_vma) insn, contents + isec_offset);
+		  bfd_put_32 (abfd, insn, contents + isec_offset);
 		  section_modified = TRUE;
 		}
 	    }
@@ -1910,20 +1825,19 @@
 }
 
 static reloc_howto_type *
-ppc_elf_reloc_type_lookup (abfd, code)
-     bfd *abfd ATTRIBUTE_UNUSED;
-     bfd_reloc_code_real_type code;
+ppc_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+			   bfd_reloc_code_real_type code)
 {
   enum elf_ppc_reloc_type r;
 
+  /* Initialize howto table if not already done.  */
   if (!ppc_elf_howto_table[R_PPC_ADDR32])
-    /* Initialize howto table if needed.  */
     ppc_elf_howto_init ();
 
-  switch ((int) code)
+  switch (code)
     {
     default:
-      return (reloc_howto_type *) NULL;
+      return NULL;
 
     case BFD_RELOC_NONE:		r = R_PPC_NONE;			break;
     case BFD_RELOC_32:			r = R_PPC_ADDR32;		break;
@@ -2008,19 +1922,18 @@
     case BFD_RELOC_VTABLE_ENTRY:	r = R_PPC_GNU_VTENTRY;		break;
     }
 
-  return ppc_elf_howto_table[(int) r];
+  return ppc_elf_howto_table[r];
 };
 
 /* Set the howto pointer for a PowerPC ELF reloc.  */
 
 static void
-ppc_elf_info_to_howto (abfd, cache_ptr, dst)
-     bfd *abfd ATTRIBUTE_UNUSED;
-     arelent *cache_ptr;
-     Elf_Internal_Rela *dst;
+ppc_elf_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
+		       arelent *cache_ptr,
+		       Elf_Internal_Rela *dst)
 {
+  /* Initialize howto table if not already done.  */
   if (!ppc_elf_howto_table[R_PPC_ADDR32])
-    /* Initialize howto table if needed.  */
     ppc_elf_howto_init ();
 
   BFD_ASSERT (ELF32_R_TYPE (dst->r_info) < (unsigned int) R_PPC_max);
@@ -2030,15 +1943,13 @@
 /* Handle the R_PPC_ADDR16_HA reloc.  */
 
 static bfd_reloc_status_type
-ppc_elf_addr16_ha_reloc (abfd, reloc_entry, symbol, data, input_section,
-			 output_bfd, error_message)
-     bfd *abfd ATTRIBUTE_UNUSED;
-     arelent *reloc_entry;
-     asymbol *symbol;
-     PTR data ATTRIBUTE_UNUSED;
-     asection *input_section;
-     bfd *output_bfd;
-     char **error_message ATTRIBUTE_UNUSED;
+ppc_elf_addr16_ha_reloc (bfd *abfd ATTRIBUTE_UNUSED,
+			 arelent *reloc_entry,
+			 asymbol *symbol,
+			 void *data ATTRIBUTE_UNUSED,
+			 asection *input_section,
+			 bfd *output_bfd,
+			 char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma relocation;
 
@@ -2066,15 +1977,13 @@
 }
 
 static bfd_reloc_status_type
-ppc_elf_unhandled_reloc (abfd, reloc_entry, symbol, data,
-			 input_section, output_bfd, error_message)
-     bfd *abfd;
-     arelent *reloc_entry;
-     asymbol *symbol;
-     PTR data;
-     asection *input_section;
-     bfd *output_bfd;
-     char **error_message;
+ppc_elf_unhandled_reloc (bfd *abfd,
+			 arelent *reloc_entry,
+			 asymbol *symbol,
+			 void *data,
+			 asection *input_section,
+			 bfd *output_bfd,
+			 char **error_message)
 {
   /* If this is a relocatable link (output_bfd test tells us), just
      call the generic function.  Any adjustment will be done at final
@@ -2086,7 +1995,7 @@
   if (error_message != NULL)
     {
       static char buf[60];
-      sprintf (buf, "generic linker can't handle %s",
+      sprintf (buf, _("generic linker can't handle %s"),
 	       reloc_entry->howto->name);
       *error_message = buf;
     }
@@ -2097,8 +2006,7 @@
    default is 64 bit.  */
 
 static bfd_boolean
-ppc_elf_object_p (abfd)
-     bfd *abfd;
+ppc_elf_object_p (bfd *abfd)
 {
   if (abfd->arch_info->the_default && abfd->arch_info->bits_per_word == 64)
     {
@@ -2117,9 +2025,7 @@
 /* Function to set whether a module needs the -mrelocatable bit set.  */
 
 static bfd_boolean
-ppc_elf_set_private_flags (abfd, flags)
-     bfd *abfd;
-     flagword flags;
+ppc_elf_set_private_flags (bfd *abfd, flagword flags)
 {
   BFD_ASSERT (!elf_flags_init (abfd)
 	      || elf_elfheader (abfd)->e_flags == flags);
@@ -2133,9 +2039,7 @@
    object file when linking.  */
 
 static bfd_boolean
-ppc_elf_merge_private_bfd_data (ibfd, obfd)
-     bfd *ibfd;
-     bfd *obfd;
+ppc_elf_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
 {
   flagword old_flags;
   flagword new_flags;
@@ -2173,7 +2077,8 @@
 	{
 	  error = TRUE;
 	  (*_bfd_error_handler)
-	    (_("%s: compiled with -mrelocatable and linked with modules compiled normally"),
+	    (_("%s: compiled with -mrelocatable and linked with "
+	       "modules compiled normally"),
 	     bfd_archive_filename (ibfd));
 	}
       else if ((new_flags & (EF_PPC_RELOCATABLE | EF_PPC_RELOCATABLE_LIB)) == 0
@@ -2181,7 +2086,8 @@
 	{
 	  error = TRUE;
 	  (*_bfd_error_handler)
-	    (_("%s: compiled normally and linked with modules compiled with -mrelocatable"),
+	    (_("%s: compiled normally and linked with "
+	       "modules compiled with -mrelocatable"),
 	     bfd_archive_filename (ibfd));
 	}
 
@@ -2208,7 +2114,8 @@
 	{
 	  error = TRUE;
 	  (*_bfd_error_handler)
-	    (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
+	    (_("%s: uses different e_flags (0x%lx) fields "
+	       "than previous modules (0x%lx)"),
 	     bfd_archive_filename (ibfd), (long) new_flags, (long) old_flags);
 	}
 
@@ -2226,10 +2133,7 @@
    is called when elfcode.h finds a section with an unknown type.  */
 
 static bfd_boolean
-ppc_elf_section_from_shdr (abfd, hdr, name)
-     bfd *abfd;
-     Elf_Internal_Shdr *hdr;
-     const char *name;
+ppc_elf_section_from_shdr (bfd *abfd, Elf_Internal_Shdr *hdr, const char *name)
 {
   asection *newsect;
   flagword flags;
@@ -2252,10 +2156,9 @@
 /* Set up any other section flags and such that may be necessary.  */
 
 static bfd_boolean
-ppc_elf_fake_sections (abfd, shdr, asect)
-     bfd *abfd ATTRIBUTE_UNUSED;
-     Elf_Internal_Shdr *shdr;
-     asection *asect;
+ppc_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
+		       Elf_Internal_Shdr *shdr,
+		       asection *asect)
 {
   if ((asect->flags & SEC_EXCLUDE) != 0)
     shdr->sh_flags |= SHF_EXCLUDE;
@@ -2268,10 +2171,9 @@
 
 /* Create a special linker section */
 static elf_linker_section_t *
-ppc_elf_create_linker_section (abfd, info, which)
-     bfd *abfd;
-     struct bfd_link_info *info;
-     enum elf_linker_section_enum which;
+ppc_elf_create_linker_section (bfd *abfd,
+			       struct bfd_link_info *info,
+			       enum elf_linker_section_enum which)
 {
   bfd *dynobj = elf_hash_table (info)->dynobj;
   elf_linker_section_t *lsect;
@@ -2311,7 +2213,7 @@
 				 (int) which);
 
 	  bfd_set_error (bfd_error_bad_value);
-	  return (elf_linker_section_t *) 0;
+	  return NULL;
 
 	case LINKER_SECTION_SDATA:	/* .sdata/.sbss section */
 	  defaults.name		  = ".sdata";
@@ -2341,8 +2243,7 @@
    need to bump up the number of section headers.  */
 
 static int
-ppc_elf_additional_program_headers (abfd)
-     bfd *abfd;
+ppc_elf_additional_program_headers (bfd *abfd)
 {
   asection *s;
   int ret;
@@ -2367,8 +2268,7 @@
 /* Modify the segment map if needed.  */
 
 static bfd_boolean
-ppc_elf_modify_segment_map (abfd)
-     bfd *abfd ATTRIBUTE_UNUSED;
+ppc_elf_modify_segment_map (bfd *abfd ATTRIBUTE_UNUSED)
 {
   return TRUE;
 }
@@ -2376,9 +2276,7 @@
 /* The powerpc .got has a blrl instruction in it.  Mark it executable.  */
 
 static bfd_boolean
-ppc_elf_create_got (abfd, info)
-     bfd *abfd;
-     struct bfd_link_info *info;
+ppc_elf_create_got (bfd *abfd, struct bfd_link_info *info)
 {
   struct ppc_elf_link_hash_table *htab;
   asection *s;
@@ -2414,9 +2312,7 @@
    to create .dynbss and .rela.bss).  */
 
 static bfd_boolean
-ppc_elf_create_dynamic_sections (abfd, info)
-     bfd *abfd;
-     struct bfd_link_info *info;
+ppc_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
 {
   struct ppc_elf_link_hash_table *htab;
   asection *s;
@@ -2464,9 +2360,8 @@
    understand.  */
 
 static bfd_boolean
-ppc_elf_adjust_dynamic_symbol (info, h)
-     struct bfd_link_info *info;
-     struct elf_link_hash_entry *h;
+ppc_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
+			       struct elf_link_hash_entry *h)
 {
   struct ppc_elf_link_hash_table *htab;
   asection *s;
@@ -2655,11 +2550,9 @@
 /* Allocate space in associated reloc sections for dynamic relocs.  */
 
 static bfd_boolean
-allocate_dynrelocs (h, inf)
-     struct elf_link_hash_entry *h;
-     PTR inf;
+allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
 {
-  struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  struct bfd_link_info *info = inf;
   struct ppc_elf_link_hash_entry *eh;
   struct ppc_elf_link_hash_table *htab;
   struct ppc_elf_dyn_relocs *p;
@@ -2804,7 +2697,7 @@
 	 generated via assembly.  We want calls to protected symbols to
 	 resolve directly to the function rather than going via the plt.
 	 If people want function pointer comparisons to work as expected
-	 then they should avoid writing weird assembly.  */ 
+	 then they should avoid writing weird assembly.  */
       if (SYMBOL_CALLS_LOCAL (info, h))
 	{
 	  struct ppc_elf_dyn_relocs **pp;
@@ -2869,9 +2762,7 @@
 /* Find any dynamic relocs that apply to read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (h, info)
-     struct elf_link_hash_entry *h;
-     PTR info;
+readonly_dynrelocs (struct elf_link_hash_entry *h, void *info)
 {
   struct ppc_elf_dyn_relocs *p;
 
@@ -2901,9 +2792,8 @@
 /* Set the sizes of the dynamic sections.  */
 
 static bfd_boolean
-ppc_elf_size_dynamic_sections (output_bfd, info)
-     bfd *output_bfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info *info;
+ppc_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
+			       struct bfd_link_info *info)
 {
   struct ppc_elf_link_hash_table *htab;
   asection *s;
@@ -3087,7 +2977,7 @@
 	}
 
       /* Allocate memory for the section contents.  */
-      s->contents = (bfd_byte *) bfd_zalloc (htab->elf.dynobj, s->_raw_size);
+      s->contents = bfd_zalloc (htab->elf.dynobj, s->_raw_size);
       if (s->contents == NULL)
 	return FALSE;
     }
@@ -3100,7 +2990,7 @@
 	 the .dynamic section.  The DT_DEBUG entry is filled in by the
 	 dynamic linker and used by the debugger.  */
 #define add_dynamic_entry(TAG, VAL) \
-  bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
+  bfd_elf32_add_dynamic_entry (info, (TAG), (VAL))
 
       if (info->executable)
 	{
@@ -3129,7 +3019,7 @@
 	 need a DT_TEXTREL entry.  */
       if ((info->flags & DF_TEXTREL) == 0)
 	elf_link_hash_traverse (elf_hash_table (info), readonly_dynrelocs,
-				(PTR) info);
+				info);
 
       if ((info->flags & DF_TEXTREL) != 0)
 	{
@@ -3143,11 +3033,10 @@
 }
 
 static bfd_boolean
-update_local_sym_info (abfd, symtab_hdr, r_symndx, tls_type)
-     bfd *abfd;
-     Elf_Internal_Shdr *symtab_hdr;
-     unsigned long r_symndx;
-     int tls_type;
+update_local_sym_info (bfd *abfd,
+		       Elf_Internal_Shdr *symtab_hdr,
+		       unsigned long r_symndx,
+		       int tls_type)
 {
   bfd_signed_vma *local_got_refcounts = elf_local_got_refcounts (abfd);
   char *local_got_tls_masks;
@@ -3157,7 +3046,7 @@
       bfd_size_type size = symtab_hdr->sh_info;
 
       size *= sizeof (*local_got_refcounts) + sizeof (*local_got_tls_masks);
-      local_got_refcounts = (bfd_signed_vma *) bfd_zalloc (abfd, size);
+      local_got_refcounts = bfd_zalloc (abfd, size);
       if (local_got_refcounts == NULL)
 	return FALSE;
       elf_local_got_refcounts (abfd) = local_got_refcounts;
@@ -3170,14 +3059,12 @@
 }
 
 static void
-bad_shared_reloc (abfd, r_type)
-     bfd *abfd;
-     enum elf_ppc_reloc_type r_type;
+bad_shared_reloc (bfd *abfd, enum elf_ppc_reloc_type r_type)
 {
   (*_bfd_error_handler)
     (_("%s: relocation %s cannot be used when making a shared object"),
      bfd_archive_filename (abfd),
-     ppc_elf_howto_table[(int) r_type]->name);
+     ppc_elf_howto_table[r_type]->name);
   bfd_set_error (bfd_error_bad_value);
 }
 
@@ -3186,11 +3073,10 @@
    table.  */
 
 static bfd_boolean
-ppc_elf_check_relocs (abfd, info, sec, relocs)
-     bfd *abfd;
-     struct bfd_link_info *info;
-     asection *sec;
-     const Elf_Internal_Rela *relocs;
+ppc_elf_check_relocs (bfd *abfd,
+		      struct bfd_link_info *info,
+		      asection *sec,
+		      const Elf_Internal_Rela *relocs)
 {
   struct ppc_elf_link_hash_table *htab;
   Elf_Internal_Shdr *symtab_hdr;
@@ -3199,7 +3085,7 @@
   const Elf_Internal_Rela *rel_end;
   asection *sreloc;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
 #ifdef DEBUG
@@ -3208,9 +3094,12 @@
 	   bfd_archive_filename (abfd));
 #endif
 
+  /* Initialize howto table if not already done.  */
+  if (!ppc_elf_howto_table[R_PPC_ADDR32])
+    ppc_elf_howto_init ();
+
   /* Create the linker generated sections all the time so that the
      special symbols are created.  */
-
   htab = ppc_elf_hash_table (info);
   if (htab->sdata == NULL)
     {
@@ -3264,7 +3153,7 @@
 	    }
 	}
 
-      r_type = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel->r_info);
+      r_type = ELF32_R_TYPE (rel->r_info);
       switch (r_type)
 	{
 	case R_PPC_GOT_TLSLD16:
@@ -3383,6 +3272,12 @@
 	    {
 	      /* It does not make sense to have a procedure linkage
 		 table entry for a local symbol.  */
+	      (*_bfd_error_handler) (_("%s(%s+0x%lx): %s reloc against "
+				       "local symbol"),
+				     bfd_archive_filename (abfd),
+				     sec->name,
+				     (long) rel->r_offset,
+				     ppc_elf_howto_table[r_type]->name);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -3540,7 +3435,9 @@
 	      struct ppc_elf_dyn_relocs **head;
 
 #ifdef DEBUG
-	      fprintf (stderr, "ppc_elf_check_relocs need to create relocation for %s\n",
+	      fprintf (stderr,
+		       "ppc_elf_check_relocs needs to "
+		       "create relocation for %s\n",
 		       (h && h->root.root.string
 			? h->root.root.string : "<unknown>"));
 #endif
@@ -3604,8 +3501,7 @@
 	      p = *head;
 	      if (p == NULL || p->sec != sec)
 		{
-		  p = ((struct ppc_elf_dyn_relocs *)
-		       bfd_alloc (htab->elf.dynobj, sizeof *p));
+		  p = bfd_alloc (htab->elf.dynobj, sizeof *p);
 		  if (p == NULL)
 		    return FALSE;
 		  p->next = *head;
@@ -3631,12 +3527,11 @@
    relocation.  */
 
 static asection *
-ppc_elf_gc_mark_hook (sec, info, rel, h, sym)
-     asection *sec;
-     struct bfd_link_info *info ATTRIBUTE_UNUSED;
-     Elf_Internal_Rela *rel;
-     struct elf_link_hash_entry *h;
-     Elf_Internal_Sym *sym;
+ppc_elf_gc_mark_hook (asection *sec,
+		      struct bfd_link_info *info ATTRIBUTE_UNUSED,
+		      Elf_Internal_Rela *rel,
+		      struct elf_link_hash_entry *h,
+		      Elf_Internal_Sym *sym)
 {
   if (h != NULL)
     {
@@ -3671,11 +3566,10 @@
    section being removed.  */
 
 static bfd_boolean
-ppc_elf_gc_sweep_hook (abfd, info, sec, relocs)
-     bfd *abfd;
-     struct bfd_link_info *info;
-     asection *sec;
-     const Elf_Internal_Rela *relocs;
+ppc_elf_gc_sweep_hook (bfd *abfd,
+		       struct bfd_link_info *info,
+		       asection *sec,
+		       const Elf_Internal_Rela *relocs)
 {
   struct ppc_elf_link_hash_table *htab;
   Elf_Internal_Shdr *symtab_hdr;
@@ -3715,7 +3609,7 @@
 	      }
 	}
 
-      r_type = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel->r_info);
+      r_type = ELF32_R_TYPE (rel->r_info);
       switch (r_type)
 	{
 	case R_PPC_GOT_TLSLD16:
@@ -3796,9 +3690,7 @@
 /* Set htab->tls_sec and htab->tls_get_addr.  */
 
 bfd_boolean
-ppc_elf_tls_setup (obfd, info)
-     bfd *obfd;
-     struct bfd_link_info *info;
+ppc_elf_tls_setup (bfd *obfd, struct bfd_link_info *info)
 {
   asection *tls;
   struct ppc_elf_link_hash_table *htab;
@@ -3820,15 +3712,14 @@
    opportunities.  */
 
 bfd_boolean
-ppc_elf_tls_optimize (obfd, info)
-     bfd *obfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info *info;
+ppc_elf_tls_optimize (bfd *obfd ATTRIBUTE_UNUSED,
+		      struct bfd_link_info *info)
 {
   bfd *ibfd;
   asection *sec;
   struct ppc_elf_link_hash_table *htab;
 
-  if (info->relocateable || info->shared)
+  if (info->relocatable || info->shared)
     return TRUE;
 
   htab = ppc_elf_hash_table (info);
@@ -3844,8 +3735,7 @@
 	    int expecting_tls_get_addr;
 
 	    /* Read the relocations.  */
-	    relstart = _bfd_elf_link_read_relocs (ibfd, sec, (PTR) NULL,
-						  (Elf_Internal_Rela *) NULL,
+	    relstart = _bfd_elf_link_read_relocs (ibfd, sec, NULL, NULL,
 						  info->keep_memory);
 	    if (relstart == NULL)
 	      return FALSE;
@@ -3878,7 +3768,7 @@
 		    || !(h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC))
 		  is_local = TRUE;
 
-		r_type = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel->r_info);
+		r_type = ELF32_R_TYPE (rel->r_info);
 		switch (r_type)
 		  {
 		  case R_PPC_GOT_TLSLD16:
@@ -4015,17 +3905,16 @@
    file.  We use it to put .comm items in .sbss, and not .bss.  */
 
 static bfd_boolean
-ppc_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
-     bfd *abfd;
-     struct bfd_link_info *info;
-     const Elf_Internal_Sym *sym;
-     const char **namep ATTRIBUTE_UNUSED;
-     flagword *flagsp ATTRIBUTE_UNUSED;
-     asection **secp;
-     bfd_vma *valp;
+ppc_elf_add_symbol_hook (bfd *abfd,
+			 struct bfd_link_info *info,
+			 const Elf_Internal_Sym *sym,
+			 const char **namep ATTRIBUTE_UNUSED,
+			 flagword *flagsp ATTRIBUTE_UNUSED,
+			 asection **secp,
+			 bfd_vma *valp)
 {
   if (sym->st_shndx == SHN_COMMON
-      && !info->relocateable
+      && !info->relocatable
       && sym->st_size <= elf_gp_size (abfd)
       && info->hash->creator->flavour == bfd_target_elf_flavour)
     {
@@ -4043,17 +3932,16 @@
 	     will move the symbols to the appropriate output section
 	     when it defines common symbols.  */
 	  amt = sizeof (asection);
-	  sdata->bss_section = (asection *) bfd_zalloc (abfd, amt);
+	  sdata->bss_section = bfd_zalloc (abfd, amt);
 	  if (sdata->bss_section == NULL)
 	    return FALSE;
 	  sdata->bss_section->name = sdata->bss_name;
 	  sdata->bss_section->flags = SEC_IS_COMMON;
 	  sdata->bss_section->output_section = sdata->bss_section;
 	  amt = sizeof (asymbol);
-	  sdata->bss_section->symbol = (asymbol *) bfd_zalloc (abfd, amt);
+	  sdata->bss_section->symbol = bfd_zalloc (abfd, amt);
 	  amt = sizeof (asymbol *);
-	  sdata->bss_section->symbol_ptr_ptr =
-	    (asymbol **) bfd_zalloc (abfd, amt);
+	  sdata->bss_section->symbol_ptr_ptr = bfd_zalloc (abfd, amt);
 	  if (sdata->bss_section->symbol == NULL
 	      || sdata->bss_section->symbol_ptr_ptr == NULL)
 	    return FALSE;
@@ -4074,11 +3962,10 @@
    dynamic sections here.  */
 
 static bfd_boolean
-ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
-     bfd *output_bfd;
-     struct bfd_link_info *info;
-     struct elf_link_hash_entry *h;
-     Elf_Internal_Sym *sym;
+ppc_elf_finish_dynamic_symbol (bfd *output_bfd,
+			       struct bfd_link_info *info,
+			       struct elf_link_hash_entry *h,
+			       Elf_Internal_Sym *sym)
 {
   struct ppc_elf_link_hash_table *htab;
 
@@ -4183,9 +4070,8 @@
 /* Finish up the dynamic sections.  */
 
 static bfd_boolean
-ppc_elf_finish_dynamic_sections (output_bfd, info)
-     bfd *output_bfd;
-     struct bfd_link_info *info;
+ppc_elf_finish_dynamic_sections (bfd *output_bfd,
+				 struct bfd_link_info *info)
 {
   asection *sdyn;
   struct ppc_elf_link_hash_table *htab;
@@ -4241,10 +4127,10 @@
   if (htab->got)
     {
       unsigned char *contents = htab->got->contents;
-      bfd_put_32 (output_bfd, (bfd_vma) 0x4e800021 /* blrl */, contents);
+      bfd_put_32 (output_bfd, 0x4e800021 /* blrl */, contents);
 
       if (sdyn == NULL)
-	bfd_put_32 (output_bfd, (bfd_vma) 0, contents + 4);
+	bfd_put_32 (output_bfd, 0, contents + 4);
       else
 	bfd_put_32 (output_bfd,
 		    sdyn->output_section->vma + sdyn->output_offset,
@@ -4265,7 +4151,7 @@
 
    This function is responsible for adjust the section contents as
    necessary, and (if using Rela relocs and generating a
-   relocateable output file) adjusting the reloc addend as
+   relocatable output file) adjusting the reloc addend as
    necessary.
 
    This function does not have to worry about setting the reloc
@@ -4279,23 +4165,21 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
    accordingly.  */
 
 static bfd_boolean
-ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
-			  contents, relocs, local_syms, local_sections)
-     bfd *output_bfd;
-     struct bfd_link_info *info;
-     bfd *input_bfd;
-     asection *input_section;
-     bfd_byte *contents;
-     Elf_Internal_Rela *relocs;
-     Elf_Internal_Sym *local_syms;
-     asection **local_sections;
+ppc_elf_relocate_section (bfd *output_bfd,
+			  struct bfd_link_info *info,
+			  bfd *input_bfd,
+			  asection *input_section,
+			  bfd_byte *contents,
+			  Elf_Internal_Rela *relocs,
+			  Elf_Internal_Sym *local_syms,
+			  asection **local_sections)
 {
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
@@ -4309,18 +4193,19 @@
   bfd_boolean ret = TRUE;
 
 #ifdef DEBUG
-  fprintf (stderr, "ppc_elf_relocate_section called for %s section %s, %ld relocations%s\n",
+  fprintf (stderr, "ppc_elf_relocate_section called for %s section %s, "
+	   "%ld relocations%s\n",
 	   bfd_archive_filename (input_bfd),
 	   bfd_section_name(input_bfd, input_section),
 	   (long) input_section->reloc_count,
-	   (info->relocateable) ? " (relocatable)" : "");
+	   (info->relocatable) ? " (relocatable)" : "");
 #endif
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
+  /* Initialize howto table if not already done.  */
   if (!ppc_elf_howto_table[R_PPC_ADDR32])
-    /* Initialize howto table if needed.  */
     ppc_elf_howto_init ();
 
   htab = ppc_elf_hash_table (info);
@@ -4346,10 +4231,10 @@
       bfd_boolean warned;
       unsigned int tls_type, tls_mask, tls_gd;
 
-      r_type = (enum elf_ppc_reloc_type)ELF32_R_TYPE (rel->r_info);
-      sym = (Elf_Internal_Sym *) 0;
-      sec = (asection *) 0;
-      h = (struct elf_link_hash_entry *) 0;
+      r_type = ELF32_R_TYPE (rel->r_info);
+      sym = NULL;
+      sec = NULL;
+      h = NULL;
       unresolved_reloc = FALSE;
       warned = FALSE;
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -4542,8 +4427,7 @@
 
 		  /* The next instruction should be a call to
 		     __tls_get_addr.  Peek at the reloc to be sure.  */
-		  r_type2
-		    = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel[1].r_info);
+		  r_type2 = ELF32_R_TYPE (rel[1].r_info);
 		  r_symndx2 = ELF32_R_SYM (rel[1].r_info);
 		  if (r_symndx2 < symtab_hdr->sh_info
 		      || (r_type2 != R_PPC_REL14
@@ -4642,8 +4526,8 @@
       addend = rel->r_addend;
       tls_type = 0;
       howto = NULL;
-      if ((unsigned) r_type < (unsigned) R_PPC_max)
-	howto = ppc_elf_howto_table[(int) r_type];
+      if (r_type < R_PPC_max)
+	howto = ppc_elf_howto_table[r_type];
       switch (r_type)
 	{
 	default:
@@ -5010,7 +4894,8 @@
 	      int skip;
 
 #ifdef DEBUG
-	      fprintf (stderr, "ppc_elf_relocate_section need to create relocation for %s\n",
+	      fprintf (stderr, "ppc_elf_relocate_section needs to "
+		       "create relocation for %s\n",
 		       (h && h->root.root.string
 			? h->root.root.string : "<unknown>"));
 #endif
@@ -5089,11 +4974,9 @@
 			  BFD_ASSERT (indx > 0);
 #ifdef DEBUG
 			  if (indx <= 0)
-			    {
-			      printf ("indx=%d section=%s flags=%08x name=%s\n",
-				      indx, osec->name, osec->flags,
-				      h->root.root.string);
-			    }
+			    printf ("indx=%d section=%s flags=%08x name=%s\n",
+				    indx, osec->name, osec->flags,
+				    h->root.root.string);
 #endif
 			}
 
@@ -5146,7 +5029,7 @@
 	     an embedded ELF object, for which the .got section acts like the
 	     AIX .toc section.  */
 	case R_PPC_TOC16:			/* phony GOT16 relocations */
-	  BFD_ASSERT (sec != (asection *) 0);
+	  BFD_ASSERT (sec != NULL);
 	  BFD_ASSERT (bfd_is_und_section (sec)
 		      || strcmp (bfd_get_section_name (abfd, sec), ".got") == 0
 		      || strcmp (bfd_get_section_name (abfd, sec), ".cgot") == 0)
@@ -5180,18 +5063,20 @@
 	    const char *name;
 	    const struct elf_link_hash_entry *sh;
 
-	    BFD_ASSERT (sec != (asection *) 0);
+	    BFD_ASSERT (sec != NULL);
 	    name = bfd_get_section_name (abfd, sec->output_section);
 	    if (! ((strncmp (name, ".sdata", 6) == 0
 		    && (name[6] == 0 || name[6] == '.'))
 		   || (strncmp (name, ".sbss", 5) == 0
 		       && (name[5] == 0 || name[5] == '.'))))
 	      {
-		(*_bfd_error_handler) (_("%s: the target (%s) of a %s relocation is in the wrong output section (%s)"),
-				       bfd_archive_filename (input_bfd),
-				       sym_name,
-				       howto->name,
-				       name);
+		(*_bfd_error_handler)
+		  (_("%s: the target (%s) of a %s relocation is "
+		     "in the wrong output section (%s)"),
+		   bfd_archive_filename (input_bfd),
+		   sym_name,
+		   howto->name,
+		   name);
 	      }
 	    sh = htab->sdata->sym_hash;
 	    addend -= (sh->root.u.def.value
@@ -5206,16 +5091,18 @@
 	    const char *name;
 	    const struct elf_link_hash_entry *sh;
 
-	    BFD_ASSERT (sec != (asection *) 0);
+	    BFD_ASSERT (sec != NULL);
 	    name = bfd_get_section_name (abfd, sec->output_section);
 	    if (! (strncmp (name, ".sdata2", 7) == 0
 		   || strncmp (name, ".sbss2", 6) == 0))
 	      {
-		(*_bfd_error_handler) (_("%s: the target (%s) of a %s relocation is in the wrong output section (%s)"),
-				       bfd_archive_filename (input_bfd),
-				       sym_name,
-				       howto->name,
-				       name);
+		(*_bfd_error_handler)
+		  (_("%s: the target (%s) of a %s relocation is "
+		     "in the wrong output section (%s)"),
+		   bfd_archive_filename (input_bfd),
+		   sym_name,
+		   howto->name,
+		   name);
 
 		bfd_set_error (bfd_error_bad_value);
 		ret = FALSE;
@@ -5236,7 +5123,7 @@
 	    const struct elf_link_hash_entry *sh;
 	    int reg;
 
-	    BFD_ASSERT (sec != (asection *) 0);
+	    BFD_ASSERT (sec != NULL);
 	    name = bfd_get_section_name (abfd, sec->output_section);
 	    if (((strncmp (name, ".sdata", 6) == 0
 		  && (name[6] == 0 || name[6] == '.'))
@@ -5268,11 +5155,13 @@
 
 	    else
 	      {
-		(*_bfd_error_handler) (_("%s: the target (%s) of a %s relocation is in the wrong output section (%s)"),
-				       bfd_archive_filename (input_bfd),
-				       sym_name,
-				       howto->name,
-				       name);
+		(*_bfd_error_handler)
+		  (_("%s: the target (%s) of a %s relocation is "
+		     "in the wrong output section (%s)"),
+		   bfd_archive_filename (input_bfd),
+		   sym_name,
+		   howto->name,
+		   name);
 
 		bfd_set_error (bfd_error_bad_value);
 		ret = FALSE;
@@ -5293,7 +5182,7 @@
 	case R_PPC_SECTOFF_LO:
 	case R_PPC_SECTOFF_HI:
 	case R_PPC_SECTOFF_HA:
-	  BFD_ASSERT (sec != (asection *) 0);
+	  BFD_ASSERT (sec != NULL);
 	  addend -= sec->output_section->vma;
 	  break;
 
@@ -5362,7 +5251,8 @@
 	}
 
 #ifdef DEBUG
-      fprintf (stderr, "\ttype = %s (%d), name = %s, symbol index = %ld, offset = %ld, addend = %ld\n",
+      fprintf (stderr, "\ttype = %s (%d), name = %s, symbol index = %ld, "
+	       "offset = %ld, addend = %ld\n",
 	       howto->name,
 	       (int) r_type,
 	       sym_name,
@@ -5443,10 +5333,9 @@
 }
 
 static enum elf_reloc_type_class
-ppc_elf_reloc_type_class (rela)
-     const Elf_Internal_Rela *rela;
+ppc_elf_reloc_type_class (const Elf_Internal_Rela *rela)
 {
-  switch ((int) ELF32_R_TYPE (rela->r_info))
+  switch (ELF32_R_TYPE (rela->r_info))
     {
     case R_PPC_RELATIVE:
       return reloc_class_relative;
@@ -5464,9 +5353,7 @@
 /* Support for core dump NOTE sections.  */
 
 static bfd_boolean
-ppc_elf_grok_prstatus (abfd, note)
-     bfd *abfd;
-     Elf_Internal_Note *note;
+ppc_elf_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
 {
   int offset;
   unsigned int raw_size;
@@ -5496,9 +5383,7 @@
 }
 
 static bfd_boolean
-ppc_elf_grok_psinfo (abfd, note)
-     bfd *abfd;
-     Elf_Internal_Note *note;
+ppc_elf_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
 {
   switch (note->descsz)
     {
@@ -5535,31 +5420,17 @@
 }
 apuinfo_list;
 
-static apuinfo_list * head;
-
-static void apuinfo_list_init PARAMS ((void));
-static void apuinfo_list_add PARAMS ((unsigned long));
-static unsigned apuinfo_list_length PARAMS ((void));
-static unsigned long apuinfo_list_element PARAMS ((unsigned long));
-static void apuinfo_list_finish PARAMS ((void));
-
-extern void ppc_elf_begin_write_processing
-  PARAMS ((bfd *, struct bfd_link_info *));
-extern void ppc_elf_final_write_processing
-  PARAMS ((bfd *, bfd_boolean));
-extern bfd_boolean ppc_elf_write_section
-  PARAMS ((bfd *, asection *, bfd_byte *));
+static apuinfo_list *head;
 
 
 static void
-apuinfo_list_init PARAMS ((void))
+apuinfo_list_init (void)
 {
   head = NULL;
 }
 
 static void
-apuinfo_list_add (value)
-     unsigned long value;
+apuinfo_list_add (unsigned long value)
 {
   apuinfo_list *entry = head;
 
@@ -5580,7 +5451,7 @@
 }
 
 static unsigned
-apuinfo_list_length PARAMS ((void))
+apuinfo_list_length (void)
 {
   apuinfo_list *entry;
   unsigned long count;
@@ -5594,8 +5465,7 @@
 }
 
 static inline unsigned long
-apuinfo_list_element (number)
-     unsigned long number;
+apuinfo_list_element (unsigned long number)
 {
   apuinfo_list * entry;
 
@@ -5608,7 +5478,7 @@
 }
 
 static void
-apuinfo_list_finish PARAMS ((void))
+apuinfo_list_finish (void)
 {
   apuinfo_list *entry;
 
@@ -5628,10 +5498,8 @@
 /* Scan the input BFDs and create a linked list of
    the APUinfo values that will need to be emitted.  */
 
-void
-ppc_elf_begin_write_processing (abfd, link_info)
-     bfd *abfd;
-     struct bfd_link_info *link_info;
+static void
+ppc_elf_begin_write_processing (bfd *abfd, struct bfd_link_info *link_info)
 {
   bfd *ibfd;
   asection *asec;
@@ -5721,9 +5589,9 @@
       if (strcmp (ptr + 12, APUINFO_LABEL) != 0)
 	goto fail;
 
-      /* Get the number of apuinfo entries.  */
+      /* Get the number of bytes used for apuinfo entries.  */
       datum = bfd_get_32 (ibfd, ptr + 4);
-      if ((datum * 4 + 20) != length)
+      if (datum + 20 != length)
 	goto fail;
 
       /* Make sure that we do not run off the end of the section.  */
@@ -5731,8 +5599,8 @@
 	goto fail;
 
       /* Scan the apuinfo section, building a list of apuinfo numbers.  */
-      for (i = 0; i < datum; i++)
-	apuinfo_list_add (bfd_get_32 (ibfd, ptr + 20 + (i * 4)));
+      for (i = 0; i < datum; i += 4)
+	apuinfo_list_add (bfd_get_32 (ibfd, ptr + 20 + i));
 
       /* Update the offset.  */
       offset += length;
@@ -5762,11 +5630,10 @@
 /* Prevent the output section from accumulating the input sections'
    contents.  We have already stored this in our linked list structure.  */
 
-bfd_boolean
-ppc_elf_write_section (abfd, asec, contents)
-     bfd *abfd ATTRIBUTE_UNUSED;
-     asection *asec;
-     bfd_byte *contents ATTRIBUTE_UNUSED;
+static bfd_boolean
+ppc_elf_write_section (bfd *abfd ATTRIBUTE_UNUSED,
+		       asection *asec,
+		       bfd_byte *contents ATTRIBUTE_UNUSED)
 {
   return (apuinfo_list_length ()
 	  && strcmp (asec->name, APUINFO_SECTION_NAME) == 0);
@@ -5775,10 +5642,8 @@
 
 /* Finally we can generate the output section.  */
 
-void
-ppc_elf_final_write_processing (abfd, linker)
-     bfd *abfd;
-     bfd_boolean linker ATTRIBUTE_UNUSED;
+static void
+ppc_elf_final_write_processing (bfd *abfd, bfd_boolean linker ATTRIBUTE_UNUSED)
 {
   bfd_byte *buffer;
   asection *asec;
@@ -5808,7 +5673,7 @@
   /* Create the apuinfo header.  */
   num_entries = apuinfo_list_length ();
   bfd_put_32 (abfd, sizeof APUINFO_LABEL, buffer);
-  bfd_put_32 (abfd, num_entries, buffer + 4);
+  bfd_put_32 (abfd, num_entries * 4, buffer + 4);
   bfd_put_32 (abfd, 0x2, buffer + 8);
   strcpy (buffer + 12, APUINFO_LABEL);
 
diff --git a/bfd/elf32-ppc.h b/bfd/elf32-ppc.h
index ead9c94..72be813 100644
--- a/bfd/elf32-ppc.h
+++ b/bfd/elf32-ppc.h
@@ -17,7 +17,5 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
-bfd_boolean ppc_elf_tls_setup
-  PARAMS ((bfd *, struct bfd_link_info *));
-bfd_boolean ppc_elf_tls_optimize
-  PARAMS ((bfd *, struct bfd_link_info *));
+bfd_boolean ppc_elf_tls_setup (bfd *, struct bfd_link_info *);
+bfd_boolean ppc_elf_tls_optimize (bfd *, struct bfd_link_info *);
diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c
index 97be1db..50d430d 100644
--- a/bfd/elf32-s390.c
+++ b/bfd/elf32-s390.c
@@ -895,7 +895,7 @@
   bfd_signed_vma *local_got_refcounts;
   int tls_type, old_tls_type;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   htab = elf_s390_hash_table (info);
@@ -2198,7 +2198,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   htab = elf_s390_hash_table (info);
diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c
index 2042c34..af8dd67 100644
--- a/bfd/elf32-sh.c
+++ b/bfd/elf32-sh.c
@@ -2034,7 +2034,7 @@
 
   *again = FALSE;
 
-  if (link_info->relocateable
+  if (link_info->relocatable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0)
     return TRUE;
@@ -4650,9 +4650,9 @@
 	     (info,
 	      _("Unexpected STO_SH5_ISA32 on local symbol is not handled"),
 	      input_bfd, input_section, rel->r_offset));
-	  if (info->relocateable)
+	  if (info->relocatable)
 	    {
-	      /* This is a relocateable link.  We don't have to change
+	      /* This is a relocatable link.  We don't have to change
 		 anything, unless the reloc is against a section symbol,
 		 in which case we have to adjust according to where the
 		 section symbol winds up in the output section.  */
@@ -4721,8 +4721,8 @@
 	{
 	  /* Section symbol are never (?) placed in the hash table, so
 	     we can just ignore hash relocations when creating a
-	     relocateable object file.  */
-	  if (info->relocateable)
+	     relocatable object file.  */
+	  if (info->relocatable)
 	    continue;
 
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
@@ -5718,12 +5718,12 @@
 
 static bfd_byte *
 sh_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
-				       data, relocateable, symbols)
+				       data, relocatable, symbols)
      bfd *output_bfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -5735,11 +5735,11 @@
 
   /* We only need to handle the case of relaxing, or of having a
      particular set of section contents, specially.  */
-  if (relocateable
+  if (relocatable
       || elf_section_data (input_section)->this_hdr.contents == NULL)
     return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
 						       link_order, data,
-						       relocateable,
+						       relocatable,
 						       symbols);
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -6211,7 +6211,7 @@
   srelgot = NULL;
   sreloc = NULL;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-sh64.c b/bfd/elf32-sh64.c
index 1a2acc1..4728842 100644
--- a/bfd/elf32-sh64.c
+++ b/bfd/elf32-sh64.c
@@ -403,11 +403,11 @@
     {
       struct elf_link_hash_entry *h;
 
-      /* For relocateable links, we register the DataLabel sym in its own
+      /* For relocatable links, we register the DataLabel sym in its own
 	 right, and tweak the name when it's output.  Otherwise, we make
 	 an indirect symbol of it.  */
       flagword flags
-	= info->relocateable || info->emitrelocations
+	= info->relocatable || info->emitrelocations
 	? BSF_GLOBAL : BSF_GLOBAL | BSF_INDIRECT;
 
       char *dl_name
@@ -451,9 +451,9 @@
 	free (dl_name);
 
       if (h->type != STT_DATALABEL
-	  || ((info->relocateable || info->emitrelocations)
+	  || ((info->relocatable || info->emitrelocations)
 	      && h->root.type != bfd_link_hash_undefined)
-	  || (! info->relocateable && !info->emitrelocations
+	  || (! info->relocatable && !info->emitrelocations
 	      && h->root.type != bfd_link_hash_indirect))
 	{
 	  /* Make sure we don't get confused on invalid input.  */
@@ -498,7 +498,7 @@
 {
   char *name = (char *) cname;
 
-  if (info->relocateable || info->emitrelocations)
+  if (info->relocatable || info->emitrelocations)
     {
       if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL)
 	name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0;
diff --git a/bfd/elf32-sparc.c b/bfd/elf32-sparc.c
index 5f1bec5..83d4c47 100644
--- a/bfd/elf32-sparc.c
+++ b/bfd/elf32-sparc.c
@@ -862,7 +862,7 @@
   asection *sreloc;
   bfd_boolean checked_tlsgd = FALSE;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   htab = elf32_sparc_hash_table (info);
@@ -2126,7 +2126,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   htab = elf32_sparc_hash_table (info);
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index 99c0077..e41d0c0 100644
--- a/bfd/elf32-v850.c
+++ b/bfd/elf32-v850.c
@@ -652,7 +652,7 @@
   int other = 0;
   const char *common = (const char *)0;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
 #ifdef DEBUG
@@ -1632,7 +1632,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -2520,7 +2520,7 @@
 
   *again = FALSE;
 
-  if (link_info->relocateable
+  if (link_info->relocatable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0)
     return TRUE;
diff --git a/bfd/elf32-vax.c b/bfd/elf32-vax.c
index 1aca042..3ad9747 100644
--- a/bfd/elf32-vax.c
+++ b/bfd/elf32-vax.c
@@ -578,7 +578,7 @@
   asection *srelgot;
   asection *sreloc;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
@@ -1440,7 +1440,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
diff --git a/bfd/elf32-xstormy16.c b/bfd/elf32-xstormy16.c
index c05c186..af9a048 100644
--- a/bfd/elf32-xstormy16.c
+++ b/bfd/elf32-xstormy16.c
@@ -1,5 +1,5 @@
 /* XSTORMY16-specific support for 32-bit ELF.
-   Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -423,7 +423,7 @@
   asection *splt;
   bfd *dynobj;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
@@ -609,7 +609,7 @@
   /* Assume nothing changes.  */
   *again = FALSE;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   /* We only relax the .plt section at the moment.  */
@@ -739,7 +739,7 @@
   bfd *dynobj;
   asection *splt;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
@@ -766,7 +766,7 @@
    zero.
 
    This function is responsible for adjusting the section contents as
-   necessary, and (if using Rela relocs and generating a relocateable
+   necessary, and (if using Rela relocs and generating a relocatable
    output file) adjusting the reloc addend as necessary.
 
    This function does not have to worry about setting the reloc
@@ -780,7 +780,7 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
@@ -805,7 +805,7 @@
   bfd *dynobj;
   asection *splt;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
index b277540..1f8d86d 100644
--- a/bfd/elf32-xtensa.c
+++ b/bfd/elf32-xtensa.c
@@ -127,7 +127,7 @@
   PARAMS ((xtensa_opcode, xtensa_encode_result));
 static bfd_reloc_status_type bfd_elf_xtensa_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static void do_fix_for_relocateable_link
+static void do_fix_for_relocatable_link
   PARAMS ((Elf_Internal_Rela *, bfd *, asection *));
 static void do_fix_for_final_link
   PARAMS ((Elf_Internal_Rela *, asection *, bfd_vma *));
@@ -609,7 +609,7 @@
   property_table_entry *lit_table;
   int ltblsize;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -1662,7 +1662,7 @@
   asection *reloc_target_output_section;
   bfd_boolean is_weak_undef;
 
-  /* ELF relocs are against symbols.  If we are producing relocateable
+  /* ELF relocs are against symbols.  If we are producing relocatable
      output, and the reloc is against an external symbol, the resulting
      reloc will also be against the same symbol.  In such a case, we
      don't want to change anything about the way the reloc is handled,
@@ -1841,7 +1841,7 @@
 
 
 /* Relocate an Xtensa ELF section.  This is invoked by the linker for
-   both relocateable and final links.  */
+   both relocatable and final links.  */
 
 static bfd_boolean
 elf_xtensa_relocate_section (output_bfd, info, input_bfd,
@@ -1909,9 +1909,9 @@
 
       r_symndx = ELF32_R_SYM (rel->r_info);
 
-      if (info->relocateable)
+      if (info->relocatable)
 	{
-	  /* This is a relocateable link. 
+	  /* This is a relocatable link. 
 	     1) If the reloc is against a section symbol, adjust
 	     according to the output section.
 	     2) If there is a new target for this relocation,
@@ -1922,7 +1922,7 @@
 	  if (relaxing_section)
 	    {
 	      /* Check if this references a section in another input file.  */
-	      do_fix_for_relocateable_link (rel, input_bfd, input_section);
+	      do_fix_for_relocatable_link (rel, input_bfd, input_section);
 	      r_type = ELF32_R_TYPE (rel->r_info);
 	    }
 
@@ -1934,7 +1934,7 @@
 	      r_type = ELF32_R_TYPE (rel->r_info);
 	    }
 
-	  /* This is a relocateable link, so we don't have to change
+	  /* This is a relocatable link, so we don't have to change
 	     anything unless the reloc is against a section symbol,
 	     in which case we have to adjust according to where the
 	     section symbol winds up in the output section.  */
@@ -1950,7 +1950,7 @@
 
 	  /* If there is an addend with a partial_inplace howto,
 	     then move the addend to the contents.  This is a hack
-	     to work around problems with DWARF in relocateable links
+	     to work around problems with DWARF in relocatable links
 	     with some previous version of BFD.  Now we can't easily get
 	     rid of the hack without breaking backward compatibility.... */
 	  if (rel->r_addend)
@@ -1973,7 +1973,7 @@
 		}
 	    }
 
-	  /* Done with work for relocateable link; continue with next reloc.  */
+	  /* Done with work for relocatable link; continue with next reloc.  */
 	  continue;
 	}
 
@@ -2465,7 +2465,7 @@
     }
 
   /* Combine adjacent literal table entries.  */
-  BFD_ASSERT (! info->relocateable);
+  BFD_ASSERT (! info->relocatable);
   num_xtlit_entries = elf_xtensa_combine_prop_entries (output_bfd, ".xt.lit");
   if (num_xtlit_entries < 0)
     return FALSE;
@@ -4431,10 +4431,10 @@
   if (!target_sec->output_section)
     return FALSE;
       
-  /* For relocateable sections, we can only simplify when the output
+  /* For relocatable sections, we can only simplify when the output
      section of the target is the same as the output section of the
      source.  */
-  if (link_info->relocateable
+  if (link_info->relocatable
       && (target_sec->output_section != sec->output_section))
     return FALSE;
 
@@ -5345,7 +5345,7 @@
 /* "Fix" handling functions, called while performing relocations.  */
 
 static void
-do_fix_for_relocateable_link (rel, input_bfd, input_section)
+do_fix_for_relocatable_link (rel, input_bfd, input_section)
      Elf_Internal_Rela *rel;
      bfd *input_bfd;
      asection *input_section;
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 58ab6ba..767d89c 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -2058,7 +2058,7 @@
   /* We are not currently changing any sizes, so only one pass.  */
   *again = FALSE;
 
-  if (link_info->relocateable
+  if (link_info->relocatable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0)
     return TRUE;
@@ -2465,7 +2465,7 @@
      bfd_vma *valp;
 {
   if (sym->st_shndx == SHN_COMMON
-      && !info->relocateable
+      && !info->relocatable
       && sym->st_size <= elf_gp_size (abfd))
     {
       /* Common symbols less than or equal to -G nn bytes are
@@ -3057,7 +3057,7 @@
   bfd_boolean got_created;
   bfd_size_type amt;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   dynobj = elf_hash_table(info)->dynobj;
@@ -3863,7 +3863,7 @@
 {
   bfd *i;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   /* First, take care of the indirect symbols created by versioning.  */
@@ -4330,7 +4330,7 @@
   const char *section_name;
 
   /* Handle relocatable links with a smaller loop.  */
-  if (info->relocateable)
+  if (info->relocatable)
     return elf64_alpha_relocate_section_r (output_bfd, info, input_bfd,
 					   input_section, contents, relocs,
 					   local_syms, local_sections);
diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c
index 8ce5b20..4c88a54 100644
--- a/bfd/elf64-hppa.c
+++ b/bfd/elf64-hppa.c
@@ -599,7 +599,7 @@
   size_t buf_len;
   int sec_symndx;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   /* If this is the first dynamic object found in the link, create
diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c
index baf030a..bec1aca 100644
--- a/bfd/elf64-mips.c
+++ b/bfd/elf64-mips.c
@@ -1556,18 +1556,18 @@
    symbol value correctly.  We look up the symbol _gp in the output
    BFD.  If we can't find it, we're stuck.  We cache it in the ELF
    target data.  We don't need to adjust the symbol value for an
-   external symbol if we are producing relocateable output.  */
+   external symbol if we are producing relocatable output.  */
 
 static bfd_reloc_status_type
-mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
+mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message, pgp)
      bfd *output_bfd;
      asymbol *symbol;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      char **error_message;
      bfd_vma *pgp;
 {
   if (bfd_is_und_section (symbol->section)
-      && ! relocateable)
+      && ! relocatable)
     {
       *pgp = 0;
       return bfd_reloc_undefined;
@@ -1575,10 +1575,10 @@
 
   *pgp = _bfd_get_gp_value (output_bfd);
   if (*pgp == 0
-      && (! relocateable
+      && (! relocatable
 	  || (symbol->flags & BSF_SECTION_SYM) != 0))
     {
-      if (relocateable)
+      if (relocatable)
 	{
 	  /* Make up a value.  */
 	  *pgp = symbol->section->output_section->vma /*+ 0x4000*/;
@@ -1609,7 +1609,7 @@
      bfd *output_bfd;
      char **error_message;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1624,20 +1624,20 @@
     }
 
   if (output_bfd != (bfd *) NULL)
-    relocateable = TRUE;
+    relocatable = TRUE;
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
-  ret = mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message,
+  ret = mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message,
 			     &gp);
   if (ret != bfd_reloc_ok)
     return ret;
 
   return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
-					input_section, relocateable,
+					input_section, relocatable,
 					data, gp);
 }
 
@@ -1654,7 +1654,7 @@
      bfd *output_bfd;
      char **error_message;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1670,20 +1670,20 @@
 
   /* FIXME: The entries in the .lit8 and .lit4 sections should be merged.  */
   if (output_bfd != (bfd *) NULL)
-    relocateable = TRUE;
+    relocatable = TRUE;
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
-  ret = mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message,
+  ret = mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message,
 			     &gp);
   if (ret != bfd_reloc_ok)
     return ret;
 
   return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
-					input_section, relocateable,
+					input_section, relocatable,
 					data, gp);
 }
 
@@ -1701,7 +1701,7 @@
      bfd *output_bfd;
      char **error_message;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
   bfd_vma relocation;
@@ -1719,14 +1719,14 @@
     }
 
   if (output_bfd != (bfd *) NULL)
-    relocateable = TRUE;
+    relocatable = TRUE;
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
-    ret = mips_elf64_final_gp (output_bfd, symbol, relocateable,
+    ret = mips_elf64_final_gp (output_bfd, symbol, relocatable,
 			       error_message, &gp);
     if (ret != bfd_reloc_ok)
       return ret;
@@ -1749,9 +1749,9 @@
     val += bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
 
   /* Adjust val for the final section location and GP value.  If we
-     are producing relocateable output, we don't want to do this for
+     are producing relocatable output, we don't want to do this for
      an external symbol.  */
-  if (! relocateable
+  if (! relocatable
       || (symbol->flags & BSF_SECTION_SYM) != 0)
     val += relocation - gp;
 
@@ -1760,7 +1760,7 @@
   else
     reloc_entry->addend = val;
 
-  if (relocateable)
+  if (relocatable)
     reloc_entry->address += input_section->output_offset;
 
   return bfd_reloc_ok;
@@ -1848,7 +1848,7 @@
      bfd *output_bfd;
      char **error_message;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
   unsigned short extend = 0;
@@ -1867,14 +1867,14 @@
     }
 
   if (output_bfd != NULL)
-    relocateable = TRUE;
+    relocatable = TRUE;
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
-  ret = mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message,
+  ret = mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message,
 			     &gp);
   if (ret != bfd_reloc_ok)
     return ret;
@@ -1904,9 +1904,9 @@
   _bfd_mips_elf_sign_extend(val, 16);
 
   /* Adjust val for the final section location and GP value.  If we
-     are producing relocateable output, we don't want to do this for
+     are producing relocatable output, we don't want to do this for
      an external symbol.  */
-  if (! relocateable
+  if (! relocatable
       || (symbol->flags & BSF_SECTION_SYM) != 0)
     val += relocation - gp;
 
@@ -1925,7 +1925,7 @@
   else
     reloc_entry->addend = val;
 
-  if (relocateable)
+  if (relocatable)
     reloc_entry->address += input_section->output_offset;
   else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0))
     return bfd_reloc_overflow;
diff --git a/bfd/elf64-mmix.c b/bfd/elf64-mmix.c
index d0213e6..54c4ca8 100644
--- a/bfd/elf64-mmix.c
+++ b/bfd/elf64-mmix.c
@@ -1229,9 +1229,9 @@
 
       r_symndx = ELF64_R_SYM (rel->r_info);
 
-      if (info->relocateable)
+      if (info->relocatable)
 	{
-	  /* This is a relocateable link.  We don't have to change
+	  /* This is a relocatable link.  We don't have to change
              anything, unless the reloc is against a section symbol,
              in which case we have to adjust according to where the
              section symbol winds up in the output section.  */
@@ -1669,7 +1669,7 @@
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   /* We currently have to abuse this COFF-specific member, since there's
@@ -1780,7 +1780,7 @@
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -2352,10 +2352,10 @@
   if (sec->_cooked_size == 0)
     sec->_cooked_size = sec->_raw_size;
 
-  /* We don't have to do anything for a relocateable link, if
+  /* We don't have to do anything for a relocatable link, if
      this section does not have relocs, or if this is not a
      code section.  */
-  if (link_info->relocateable
+  if (link_info->relocatable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 68879de..bc331c8 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -3423,7 +3423,7 @@
   asection *sreloc;
   asection **opd_sym_map;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   htab = ppc_hash_table (info);
@@ -5057,7 +5057,7 @@
   asection *sec;
   struct ppc_link_hash_table *htab;
 
-  if (info->relocateable || info->shared)
+  if (info->relocatable || info->shared)
     return TRUE;
 
   htab = ppc_hash_table (info);
@@ -7060,7 +7060,7 @@
 
    This function is responsible for adjust the section contents as
    necessary, and (if using Rela relocs and generating a
-   relocateable output file) adjusting the reloc addend as
+   relocatable output file) adjusting the reloc addend as
    necessary.
 
    This function does not have to worry about setting the reloc
@@ -7074,7 +7074,7 @@
    The global hash table entry for the global symbols can be found
    via elf_sym_hashes (input_bfd).
 
-   When generating relocateable output, this function must handle
+   When generating relocatable output, this function must handle
    STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
@@ -7104,7 +7104,7 @@
   /* Disabled until we sort out how ld should choose 'y' vs 'at'.  */
   bfd_boolean is_power4 = FALSE;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   /* Initialize howto table if needed.  */
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index b5d724a..21501de 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -849,7 +849,7 @@
   bfd_signed_vma *local_got_refcounts;
   int tls_type, old_tls_type;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   htab = elf_s390_hash_table (info);
@@ -2169,7 +2169,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   htab = elf_s390_hash_table (info);
diff --git a/bfd/elf64-sh64.c b/bfd/elf64-sh64.c
index fe3195c..95bbbd2 100644
--- a/bfd/elf64-sh64.c
+++ b/bfd/elf64-sh64.c
@@ -1585,9 +1585,9 @@
 	      _("Unexpected STO_SH5_ISA32 on local symbol is not handled"),
 	      input_bfd, input_section, rel->r_offset));
 
-	  if (info->relocateable)
+	  if (info->relocatable)
 	    {
-	      /* This is a relocateable link.  We don't have to change
+	      /* This is a relocatable link.  We don't have to change
 		 anything, unless the reloc is against a section symbol,
 		 in which case we have to adjust according to where the
 		 section symbol winds up in the output section.  */
@@ -1631,8 +1631,8 @@
 	{
 	  /* Section symbols are never (?) placed in the hash table, so
 	     we can just ignore hash relocations when creating a
-	     relocateable object file.  */
-	  if (info->relocateable)
+	     relocatable object file.  */
+	  if (info->relocatable)
 	    continue;
 
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
@@ -2178,12 +2178,12 @@
 
 static bfd_byte *
 sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order,
-					 data, relocateable, symbols)
+					 data, relocatable, symbols)
      bfd *output_bfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -2195,11 +2195,11 @@
 
   /* We only need to handle the case of relaxing, or of having a
      particular set of section contents, specially.  */
-  if (relocateable
+  if (relocatable
       || elf_section_data (input_section)->this_hdr.contents == NULL)
     return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
 						       link_order, data,
-						       relocateable,
+						       relocatable,
 						       symbols);
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -2527,7 +2527,7 @@
   srelgot = NULL;
   sreloc = NULL;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -2932,11 +2932,11 @@
     {
       struct elf_link_hash_entry *h;
 
-      /* For relocateable links, we register the DataLabel sym in its own
+      /* For relocatable links, we register the DataLabel sym in its own
 	 right, and tweak the name when it's output.  Otherwise, we make
 	 an indirect symbol of it.  */
       flagword flags
-	= info->relocateable || info->emitrelocations
+	= info->relocatable || info->emitrelocations
 	? BSF_GLOBAL : BSF_GLOBAL | BSF_INDIRECT;
 
       char *dl_name
@@ -2980,9 +2980,9 @@
 	free (dl_name);
 
       if (h->type != STT_DATALABEL
-	  || ((info->relocateable || info->emitrelocations)
+	  || ((info->relocatable || info->emitrelocations)
 	      && h->root.type != bfd_link_hash_undefined)
-	  || (! info->relocateable && !info->emitrelocations
+	  || (! info->relocatable && !info->emitrelocations
 	      && h->root.type != bfd_link_hash_indirect))
 	{
 	  /* Make sure we don't get confused on invalid input.  */
@@ -3027,7 +3027,7 @@
 {
   char *name = (char *) cname;
 
-  if (info->relocateable || info->emitrelocations)
+  if (info->relocatable || info->emitrelocations)
     {
       if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL)
 	name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0;
diff --git a/bfd/elf64-sparc.c b/bfd/elf64-sparc.c
index 080c4e7..dbaa954 100644
--- a/bfd/elf64-sparc.c
+++ b/bfd/elf64-sparc.c
@@ -1101,7 +1101,7 @@
   asection *srelgot;
   asection *sreloc;
 
-  if (info->relocateable || !(sec->flags & SEC_ALLOC))
+  if (info->relocatable || !(sec->flags & SEC_ALLOC))
     return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
@@ -2022,7 +2022,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index b39cdcd..76af7df 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -705,7 +705,7 @@
   const Elf_Internal_Rela *rel_end;
   asection *sreloc;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   htab = elf64_x86_64_hash_table (info);
@@ -1872,7 +1872,7 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   htab = elf64_x86_64_hash_table (info);
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index 0263631..6686ab9 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -1187,7 +1187,7 @@
 	  else
 	    sym->symbol.section = bfd_abs_section_ptr;
 
-	  /* If this is a relocateable file, then the symbol value is
+	  /* If this is a relocatable file, then the symbol value is
              already section relative.  */
 	  if ((abfd->flags & (EXEC_P | DYNAMIC)) != 0)
 	    sym->symbol.value -= sym->symbol.section->vma;
diff --git a/bfd/elflink.h b/bfd/elflink.h
index 4a7d27d..f4a65bf 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -463,7 +463,7 @@
       /* You can't use -r against a dynamic object.  Also, there's no
 	 hope of using a dynamic object which does not exactly match
 	 the format of the output file.  */
-      if (info->relocateable || info->hash->creator != abfd->xvec)
+      if (info->relocatable || info->hash->creator != abfd->xvec)
 	{
 	  bfd_set_error (bfd_error_invalid_operation);
 	  goto error_return;
@@ -534,7 +534,7 @@
 		      FALSE, collect, (struct bfd_link_hash_entry **) NULL)))
 		goto error_return;
 
-	      if (! info->relocateable)
+	      if (! info->relocatable)
 		{
 		  /* Clobber the section size so that the warning does
 		     not get copied into the output file.  */
@@ -1658,7 +1658,7 @@
 	}
     }
 
-  if (! info->relocateable && ! dynamic
+  if (! info->relocatable && ! dynamic
       && is_elf_hash_table (info))
     {
       asection *s;
@@ -1968,7 +1968,7 @@
       if (notesec)
 	{
 	  elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | exec;
-	  if (exec && info->relocateable
+	  if (exec && info->relocatable
 	      && notesec->output_section != bfd_abs_section_ptr)
 	    notesec->output_section->flags |= SEC_CODE;
 	}
@@ -2909,7 +2909,7 @@
   struct elf_final_link_info *finfo;
 };
 
-/* When performing a relocateable link, the input relocations are
+/* When performing a relocatable link, the input relocations are
    preserved.  But, if they reference global symbols, the indices
    referenced must be updated.  Update all the relocations in
    REL_HDR (there are COUNT of them), using the data in REL_HASH.  */
@@ -3186,7 +3186,7 @@
   dynamic = elf_hash_table (info)->dynamic_sections_created;
   dynobj = elf_hash_table (info)->dynobj;
 
-  emit_relocs = (info->relocateable
+  emit_relocs = (info->relocatable
 		 || info->emitrelocations
 		 || bed->elf_backend_emit_relocs);
 
@@ -3271,7 +3271,7 @@
 	      if (sec->flags & SEC_MERGE)
 		merged = TRUE;
 
-	      if (info->relocateable || info->emitrelocations)
+	      if (info->relocatable || info->emitrelocations)
 		reloc_count = sec->reloc_count;
 	      else if (bed->elf_backend_count_relocs)
 		{
@@ -3396,7 +3396,7 @@
 	o->vma = 0;
     }
 
-  if (! info->relocateable && merged)
+  if (! info->relocatable && merged)
     elf_link_hash_traverse (elf_hash_table (info),
 			    _bfd_elf_link_sec_merge_syms, (PTR) abfd);
 
@@ -3524,7 +3524,7 @@
 	  if (o != NULL)
 	    o->target_index = bfd_get_symcount (abfd);
 	  elfsym.st_shndx = i;
-	  if (info->relocateable || o == NULL)
+	  if (info->relocatable || o == NULL)
 	    elfsym.st_value = 0;
 	  else
 	    elfsym.st_value = o->vma;
@@ -3635,13 +3635,13 @@
      Unfortunately, there is no way to know the total number of local
      symbols until we have seen all of them, and the local symbol
      indices precede the global symbol indices.  This means that when
-     we are generating relocateable output, and we see a reloc against
+     we are generating relocatable output, and we see a reloc against
      a global symbol, we can not know the symbol index until we have
      finished examining all the local symbols to see which ones we are
      going to output.  To deal with this, we keep the relocations in
      memory, and don't output them until the end of the link.  This is
      an unfortunate waste of memory, but I don't see a good way around
-     it.  Fortunately, it only happens when performing a relocateable
+     it.  Fortunately, it only happens when performing a relocatable
      link, which is not the common case.  FIXME: If keep_memory is set
      we could write the relocs out and then read them again; I don't
      know how bad the memory loss will be.  */
@@ -4081,7 +4081,7 @@
 	}
     }
 
-  if (info->relocateable)
+  if (info->relocatable)
     {
       bfd_boolean failed = FALSE;
 
@@ -4453,7 +4453,7 @@
      program is run.  We don't have to worry about symbols that are
      referenced by regular files, because we will already have issued
      warnings for them.  */
-  if (! finfo->info->relocateable
+  if (! finfo->info->relocatable
       && (finfo->info->executable
 	  || ! finfo->info->allow_shlib_undefined)
       && h->root.type == bfd_link_hash_undefined
@@ -4472,7 +4472,7 @@
 
   /* We should also warn if a forced local symbol is referenced from
      shared libraries.  */
-  if (! finfo->info->relocateable
+  if (! finfo->info->relocatable
       && (! finfo->info->shared || ! finfo->info->allow_shlib_undefined)
       && (h->elf_link_hash_flags
 	  & (ELF_LINK_FORCED_LOCAL | ELF_LINK_HASH_REF_DYNAMIC
@@ -4570,11 +4570,11 @@
 		return FALSE;
 	      }
 
-	    /* ELF symbols in relocateable files are section relative,
-	       but in nonrelocateable files they are virtual
+	    /* ELF symbols in relocatable files are section relative,
+	       but in nonrelocatable files they are virtual
 	       addresses.  */
 	    sym.st_value = h->root.u.def.value + input_sec->output_offset;
-	    if (! finfo->info->relocateable)
+	    if (! finfo->info->relocatable)
 	      {
 		sym.st_value += input_sec->output_section->vma;
 		if (h->type == STT_TLS)
@@ -4657,7 +4657,7 @@
 
   /* If a non-weak symbol with non-default visibility is not defined
      locally, it is a fatal error.  */
-  if (! finfo->info->relocateable
+  if (! finfo->info->relocatable
       && ELF_ST_VISIBILITY (sym.st_other) != STV_DEFAULT
       && ELF_ST_BIND (sym.st_info) != STB_WEAK
       && h->root.type == bfd_link_hash_undefined
@@ -4787,7 +4787,7 @@
   if ((input_bfd->flags & DYNAMIC) != 0)
     return TRUE;
 
-  emit_relocs = (finfo->info->relocateable
+  emit_relocs = (finfo->info->relocatable
 		 || finfo->info->emitrelocations
 		 || bed->elf_backend_emit_relocs);
 
@@ -4882,7 +4882,7 @@
 	continue;
 
       /* If we are discarding all local symbols, we don't want to
-	 output this one.  If we are generating a relocateable output
+	 output this one.  If we are generating a relocatable output
 	 file, then some of the local symbols may be required by
 	 relocs; we output them below as we discover that they are
 	 needed.  */
@@ -4897,7 +4897,7 @@
       if ((isym->st_shndx < SHN_LORESERVE || isym->st_shndx > SHN_HIRESERVE)
 	  && isec != NULL
 	  && ((! isec->linker_mark && (isec->flags & SEC_HAS_CONTENTS) != 0)
-	      || (! finfo->info->relocateable
+	      || (! finfo->info->relocatable
 		  && (isec->flags & SEC_EXCLUDE) != 0)))
 	continue;
 
@@ -4912,7 +4912,7 @@
 	   && (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE, FALSE)
 	       == NULL))
 	  || (((finfo->info->discard == discard_sec_merge
-		&& (isec->flags & SEC_MERGE) && ! finfo->info->relocateable)
+		&& (isec->flags & SEC_MERGE) && ! finfo->info->relocatable)
 	       || finfo->info->discard == discard_l)
 	      && bfd_is_local_label_name (input_bfd, name)))
 	continue;
@@ -4929,7 +4929,7 @@
 
       *pindex = bfd_get_symcount (output_bfd);
 
-      /* ELF symbols in relocateable files are section relative, but
+      /* ELF symbols in relocatable files are section relative, but
 	 in executable files they are virtual addresses.  Note that
 	 this code assumes that all ELF sections have an associated
 	 BFD section with a reasonable value for output_offset; below
@@ -4937,7 +4937,7 @@
 	 output_section.  Any special sections must be set up to meet
 	 these requirements.  */
       osym.st_value += isec->output_offset;
-      if (! finfo->info->relocateable)
+      if (! finfo->info->relocatable)
 	{
 	  osym.st_value += isec->output_section->vma;
 	  if (ELF_ST_TYPE (osym.st_info) == STT_TLS)
@@ -5042,7 +5042,7 @@
 			      /* Try to preserve debug information.  */
 			      if ((o->flags & SEC_DEBUGGING) != 0
 				  && sec->kept_section != NULL
-				  && sec->_cooked_size == sec->kept_section->_cooked_size)
+				  && sec->_raw_size == sec->kept_section->_raw_size)
 				h->root.u.def.section
 				  = sec->kept_section;
 			      else
@@ -5071,7 +5071,7 @@
 			      /* Try to preserve debug information.  */
 			      if ((o->flags & SEC_DEBUGGING) != 0
 				  && sec->kept_section != NULL
-				  && sec->_cooked_size == sec->kept_section->_cooked_size)
+				  && sec->_raw_size == sec->kept_section->_raw_size)
 				finfo->sections[r_symndx]
 				  = sec->kept_section;
 			      else
@@ -5108,7 +5108,7 @@
 
 	     The back end routine is responsible for adjusting the
 	     section contents as necessary, and (if using Rela relocs
-	     and generating a relocateable output file) adjusting the
+	     and generating a relocatable output file) adjusting the
 	     reloc addend as necessary.
 
 	     The back end routine does not have to worry about setting
@@ -5118,7 +5118,7 @@
 	     internal symbols, and can access the hash table entries
 	     for the external symbols via elf_sym_hashes (input_bfd).
 
-	     When generating relocateable output, the back end routine
+	     When generating relocatable output, the back end routine
 	     must handle STB_LOCAL/STT_SECTION symbols specially.  The
 	     output symbol is going to be a section symbol
 	     corresponding to the output section, which will require
@@ -5157,7 +5157,7 @@
 			  + elf_section_data (o->output_section)->rel_count
 			  + elf_section_data (o->output_section)->rel_count2);
 	      last_offset = o->output_offset;
-	      if (!finfo->info->relocateable)
+	      if (!finfo->info->relocatable)
 		last_offset += o->output_section->vma;
 	      for (next_erel = 0; irela < irelaend; irela++, next_erel++)
 		{
@@ -5190,7 +5190,7 @@
 		  irela->r_offset += o->output_offset;
 
 		  /* Relocs in an executable have to be virtual addresses.  */
-		  if (!finfo->info->relocateable)
+		  if (!finfo->info->relocatable)
 		    irela->r_offset += o->output_section->vma;
 
 		  last_offset = irela->r_offset;
@@ -5294,7 +5294,7 @@
 			    return FALSE;
 
 			  sym.st_value += sec->output_offset;
-			  if (! finfo->info->relocateable)
+			  if (! finfo->info->relocatable)
 			    {
 			      sym.st_value += osec->vma;
 			      if (ELF_ST_TYPE (sym.st_info) == STT_TLS)
@@ -5322,7 +5322,7 @@
 
 	      /* Swap out the relocs.  */
 	      if (bed->elf_backend_emit_relocs
-		  && !(finfo->info->relocateable
+		  && !(finfo->info->relocatable
 		       || finfo->info->emitrelocations))
 		reloc_emitter = bed->elf_backend_emit_relocs;
 	      else
@@ -5522,10 +5522,10 @@
     }
 
   /* The address of a reloc is relative to the section in a
-     relocateable file, and is a virtual address in an executable
+     relocatable file, and is a virtual address in an executable
      file.  */
   offset = link_order->offset;
-  if (! info->relocateable)
+  if (! info->relocatable)
     offset += output_section->vma;
 
   for (i = 0; i < bed->s->int_rels_per_ext_rel; i++)
@@ -6189,7 +6189,7 @@
 	     struct elf_link_hash_entry *h, Elf_Internal_Sym *));
 
   if (!get_elf_backend_data (abfd)->can_gc_sections
-      || info->relocateable || info->emitrelocations
+      || info->relocatable || info->emitrelocations
       || elf_hash_table (info)->dynamic_sections_created)
     return TRUE;
 
@@ -6599,7 +6599,7 @@
 	continue;
 
       eh = bfd_get_section_by_name (abfd, ".eh_frame");
-      if (info->relocateable
+      if (info->relocatable
 	  || (eh != NULL
 	      && (eh->_raw_size == 0
 		  || bfd_is_abs_section (eh->output_section))))
@@ -6705,7 +6705,7 @@
     }
 
   if (info->eh_frame_hdr
-      && !info->relocateable
+      && !info->relocatable
       && _bfd_elf_discard_section_eh_frame_hdr (output_bfd, info))
     ret = TRUE;
 
diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c
index 1741e35..60c6ad0 100644
--- a/bfd/elfn32-mips.c
+++ b/bfd/elfn32-mips.c
@@ -1520,18 +1520,18 @@
    symbol value correctly.  We look up the symbol _gp in the output
    BFD.  If we can't find it, we're stuck.  We cache it in the ELF
    target data.  We don't need to adjust the symbol value for an
-   external symbol if we are producing relocateable output.  */
+   external symbol if we are producing relocatable output.  */
 
 static bfd_reloc_status_type
-mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
+mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, pgp)
      bfd *output_bfd;
      asymbol *symbol;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      char **error_message;
      bfd_vma *pgp;
 {
   if (bfd_is_und_section (symbol->section)
-      && ! relocateable)
+      && ! relocatable)
     {
       *pgp = 0;
       return bfd_reloc_undefined;
@@ -1539,10 +1539,10 @@
 
   *pgp = _bfd_get_gp_value (output_bfd);
   if (*pgp == 0
-      && (! relocateable
+      && (! relocatable
 	  || (symbol->flags & BSF_SECTION_SYM) != 0))
     {
-      if (relocateable)
+      if (relocatable)
 	{
 	  /* Make up a value.  */
 	  *pgp = symbol->section->output_section->vma /*+ 0x4000*/;
@@ -1573,27 +1573,27 @@
      bfd *output_bfd;
      char **error_message ATTRIBUTE_UNUSED;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
   GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section)
 
   if (output_bfd != (bfd *) NULL)
-    relocateable = TRUE;
+    relocatable = TRUE;
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
-  ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message,
+  ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message,
 			   &gp);
   if (ret != bfd_reloc_ok)
     return ret;
 
   return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
-					input_section, relocateable,
+					input_section, relocatable,
 					data, gp);
 }
 
@@ -1610,7 +1610,7 @@
      bfd *output_bfd;
      char **error_message;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1618,20 +1618,20 @@
 
   /* FIXME: The entries in the .lit8 and .lit4 sections should be merged.  */
   if (output_bfd != (bfd *) NULL)
-    relocateable = TRUE;
+    relocatable = TRUE;
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
-  ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message,
+  ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message,
 			   &gp);
   if (ret != bfd_reloc_ok)
     return ret;
 
   return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
-					input_section, relocateable,
+					input_section, relocatable,
 					data, gp);
 }
 
@@ -1649,7 +1649,7 @@
      bfd *output_bfd;
      char **error_message;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1667,32 +1667,32 @@
 
   if (output_bfd != (bfd *) NULL)
     {
-      relocateable = TRUE;
+      relocatable = TRUE;
       gp = _bfd_get_gp_value (output_bfd);
     }
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
 
-      ret = mips_elf_final_gp (output_bfd, symbol, relocateable,
+      ret = mips_elf_final_gp (output_bfd, symbol, relocatable,
 			       error_message, &gp);
       if (ret != bfd_reloc_ok)
 	return ret;
     }
 
   return gprel32_with_gp (abfd, symbol, reloc_entry, input_section,
-			  relocateable, data, gp);
+			  relocatable, data, gp);
 }
 
 static bfd_reloc_status_type
-gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocateable, data,
+gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocatable, data,
 		 gp)
      bfd *abfd;
      asymbol *symbol;
      arelent *reloc_entry;
      asection *input_section;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      PTR data;
      bfd_vma gp;
 {
@@ -1719,15 +1719,15 @@
   val += reloc_entry->addend;
 
   /* Adjust val for the final section location and GP value.  If we
-     are producing relocateable output, we don't want to do this for
+     are producing relocatable output, we don't want to do this for
      an external symbol.  */
-  if (! relocateable
+  if (! relocatable
       || (symbol->flags & BSF_SECTION_SYM) != 0)
     val += relocation - gp;
 
   bfd_put_32 (abfd, (bfd_vma) val, (bfd_byte *) data + reloc_entry->address);
 
-  if (relocateable)
+  if (relocatable)
     reloc_entry->address += input_section->output_offset;
 
   return bfd_reloc_ok;
@@ -1800,7 +1800,7 @@
      bfd *output_bfd;
      char **error_message;
 {
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
   unsigned short extend = 0;
@@ -1811,14 +1811,14 @@
   GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section)
 
   if (output_bfd != NULL)
-    relocateable = TRUE;
+    relocatable = TRUE;
   else
     {
-      relocateable = FALSE;
+      relocatable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
-  ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message,
+  ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message,
 			   &gp);
   if (ret != bfd_reloc_ok)
     return ret;
@@ -1848,9 +1848,9 @@
   _bfd_mips_elf_sign_extend(val, 16);
 
   /* Adjust val for the final section location and GP value.  If we
-     are producing relocateable output, we don't want to do this for
+     are producing relocatable output, we don't want to do this for
      an external symbol.  */
-  if (! relocateable
+  if (! relocatable
       || (symbol->flags & BSF_SECTION_SYM) != 0)
     val += relocation - gp;
 
@@ -1869,7 +1869,7 @@
   else
     reloc_entry->addend = val;
 
-  if (relocateable)
+  if (relocatable)
     reloc_entry->address += input_section->output_offset;
   else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0))
     return bfd_reloc_overflow;
diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c
index 5e8dadf..2098f6f 100644
--- a/bfd/elfxx-ia64.c
+++ b/bfd/elfxx-ia64.c
@@ -1341,7 +1341,7 @@
      bfd_vma *valp;
 {
   if (sym->st_shndx == SHN_COMMON
-      && !info->relocateable
+      && !info->relocatable
       && sym->st_size <= elf_gp_size (abfd))
     {
       /* Common symbols less than or equal to -G nn bytes are
@@ -2228,7 +2228,7 @@
   const Elf_Internal_Rela *rel;
   asection *got, *fptr, *srel;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -3779,7 +3779,7 @@
   ia64_info = elfNN_ia64_hash_table (info);
 
   /* Make sure we've got ourselves a nice fat __gp value.  */
-  if (!info->relocateable)
+  if (!info->relocatable)
     {
       bfd_vma gp_val = _bfd_get_gp_value (abfd);
       struct elf_link_hash_entry *gp;
@@ -3805,7 +3805,7 @@
      of the .IA_64.unwind section.  Force this section to be relocated
      into memory rather than written immediately to the output file.  */
   unwind_output_sec = NULL;
-  if (!info->relocateable)
+  if (!info->relocatable)
     {
       asection *s = bfd_get_section_by_name (abfd, ELF_STRING_ia64_unwind);
       if (s)
@@ -3863,7 +3863,7 @@
   ia64_info = elfNN_ia64_hash_table (info);
 
   /* Infect various flags from the input section to the output section.  */
-  if (info->relocateable)
+  if (info->relocatable)
     {
       bfd_vma flags;
 
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index dbbfb31..478a0db 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -1080,12 +1080,12 @@
 
 bfd_reloc_status_type
 _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, input_section,
-			       relocateable, data, gp)
+			       relocatable, data, gp)
      bfd *abfd;
      asymbol *symbol;
      arelent *reloc_entry;
      asection *input_section;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      PTR data;
      bfd_vma gp;
 {
@@ -1116,9 +1116,9 @@
   _bfd_mips_elf_sign_extend(val, 16);
 
   /* Adjust val for the final section location and GP value.  If we
-     are producing relocateable output, we don't want to do this for
+     are producing relocatable output, we don't want to do this for
      an external symbol.  */
-  if (! relocateable
+  if (! relocatable
       || (symbol->flags & BSF_SECTION_SYM) != 0)
     val += relocation - gp;
 
@@ -1131,7 +1131,7 @@
   else
     reloc_entry->addend = val;
 
-  if (relocateable)
+  if (relocatable)
     reloc_entry->address += input_section->output_offset;
   else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0))
     return bfd_reloc_overflow;
@@ -2870,10 +2870,12 @@
   if (maybe_exclude)
     flags |= SEC_EXCLUDE;
 
+  /* We have to use an alignment of 2**4 here because this is hardcoded
+     in the function stub generation and in the linker script.  */
   s = bfd_make_section (abfd, ".got");
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags)
-      || ! bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)))
+      || ! bfd_set_section_alignment (abfd, s, 4))
     return FALSE;
 
   /* Define the symbol _GLOBAL_OFFSET_TABLE_.  We don't do this in the
@@ -3151,7 +3153,7 @@
   /* If this is a 32- or 64-bit call to a 16-bit function with a stub, we
      need to redirect the call to the stub, unless we're already *in*
      a stub.  */
-  if (r_type != R_MIPS16_26 && !info->relocateable
+  if (r_type != R_MIPS16_26 && !info->relocatable
       && ((h != NULL && h->fn_stub != NULL)
 	  || (local_p && elf_tdata (input_bfd)->local_stubs != NULL
 	      && elf_tdata (input_bfd)->local_stubs[r_symndx] != NULL))
@@ -3172,7 +3174,7 @@
     }
   /* If this is a 16-bit call to a 32- or 64-bit function with a stub, we
      need to redirect the call to the stub.  */
-  else if (r_type == R_MIPS16_26 && !info->relocateable
+  else if (r_type == R_MIPS16_26 && !info->relocatable
 	   && h != NULL
 	   && (h->call_stub != NULL || h->call_fp_stub != NULL)
 	   && !target_is_16_bit_code_p)
@@ -3208,7 +3210,7 @@
 
   /* Calls from 16-bit code to 32-bit code and vice versa require the
      special jalx instruction.  */
-  *require_jalxp = (!info->relocateable
+  *require_jalxp = (!info->relocatable
                     && (((r_type == R_MIPS16_26) && !target_is_16_bit_code_p)
                         || ((r_type == R_MIPS_26) && target_is_16_bit_code_p)));
 
@@ -3650,7 +3652,7 @@
 	 JALX is the 5-bit value 00011.  X is 0 for jal, 1 for jalx.
 	 Note that the immediate value in the first word is swapped.
 
-	 When producing a relocateable object file, R_MIPS16_26 is
+	 When producing a relocatable object file, R_MIPS16_26 is
 	 handled mostly like R_MIPS_26.  In particular, the addend is
 	 stored as a straight 26-bit value in a 32-bit instruction.
 	 (gas makes life simpler for itself by never adjusting a
@@ -3688,13 +3690,13 @@
 	 where targ26-16 is sub1 followed by sub2 (i.e., the addend field A is
 	 ((sub1 << 16) | sub2)).
 
-	 When producing a relocateable object file, the calculation is
+	 When producing a relocatable object file, the calculation is
 	 (((A < 2) | ((P + 4) & 0xf0000000) + S) >> 2)
 	 When producing a fully linked file, the calculation is
 	 let R = (((A < 2) | ((P + 4) & 0xf0000000) + S) >> 2)
 	 ((R & 0x1f0000) << 5) | ((R & 0x3e00000) >> 5) | (R & 0xffff)  */
 
-      if (!info->relocateable)
+      if (!info->relocatable)
 	/* Shuffle the bits according to the formula above.  */
 	value = (((value & 0x1f0000) << 5)
 		 | ((value & 0x3e00000) >> 5)
@@ -4639,30 +4641,11 @@
       hdr->sh_entsize = 8;
     }
 
-  /* The generic elf_fake_sections will set up REL_HDR using the
-     default kind of relocations.  But, we may actually need both
-     kinds of relocations, so we set up the second header here.
-
-     This is not necessary for the O32 ABI since that only uses Elf32_Rel
-     relocations (cf. System V ABI, MIPS RISC Processor Supplement,
-     3rd Edition, p. 4-17).  It breaks the IRIX 5/6 32-bit ld, since one
-     of the resulting empty .rela.<section> sections starts with
-     sh_offset == object size, and ld doesn't allow that.  While the check
-     is arguably bogus for empty or SHT_NOBITS sections, it can easily be
-     avoided by not emitting those useless sections in the first place.  */
-  if (! SGI_COMPAT (abfd) && ! NEWABI_P(abfd)
-      && (sec->flags & SEC_RELOC) != 0)
-    {
-      struct bfd_elf_section_data *esd;
-      bfd_size_type amt = sizeof (Elf_Internal_Shdr);
-
-      esd = elf_section_data (sec);
-      BFD_ASSERT (esd->rel_hdr2 == NULL);
-      esd->rel_hdr2 = (Elf_Internal_Shdr *) bfd_zalloc (abfd, amt);
-      if (!esd->rel_hdr2)
-	return FALSE;
-      _bfd_elf_init_reloc_shdr (abfd, esd->rel_hdr2, sec, !sec->use_rela_p);
-    }
+  /* The generic elf_fake_sections will set up REL_HDR using the default
+   kind of relocations.  We used to set up a second header for the
+   non-default kind of relocations here, but only NewABI would use
+   these, and the IRIX ld doesn't like resulting empty RELA sections.
+   Thus we create those header only on demand now.  */
 
   return TRUE;
 }
@@ -5061,7 +5044,7 @@
   asection *sreloc;
   struct elf_backend_data *bed;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
@@ -5557,7 +5540,7 @@
   /* We are not currently changing any sizes, so only one pass.  */
   *again = FALSE;
 
-  if (link_info->relocateable)
+  if (link_info->relocatable)
     return TRUE;
 
   internal_relocs = _bfd_elf_link_read_relocs (abfd, sec, (PTR) NULL,
@@ -5748,7 +5731,7 @@
      any R_MIPS_32 or R_MIPS_REL32 relocs against it into the output
      file.  */
   hmips = (struct mips_elf_link_hash_entry *) h;
-  if (! info->relocateable
+  if (! info->relocatable
       && hmips->possibly_dynamic_relocs != 0
       && (h->root.type == bfd_link_hash_defweak
 	  || (h->elf_link_hash_flags
@@ -5846,7 +5829,7 @@
     bfd_set_section_size (output_bfd, ri,
 			  (bfd_size_type) sizeof (Elf32_External_RegInfo));
 
-  if (! (info->relocateable
+  if (! (info->relocatable
 	 || ! mips_elf_hash_table (info)->mips16_stubs_seen))
     mips_elf_link_hash_traverse (mips_elf_hash_table (info),
 				 mips_elf_check_mips16_stubs,
@@ -6384,7 +6367,7 @@
 	    addend = rel->r_addend;
 	}
 
-      if (info->relocateable)
+      if (info->relocatable)
 	{
 	  Elf_Internal_Sym *sym;
 	  unsigned long r_symndx;
@@ -6398,7 +6381,7 @@
 	     they're against a section symbol, in which case we need
 	     to adjust by the section offset, or unless they're GP
 	     relative in which case we need to adjust by the amount
-	     that we're adjusting GP in this relocateable object.  */
+	     that we're adjusting GP in this relocatable object.  */
 
 	  if (! mips_elf_local_relocation_p (input_bfd, rel, local_sections,
 					     FALSE))
@@ -8129,12 +8112,12 @@
 
 bfd_byte *
 _bfd_elf_mips_get_relocated_section_contents (abfd, link_info, link_order,
-					      data, relocateable, symbols)
+					      data, relocatable, symbols)
      bfd *abfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   /* Get enough memory to hold the stuff */
@@ -8242,7 +8225,7 @@
 	    {
 	      /* bypass special_function call */
 	      r = _bfd_mips_elf_gprel16_with_gp (input_bfd, sym, *parent,
-						 input_section, relocateable,
+						 input_section, relocatable,
 						 (PTR) data, gp);
 	      goto skip_bfd_perform_relocation;
 	    }
@@ -8252,11 +8235,11 @@
 				      *parent,
 				      (PTR) data,
 				      input_section,
-				      relocateable ? abfd : (bfd *) NULL,
+				      relocatable ? abfd : (bfd *) NULL,
 				      &error_message);
 	skip_bfd_perform_relocation:
 
-	  if (relocateable)
+	  if (relocatable)
 	    {
 	      asection *os = input_section->output_section;
 
@@ -8463,7 +8446,7 @@
 	elf_gp (abfd) = (h->u.def.value
 			 + h->u.def.section->output_section->vma
 			 + h->u.def.section->output_offset);
-      else if (info->relocateable)
+      else if (info->relocatable)
 	{
 	  bfd_vma lo = MINUS_ONE;
 
@@ -8784,7 +8767,7 @@
 	     information describing how the small data area would
 	     change depending upon the -G switch.  These sections
 	     not used in executables files.  */
-	  if (! info->relocateable)
+	  if (! info->relocatable)
 	    {
 	      for (p = o->link_order_head;
 		   p != (struct bfd_link_order *) NULL;
diff --git a/bfd/i386linux.c b/bfd/i386linux.c
index 6403e1c..84ae477 100644
--- a/bfd/i386linux.c
+++ b/bfd/i386linux.c
@@ -353,7 +353,7 @@
 
   insert = FALSE;
 
-  if (! info->relocateable
+  if (! info->relocatable
       && linux_hash_table (info)->dynobj == NULL
       && strcmp (name, SHARABLE_CONFLICTS) == 0
       && (flags & BSF_CONSTRUCTOR) != 0
diff --git a/bfd/ieee.c b/bfd/ieee.c
index 59d5743..f0ba1e5 100644
--- a/bfd/ieee.c
+++ b/bfd/ieee.c
@@ -3590,7 +3590,7 @@
   0xf0, 0x20, 0x00,
   0xf1, 0xce, 0x20, 0x00, 37, 3, 3,	/* Set version 3 rev 3.  */
   0xf1, 0xce, 0x20, 0x00, 39, 2,	/* Keep symbol in  original case.  */
-  0xf1, 0xce, 0x20, 0x00, 38		/* Set object type relocateable to x.  */
+  0xf1, 0xce, 0x20, 0x00, 38		/* Set object type relocatable to x.  */
 };
 
 static const unsigned char envi[] =
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 9bbdebd..46695e7 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -1509,7 +1509,7 @@
     struct bfd_link_info *link_info,
     struct bfd_link_order *link_order,
     bfd_byte *data,
-    bfd_boolean relocateable,
+    bfd_boolean relocatable,
     asymbol **symbols));
 
 /* Extracted from archures.c.  */
diff --git a/bfd/libcoff-in.h b/bfd/libcoff-in.h
index fac7650..0c19433 100644
--- a/bfd/libcoff-in.h
+++ b/bfd/libcoff-in.h
@@ -1,6 +1,6 @@
 /* BFD COFF object file private structure.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002
+   2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -434,7 +434,7 @@
    bfd_hash_lookup (&(table)->root, (string), (create), (copy)))
 
 /* Information we keep for each section in the output file when doing
-   a relocateable link.  */
+   a relocatable link.  */
 
 struct coff_link_section_info
 {
@@ -461,7 +461,7 @@
   bfd_boolean global_to_static;
   /* Hash table for long symbol names.  */
   struct bfd_strtab_hash *strtab;
-  /* When doing a relocateable link, an array of information kept for
+  /* When doing a relocatable link, an array of information kept for
      each output section, indexed by the target_index field.  */
   struct coff_link_section_info *section_info;
   /* Symbol index of last C_FILE symbol (-1 if none).  */
diff --git a/bfd/libcoff.h b/bfd/libcoff.h
index 1beec22..3cac32a 100644
--- a/bfd/libcoff.h
+++ b/bfd/libcoff.h
@@ -4,7 +4,7 @@
 
 /* BFD COFF object file private structure.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002
+   2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -438,7 +438,7 @@
    bfd_hash_lookup (&(table)->root, (string), (create), (copy)))
 
 /* Information we keep for each section in the output file when doing
-   a relocateable link.  */
+   a relocatable link.  */
 
 struct coff_link_section_info
 {
@@ -465,7 +465,7 @@
   bfd_boolean global_to_static;
   /* Hash table for long symbol names.  */
   struct bfd_strtab_hash *strtab;
-  /* When doing a relocateable link, an array of information kept for
+  /* When doing a relocatable link, an array of information kept for
      each output section, indexed by the target_index field.  */
   struct coff_link_section_info *section_info;
   /* Symbol index of last C_FILE symbol (-1 if none).  */
diff --git a/bfd/linker.c b/bfd/linker.c
index c0e3236..72f8bfd 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -88,7 +88,7 @@
 
 	For example, with each entry in the hash table the a.out
 	linker keeps the index the symbol has in the final output file
-	(this index number is used so that when doing a relocateable
+	(this index number is used so that when doing a relocatable
 	link the symbol index used in the output file can be quickly
 	filled in when copying over a reloc).  The a.out linker code
 	defines the required structures and functions for a hash table
@@ -277,7 +277,7 @@
 	the input sections and copy the data into the output sections.
 	It must build an output symbol table including any local
 	symbols from the input files and the global symbols from the
-	hash table.  When producing relocateable output, it must
+	hash table.  When producing relocatable output, it must
 	modify the input relocs and write them into the output file.
 	There may also be object format dependent work to be done.
 
@@ -317,7 +317,7 @@
 	types of information.  They also describe relocs that must be
 	created by the BFD backend, but do not correspond to any input
 	file; this is used to support -Ur, which builds constructors
-	while generating a relocateable object file.
+	while generating a relocatable object file.
 
 INODE
 Relocating the section contents, Writing the symbol table, Information provided by the linker, Performing the Final Link
@@ -339,7 +339,7 @@
 	input files.  The <<_bfd_final_link>> function should read the
 	contents of the section and any associated relocs, apply the
 	relocs to the section contents, and write out the modified
-	section contents.  If performing a relocateable link, the
+	section contents.  If performing a relocatable link, the
 	relocs themselves must also be modified and written out.
 
 @findex _bfd_relocate_contents
@@ -2043,7 +2043,7 @@
   if (! generic_add_output_symbol (abfd, &outsymalloc, NULL))
     return FALSE;
 
-  if (info->relocateable)
+  if (info->relocatable)
     {
       /* Allocate space for the output relocs for each section.  */
       for (o = abfd->sections;
@@ -2362,7 +2362,7 @@
 		  break;
 		case discard_sec_merge:
 		  output = TRUE;
-		  if (info->relocateable
+		  if (info->relocatable
 		      || ! (sym->section->flags & SEC_MERGE))
 		    break;
 		  /* FALLTHROUGH */
@@ -2534,7 +2534,7 @@
 {
   arelent *r;
 
-  if (! info->relocateable)
+  if (! info->relocatable)
     abort ();
   if (sec->orelocation == (arelent **) NULL)
     abort ();
@@ -2767,7 +2767,7 @@
   BFD_ASSERT (input_section->output_offset == link_order->offset);
   BFD_ASSERT (input_section->_cooked_size == link_order->size);
 
-  if (info->relocateable
+  if (info->relocatable
       && input_section->reloc_count > 0
       && output_section->orelocation == (arelent **) NULL)
     {
@@ -2777,7 +2777,7 @@
 	 types of object files.  Handling this case correctly is
 	 difficult, and sometimes impossible.  */
       (*_bfd_error_handler)
-	(_("Attempt to do relocateable link with %s input and %s output"),
+	(_("Attempt to do relocatable link with %s input and %s output"),
 	 bfd_get_target (input_bfd), bfd_get_target (output_bfd));
       bfd_set_error (bfd_error_wrong_format);
       return FALSE;
@@ -2842,7 +2842,7 @@
   if (contents == NULL && sec_size != 0)
     goto error_return;
   new_contents = (bfd_get_relocated_section_contents
-		  (output_bfd, info, link_order, contents, info->relocateable,
+		  (output_bfd, info, link_order, contents, info->relocatable,
 		   _bfd_generic_link_get_symbols (input_bfd)));
   if (!new_contents)
     goto error_return;
diff --git a/bfd/m68klinux.c b/bfd/m68klinux.c
index 1a82980..90f342c 100644
--- a/bfd/m68klinux.c
+++ b/bfd/m68klinux.c
@@ -357,7 +357,7 @@
 
   insert = FALSE;
 
-  if (! info->relocateable
+  if (! info->relocatable
       && linux_hash_table (info)->dynobj == NULL
       && strcmp (name, SHARABLE_CONFLICTS) == 0
       && (flags & BSF_CONSTRUCTOR) != 0
diff --git a/bfd/opncls.c b/bfd/opncls.c
index b6b4097..5237190 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -1058,16 +1058,82 @@
 
 /*
 FUNCTION
-	bfd_add_gnu_debuglink
+	bfd_create_gnu_debuglink_section
 
 SYNOPSIS
-	bfd_boolean bfd_add_gnu_debuglink (bfd * abfd, const char * filename);
+	struct sec * bfd_create_gnu_debuglink_section (bfd * abfd, const char * filename);
 
 DESCRIPTION
 
-	Takes a @var{BFD} and adds a .gnu_debuglink section containing a link
-	to the specified @var{filename}.  The filename should be relative to
-	the current directory.
+	Takes a @var{BFD} and adds a .gnu_debuglink section to it.  The section is sized
+	to be big enough to contain a link to the specified @var{filename}.
+
+RETURNS
+	A pointer to the new section is returned if all is ok.  Otherwise <<NULL>> is
+	returned and bfd_error is set.  
+*/
+
+asection *
+bfd_create_gnu_debuglink_section 
+    (bfd *        abfd,
+     const char * filename)
+{
+  asection *      sect;
+  bfd_size_type   debuglink_size;
+
+  if (abfd == NULL || filename == NULL)
+    {
+      bfd_set_error (bfd_error_invalid_operation);
+      return NULL;
+    }
+
+  /* Strip off any path components in filename.  */
+  filename = lbasename (filename);
+  
+  sect = bfd_get_section_by_name (abfd, GNU_DEBUGLINK);
+  if (sect)
+    {
+      /* Section already exists.  */
+      bfd_set_error (bfd_error_invalid_operation);
+      return NULL;
+    }
+
+  sect = bfd_make_section (abfd, GNU_DEBUGLINK);
+  if (sect == NULL)
+    return NULL;
+
+  if (! bfd_set_section_flags (abfd, sect,
+			       SEC_HAS_CONTENTS | SEC_READONLY | SEC_DEBUGGING))
+    /* XXX Should we delete the section from the bfd ?  */
+    return NULL;
+
+  
+  debuglink_size = strlen (filename) + 1;
+  debuglink_size += 3;
+  debuglink_size &= ~3;
+  debuglink_size += 4;
+
+  if (! bfd_set_section_size (abfd, sect, debuglink_size))
+    /* XXX Should we delete the section from the bfd ?  */
+    return NULL;
+  
+  return sect;
+}
+
+
+/*
+FUNCTION
+	bfd_fill_in_gnu_debuglink_section
+
+SYNOPSIS
+	bfd_boolean bfd_fill_in_gnu_debuglink_section (bfd * abfd, struct sec * sect, const char * filename);
+
+DESCRIPTION
+
+	Takes a @var{BFD} and containing a .gnu_debuglink section @var{SECT}
+	and fills in the contents of the section to contain a link to the
+	specified @var{filename}.  The filename should be relative to the
+	current directory.
 
 RETURNS
 	<<TRUE>> is returned if all is ok.  Otherwise <<FALSE>> is returned
@@ -1075,11 +1141,11 @@
 */
 
 bfd_boolean
-bfd_add_gnu_debuglink (abfd, filename)
-     bfd *abfd;
-     const char * filename;
+bfd_fill_in_gnu_debuglink_section
+    (bfd *        abfd,
+     struct sec * sect,
+     const char * filename)
 {
-  asection * sect;
   bfd_size_type debuglink_size;
   unsigned long crc32;
   char * contents;
@@ -1088,7 +1154,7 @@
   static char buffer[8 * 1024];
   size_t count;
 
-  if (abfd == NULL || filename == NULL)
+  if (abfd == NULL || sect == NULL || filename == NULL)
     {
       bfd_set_error (bfd_error_invalid_operation);
       return FALSE;
@@ -1116,33 +1182,11 @@
      now that we no longer need them.  */
   filename = lbasename (filename);
   
-  sect = bfd_get_section_by_name (abfd, GNU_DEBUGLINK);
-  if (sect)
-    {
-      /* Section already exists.  */
-      bfd_set_error (bfd_error_invalid_operation);
-      return FALSE;
-    }
-
-  sect = bfd_make_section (abfd, GNU_DEBUGLINK);
-  if (sect == NULL)
-    return FALSE;
-
-  if (! bfd_set_section_flags (abfd, sect,
-			       SEC_HAS_CONTENTS | SEC_DEBUGGING))
-    /* XXX Should we delete the section from the bfd ?  */
-    return FALSE;
-
-  
   debuglink_size = strlen (filename) + 1;
   debuglink_size += 3;
   debuglink_size &= ~3;
   debuglink_size += 4;
 
-  if (! bfd_set_section_size (abfd, sect, debuglink_size))
-    /* XXX Should we delete the section from the bfd ?  */
-    return FALSE;
-  
   contents = malloc (debuglink_size);
   if (contents == NULL)
     {
diff --git a/bfd/pdp11.c b/bfd/pdp11.c
index 95d78a1..52f7b70 100644
--- a/bfd/pdp11.c
+++ b/bfd/pdp11.c
@@ -1,5 +1,5 @@
 /* BFD back-end for PDP-11 a.out binaries.
-   Copyright 2001, 2002 Free Software Foundation, Inc.
+   Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -3436,7 +3436,7 @@
   includes_hash_initialized = TRUE;
 
   /* Figure out the largest section size.  Also, if generating
-     relocateable output, count the relocs.  */
+     relocatable output, count the relocs.  */
   trsize = 0;
   drsize = 0;
   max_contents_size = 0;
@@ -3446,7 +3446,7 @@
     {
       size_t sz;
 
-      if (info->relocateable)
+      if (info->relocatable)
 	{
 	  if (bfd_get_flavour (sub) == bfd_target_aout_flavour)
 	    {
@@ -3460,7 +3460,7 @@
 		 work out the number of relocs needed, and then multiply
 		 by the reloc size.  */
 	      (*_bfd_error_handler)
-		("%s: relocateable link from %s to %s not supported",
+		("%s: relocatable link from %s to %s not supported",
 		 bfd_get_filename (abfd),
 		 sub->xvec->name, abfd->xvec->name);
 	      bfd_set_error (bfd_error_invalid_operation);
@@ -3490,7 +3490,7 @@
 	}
     }
 
-  if (info->relocateable)
+  if (info->relocatable)
     {
       if (obj_textsec (abfd) != (asection *) NULL)
 	trsize += (_bfd_count_link_order_relocs (obj_textsec (abfd)
@@ -4460,9 +4460,9 @@
 				  input_size))
     return FALSE;
 
-  /* If we are producing relocateable output, the relocs were
+  /* If we are producing relocatable output, the relocs were
      modified, and we now write them out.  */
-  if (finfo->info->relocateable && rel_size > 0)
+  if (finfo->info->relocatable && rel_size > 0)
     {
       if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0)
 	return FALSE;
@@ -4521,7 +4521,7 @@
 	     struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *,
 	     bfd_vma *));
   bfd *output_bfd;
-  bfd_boolean relocateable;
+  bfd_boolean relocatable;
   struct external_nlist *syms;
   char *strings;
   struct aout_link_hash_entry **sym_hashes;
@@ -4537,7 +4537,7 @@
   BFD_ASSERT (input_bfd->xvec->header_byteorder
 	      == output_bfd->xvec->header_byteorder);
 
-  relocateable = finfo->info->relocateable;
+  relocatable = finfo->info->relocatable;
   syms = obj_aout_external_syms (input_bfd);
   strings = obj_aout_external_strings (input_bfd);
   sym_hashes = obj_aout_sym_hashes (input_bfd);
@@ -4578,9 +4578,9 @@
 	howto = howto_table_pdp11 + howto_idx;
       }
 
-      if (relocateable)
+      if (relocatable)
 	{
-	  /* We are generating a relocateable output file, and must
+	  /* We are generating a relocatable output file, and must
 	     modify the reloc accordingly.  */
 	  if (r_extern)
 	    {
diff --git a/bfd/pe-mips.c b/bfd/pe-mips.c
index c9a4d58..3066aaa 100644
--- a/bfd/pe-mips.c
+++ b/bfd/pe-mips.c
@@ -1,6 +1,6 @@
 /* BFD back-end for MIPS PE COFF files.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002 Free Software Foundation, Inc.
+   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    Modified from coff-i386.c by DJ Delorie, dj@cygnus.com
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -73,7 +73,7 @@
    section for a reference to a common symbol is the value itself plus
    any desired offset.  Ian Taylor, Cygnus Support.  */
 
-/* If we are producing relocateable output, we need to do some
+/* If we are producing relocatable output, we need to do some
    adjustments to the object file that are not done by the
    bfd_perform_relocation function.  This function is called by every
    reloc type to make any required adjustments.  */
@@ -118,7 +118,7 @@
     {
       /* For some reason bfd_perform_relocation always effectively
 	 ignores the addend for a COFF target when producing
-	 relocateable output.  This seems to be always wrong for 386
+	 relocatable output.  This seems to be always wrong for 386
 	 COFF, so we handle the addend here instead.  */
       diff = reloc_entry->addend;
     }
@@ -467,7 +467,7 @@
 
 #ifndef COFF_WITH_PE
   /* If the output symbol is common (in which case this must be a
-     relocateable link), we need to add in the final size of the
+     relocatable link), we need to add in the final size of the
      common symbol.  */
   if (h != NULL && h->root.type == bfd_link_hash_common)
     *addendp += h->root.u.c.size;
@@ -654,7 +654,7 @@
   unsigned int i;
   bfd_boolean got_lo;
 
-  if (info->relocateable)
+  if (info->relocatable)
   {
     (*_bfd_error_handler) (_("\
 %s: `ld -r' not supported with PE MIPS objects\n"),
@@ -722,13 +722,13 @@
       if (howto == NULL)
 	return FALSE;
 
-      /* If we are doing a relocateable link, then we can just ignore
+      /* If we are doing a relocatable link, then we can just ignore
          a PC relative reloc that is pcrel_offset.  It will already
-         have the correct value.  If this is not a relocateable link,
+         have the correct value.  If this is not a relocatable link,
          then we should ignore the symbol value.  */
       if (howto->pc_relative && howto->pcrel_offset)
 	{
-	  if (info->relocateable)
+	  if (info->relocatable)
 	    continue;
 	  if (sym != NULL && sym->n_scnum != 0)
 	    addend += sym->n_value;
@@ -768,7 +768,7 @@
 		     + sec->output_offset);
 	      }
 
-	  else if (! info->relocateable)
+	  else if (! info->relocatable)
 	    {
 	      if (! ((*info->callbacks->undefined_symbol)
 		     (info, h->root.root.string, input_bfd, input_section,
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index ba1c219..7f1a6a3 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -961,7 +961,7 @@
   }
 
   if (coff_data (abfd)->link_info
-      && ! coff_data (abfd)->link_info->relocateable
+      && ! coff_data (abfd)->link_info->relocatable
       && ! coff_data (abfd)->link_info->shared
       && strcmp (scnhdr_int->s_name, ".text") == 0)
     {
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 6aea881..09155b2 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -606,7 +606,7 @@
       return bfd_reloc_ok;
     }
 
-  /* If we are not producing relocateable output, return an error if
+  /* If we are not producing relocatable output, return an error if
      the symbol is not defined.  An undefined weak symbol is
      considered to have a value of zero (SVR4 ABI, p. 4-27).  */
   if (bfd_is_und_section (symbol->section)
@@ -675,7 +675,7 @@
 	 include the position of the location; for example, m88kbcs,
 	 or ELF.  For those targets, pcrel_offset is TRUE.
 
-	 If we are producing relocateable output, then we must ensure
+	 If we are producing relocatable output, then we must ensure
 	 that this reloc will be correctly computed when the final
 	 relocation is done.  If pcrel_offset is FALSE we want to wind
 	 up with the negative of the location within the section,
@@ -684,7 +684,7 @@
 	 we do not want to adjust the existing addend at all.
 
 	 FIXME: This seems logical to me, but for the case of
-	 producing relocateable output it is not what the code
+	 producing relocatable output it is not what the code
 	 actually does.  I don't want to change it, because it seems
 	 far too likely that something will break.  */
 
@@ -739,7 +739,7 @@
 not have any tests that depend upon the flavour.  It's seem like
 entirely the wrong place for such a thing.  The second obvious point
 is that the current code ignores the reloc addend when producing
-relocateable output for COFF.  That's peculiar.  In fact, I really
+relocatable output for COFF.  That's peculiar.  In fact, I really
 have no idea what the point of the line you want to remove is.
 
 A typical COFF reloc subtracts the old value of the symbol and adds in
@@ -754,9 +754,9 @@
 compatibility with old object files) (coff-i386 does subtract the old
 value, to be compatible with existing coff-i386 targets, like SCO).
 
-So everything works fine when not producing relocateable output.  When
-we are producing relocateable output, logically we should do exactly
-what we do when not producing relocateable output.  Therefore, your
+So everything works fine when not producing relocatable output.  When
+we are producing relocatable output, logically we should do exactly
+what we do when not producing relocatable output.  Therefore, your
 patch is correct.  In fact, it should probably always just set
 reloc_entry->addend to 0 for all cases, since it is, in fact, going to
 add the value into the object file.  This won't hurt the COFF code,
@@ -764,7 +764,7 @@
 formats (the thing to check for would be whether any formats both use
 the addend and set partial_inplace).
 
-When I wanted to make coff-i386 produce relocateable output, I ran
+When I wanted to make coff-i386 produce relocatable output, I ran
 into the problem that you are running into: I wanted to remove that
 line.  Rather than risk it, I made the coff-i386 relocs use a special
 function; it's coff_i386_reloc in coff-i386.c.  The function
@@ -1067,7 +1067,7 @@
 	 include the position of the location; for example, m88kbcs,
 	 or ELF.  For those targets, pcrel_offset is TRUE.
 
-	 If we are producing relocateable output, then we must ensure
+	 If we are producing relocatable output, then we must ensure
 	 that this reloc will be correctly computed when the final
 	 relocation is done.  If pcrel_offset is FALSE we want to wind
 	 up with the negative of the location within the section,
@@ -1076,7 +1076,7 @@
 	 we do not want to adjust the existing addend at all.
 
 	 FIXME: This seems logical to me, but for the case of
-	 producing relocateable output it is not what the code
+	 producing relocatable output it is not what the code
 	 actually does.  I don't want to change it, because it seems
 	 far too likely that something will break.  */
 
@@ -1128,7 +1128,7 @@
 not have any tests that depend upon the flavour.  It's seem like
 entirely the wrong place for such a thing.  The second obvious point
 is that the current code ignores the reloc addend when producing
-relocateable output for COFF.  That's peculiar.  In fact, I really
+relocatable output for COFF.  That's peculiar.  In fact, I really
 have no idea what the point of the line you want to remove is.
 
 A typical COFF reloc subtracts the old value of the symbol and adds in
@@ -1143,9 +1143,9 @@
 compatibility with old object files) (coff-i386 does subtract the old
 value, to be compatible with existing coff-i386 targets, like SCO).
 
-So everything works fine when not producing relocateable output.  When
-we are producing relocateable output, logically we should do exactly
-what we do when not producing relocateable output.  Therefore, your
+So everything works fine when not producing relocatable output.  When
+we are producing relocatable output, logically we should do exactly
+what we do when not producing relocatable output.  Therefore, your
 patch is correct.  In fact, it should probably always just set
 reloc_entry->addend to 0 for all cases, since it is, in fact, going to
 add the value into the object file.  This won't hurt the COFF code,
@@ -1153,7 +1153,7 @@
 formats (the thing to check for would be whether any formats both use
 the addend and set partial_inplace).
 
-When I wanted to make coff-i386 produce relocateable output, I ran
+When I wanted to make coff-i386 produce relocatable output, I ran
 into the problem that you are running into: I wanted to remove that
 line.  Rather than risk it, I made the coff-i386 relocs use a special
 function; it's coff_i386_reloc in coff-i386.c.  The function
@@ -1331,7 +1331,7 @@
    function than to try to deal with it.
 
    This routine does a final relocation.  Whether it is useful for a
-   relocateable link depends upon how the object format defines
+   relocatable link depends upon how the object format defines
    relocations.
 
    FIXME: This routine ignores any special_function in the HOWTO,
@@ -4066,7 +4066,7 @@
 	     struct bfd_link_info *link_info,
 	     struct bfd_link_order *link_order,
 	     bfd_byte *data,
-	     bfd_boolean relocateable,
+	     bfd_boolean relocatable,
 	     asymbol **symbols);
 
 DESCRIPTION
@@ -4077,12 +4077,12 @@
 
 bfd_byte *
 bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
-					    relocateable, symbols)
+					    relocatable, symbols)
      bfd *abfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   /* Get enough memory to hold the stuff.  */
@@ -4131,10 +4131,10 @@
 				    *parent,
 				    (PTR) data,
 				    input_section,
-				    relocateable ? abfd : (bfd *) NULL,
+				    relocatable ? abfd : (bfd *) NULL,
 				    &error_message);
 
-	  if (relocateable)
+	  if (relocatable)
 	    {
 	      asection *os = input_section->output_section;
 
diff --git a/bfd/reloc16.c b/bfd/reloc16.c
index 39f36e7..3a4c3d3 100644
--- a/bfd/reloc16.c
+++ b/bfd/reloc16.c
@@ -1,6 +1,6 @@
 /* 8 and 16 bit COFF relocation functions, for BFD.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001,
-   2002 Free Software Foundation, Inc.
+   2002, 2003 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -240,13 +240,13 @@
 						 link_info,
 						 link_order,
 						 data,
-						 relocateable,
+						 relocatable,
 						 symbols)
      bfd *in_abfd;
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     bfd_boolean relocateable;
+     bfd_boolean relocatable;
      asymbol **symbols;
 {
   /* Get enough memory to hold the stuff.  */
@@ -259,11 +259,11 @@
   if (reloc_size < 0)
     return NULL;
 
-  /* If producing relocateable output, don't bother to relax.  */
-  if (relocateable)
+  /* If producing relocatable output, don't bother to relax.  */
+  if (relocatable)
     return bfd_generic_get_relocated_section_contents (in_abfd, link_info,
 						       link_order,
-						       data, relocateable,
+						       data, relocatable,
 						       symbols);
 
   /* Read in the section.  */
diff --git a/bfd/sparclinux.c b/bfd/sparclinux.c
index 40e49c8..0a936b1 100644
--- a/bfd/sparclinux.c
+++ b/bfd/sparclinux.c
@@ -354,7 +354,7 @@
 
   insert = FALSE;
 
-  if (! info->relocateable
+  if (! info->relocatable
       && linux_hash_table (info)->dynobj == NULL
       && strcmp (name, SHARABLE_CONFLICTS) == 0
       && (flags & BSF_CONSTRUCTOR) != 0
diff --git a/bfd/sunos.c b/bfd/sunos.c
index 4569e80..fb8e17b 100644
--- a/bfd/sunos.c
+++ b/bfd/sunos.c
@@ -1,6 +1,6 @@
 /* BFD backend for SunOS binaries.
    Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
-   2002 Free Software Foundation, Inc.
+   2002, 2003 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -884,7 +884,7 @@
     {
       if (! sunos_create_dynamic_sections (abfd, info,
 					   ((abfd->flags & DYNAMIC) != 0
-					    && !info->relocateable)))
+					    && !info->relocatable)))
 	return FALSE;
     }
 
@@ -911,7 +911,7 @@
 
   /* The native linker seems to just ignore dynamic objects when -r is
      used.  */
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   /* There's no hope of using a dynamic object which does not exactly
@@ -1326,7 +1326,7 @@
   *sneedptr = NULL;
   *srulesptr = NULL;
 
-  if (info->relocateable)
+  if (info->relocatable)
     return TRUE;
 
   if (output_bfd->xvec != &MY(vec))
diff --git a/bfd/syms.c b/bfd/syms.c
index 0fcb7b3..d0ffcc7 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -1005,7 +1005,7 @@
 					 (bfd_vma) 0, strsize))
 	return FALSE;
 
-      /* If this is a relocateable object file, we have to relocate
+      /* If this is a relocatable object file, we have to relocate
 	 the entries in .stab.  This should always be simple 32 bit
 	 relocations against symbols defined in this object file, so
 	 this should be no big deal.  */
diff --git a/bfd/versados.c b/bfd/versados.c
index 1301c58..ee0897a 100644
--- a/bfd/versados.c
+++ b/bfd/versados.c
@@ -1,5 +1,5 @@
 /* BFD back-end for VERSAdos-E objects.
-   Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002
+   Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
 
@@ -23,11 +23,11 @@
 
 /*
    SUBSECTION
-   VERSAdos-E relocateable object file format
+   VERSAdos-E relocatable object file format
 
    DESCRIPTION
 
-   This module supports reading of VERSAdos relocateable
+   This module supports reading of VERSAdos relocatable
    object files.
 
    A VERSAdos file looks like contains
diff --git a/bfd/version.h b/bfd/version.h
index 775cc74..ae8bcf1 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -1,3 +1,3 @@
-#define BFD_VERSION_DATE 20030621
+#define BFD_VERSION_DATE 20030627
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING @bfd_version_string@
diff --git a/bfd/vms.c b/bfd/vms.c
index c98e483..175dae0 100644
--- a/bfd/vms.c
+++ b/bfd/vms.c
@@ -1,6 +1,6 @@
 /* vms.c -- BFD back-end for VAX (openVMS/VAX) and
    EVAX (openVMS/Alpha) files.
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
 
    Written by Klaus K"ampf (kkaempf@rmi.de)
@@ -132,7 +132,7 @@
 static bfd_byte *vms_bfd_get_relocated_section_contents
   PARAMS ((bfd *abfd, struct bfd_link_info *link_info,
 	   struct bfd_link_order *link_order, bfd_byte *data,
-	   bfd_boolean relocateable, asymbol **symbols));
+	   bfd_boolean relocatable, asymbol **symbols));
 static bfd_boolean vms_bfd_relax_section
   PARAMS ((bfd *abfd, asection *section, struct bfd_link_info *link_info,
 	   bfd_boolean *again));
@@ -1691,17 +1691,17 @@
 
 static bfd_byte *
 vms_bfd_get_relocated_section_contents (abfd, link_info, link_order, data,
-					 relocateable, symbols)
+					 relocatable, symbols)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
      struct bfd_link_order *link_order ATTRIBUTE_UNUSED;
      bfd_byte *data ATTRIBUTE_UNUSED;
-     bfd_boolean relocateable ATTRIBUTE_UNUSED;
+     bfd_boolean relocatable ATTRIBUTE_UNUSED;
      asymbol **symbols ATTRIBUTE_UNUSED;
 {
 #if VMS_DEBUG
   vms_debug (1, "vms_bfd_get_relocated_section_contents(%p, %p, %p, %p, %s, %p)\n",
-			abfd, link_info, link_order, data, (relocateable)?"True":"False", symbols);
+			abfd, link_info, link_order, data, (relocatable)?"True":"False", symbols);
 #endif
   return 0;
 }
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index 0505c86..6f94029 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -1,5 +1,5 @@
 /* POWER/PowerPC XCOFF linker support.
-   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
 
@@ -2932,7 +2932,7 @@
     }
 
   /* Garbage collect unused sections.  */
-  if (info->relocateable
+  if (info->relocatable
       || ! gc
       || hentry == NULL
       || (hentry->root.type != bfd_link_hash_defined
@@ -5294,7 +5294,7 @@
 		    }
 		  else
 		    {
-		      if (! finfo->info->relocateable
+		      if (! finfo->info->relocatable
 			  && (h->flags & XCOFF_DEF_DYNAMIC) == 0
 			  && (h->flags & XCOFF_IMPORT) == 0)
 			{
diff --git a/configure b/configure
index 1492a10..1d28c64 100755
--- a/configure
+++ b/configure
@@ -801,7 +801,7 @@
 # these libraries are built for the target environment, and are built after
 # the host libraries and the host tools (which may be a cross compiler)
 #
-target_libs="target-libiberty \
+target_libraries="target-libiberty \
 		target-libgloss \
 		target-newlib \
 		target-libstdc++-v3 \
@@ -809,10 +809,10 @@
 		${libgcj} \
 		target-libobjc"
 
-# these tools are built using the target libs, and are intended to run only
-# in the target environment
+# these tools are built using the target libraries, and are intended to
+# run only in the target environment
 #
-# note: any program that *uses* libraries that are in the "target_libs"
+# note: any program that *uses* libraries that are in the "target_libraries"
 # list belongs in this list.  those programs are also very likely
 # candidates for the "native_only" list which follows
 #
@@ -827,7 +827,7 @@
 ## ${target_configdirs} is directories we build using the target tools.
 #
 configdirs=`echo ${host_libs} ${host_tools}`
-target_configdirs=`echo ${target_libs} ${target_tools}`
+target_configdirs=`echo ${target_libraries} ${target_tools}`
 
 # Only make build modules if build != host.
 # This should be done more generally, but at the moment it doesn't matter.
@@ -1140,22 +1140,22 @@
     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
     ;;
   cris-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
+    noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
     ;;
   d10v-*-*)
     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
     ;;
   d30v-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
+    noconfigdirs="$noconfigdirs ${libgcj} gdb"
     ;;
   fr30-*-elf*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
+    noconfigdirs="$noconfigdirs ${libgcj} gdb"
     ;;
   frv-*-*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
   h8300*-*-*)
-    noconfigdirs="$noconfigdirs target-libgloss"
+    noconfigdirs="$noconfigdirs target-libgloss ${libgcj} target-libf2c"
     ;;
   h8500-*-*)
     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} target-libf2c"
@@ -1179,6 +1179,9 @@
     # build on HP-UX 10.20.
     noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
     ;;
+  i960-*-*)
+    noconfigdirs="$noconfigdirs ${libgcj} gdb"
+    ;;
   ia64*-*-elf*)
     # No gdb support yet.
     noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
@@ -1256,6 +1259,9 @@
   i[3456789]86-*-beos*)
     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
     ;;
+  m32r-*-*)
+    noconfigdirs="$noconfigdirs ${libgcj} gdb"
+    ;;
   m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
     ;;
@@ -1485,7 +1491,7 @@
         *) add_this_lang=no ;;
       esac
       if test x"${add_this_lang}" = xyes; then
-        eval target_libs='"$target_libs "'\"$this_lang_libs\"
+        :
       else
         eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\"
       fi
@@ -2693,7 +2699,7 @@
   # Extract the first word of "${ncn_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2697: checking for $ac_word" >&5
+echo "configure:2703: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2726,7 +2732,7 @@
     # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2730: checking for $ac_word" >&5
+echo "configure:2736: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2765,7 +2771,7 @@
   # Extract the first word of "${ncn_tool_prefix}as", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}as; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2769: checking for $ac_word" >&5
+echo "configure:2775: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2798,7 +2804,7 @@
     # Extract the first word of "as", so it can be a program name with args.
 set dummy as; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2802: checking for $ac_word" >&5
+echo "configure:2808: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2837,7 +2843,7 @@
   # Extract the first word of "${ncn_tool_prefix}dlltool", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}dlltool; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2841: checking for $ac_word" >&5
+echo "configure:2847: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2870,7 +2876,7 @@
     # Extract the first word of "dlltool", so it can be a program name with args.
 set dummy dlltool; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2874: checking for $ac_word" >&5
+echo "configure:2880: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2909,7 +2915,7 @@
   # Extract the first word of "${ncn_tool_prefix}ld", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}ld; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2913: checking for $ac_word" >&5
+echo "configure:2919: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2942,7 +2948,7 @@
     # Extract the first word of "ld", so it can be a program name with args.
 set dummy ld; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2946: checking for $ac_word" >&5
+echo "configure:2952: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2981,7 +2987,7 @@
   # Extract the first word of "${ncn_tool_prefix}nm", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}nm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2985: checking for $ac_word" >&5
+echo "configure:2991: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3014,7 +3020,7 @@
     # Extract the first word of "nm", so it can be a program name with args.
 set dummy nm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3018: checking for $ac_word" >&5
+echo "configure:3024: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3053,7 +3059,7 @@
   # Extract the first word of "${ncn_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3057: checking for $ac_word" >&5
+echo "configure:3063: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3086,7 +3092,7 @@
     # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3090: checking for $ac_word" >&5
+echo "configure:3096: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3125,7 +3131,7 @@
   # Extract the first word of "${ncn_tool_prefix}windres", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}windres; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3129: checking for $ac_word" >&5
+echo "configure:3135: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3158,7 +3164,7 @@
     # Extract the first word of "windres", so it can be a program name with args.
 set dummy windres; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3162: checking for $ac_word" >&5
+echo "configure:3168: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3197,7 +3203,7 @@
   # Extract the first word of "${ncn_tool_prefix}objcopy", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}objcopy; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3201: checking for $ac_word" >&5
+echo "configure:3207: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3230,7 +3236,7 @@
     # Extract the first word of "objcopy", so it can be a program name with args.
 set dummy objcopy; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3234: checking for $ac_word" >&5
+echo "configure:3240: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJCOPY'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3269,7 +3275,7 @@
   # Extract the first word of "${ncn_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}objdump; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3273: checking for $ac_word" >&5
+echo "configure:3279: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3302,7 +3308,7 @@
     # Extract the first word of "objdump", so it can be a program name with args.
 set dummy objdump; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3306: checking for $ac_word" >&5
+echo "configure:3312: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJDUMP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3350,7 +3356,7 @@
   # Extract the first word of "${ncn_target_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3354: checking for $ac_word" >&5
+echo "configure:3360: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3383,7 +3389,7 @@
     # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3387: checking for $ac_word" >&5
+echo "configure:3393: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3422,7 +3428,7 @@
   # Extract the first word of "${ncn_target_tool_prefix}as", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}as; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3426: checking for $ac_word" >&5
+echo "configure:3432: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3455,7 +3461,7 @@
     # Extract the first word of "as", so it can be a program name with args.
 set dummy as; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3459: checking for $ac_word" >&5
+echo "configure:3465: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3494,7 +3500,7 @@
   # Extract the first word of "${ncn_target_tool_prefix}dlltool", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}dlltool; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3498: checking for $ac_word" >&5
+echo "configure:3504: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3527,7 +3533,7 @@
     # Extract the first word of "dlltool", so it can be a program name with args.
 set dummy dlltool; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3531: checking for $ac_word" >&5
+echo "configure:3537: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3566,7 +3572,7 @@
   # Extract the first word of "${ncn_target_tool_prefix}ld", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}ld; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3570: checking for $ac_word" >&5
+echo "configure:3576: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3599,7 +3605,7 @@
     # Extract the first word of "ld", so it can be a program name with args.
 set dummy ld; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3603: checking for $ac_word" >&5
+echo "configure:3609: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3638,7 +3644,7 @@
   # Extract the first word of "${ncn_target_tool_prefix}nm", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}nm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3642: checking for $ac_word" >&5
+echo "configure:3648: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3671,7 +3677,7 @@
     # Extract the first word of "nm", so it can be a program name with args.
 set dummy nm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3675: checking for $ac_word" >&5
+echo "configure:3681: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3710,7 +3716,7 @@
   # Extract the first word of "${ncn_target_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3714: checking for $ac_word" >&5
+echo "configure:3720: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3743,7 +3749,7 @@
     # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3747: checking for $ac_word" >&5
+echo "configure:3753: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3782,7 +3788,7 @@
   # Extract the first word of "${ncn_target_tool_prefix}windres", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}windres; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3786: checking for $ac_word" >&5
+echo "configure:3792: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3815,7 +3821,7 @@
     # Extract the first word of "windres", so it can be a program name with args.
 set dummy windres; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3819: checking for $ac_word" >&5
+echo "configure:3825: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3882,7 +3888,7 @@
 NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:3886: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:3892: checking whether to enable maintainer-specific portions of Makefiles" >&5
 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
   enableval="$enable_maintainer_mode"
@@ -3969,34 +3975,15 @@
 # Transform confdefs.h into DEFS.
 # Protect against shell expansion while executing Makefile rules.
 # Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then we branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*([^)]*)\)[ 	]*\(.*\),-D\1=\2,g
-t quote
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[ 	`~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output.  A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+s%[ 	`~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
 
 
 # Without the "./", some shells look in PATH for config.status.
diff --git a/configure.in b/configure.in
index bdc08b2..463db7a 100644
--- a/configure.in
+++ b/configure.in
@@ -136,7 +136,7 @@
 # these libraries are built for the target environment, and are built after
 # the host libraries and the host tools (which may be a cross compiler)
 #
-target_libs="target-libiberty \
+target_libraries="target-libiberty \
 		target-libgloss \
 		target-newlib \
 		target-libstdc++-v3 \
@@ -144,10 +144,10 @@
 		${libgcj} \
 		target-libobjc"
 
-# these tools are built using the target libs, and are intended to run only
-# in the target environment
+# these tools are built using the target libraries, and are intended to
+# run only in the target environment
 #
-# note: any program that *uses* libraries that are in the "target_libs"
+# note: any program that *uses* libraries that are in the "target_libraries"
 # list belongs in this list.  those programs are also very likely
 # candidates for the "native_only" list which follows
 #
@@ -162,7 +162,7 @@
 ## ${target_configdirs} is directories we build using the target tools.
 #
 configdirs=`echo ${host_libs} ${host_tools}`
-target_configdirs=`echo ${target_libs} ${target_tools}`
+target_configdirs=`echo ${target_libraries} ${target_tools}`
 
 # Only make build modules if build != host.
 # This should be done more generally, but at the moment it doesn't matter.
@@ -454,22 +454,22 @@
     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
     ;;
   cris-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
+    noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
     ;;
   d10v-*-*)
     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
     ;;
   d30v-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
+    noconfigdirs="$noconfigdirs ${libgcj} gdb"
     ;;
   fr30-*-elf*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
+    noconfigdirs="$noconfigdirs ${libgcj} gdb"
     ;;
   frv-*-*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
   h8300*-*-*)
-    noconfigdirs="$noconfigdirs target-libgloss"
+    noconfigdirs="$noconfigdirs target-libgloss ${libgcj} target-libf2c"
     ;;
   h8500-*-*)
     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} target-libf2c"
@@ -493,6 +493,9 @@
     # build on HP-UX 10.20.
     noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
     ;;
+  i960-*-*)
+    noconfigdirs="$noconfigdirs ${libgcj} gdb"
+    ;;
   ia64*-*-elf*)
     # No gdb support yet.
     noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
@@ -570,6 +573,9 @@
   i[[3456789]]86-*-beos*)
     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
     ;;
+  m32r-*-*)
+    noconfigdirs="$noconfigdirs ${libgcj} gdb"
+    ;;
   m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
     ;;
@@ -799,7 +805,7 @@
         *) add_this_lang=no ;;
       esac
       if test x"${add_this_lang}" = xyes; then
-        eval target_libs='"$target_libs "'\"$this_lang_libs\"
+        :
       else
         eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\"
       fi
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c6dc51d..3e454dd 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,125 @@
+2003-06-27  Elena Zannoni  <ezannoni@redhat.com>
+
+	* symfile.c (syms_from_objfile): Move variables to inner block.
+	Move the checks for the non-mainline case a bit earlier to avoid
+	doing some useless computations.
+
+2003-06-27  Elena Zannoni  <ezannoni@redhat.com>
+
+        * dwarfread.c (decode_modified_type): Gag new compiler warning.
+
+2003-06-26  Elena Zannoni  <ezannoni@redhat.com>
+
+	* dwarf2read.c (dwarf2_locate_sections): Ignore empty .eh_frame
+	sections.
+
+2003-06-26  Michael Chastain  <mec@shout.net>
+
+	* config/djgpp/fnchange.lst: Add gdb/testsuite/gdb.c++/pr-1210.cc,
+	gdb/testsuite/gdb.c++/pr-1210.exp.
+
+2003-06-26  Andrew Cagney  <cagney@redhat.com>
+
+	* config/djgpp/fnchange.lst: Fix 8.3 problem with sim/ppc's
+	altivec_expression.h and altivec_registers.h.
+
+2003-06-26  Andrew Cagney  <cagney@redhat.com>
+
+	* mips-tdep.c (gdb_print_insn_mips): Only explicitly set
+	info->mach when MIPS16.  Patch suggested by Fred Fish.
+
+2003-06-26  Andrew Cagney  <cagney@redhat.com>
+
+	* utils.c (internal_vproblem): Print the problem to a reason
+	buffer and then pass to query.  Make the msg variable more local.
+
+2003-06-26  Andrew Cagney  <cagney@redhat.com>
+
+	* gdbarch.sh (FRAME_ARGS_ADDRESS): Add predicate.  Deprecate.
+	(FRAME_LOCALS_ADDRESS): Add predicate.  Deprecate.
+	* gdbarch.h, gdbarch.c: Re-generate.
+	* frame-base.c (default_frame_args_address): Update.  Use
+	default_frame_base_address when DEPRECATED_FRAME_ARGS_ADDRESS is
+	not available.
+	(default_frame_locals_address): Ditto for
+	DEPRECATED_FRAME_LOCALS_ADDRESS.
+	* vax-tdep.c (vax_sigtramp_saved_pc): Update.
+	(vax_frame_num_args): Update.
+	(vax_gdbarch_init): Update.
+	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
+	* ns32k-tdep.c (ns32k_gdbarch_init): Update.
+	* mcore-tdep.c (mcore_gdbarch_init): Update.
+	* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+	* ia64-tdep.c (ia64_gdbarch_init): Update.
+	* symtab.h (address_class): Update comments.
+	* ns32k-tdep.c (ns32k_sigtramp_saved_pc): Update.
+	* config/sparc/tm-sparc.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
+	(DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
+	* config/pa/tm-hppa64.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
+	(DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
+	(DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
+	* config/m68k/tm-delta68.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
+	* alpha-mdebug-tdep.c: Update.
+	* ada-lang.c (add_symbols_from_enclosing_procs): Update.
+
+2003-06-26  Andreas Jaeger  <aj@suse.de>
+
+	* x86-64-tdep.c (x86_64_push_arguments): Always set %rax to number
+	of SSE registers so that varargs functions work.  Rework handling
+	of passing arguments on the stack.
+	(x86_64_store_return_value): Return double and float values in SSE
+	register.
+
+2003-06-24  Michael Chastain  <mec@shout.net>
+
+	* PROBLEMS: Document pr gdb/1091 and pr gdb/1193,
+	the "constructor breakpoints ignored" bug.
+
+2003-06-25  David Carlton  <carlton@kealia.com>
+
+	* MAINTAINERS: Update e-mail address.
+
+2003-06-24  Jim Blandy  <jimb@redhat.com>
+
+	* ppc-linux-tdep.c: More "Linux" -> "GNU/Linux".
+
+	* ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr): New
+	function.
+	(ppc_linux_init_abi): Register it as the
+	CONVERT_FROM_FUNC_PTR_ADDR method under the PPC64 Linux ABI.
+
+	* ppc-linux-tdep.c (ppc64_call_dummy_address): New function.
+	(ppc_linux_init_abi): Set it as the gdbarch's call_dummy_address
+	method.
+
+	* ppc-linux-tdep.c (ppc64_desc_entry_point): New function.
+	(ppc64_standard_linkage_target): Use it.
+
+2003-06-23  Andrew Cagney  <cagney@redhat.com>
+
+	* rs6000-tdep.c (rs6000_register_virtual_type): Add explict cases
+	for 0 "int0" and 4 "int32" sized registers.
+	* gdbtypes.c (builtin_type_int0): Define.
+	(build_gdbtypes): Initialize builtin_type_int0.
+	* gdbtypes.h (builtin_type_int0): Declare.
+
+2003-06-23  Stephane Carrez  <stcarrez@nerim.fr>
+
+	* m68hc11-tdep.c (m68hc11_gdbarch_init): Clear gdb_arch_char_signed
+	as characters are unsigned.
+
+2003-06-22  Daniel Jacobowitz  <drow@mvista.com>
+
+	PR gdb/1179
+	* dwarfread.c (struct_type): Skip static fields without crashing.
+
+2003-06-22  Andrew Cagney  <cagney@redhat.com>
+
+	GDB 6.0 branch created.
+	* README: Update.
+	* PROBLEMS: Update.  Empty.
+	* NEWS: Update.
+
 2003-06-22  Daniel Jacobowitz  <drow@mvista.com>
 
 	* symfile.c (add_symbol_file_command): Use parse_and_eval_address.
@@ -160,13 +282,13 @@
 
 	* linux-nat.h: New file.
 	* linux-nat.c: Include linux-nat.h.
-	* lin-lwp.c: Include linux-nat.h.  
+	* lin-lwp.c: Include linux-nat.h.
 	Move struct lwp_info def to linux-nat.h.
-	* linux-proc.c: Include linux-nat.h.  
+	* linux-proc.c: Include linux-nat.h.
 	(linux_make_note_section): Iterate over lwps instead of threads.
 	(linux_do_thread_registers): Use lwp instead of merged pid.
 	* config/nm-linux.h: Move miscelaneous def'ns to linux-nat.h.
-	* Makefile.in (lin-lwp.o, linux-proc.o, linux-nat.o): 
+	* Makefile.in (lin-lwp.o, linux-proc.o, linux-nat.o):
 	Add dependency on linux_nat_h.
 
 2003-06-19  Theodore A. Roth  <troth@openavr.org>
@@ -277,7 +399,7 @@
 	* h8300-tdep.c (h8300s_register_name): Enable MACH and MACL
 	registers for H8/300S.
 	(h8300_print_registers_info): Ditto.
-	(h8300_gdbarch_init): Accommodate register count for H8/300S. 
+	(h8300_gdbarch_init): Accommodate register count for H8/300S.
 
 2003-06-18  Daniel Jacobowitz  <drow@mvista.com>
 
@@ -393,7 +515,7 @@
 	* h8300-tdep.c (E_PSEUDO_CCR_REGNUM): New define.
 	(E_PSEUDO_EXR_REGNUM): Ditto.
 	(h8300_is_argument_spill): Check for instructions moving argument
-	registers into safe registers. 
+	registers into safe registers.
 	(h8300_skip_prologue): Check for stm instruction to push registers
 	used for register variables onto stack.
 	(gdb_print_insn_h8300): Remove.
@@ -449,7 +571,7 @@
 
 	* avr-tdep.c (avr_scan_prologue): Update comment describing the various
 	prologue types.
-	Properly scan prologues generated by gcc with the -mcall-prologues 
+	Properly scan prologues generated by gcc with the -mcall-prologues
 	option.
 	Add code to scan -mcall-prologues for mega devices.
 
@@ -500,7 +622,7 @@
 
 	* rdi-share/host.h (Fail): Change to a varargs function.
 	* remote-rdi.c (Fail): Update.
-	
+
 2003-06-15  Mark Kettenis  <kettenis@gnu.org>
 
 	* i386-tdep.c (i386_next_regnum): Fix bounds checking.
@@ -518,7 +640,7 @@
 	* x86-64-tdep.c (x86_64_convert_register_p): New function.
 	(x86_64_init_abi): Set convert_register_p, register_to_value and
 	value_to_register here.
-	
+
 2003-06-14  Andrew Cagney  <cagney@redhat.com>
 
 	* mips-tdep.c (mips_register_to_value): Make static.
@@ -623,7 +745,7 @@
 
 	* gdbarch.sh: Document what PUSH_DUMMY_CALL replaces.
 	* gdbarch.h, gdbarch.c: Re-generate.
-	
+
 2003-06-13  Andrew Cagney  <cagney@redhat.com>
 
 	* gdbarch.sh: Document what UNWIND_DUMMY_ID replaces.  Clarify
@@ -895,8 +1017,8 @@
 
 2003-06-11  Jeff Johnston  <jjohnstn@redhat.com>
 
-	* doublest.c (convert_doublest_to_floatformat): When dealing 
-	with the implied integer bit, only alter mant_bits if we are 
+	* doublest.c (convert_doublest_to_floatformat): When dealing
+	with the implied integer bit, only alter mant_bits if we are
 	processing a full 32 bits of mantissa.
 
 2003-06-11  David Carlton  <carlton@bactrian.org>
@@ -1012,7 +1134,7 @@
 
 2003-06-11  Jeff Johnston  <jjohnstn@redhat.com>
 
-	* ia64-tdep.c (ia64_gdbarch_init): Set number of long double 
+	* ia64-tdep.c (ia64_gdbarch_init): Set number of long double
 	bits to 128.
 
 2003-06-11  Andrew Cagney  <cagney@redhat.com>
@@ -1138,7 +1260,7 @@
 	dependencies for building remote.o.
 	* remote-fileio.c: New file implementing the remote File-I/O protocol.
 	* remote-fileio.h: New header file defining remote File-I/O interface.
-	* remote.c (remote_write_bytes, remote_read_bytes): Remove  
+	* remote.c (remote_write_bytes, remote_read_bytes): Remove
 	static storage class.
 	(remote_wait, remote_async_wait): Call remote_fileio_request() on
 	'F' packet.
@@ -1275,7 +1397,7 @@
 	* acinclude.m4 (gcc_AC_CHECK_DECL, (gcc_AC_CHECK_DECL): Stolen
 	from GCC's acinclude.m4.
 	* configure.in: Check for getopt's delcaration.
-	* aclocal.m4, config.in, configure: Re-generate.	
+	* aclocal.m4, config.in, configure: Re-generate.
 	* main.c (error_init): Delete declaration.
 	* defs.h (error_init): Declare.
 	* rs6000-tdep.c (rs6000_fetch_pointer_argument): Make static.
@@ -1392,7 +1514,7 @@
 	(OBJC_FETCH_POINTER_ARGUMENT): Shorthand macro for
 	using FETCH_POINTER_ARGUMENT with Objective-C method arguments.
 	(find_implementation, resolve_msgsend, resolve_msgsend_stret,
-	resolve_msgsend_super, resolve_msgsend_super_stret): 
+	resolve_msgsend_super, resolve_msgsend_super_stret):
 	Use it.
 
 2003-06-07  Andrew Cagney  <cagney@redhat.com>
@@ -1471,7 +1593,7 @@
 	* sh-tdep.c (sh_gdbarch_init): Ditto.
 	* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
 	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
-	
+
 2003-06-07  Andrew Cagney  <cagney@redhat.com>
 
 	* elfread.c (elf_symtab_read): Replace "special_local_sym_p" and
@@ -1504,7 +1626,7 @@
 	* win32-nat.c (solib_symbols_add): Allocate section_addrs
 	dynamically.
 	* xcoffread.c (xcoff_symfile_offsets): Avoid use of SECT_OFF_MAX.
-	
+
 2003-06-06  Andrew Cagney  <cagney@redhat.com>
 
 	* d10v-tdep.c (struct d10v_unwind_cache): Delete "return_pc".
@@ -1516,7 +1638,7 @@
 
 2003-06-06  Michal Ludvig  <mludvig@suse.cz>
 
-	* x86-64-tdep.c (x86_64_fill_fxsave): Pass correct regnums 
+	* x86-64-tdep.c (x86_64_fill_fxsave): Pass correct regnums
 	to regcache_collect().
 
 2003-06-05  J. Brobecker  <brobecker@gnat.com>
@@ -1570,7 +1692,7 @@
 	* hppa-tdep.c (hppa_prepare_to_proceed): Remove, no longer used.
 
 2003-06-04  Jeff Johnston  <jjohnstn@redhat.com>
- 
+
 	* acconfig.h: Add HAVE_TKILL_SYSCALL definition check.
 	* config.in: Regenerated.
 	* configure.in: Add test for syscall function and check for
@@ -1588,7 +1710,7 @@
 	(stop_wait_callback): Check for threads already having exited and
 	delete such threads fromt the lwp list when discovered.
 	(stop_callback): Don't assert retcode of kill call.
- 
+
 	Roland McGrath  <roland@redhat.com>
 	* i386-linux-nat.c (ps_get_thread_area): New function needed by
 	nptl libthread_db.
@@ -1601,7 +1723,7 @@
 	(alpha_heuristic_frame_prev_register): Likewise.
 	* alpha-mdebug-tdep.c (alpha_mdebug_frame_prev_register): Likewise.
 
-	* alpha-mdebug-tdep.c (alpha_mdebug_after_prologue): Use 
+	* alpha-mdebug-tdep.c (alpha_mdebug_after_prologue): Use
 	alpha-specific register id names.
 	(alpha_mdebug_frame_unwind_cache): Likewise.
 	(alpha_mdebug_frame_prev_register): Likewise.
@@ -1656,7 +1778,7 @@
 
 2003-06-03  Theodore A. Roth  <troth@openavr.org>
 
-	* remote.c (init_remote_state): Compute sizeof_g_packet by 
+	* remote.c (init_remote_state): Compute sizeof_g_packet by
 	accumulation of the size of all registers instead of blindly using
 	DEPRECATED_REGISTER_BYTES.
 
@@ -1727,7 +1849,7 @@
 
 2003-06-02  Elena Zannoni  <ezannoni@redhat.com>
 
-	* target.h (TARGET_SYMFILE_POSTREAD): Delete unused macro. 
+	* target.h (TARGET_SYMFILE_POSTREAD): Delete unused macro.
 	* symfile.c (reread_symbols): Delete call to TARGET_SYMFILE_POSTREAD.
 	(syms_from_objfile): Ditto.
 
@@ -1747,7 +1869,7 @@
 	(alpha_convert_flt_dbl, alpha_convert_dbl_flt): Remove.
 	(alpha_lds, alpha_sts): New.
 	(alpha_convert_register_p): Change from _register_convertible.
-	(alpha_register_to_value): Change from _convert_to_virtual; 
+	(alpha_register_to_value): Change from _convert_to_virtual;
 	restructure and fail for type sizes other than 4 or 8.
 	(alpha_value_to_register): Similarly.
 	(alpha_extract_return_value): Use alpha_sts.
@@ -1807,7 +1929,7 @@
 	* alpha-tdep.c (alpha_push_dummy_call): Use
 	builtin_type_ieee_double_little instead of builtin_type_double.
 
-	* alpha-tdep.c (alpha_push_dummy_call): Handle ABI mandated 
+	* alpha-tdep.c (alpha_push_dummy_call): Handle ABI mandated
 	sign-extension of 32-bit values.
 	(alpha_store_return_value): Similarly.
 
@@ -2732,7 +2854,7 @@
 2003-05-23  Raoul Gough  <RaoulGough@yahoo.co.uk>
 
 	Committed by Elena Zannoni  <ezannoni@redhat.com>.
-  	* coffread.c(coff_symtab_read): Do relocate static symbols from PE
+	* coffread.c(coff_symtab_read): Do relocate static symbols from PE
 	files, don't relocate absolute symbols (and do use mst_abs).
 
 2003-05-23  Andrew Cagney  <cagney@redhat.com>
@@ -2894,7 +3016,7 @@
 
 	* c-exp.y (typebase): Remove duplicate occurence of
 	`SIGNED_KEYWORD LONG LONG'.  Use builtin_type_long_long instead
-	of lookup_signed_typename. 
+	of lookup_signed_typename.
 
 2003-05-18  Mark Kettenis  <kettenis@gnu.org>
 
@@ -3041,13 +3163,13 @@
 	* Makefile.in (cp-valprint.o): Update dependencies.
 
 2003-05-15  Jeff Johnston  <jjohnstn@redhat.com>
- 
+
 	* ia64-tdep.c: Increase max_skip_non_prologue_insns to 40.
 	(examine_prologue): Support looking through leaf functions, knowing
-	they start with mov r2,r12.  Support skipping over indirect stores 
-	of the input registers.  Upon hitting a non-nop branch instruction 
-	or predicated instruction, bail out by setting lim_pc to the current 
-	pc value in the loop.  At the end, if the lim_pc value is still 
+	they start with mov r2,r12.  Support skipping over indirect stores
+	of the input registers.  Upon hitting a non-nop branch instruction
+	or predicated instruction, bail out by setting lim_pc to the current
+	pc value in the loop.  At the end, if the lim_pc value is still
 	beyond our calculated value and we have trust_limit set,
 	use the lim_pc value.
 
@@ -3074,8 +3196,8 @@
 	declaration.
 
 2003-05-15  David Carlton  <carlton@bactrian.org>
-	
-	Committed by Elena Zannoni <ezannoni@redhat.com>    
+
+	Committed by Elena Zannoni <ezannoni@redhat.com>
 	* symtab.c (lookup_symbol_aux): Delete calls to
 	lookup_symbol_aux_minsyms.
 	(lookup_symbol_aux_minsyms): Comment out function and
@@ -3276,9 +3398,9 @@
 	* avr-tdep.c (avr_remote_translate_xfer_address): Ditto.
 
 2003-05-07  Jeff Johnston  <jjohnstn@redhat.com>
- 
- 	* dwarf2read.c (dwarf_decode_lines): Only use output of 
-	check_cu_functions() when calling record_line().  Do not update 
+
+	* dwarf2read.c (dwarf_decode_lines): Only use output of
+	check_cu_functions() when calling record_line().  Do not update
 	the current address.
 
 2003-05-07  Andrew Cagney  <cagney@redhat.com>
@@ -3318,7 +3440,7 @@
 	* gdbarch.h, gdbarch.c: Re-generate.
 	* remote.c (remote_xfer_memory): Use
 	gdbarch_remote_translate_xfer_address.
-	
+
 2003-05-07  Jeff Johnston  <jjohnstn@redhat.com>
 
 	* infrun.c (prev_pc): Move declaration ahead of proceed().
@@ -3384,7 +3506,7 @@
 	* config/tm-qnxnto.h: New file.
 	* config/i386/i386nto.mt: New file.
 	* config/i386/tm-i386nto.h: New file.
-	
+
 2003-05-04  Andrew Cagney  <cagney@redhat.com>
 
 	* gdbthread.h (save_infrun_state): Drop prev_func_name parameter.
@@ -3407,7 +3529,7 @@
 	that REGISTER_BYTE is consistent with the regcache.
 	* gdbarch.sh (REGISTER_BYTE): Add a predicate.
 	* gdbarch.h, gdbarch.c: Regenerate.
-	
+
 2003-05-04  Mark Kettenis  <kettenis@gnu.org>
 
 	* i387-tdep.c (fxsave_offset): Add entries for %xmm8-%xmm15.
@@ -3456,7 +3578,7 @@
 	(print_formatted): Call gdb_print_insn, instead of print_insn.
 	* Makefile.in (printcmd.o): Update dependencies.
 	(mcore-tdep.o, d10v-tdep.o): Ditto.
-	
+
 2003-05-02  Andrew Cagney  <cagney@redhat.com>
 
 	* std-regs.c (value_of_builtin_frame_pc_reg): Delete #ifdef
@@ -3781,7 +3903,7 @@
 
 2003-04-24  Adam Fedor  <fedor@gnu.org>
 
-	* objc-lang.c (FETCH_ARGUMENT, CONVERT_FUNCPTR): Remove 
+	* objc-lang.c (FETCH_ARGUMENT, CONVERT_FUNCPTR): Remove
 	architecture dependant compilation and mark as unimplemented
 	(until they get put in the gdbarch vector).
 
@@ -3795,7 +3917,7 @@
 	* infcall.c (call_function_by_hand): Eliminate redundant
 	indentation.  Move "saved_async" and "old_cleanups" to where they
 	are needed.
-	
+
 2003-04-23  Andrew Cagney  <cagney@redhat.com>
 
 	* infcall.c (call_function_by_hand): Eliminate the variables "rc"
@@ -3806,7 +3928,7 @@
 	* infcall.c (call_function_by_hand): Move variables "start_sp",
 	"dummy", "sizeof_dummy1" and "dummy1" and corresponding dummy call
 	code to ON_STACK switch branch.
-	
+
 2003-04-23  Andrew Cagney  <cagney@redhat.com>
 
 	* infcall.c (call_function_by_hand): Make declaration of "i",
@@ -3837,7 +3959,7 @@
 
 	* config/pa/tm-hppa.h (SOFT_FLOAT): Delete this macro.
 	Update all the tests using SOFT_FLOAT considering the fact that
-	this macro was always set to 0. 
+	this macro was always set to 0.
 	* config/pa/tm-hppa64.h: Update all the tests using SOFT_FLOAT
 	considering the fact that this macro was always set to 0.
 	* hppa-tdep.h (hppa_store_return_value): Likewise.
@@ -3919,7 +4041,7 @@
 	(i386_fp_regnum_p, i386_fpc_regnum_p, i386_sse_regnum_p,
 	i386_mxcsr_regnum_p): Remove redundant parentheses.
 	(i386_register_name): Use i386_num_register_names.
-	
+
 	* i386-tdep.c (i386_extract_return_value,
 	i386_store_return_value): Correct check for availability of
 	floating-point registers.
@@ -3956,7 +4078,7 @@
 
 	Committed by Elena Zannoni  <ezannoni@redhat.com>
 	* gdb_gcore.sh: New script to create a core dump of a process.
-	
+
 2003-04-17  Elena Zannoni  <ezannoni@redhat.com>
 
 	* values.c (value_being_returned): Don't fetch the return
@@ -3965,11 +4087,11 @@
 2003-04-17  Jeff Johnston  <jjohnstn@redhat.com>
 
 	* thread-db.c: Reindented.
- 
+
 2003-04-17  Jeff Johnston  <jjohnstn@redhat.com>
- 
- 	* gdb_indent.sh: Recognize td_thrhandle_t, td_event_msg_t, 
- 	td_thr_events_t, td_notify_t, td_thr_iter_f, and td_thrinfo_t
+
+	* gdb_indent.sh: Recognize td_thrhandle_t, td_event_msg_t,
+	td_thr_events_t, td_notify_t, td_thr_iter_f, and td_thrinfo_t
 	as types.
 
 
@@ -3995,7 +4117,7 @@
 
 
 
-	
+
 2003-04-16  Kevin Buettner  <kevinb@redhat.com>
 
 	* rs6000-tdep.c (rs6000_gdbarch_init): For the SysV ABI, set
@@ -4333,7 +4455,7 @@
 	* alpha-tdep.c (alpha_init_frame_pc_first): Update.
 	* x86-64-tdep.h (x86_64_linux_saved_pc_after_call): Update
 	declaration.
-	
+
 2003-04-11  Andrew Cagney  <cagney@redhat.com>
 
 	* i387-tdep.c: Update copyright.
@@ -4555,7 +4677,7 @@
 	be freed more than once, causing wild memory corruptions.
 	(gdb_disassembly): Look for the substring "-thread",
 	instead of "-threads" in the target name, to make sure to find
-	the 'multi-thread' target.  Also, make sure we do the right thing 
+	the 'multi-thread' target.  Also, make sure we do the right thing
 	with the "core" target.
 
 2003-04-07  Kevin Buettner  <kevinb@redhat.com>
@@ -4696,7 +4818,7 @@
 	* frame-unwind.h: Include "frame.h".
 	(struct frame_unwind): Add "type" field.
 	* Makefile.in (frame_unwind_h): Add $(frame_h).
-	
+
 2003-04-04  Andrew Cagney  <cagney@redhat.com>
 
 	* x86-64-tdep.c (x86_64_unwind_dummy_id): Use frame_id_build.
@@ -4792,13 +4914,13 @@
 	(d10v_frame_this_id): Use the previous frame's inner most stack
 	address and this frame's func address for the frame ID.  Use
 	frame_id_build.  Don't analyze beyond the current instruction.
-	
+
 2003-04-01  Andrew Cagney  <cagney@redhat.com>
 
 	* frame.h (get_frame_locals_address, get_frame_args_address):
 	Refer to the base address, instead of the address of the first
 	local or parameter.
-	
+
 2003-04-01  Andrew Cagney  <cagney@redhat.com>
 
 	Add frame debug info addresses:
@@ -5048,7 +5170,7 @@
 	* valops.c (hand_function_call): Replace TARGET_WRITE_SP with
 	DEPRECATED_DUMMY_WRITE_SP.  Call when the method is available,
 	instead of when push_dummy_call is not available.
-	
+
 2003-03-30  Andrew Cagney  <cagney@redhat.com>
 
 	* infttrace.c: Include "gdbthread.h".
@@ -5088,7 +5210,7 @@
 	* gdbarch.sh (CALL_DUMMY_WORDS, SIZEOF_CALL_DUMMY_WORDS): Always
 	define.
 	* gdbarch.h: Regenerate.
-	
+
 2003-03-29  Andrew Cagney  <cagney@redhat.com>
 
 	* infttrace.h: New file.
@@ -5172,7 +5294,7 @@
 	TARGET_WRITE_SP.
 	* sparc-tdep.c (sparc_push_dummy_frame): Ditto.
 	(sparc_pop_frame): Ditto.
-	
+
 2003-03-27  Andrew Cagney  <cagney@redhat.com>
 
 	* NEWS: Mention removal of support for hppa*-*-bsd* and
@@ -5314,7 +5436,7 @@
 	* cris-tdep.c (cris_gdbarch_init): Ditto.
 	* m68k-tdep.c (m68k_gdbarch_init): Ditto.
 	* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
-	
+
 2003-03-25  Andrew Cagney  <cagney@redhat.com>
 
 	* gdbarch.sh (DEPRECATED_STORE_STRUCT_RETURN): Replace
@@ -5346,7 +5468,7 @@
 	* avr-tdep.c (avr_gdbarch_init): Update.
 	* arm-tdep.c (arm_gdbarch_init): Update.
 	* alpha-tdep.c (alpha_gdbarch_init): Update.
-	
+
 2003-03-25  Andrew Cagney  <cagney@redhat.com>
 
 	* gdbarch.sh (CALL_DUMMY_STACK_ADJUST_P): Delete.
@@ -5480,7 +5602,7 @@
 	* arm-tdep.c (show_arm_command): Don't print out help.  Instead, show
 	the current setting of each value.
 	(_initialize_arm_tdep): Delete variable new_cmd and add new vars
-	new_set and new_show.  Use add_setshow_cmd_full and 
+	new_set and new_show.  Use add_setshow_cmd_full and
 	add_setshow_boolean_cmd as appropriate.  Deprecate "set/show apcs32"
 	commands and add new version as subcommands of "set/show arm".
 
@@ -5492,7 +5614,7 @@
 	(num_disassembly_options): Renamed from num_flavor_options.
 	(valid_disassembly_styles): Renamed from valid_flavors.
 	(disassembly_style): Renamed from disassembly_flavor.
-	(set_disassembly_style_sfunc): Renamed from 
+	(set_disassembly_style_sfunc): Renamed from
 	set_disassembly_flavor_sfunc.
 	(set_disassembly_style): Renamed from set_disassembly_flavor.
 	(arm_othernames): Updated.
@@ -5746,7 +5868,7 @@
 	* frame.c (frame_register): Update.
 	(get_saved_register): Update.
 	* config/sparc/tm-sparc.h (DEPRECATED_GET_SAVED_REGISTER): Update.
-	
+
 2003-03-13  Andrew Cagney  <cagney@redhat.com>
 
 	* gdbarch.sh (DEPRECATED_POP_FRAME): Replace POP_FRAME.
@@ -5893,7 +6015,7 @@
 	* config/pa/tm-hppa.h (DEPRECATED_FRAME_SAVED_PC): Update.
 	* config/m68k/tm-delta68.h (DEPRECATED_FRAME_SAVED_PC): Update.
 	* config/m68k/tm-linux.h (DEPRECATED_FRAME_SAVED_PC): Update.
-	
+
 2003-03-12  Andrew Cagney  <cagney@redhat.com>
 
 	Eliminate the need for POP_FRAME.
@@ -6038,7 +6160,7 @@
 	* config/pa/tm-hppa.h (DEPRECATED_FRAME_SAVED_PC): Update.
 	* config/m68k/tm-delta68.h (DEPRECATED_FRAME_SAVED_PC): Update.
 	* config/m68k/tm-linux.h (DEPRECATED_FRAME_SAVED_PC): Update.
-	
+
 2003-03-10  Andrew Cagney  <cagney@redhat.com>
 
 	* gdbarch.sh (gdbarch_unwind_pc): New method.
@@ -6086,7 +6208,7 @@
 	* gdbarch.sh: Don't generate two macro definitions when an
 	undefined macro taking no arguments.
 	* gdbarch.h: Regenerate.
-	
+
 2002-03-07  Michal Ludvig  <mludvig@suse.cz>
 
 	* x86-64-tdep.c (x86_64_save_dummy_frame_tos)
@@ -6096,7 +6218,7 @@
 2003-03-07  Michal Ludvig  <mludvig@suse.cz>
 
 	* x86-64-tdep.c (x86_64_function_has_prologue): New function.
-	(x86_64_skip_prologue): Move prologue detection to 
+	(x86_64_skip_prologue): Move prologue detection to
 	separate function.
 	* x86-64-tdep.h (x86_64_function_has_prologue): New prototype.
 
@@ -6109,7 +6231,7 @@
 	* gdbarch.sh (unwind_dummy_id): New multi-arch method with
 	predicate.
 	* gdbarch.h, gdbarch.c: Regneerate.
-	
+
 2003-03-05  Andrew Cagney  <cagney@redhat.com>
 
 	* d10v-tdep.c (struct d10v_unwind_cache): Add field "base".
@@ -6281,7 +6403,7 @@
 
 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
 
-	* arch-utils.c (generic_register_byte): Fix to use the loop index 
+	* arch-utils.c (generic_register_byte): Fix to use the loop index
 	and not regnum when summing the size of all registers up to regnum.
 
 2003-03-01  Andrew Cagney  <cagney@redhat.com>
@@ -6330,13 +6452,13 @@
 	* avr-tdep.c (avr_gdbarch_init): Update.
 	* arm-tdep.c (arm_gdbarch_init): Update.
 	* alpha-tdep.c (alpha_gdbarch_init): Update.
-	
+
 2003-03-01  Andrew Cagney  <cagney@redhat.com>
 
 	* main.c (captured_main): Add OPT_WINDOWS and OPT_NOWINDOWS to
 	option enum and switch.  When no windows, set the interpreter to
 	INTERP_CONSOLE.
-	
+
 2003-03-01  Andrew Cagney  <cagney@redhat.com>
 
 	* main.c (captured_main): Replace magic option characters with an
@@ -6505,7 +6627,7 @@
 	* cris-tdep.c (cris_gdbarch_init): Ditto.
 	* avr-tdep.c (avr_gdbarch_init): Ditto.
 	* arm-tdep.c (arm_gdbarch_init): Ditto.
-	
+
 2003-02-26  Kevin Buettner  <kevinb@redhat.com>
 
 	* mips-tdep.c (show_mips_abi): New function.
@@ -6513,9 +6635,9 @@
 	command ``show mips abi''.
 
 2003-02-26  Jeff Johnston  <jjohnstn@redhat.com>
- 
+
 	From Elena Zannoni  <ezannoni@redhat.com>
-	* dbxread.c (process_one_symbol): Only record line 0 if one or 
+	* dbxread.c (process_one_symbol): Only record line 0 if one or
 	more sline entries have been seen for the function.
 
 2003-02-26  Michael Chastain  <mec@shout.net>
@@ -6768,24 +6890,24 @@
 	* c-valprint.c (c_val_print): Ditto.
 	* expprint.c (print_subexp): Ditto.
 	* findvar.c (locate_var_value): Ditto.
-	* infcmd.c (jump_command): Ditto. 
-	* linespec.c (decode_line_2, decode_compound): Ditto. 
-	* maint.c (maintenance_translate_address): Ditto. 
-	* objc-lang.c (compare_selectors, compare_classes): Ditto. 
+	* infcmd.c (jump_command): Ditto.
+	* linespec.c (decode_line_2, decode_compound): Ditto.
+	* maint.c (maintenance_translate_address): Ditto.
+	* objc-lang.c (compare_selectors, compare_classes): Ditto.
 	* printcmd.c (build_address_symbolic, sym_info, print_frame_args):
 	Ditto.
-	* p-valprint.c (pascal_val_print): Ditto. 
-	* stabsread.c (define_symbol): Ditto. 
+	* p-valprint.c (pascal_val_print): Ditto.
+	* stabsread.c (define_symbol): Ditto.
 	* stack.c (print_frame, frame_info, print_block_frame_locals)
-	(print_frame_arg_vars, return_command): Ditto. 
-	* symfile.c (compare_symbols, compare_psymbols): Ditto. 
-	* symmisc.c (print_symbol): Ditto. 
+	(print_frame_arg_vars, return_command): Ditto.
+	* symfile.c (compare_symbols, compare_psymbols): Ditto.
+	* symmisc.c (print_symbol): Ditto.
 	* symtab.c (lookup_partial_symbol, lookup_block_symbol)
 	(compare_search_syms, print_symbol_info, print_msymbol_info)
-	(rbreak_command): Ditto. 
-	* tracepoint.c (tracepoints_info): Ditto. 
-	* typeprint.c (typedef_print): Ditto. 
-	* valops.c (value_of_variable, hand_function_call): Ditto. 
+	(rbreak_command): Ditto.
+	* tracepoint.c (tracepoints_info): Ditto.
+	* typeprint.c (typedef_print): Ditto.
+	* valops.c (value_of_variable, hand_function_call): Ditto.
 	* cli/cli-cmds.c (edit_command, list_command): Ditto.
 	* ada-typeprint.c: Update Copyright.
 	* infcmd.c, objc-lang.c, p-valprint.c, symmisc.c: Ditto.
@@ -6925,7 +7047,7 @@
 	instead of the absence of the "nm.h" file, to determine of the
 	configuration non-native.
 	* configure: Regenerate.
-	
+
 2003-02-14  Elena Zannoni  <ezannoni@redhat.com>
 
 	From Brian Ford  <ford@vss.fsi.com>
@@ -7033,7 +7155,7 @@
 	* sol-thread.c, hpux-thread.c: Include "gdb_stat.h" instead of
 	<sys/stat.h>.
 	* Makefile.in (sol-thread.o, hpux-thread.o): Update dependencies.
-	
+
 2003-02-06  Andrew Cagney  <ac131313@redhat.com>
 
 	* Makefile.in (symm-nat.o): Update dependencies.
@@ -7089,7 +7211,7 @@
 	* infttrace.c (threads_continue_all_but_one): Fix precedence problem
 	with '&' and '!='.
 	(threads_continue_all_with_signals): Ditto.
-  
+
 2003-02-05  Jim Ingham <jingham@apple.com>
 	    Keith Seitz  <keiths@redhat.com>
 	    Elena Zannoni  <ezannoni@redhat.com>
@@ -7184,7 +7306,7 @@
 
 2003-02-04  Andrew Cagney  <ac131313@redhat.com>
 
-	* NEWS: Note that the m32r-*-elf* is obsolete. 
+	* NEWS: Note that the m32r-*-elf* is obsolete.
 	* monitor.c (monitor_expect): Obsolete reference to m32r.
 	* configure.tgt: Mark m32r-*-elf* as obsolete.
 	* MAINTAINERS: Mark m32k as obsolete.
@@ -7308,7 +7430,7 @@
 	(allocate_objfile): Call it.
 	* objfiles.h (terminate_minimal_symbol_table): New declaration.
 	(ALL_MSYMBOLS): No need to test whether (objfile)->msymbols is
-	non-NULL. 
+	non-NULL.
 	* minsyms.c (lookup_minimal_symbol_by_pc_section): To see whether
 	objfile has minimal symbols, compare minimal_symbol_count to zero,
 	instead of comparing msymbols with NULL.
@@ -7316,7 +7438,7 @@
 	* solib-sunos.c (solib_add_common_symbols): Call
 	terminate_minimal_symbol_table.
 	* symfile.c (reread_symbols): Same.
-	
+
 2003-02-03  Kevin Buettner  <kevinb@redhat.com>
 
 	* s390-tdep.c (s390_address_class_type_flags)
@@ -7333,7 +7455,7 @@
 
 	* dwarf2cfi.c (pointer_encoding): Added new parameter.
 	* dwarf2cfi.c, dwarf2read.c: Changed all warnings and
-	error messages to contain BFD filename. 
+	error messages to contain BFD filename.
 
 2003-02-02  Elena Zannoni  <ezannoni@redhat.com>
 
@@ -7359,7 +7481,7 @@
 	(breakpoint_1): Use cleanup to invoke ui_out_table_end().
 	* cli/cli-setshow.c (cmd_show_list): Use
 	make_cleanup_ui_out_tuple_begin_end.
-	
+
 2003-02-02  Andrew Cagney  <ac131313@redhat.com>
 
 	* frame.c (frame_unwind_register): New function.
@@ -7446,7 +7568,7 @@
 	(som_solib_add): Use.
 	* hppa-tdep.c (hppa_pointer_to_address_hack): New function.
 	* hppa-tdep.c (unwind_command): Use.
-	
+
 2003-02-01  Andrew Cagney  <ac131313@redhat.com>
 
 	* gdb_dirent.h: Mark up valid uses of <dirent.h>, d_namelen and
@@ -7498,7 +7620,7 @@
 
 	* objc-exp.y, c-exp.y, f-exp.y: Remove PTR casts.
 	* utils.c: Update comments documenting legitimate uses of PTR.
-	
+
 	* utils.c: Re-indent.
 
 	* config/djgpp/fnchange.lst: Delete nindy files.
@@ -7543,7 +7665,7 @@
 	elfstab_build_psymtabs.
 	* gdb-stabs.h (struct dbx_symfile_info): Add stab_section.
 	(DBX_STAB_SECTION): New macro.
-	* stabsread.h (elfstab_build_psymtabs): Update prototype. 
+	* stabsread.h (elfstab_build_psymtabs): Update prototype.
 	* symfile.c (symfile_dummy_outputs): New function.
 	(symfile_relocate_debug_section): New function.
 	* symfile.h (symfile_relocate_debug_section): Add prototype.
@@ -7628,7 +7750,7 @@
 	    Daniel Jacobowitz  <drow@mvista.com>
 
 	Fix PR gdb/961.
-	* dwarf2read.c 	(dwarf_ranges_offset, dwarf_ranges_size): New
+	* dwarf2read.c	(dwarf_ranges_offset, dwarf_ranges_size): New
 	variables.
 	(RANGES_SECTION): New.
 	(dwarf_ranges_buffer): New variable.
@@ -7781,7 +7903,7 @@
 	now pass in either a `struct section_addr_info' list to say where
 	each section is loaded, or a `struct section_offsets' table.  Pass
 	these new arguments through to syms_from_objfile as appropriate.
-	(symbol_file_add): Just call symbol_file_add_with_addrs_or_offsets, 
+	(symbol_file_add): Just call symbol_file_add_with_addrs_or_offsets,
 	with the appropriate quiescent values for the new arguments.
 
 	* symfile.c: #include "gdb_assert.h".
@@ -7931,7 +8053,7 @@
 	(COMMON_OBS): Add frame-unwind.o.
 	(frame-unwind.o): Specify dependencies.
 	(frame.o, dummy-frame.o): Update dependencies.
-	
+
 2003-01-18  Andrew Cagney  <ac131313@redhat.com>
 
 	* ada-valprint.c: Eliminate PTR.
@@ -7942,7 +8064,7 @@
 	* remote-mips.c, remote-sds.c, remote-vx.c: Ditto.
 	* solib-svr4.c, solib.c, stack.c, symfile.c, symfile.h: Ditto.
 	* symmisc.c, v850ice.c, xcoffread.c, cli/cli-script.c: Ditto.
-	
+
 2003-01-17  Andrew Cagney  <ac131313@redhat.com>
 
 	* main.c (captured_main): Don't use PTR.
@@ -7987,7 +8109,7 @@
 	* breakpoint.c (until_break_command): Add new argument.  Use it to
 	decide whether to stop only at the current frame or not.
 	* breakpoint.h (until_break_command): Update prototype.
- 	* infcmd.c (until_command): Add new argument to until_break_command
+	* infcmd.c (until_command): Add new argument to until_break_command
 	call.
 	(advance_command): New function.
 	(_initialize_infcmd): Update help string for 'until' command.
@@ -8028,7 +8150,7 @@
 	* buildsym.c (start_subfile): Obsolete comment pertinent to Cfront.
 	Update copyright year.
 	* dbxread.c(struct cont_elem): Obsolete.
-	(process_later, process_now): Obsolete functions. 
+	(process_later, process_now): Obsolete functions.
 	(read_dbx_symtab, read_ofile_symtab): Obsolete cfront support.
 	Update copyright year.
 	* gdbtypes.c (INIT_EXTRA, ADD_EXTRA): Obsolete macros.
@@ -8318,7 +8440,7 @@
 	* ns32k-tdep.c, s390-tdep.c, sh-tdep.c, sparc-tdep.c: Ditto.
 	* v850-tdep.c, vax-tdep.c, x86-64-linux-tdep.c: Ditto.
 	* xstormy16-tdep.c: Ditto.
-	
+
 2003-01-07  Andrew Cagney  <cagney@redhat.com>
 
 	* alpha-tdep.c: Use get_frame_base.
@@ -8330,7 +8452,7 @@
 	* x86-64-linux-tdep.c, xstormy16-tdep.c: Ditto.
 	* config/h8500/tm-h8500.h, config/mn10200/tm-mn10200.h: Ditto.
 	* config/sparc/tm-sparc.h: Ditto.
-	
+
 2003-01-07  Andrew Cagney  <cagney@redhat.com>
 
 	* frame.c (deprecated_get_frame_context): New function.
@@ -8339,7 +8461,7 @@
 	(deprecated_set_frame_context): Declare.
 	* dwarf2cfi.c (UNWIND_CONTEXT): Use deprecated_get_frame_context.
 	(cfi_init_extra_frame_info): Use deprecated_set_frame_context.
-	
+
 2003-01-07  Andrew Cagney  <cagney@redhat.com>
 
 	* frame.c (deprecated_set_frame_next_hack): New function.
@@ -8445,7 +8567,7 @@
 
 2003-01-06  Michal Ludvig  <mludvig@suse.cz>
 
-	* x86-64-linux-nat.c (i386_sse_regnum_p): Deleted. Not needed anymore 
+	* x86-64-linux-nat.c (i386_sse_regnum_p): Deleted. Not needed anymore
 	since it is in i386-tdep.c.
 
 2003-01-06  J. Brobecker  <brobecker@gnat.com>
@@ -8776,7 +8898,7 @@
 	* avr-tdep.c, cris-tdep.c: Ditto.
 	* mcore-tdep.c, mips-tdep.c, mn10200-tdep.c: Ditto.
 	* sh-tdep.c, sparc-tdep.c, v850-tdep.c: Ditto.
-	
+
 2003-01-03  Mark Kettenis  <kettenis@gnu.org>
 
 	* configure.in: Remove --enable-netrom option.
@@ -8799,7 +8921,7 @@
 	subscripts.  Remove evil changequotes here.
 	* acconfig.h (TARGET_CPU_DEFAULT): Remove.
 	* config.in, configure: Regenerated.
-	
+
 	* acconfig.h (DEFAULT_BFD_ARCH, DEFAULT_BFD_VEC): Remove.
 	* configure.in: Cleanup section that sources GDB and BFD configure
 	subscripts.  Remove evil changequotes here.
@@ -8816,7 +8938,7 @@
 	* s390-tdep.c, sh-tdep.c, sparc-tdep.c, v850-tdep.c: Ditto.
 	* vax-tdep.c, x86-64-linux-tdep.c, xstormy16-tdep.c: Ditto.
 	* z8k-tdep.c: Ditto.
-	
+
 2003-01-02  Mark Kettenis  <kettenis@gnu.org>
 
 	* configure.in: Remove UI_OUT configuration code.
diff --git a/gdb/MAINTAINERS b/gdb/MAINTAINERS
index 7a8ae98..078038e 100644
--- a/gdb/MAINTAINERS
+++ b/gdb/MAINTAINERS
@@ -252,7 +252,7 @@
                         Mark Salter             msalter@redhat.com
   gdbtk (gdb.gdbtk)     Keith Seitz             keiths@redhat.com
   c++ (gdb.c++)		Michael Chastain	mec@shout.net
-			David Carlton		carlton@math.stanford.edu
+			David Carlton		carlton@kealia.com
   mi tests (gdb.mi)     Elena Zannoni           ezannoni@redhat.com
                         Andrew Cagney           cagney@redhat.com
   stabs (gdb.stabs)     Elena Zannoni           ezannoni@redhat.com
@@ -315,7 +315,7 @@
 Dave Brolley					brolley@redhat.com
 Kevin Buettner					kevinb@redhat.com
 Andrew Cagney					ac131313@redhat.com
-David Carlton					carlton@math.stanford.edu
+David Carlton					carlton@kealia.com
 Stephane Carrez					stcarrez@nerim.fr
 Michael Chastain				mec@shout.net
 Eric Christopher				echristo@redhat.com
diff --git a/gdb/NEWS b/gdb/NEWS
index 10cd468..604f085 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -1,7 +1,10 @@
 		What has changed in GDB?
 	     (Organized release by release)
 
-*** Changes since GDB 5.3:
+*** Changes since GDB 6.0:
+
+
+*** Changes in GDB 6.0:
 
 * The meaning of "detach" has changed for gdbserver
 
diff --git a/gdb/PROBLEMS b/gdb/PROBLEMS
index 8511263..7480633 100644
--- a/gdb/PROBLEMS
+++ b/gdb/PROBLEMS
@@ -1,80 +1,21 @@
 
-			Known problems in GDB 5.3
+			Known problems in GDB 6.0
 
 		See also: http://www.gnu.org/software/gdb/bugs/
 
+gdb/1091: Constructor breakpoints ignored
+gdb/1193: g++ 3.3 creates multiple constructors: gdb 5.3 can't set breakpoints
 
-*-*-freebsd*
----------------
+When gcc 3.x compiles a C++ constructor or C++ destructor, it generates
+2 or 3 different versions of the object code.  These versions have
+unique mangled names (they have to, in order for linking to work), but
+they have identical source code names, which leads to a great deal of
+confusion.  Specifically, if you set a breakpoint in a constructor or a
+destructor, gdb will put a breakpoint in one of the versions, but your
+program may execute the other version.  This makes it impossible to set
+breakpoints reliably in constructors or destructors.
 
-Due to a kernel bug (kern/35175), detaching from an attached process
-will very likely cause the process to be stop or die with a Trace/BPT
-trap.
-
-
-i386-*-freebsd[34]*
--------------------
-
-There is a bug (bin/41671) in FreeBSD's gcc that causes it to emit bad
-debug information when using the stabs format (which is the default).
-As a result GDB tends to place breakpoints on functions before the
-function prologue, and information about function parameters and local
-variables is lost.  In earlier versions of GDB the effects were rather
-limited, but starting with GDB 5.3 the influence is much more
-prominent.  As a workaround, compile your code with -gdwarf-2.
-
-
-hppa2.0-hp-hpux10.20
---------------------
-
-gdb/487: The top level make files used to build GDB are not compatible
-with HP/UX make.  As a workaround, use GNU make.
-
-gdb/486: The HP/UX C compiler defaults to K&R mode but GDB only builds
-with an ISO C compiler.  The top level configuration incorrectly sets
-CC to `cc' instead of `cc -Ae'.  As a workaround, the correct compiler
-can be specified as part of the configuration vis:
-
-    $  'CC=cc -Ae' ./configure
-
-
-s390*-*-*
----------
-
-gdb/513: GDB does not build on s390 GNU/Linux.  The problem should be
-fixed in more recent sources.
-
-
-i386-*-freebsd4.4*
-------------------
-
-gdb/455: GDB doesn't build on a FreeBSD 4.4-STABLE system.  The
-problem is still being investigated.
-
-alpha*-*-osf*
--------------
-
-gdb/816: When building GDB with GCC 3.0.1, GDB is unable to load a core
-file properly. It generates several errors and warnings regarding
-unhandled core file section types, incorrect endianness, the failure to
-load the registers. Are also incorrectly reported: The program name, the
-cause of the program death, and the call stack at the moment of the
-death. This problem has been reported on alpha-osf4.0f and alpha-osf5.1a.
-To work-around the problem, add -D__digital__ to the CFLAGS when
-building GDB vis:
-
-    $ make CFLAGS='-O2 -D__digital__'
-
-
-i[3456]86-*-linux*
-------------------
-
-gdb/660: gdb does not build with GNU/Linux libc5.  The symptom is a
-parse error before `uintptr_t' or an error message about `uintptr_t'.
-Upgrade to glibc 2.1.3 or later, which defines uintptr_t.
-
-gdb/1030: GNU binutils 2.12.1 and earlier versions do not work properly
-with gdb.  If you use GNU binutils, upgrade to version 2.13 or later.
-You can check the version of binutils with the command:
-
-    $ ld --version
+gcc 3.x generates these multiple object code functions in order to
+implement virtual base classes.  gcc 2.x generated just one object code
+function with a hidden parameter, but gcc 3.x conforms to a multi-vendor
+ABI for C++ which requires multiple object code functions.
diff --git a/gdb/README b/gdb/README
index 953f1a0..bae1a2e 100644
--- a/gdb/README
+++ b/gdb/README
@@ -1,5 +1,5 @@
-		     README for gdb-5.3 release
-		Updated 5th September, 2002 by Andrew Cagney
+		     README for gdb-6.0 release
+		Updated 23th June, 2003 by Andrew Cagney
 
 This is GDB, the GNU source-level debugger.
 
@@ -20,7 +20,7 @@
    In this release, the GDB debugger sources, the generic GNU include
 files, the BFD ("binary file description") library, the readline
 library, and other libraries all have directories of their own
-underneath the gdb-5.3 directory.  The idea is that a variety of GNU
+underneath the gdb-6.0 directory.  The idea is that a variety of GNU
 tools can share a common copy of these things.  Be aware of variation
 over time--for example don't try to build gdb with a copy of bfd from
 a release other than the gdb release (such as a binutils release),
@@ -29,8 +29,8 @@
 directory tree and automatically build all the pieces in the right
 order.
 
-   When you unpack the gdb-5.3.tar.gz file, you'll find a directory
-called `gdb-5.3', which contains:
+   When you unpack the gdb-6.0.tar.gz file, you'll find a directory
+called `gdb-6.0', which contains:
 
   COPYING       config.sub    intl         missing         opcodes
   COPYING.LIB   configure     libiberty    mkinstalldirs   readline
@@ -44,7 +44,7 @@
 
 You can build GDB right in the source directory:
 
-      cd gdb-5.3
+      cd gdb-6.0
       ./configure
       make
       cp gdb/gdb /usr/local/bin/gdb	(or wherever you want)
@@ -58,25 +58,25 @@
 
       mkdir build
       cd build
-      <full path to your sources>/gdb-5.3/configure
+      <full path to your sources>/gdb-6.0/configure
       make
       cp gdb/gdb /usr/local/bin/gdb	(or wherever you want)
 
 (Building GDB with DJGPP tools for MS-DOS/MS-Windows is slightly
-different; see the file gdb-5.3/gdb/config/djgpp/README for details.)
+different; see the file gdb-6.0/gdb/config/djgpp/README for details.)
 
    This will configure and build all the libraries as well as GDB.  If
 `configure' can't determine your system type, specify one as its
 argument, e.g., `./configure sun4' or `./configure decstation'.
 
-   Make sure that your 'configure' line ends in 'gdb-5.3/configure':
+   Make sure that your 'configure' line ends in 'gdb-6.0/configure':
 
-      /berman/migchain/source/gdb-5.3/configure      # RIGHT
-      /berman/migchain/source/gdb-5.3/gdb/configure  # WRONG
+      /berman/migchain/source/gdb-6.0/configure      # RIGHT
+      /berman/migchain/source/gdb-6.0/gdb/configure  # WRONG
 
    The gdb package contains several subdirectories, such as 'gdb',
 'bfd', and 'readline'.  If your 'configure' line ends in
-'gdb-5.3/gdb/configure', then you are configuring only the gdb
+'gdb-6.0/gdb/configure', then you are configuring only the gdb
 subdirectory, not the whole gdb package.  This leads to build errors
 such as:
 
@@ -107,7 +107,7 @@
 
    GDB includes an already formatted copy of the on-line Info version
 of this manual in the `gdb/doc' subdirectory.  The main Info file is
-`gdb-5.3/gdb/doc/gdb.info', and it refers to subordinate files
+`gdb-6.0/gdb/doc/gdb.info', and it refers to subordinate files
 matching `gdb.info*' in the same directory.  If necessary, you can
 print out these files, or read them with any editor; but they are
 easier to read using the `info' subsystem in GNU Emacs or the
@@ -119,7 +119,7 @@
 `makeinfo'.
 
    If you have `makeinfo' installed, and are in the top level GDB
-source directory (`gdb-5.3', in the case of version 5.3), you can make
+source directory (`gdb-6.0', in the case of version 6.0), you can make
 the Info file by typing:
 
       cd gdb/doc
@@ -128,7 +128,7 @@
    If you want to typeset and print copies of this manual, you need
 TeX, a program to print its DVI output files, and `texinfo.tex', the
 Texinfo definitions file.  This file is included in the GDB
-distribution, in the directory `gdb-5.3/texinfo'.
+distribution, in the directory `gdb-6.0/texinfo'.
 
    TeX is a typesetting program; it does not print files directly, but
 produces output files called DVI files.  To print a typeset document,
@@ -142,11 +142,11 @@
 This file tells TeX how to typeset a document written in Texinfo
 format.  On its own, TeX cannot read, much less typeset a Texinfo file.
  `texinfo.tex' is distributed with GDB and is located in the
-`gdb-5.3/texinfo' directory.
+`gdb-6.0/texinfo' directory.
 
    If you have TeX and a DVI printer program installed, you can typeset
 and print this manual.  First switch to the the `gdb' subdirectory of
-the main source directory (for example, to `gdb-5.3/gdb') and then type:
+the main source directory (for example, to `gdb-6.0/gdb') and then type:
 
       make doc/gdb.dvi
 
@@ -169,55 +169,55 @@
 a single directory, whose name is usually composed by appending the
 version number to `gdb'.
 
-   For example, the GDB version 5.3 distribution is in the `gdb-5.3'
+   For example, the GDB version 6.0 distribution is in the `gdb-6.0'
 directory.  That directory contains:
 
-`gdb-5.3/{COPYING,COPYING.LIB}'
+`gdb-6.0/{COPYING,COPYING.LIB}'
      Standard GNU license files.  Please read them.
 
-`gdb-5.3/bfd'
+`gdb-6.0/bfd'
      source for the Binary File Descriptor library
 
-`gdb-5.3/config*'
+`gdb-6.0/config*'
      script for configuring GDB, along with other support files
 
-`gdb-5.3/gdb'
+`gdb-6.0/gdb'
      the source specific to GDB itself
 
-`gdb-5.3/include'
+`gdb-6.0/include'
      GNU include files
 
-`gdb-5.3/libiberty'
+`gdb-6.0/libiberty'
      source for the `-liberty' free software library
 
-`gdb-5.3/mmalloc'
+`gdb-6.0/mmalloc'
      source for the GNU memory-mapped malloc package
 
-`gdb-5.3/opcodes'
+`gdb-6.0/opcodes'
      source for the library of opcode tables and disassemblers
 
-`gdb-5.3/readline'
+`gdb-6.0/readline'
      source for the GNU command-line interface
      NOTE:  The readline library is compiled for use by GDB, but will
      not be installed on your system when "make install" is issued.
 
-`gdb-5.3/sim'
+`gdb-6.0/sim'
      source for some simulators (ARM, D10V, SPARC, M32R, MIPS, PPC, V850, etc)
 
-`gdb-5.3/intl'
+`gdb-6.0/intl'
      source for the GNU gettext library, for internationalization.
      This is slightly modified from the standalone gettext
      distribution you can get from GNU.
 
-`gdb-5.3/texinfo'
+`gdb-6.0/texinfo'
      The `texinfo.tex' file, which you need in order to make a printed
      manual using TeX.
 
-`gdb-5.3/etc'
+`gdb-6.0/etc'
      Coding standards, useful files for editing GDB, and other
      miscellanea.
 
-`gdb-5.3/utils'
+`gdb-6.0/utils'
      A grab bag of random utilities.
 
    Note: the following instructions are for building GDB on Unix or
@@ -226,14 +226,14 @@
 
    The simplest way to configure and build GDB is to run `configure'
 from the `gdb-VERSION-NUMBER' source directory, which in this example
-is the `gdb-5.3' directory.
+is the `gdb-6.0' directory.
 
    First switch to the `gdb-VERSION-NUMBER' source directory if you are
 not already in it; then run `configure'.
 
    For example:
 
-      cd gdb-5.3
+      cd gdb-6.0
       ./configure
       make
 
@@ -249,8 +249,8 @@
       sh configure
 
    If you run `configure' from a directory that contains source
-directories for multiple libraries or programs, such as the `gdb-5.3'
-source directory for version 5.3, `configure' creates configuration
+directories for multiple libraries or programs, such as the `gdb-6.0'
+source directory for version 6.0, `configure' creates configuration
 files for every directory level underneath (unless you tell it not to,
 with the `--norecursion' option).
 
@@ -258,10 +258,10 @@
 directories in the GDB distribution, if you only want to configure that
 subdirectory; but be sure to specify a path to it.
 
-   For example, with version 5.3, type the following to configure only
+   For example, with version 6.0, type the following to configure only
 the `bfd' subdirectory:
 
-      cd gdb-5.3/bfd
+      cd gdb-6.0/bfd
       ../configure
 
    You can install `gdb' anywhere; it has no hardwired paths. However,
@@ -290,13 +290,13 @@
 argument to `--srcdir', you can leave out the `--srcdir' option; it
 will be assumed.)
 
-   For example, with version 5.3, you can build GDB in a separate
+   For example, with version 6.0, you can build GDB in a separate
 directory for a Sun 4 like this:
 
-     cd gdb-5.3
+     cd gdb-6.0
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-5.3/configure
+     ../gdb-6.0/configure
      make
 
    When `configure' builds a configuration using a remote source
@@ -317,8 +317,8 @@
 
    The `Makefile' that `configure' generates in each source directory
 also runs recursively.  If you type `make' in a source directory such
-as `gdb-5.3' (or in a separate configured directory configured with
-`--srcdir=PATH/gdb-5.3'), you will build all the required libraries,
+as `gdb-6.0' (or in a separate configured directory configured with
+`--srcdir=PATH/gdb-6.0'), you will build all the required libraries,
 and then build GDB.
 
    When you have multiple hosts or targets configured in separate
@@ -361,7 +361,7 @@
      Invalid configuration `i786v': machine `i786v' not recognized
 
 `config.sub' is also distributed in the GDB source directory
-(`gdb-5.3', for version 5.3).
+(`gdb-6.0', for version 6.0).
 
 
 `configure' options
@@ -491,7 +491,7 @@
 address "bug-gdb@gnu.org".
 
    When submitting a bug, please include the GDB version number (e.g.,
-gdb-5.3), and how you configured it (e.g., "sun4" or "mach386 host,
+gdb-6.0), and how you configured it (e.g., "sun4" or "mach386 host,
 i586-intel-synopsys target").  Since GDB now supports so many
 different configurations, it is important that you be precise about
 this.  If at all possible, you should include the actual banner that
@@ -546,17 +546,17 @@
 Once DejaGNU is installed, you can run the tests in one of the
 following ways:
 
-  (1)	cd gdb-5.3
+  (1)	cd gdb-6.0
 	make check-gdb
 
 or
 
-  (2)	cd gdb-5.3/gdb
+  (2)	cd gdb-6.0/gdb
 	make check
 
 or
 
-  (3)	cd gdb-5.3/gdb/testsuite
+  (3)	cd gdb-6.0/gdb/testsuite
 	make site.exp	(builds the site specific file)
 	runtest -tool gdb GDB=../gdb    (or GDB=<somepath> as appropriate)
 
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 26780e3..cc204d6 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -3559,7 +3559,7 @@
 	  QUIT;
 	  frame = get_prev_frame (frame);
 	}
-      while (frame != NULL && FRAME_LOCALS_ADDRESS (frame) != target_link);
+      while (frame != NULL && DEPRECATED_FRAME_LOCALS_ADDRESS (frame) != target_link);
 
       if (frame == NULL)
 	break;
diff --git a/gdb/alpha-mdebug-tdep.c b/gdb/alpha-mdebug-tdep.c
index d481986..9eb9c62 100644
--- a/gdb/alpha-mdebug-tdep.c
+++ b/gdb/alpha-mdebug-tdep.c
@@ -45,7 +45,7 @@
    |  |localoff	|  Copies of 1st .. 6th		|
    |  |  |  |	|  argument if necessary.	|
    |  |  |  v	|				|
-   |  |  |  ---	|-------------------------------|<-- FRAME_LOCALS_ADDRESS
+   |  |  |  ---	|-------------------------------|<-- LOCALS_ADDRESS
    |  |  |      |				|
    |  |  |      |  Locals and temporaries.	|
    |  |  |      |				|
diff --git a/gdb/config/djgpp/fnchange.lst b/gdb/config/djgpp/fnchange.lst
index 698b275..96b0c43 100644
--- a/gdb/config/djgpp/fnchange.lst
+++ b/gdb/config/djgpp/fnchange.lst
@@ -251,6 +251,8 @@
 @V@/gdb/testsuite/gdb.c++/ovldbreak.exp @V@/gdb/testsuite/gdb.cxx/ovldbreak.exp
 @V@/gdb/testsuite/gdb.c++/pr-1023.cc @V@/gdb/testsuite/gdb.cxx/pr-1023.cc
 @V@/gdb/testsuite/gdb.c++/pr-1023.exp @V@/gdb/testsuite/gdb.cxx/pr-1023.exp
+@V@/gdb/testsuite/gdb.c++/pr-1210.cc @V@/gdb/testsuite/gdb.cxx/pr-1210.cc
+@V@/gdb/testsuite/gdb.c++/pr-1210.exp @V@/gdb/testsuite/gdb.cxx/pr-1210.exp
 @V@/gdb/testsuite/gdb.c++/pr-574.cc @V@/gdb/testsuite/gdb.cxx/pr-574.cc
 @V@/gdb/testsuite/gdb.c++/pr-574.exp @V@/gdb/testsuite/gdb.cxx/pr-574.exp
 @V@/gdb/testsuite/gdb.c++/printmethod.cc @V@/gdb/testsuite/gdb.cxx/printmethod.cc
@@ -425,6 +427,8 @@
 @V@/sim/mn10300/dv-mn103tim.c @V@/sim/mn10300/dv-mn1tim.c
 @V@/sim/ppc/.gdbinit @V@/sim/ppc/gdb.ini
 @V@/sim/ppc/corefile-n.h @V@/sim/ppc/corefle-n.h
+@V@/sim/ppc/altivec_expression.h @V@/sim/ppc/av_expression.h
+@V@/sim/ppc/altivec_registers.h @V@/sim/ppc/av_registers.h
 @V@/sim/ppc/idecode_branch.h @V@/sim/ppc/idec_branch.h
 @V@/sim/ppc/idecode_expression.h @V@/sim/ppc/idec_expression.h
 @V@/sim/ppc/idecode_fields.h @V@/sim/ppc/idec_fields.h
diff --git a/gdb/config/m68k/tm-delta68.h b/gdb/config/m68k/tm-delta68.h
index 014fc63..25b747e 100644
--- a/gdb/config/m68k/tm-delta68.h
+++ b/gdb/config/m68k/tm-delta68.h
@@ -105,5 +105,5 @@
 #define DEPRECATED_FRAME_SAVED_PC(fi) delta68_frame_saved_pc (fi)
 
 extern CORE_ADDR delta68_frame_args_address (struct frame_info *fi);
-#undef FRAME_ARGS_ADDRESS
-#define FRAME_ARGS_ADDRESS(fi) delta68_frame_args_address (fi)
+#undef DEPRECATED_FRAME_ARGS_ADDRESS
+#define DEPRECATED_FRAME_ARGS_ADDRESS(fi) delta68_frame_args_address (fi)
diff --git a/gdb/config/pa/tm-hppa64.h b/gdb/config/pa/tm-hppa64.h
index a8d414e..2e5e039 100644
--- a/gdb/config/pa/tm-hppa64.h
+++ b/gdb/config/pa/tm-hppa64.h
@@ -283,12 +283,12 @@
 
 #if !GDB_MULTI_ARCH
 extern CORE_ADDR hppa_frame_args_address (struct frame_info *fi);
-#define FRAME_ARGS_ADDRESS(fi) hppa_frame_args_address (fi)
+#define DEPRECATED_FRAME_ARGS_ADDRESS(fi) hppa_frame_args_address (fi)
 #endif
 
 #if !GDB_MULTI_ARCH
 extern CORE_ADDR hppa_frame_locals_address (struct frame_info *fi);
-#define FRAME_LOCALS_ADDRESS(fi) hppa_frame_locals_address (fi)
+#define DEPRECATED_FRAME_LOCALS_ADDRESS(fi) hppa_frame_locals_address (fi)
 #endif
 
 #if !GDB_MULTI_ARCH
@@ -445,8 +445,8 @@
 /* We access locals from SP. This may not work for frames which call
    alloca; for those, we may need to consult unwind tables.
    jimb: FIXME.  */
-#undef FRAME_LOCALS_ADDRESS
-#define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame)
+#undef DEPRECATED_FRAME_LOCALS_ADDRESS
+#define DEPRECATED_FRAME_LOCALS_ADDRESS(fi) ((fi)->frame)
 
 /* For a number of horrible reasons we may have to adjust the location
    of variables on the stack.  Ugh.  jimb: why? */
diff --git a/gdb/config/sparc/tm-sparc.h b/gdb/config/sparc/tm-sparc.h
index 4f8acaf..64ce5c7 100644
--- a/gdb/config/sparc/tm-sparc.h
+++ b/gdb/config/sparc/tm-sparc.h
@@ -441,9 +441,9 @@
 extern CORE_ADDR sparc_frame_saved_pc (struct frame_info *);
 
 /* If the argument is on the stack, it will be here.  */
-#define FRAME_ARGS_ADDRESS(FI) (get_frame_base (FI))
+#define DEPRECATED_FRAME_ARGS_ADDRESS(FI) (get_frame_base (FI))
 
-#define FRAME_LOCALS_ADDRESS(FI) (get_frame_base (FI))
+#define DEPRECATED_FRAME_LOCALS_ADDRESS(FI) (get_frame_base (FI))
 
 /* Set VAL to the number of args passed to frame described by FI.
    Can set VAL to -1, meaning no way to tell.  */
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index b1b61a6..3d39601 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,12 @@
+2003-06-24  Joel Brobecker  <brobecker@gnat.com>
+
+	* gdb.texinfo (Unsupported languages): New section.
+	(Languages): Add link to new section.
+
+2003-06-22  Andrew Cagney  <cagney@redhat.com>
+
+	* gdb.texinfo (Contributors): Mention 6.0 release engineer.
+
 2003-06-22  Daniel Jacobowitz  <drow@mvista.com>
 
 	* gdbint.texinfo (Coding): Clarify use of gdb_XXX.h headers.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index f343eed..05715e1 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -347,7 +347,7 @@
 So that they may not regard their many labors as thankless, we
 particularly thank those who shepherded @value{GDBN} through major
 releases:
-Andrew Cagney (releases 5.3, 5.2, 5.1 and 5.0);
+Andrew Cagney (releases 6.0, 5.3, 5.2, 5.1 and 5.0);
 Jim Blandy (release 4.18);
 Jason Molenda (release 4.17);
 Stan Shebs (release 4.14);
@@ -7437,6 +7437,7 @@
 * Show::                        Displaying the language
 * Checks::                      Type and range checks
 * Support::                     Supported languages
+* Unsupported languages::       Unsupported languages
 @end menu
 
 @node Setting
@@ -8843,6 +8844,22 @@
 In @value{GDBN} scripts, the Modula-2 inequality operator @code{#} is
 interpreted as the beginning of a comment.  Use @code{<>} instead.
 
+@node Unsupported languages
+@section Unsupported languages
+
+@cindex unsupported languages
+@cindex minimal language
+In addition to the other fully-supported programming languages,
+@value{GDBN} also provides a pseudo-language, called @code{minimal}.
+It does not represent a real programming language, but provides a set
+of capabilities close to what the C or assembly languages provide.
+This should allow most simple operations to be performed while debugging
+an application that uses a language currently not supported by @value{GDBN}.
+
+If the language is set to @code{auto}, @value{GDBN} will automatically
+select this language if the current frame corresponds to an unsupported
+language.
+
 @node Symbols
 @chapter Examining the Symbol Table
 
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 55b335d..1d68eff 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -1021,9 +1021,13 @@
     }
   else if (STREQ (sectp->name, EH_FRAME_SECTION))
     {
-      dwarf_eh_frame_offset = sectp->filepos;
-      dwarf_eh_frame_size = bfd_get_section_size_before_reloc (sectp);
-      dwarf_eh_frame_section = sectp;
+      flagword aflag = bfd_get_section_flags (ignore_abfd, sectp);
+      if (aflag & SEC_HAS_CONTENTS)
+        {
+          dwarf_eh_frame_offset = sectp->filepos;
+          dwarf_eh_frame_size = bfd_get_section_size_before_reloc (sectp);
+          dwarf_eh_frame_section = sectp;
+        }
     }
   else if (STREQ (sectp->name, RANGES_SECTION))
     {
diff --git a/gdb/dwarfread.c b/gdb/dwarfread.c
index 0856b89..e6f2a2e 100644
--- a/gdb/dwarfread.c
+++ b/gdb/dwarfread.c
@@ -979,6 +979,13 @@
       switch (mbr.die_tag)
 	{
 	case TAG_member:
+	  /* Static fields can be either TAG_global_variable (GCC) or else
+	     TAG_member with no location (Diab).  We could treat the latter like
+	     the former... but since we don't support the former, just avoid
+	     crashing on the latter for now.  */
+	  if (mbr.at_location == NULL)
+	    break;
+
 	  /* Get space to record the next field's data.  */
 	  new = (struct nextfield *) alloca (sizeof (struct nextfield));
 	  new->next = list;
@@ -3191,8 +3198,12 @@
 		     DIE_ID, DIE_NAME);	/* FIXME */
 	  break;
 	default:
-	  if (!(MOD_lo_user <= (unsigned char) modifier
+	  if (!(MOD_lo_user <= (unsigned char) modifier))
+#if 0
+/* This part of the test would always be true, and it triggers a compiler
+   warning.  */
 		&& (unsigned char) modifier <= MOD_hi_user))
+#endif
 	    {
 	      complaint (&symfile_complaints,
 			 "DIE @ 0x%x \"%s\", unknown type modifier %u", DIE_ID,
diff --git a/gdb/frame-base.c b/gdb/frame-base.c
index 6f666a7..0865a0c 100644
--- a/gdb/frame-base.c
+++ b/gdb/frame-base.c
@@ -24,9 +24,9 @@
 #include "frame.h"
 
 /* A default frame base implementations.  If it wasn't for the old
-   FRAME_LOCALS_ADDRESS and FRAME_ARGS_ADDRESS, these could be
-   combined into a single function.  All architectures really need to
-   override this.  */
+   DEPRECATED_FRAME_LOCALS_ADDRESS and DEPRECATED_FRAME_ARGS_ADDRESS,
+   these could be combined into a single function.  All architectures
+   really need to override this.  */
 
 static CORE_ADDR
 default_frame_base_address (struct frame_info *next_frame, void **this_cache)
@@ -38,15 +38,25 @@
 static CORE_ADDR
 default_frame_locals_address (struct frame_info *next_frame, void **this_cache)
 {
-  struct frame_info *this_frame = get_prev_frame (next_frame);
-  return FRAME_LOCALS_ADDRESS (this_frame);
+  if (DEPRECATED_FRAME_LOCALS_ADDRESS_P ())
+    {
+      /* This is bad.  The computation of per-frame locals address
+	 should use a per-frame frame-base.  */
+      struct frame_info *this_frame = get_prev_frame (next_frame);
+      return DEPRECATED_FRAME_LOCALS_ADDRESS (this_frame);
+    }
+  return default_frame_base_address (next_frame, this_cache);
 }
 
 static CORE_ADDR
 default_frame_args_address (struct frame_info *next_frame, void **this_cache)
 {
-  struct frame_info *this_frame = get_prev_frame (next_frame);
-  return FRAME_ARGS_ADDRESS (this_frame);
+  if (DEPRECATED_FRAME_ARGS_ADDRESS_P ())
+    {
+      struct frame_info *this_frame = get_prev_frame (next_frame);
+      return DEPRECATED_FRAME_ARGS_ADDRESS (this_frame);
+    }
+  return default_frame_base_address (next_frame, this_cache);
 }
 
 const struct frame_base default_frame_base = {
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
index 7918b0c..87585dd 100644
--- a/gdb/gdbarch.c
+++ b/gdb/gdbarch.c
@@ -246,8 +246,8 @@
   gdbarch_deprecated_frame_saved_pc_ftype *deprecated_frame_saved_pc;
   gdbarch_unwind_pc_ftype *unwind_pc;
   gdbarch_unwind_sp_ftype *unwind_sp;
-  gdbarch_frame_args_address_ftype *frame_args_address;
-  gdbarch_frame_locals_address_ftype *frame_locals_address;
+  gdbarch_deprecated_frame_args_address_ftype *deprecated_frame_args_address;
+  gdbarch_deprecated_frame_locals_address_ftype *deprecated_frame_locals_address;
   gdbarch_deprecated_saved_pc_after_call_ftype *deprecated_saved_pc_after_call;
   gdbarch_frame_num_args_ftype *frame_num_args;
   gdbarch_stack_align_ftype *stack_align;
@@ -413,8 +413,8 @@
   0,  /* deprecated_frame_saved_pc */
   0,  /* unwind_pc */
   0,  /* unwind_sp */
-  0,  /* frame_args_address */
-  0,  /* frame_locals_address */
+  get_frame_base,  /* deprecated_frame_args_address */
+  get_frame_base,  /* deprecated_frame_locals_address */
   0,  /* deprecated_saved_pc_after_call */
   0,  /* frame_num_args */
   0,  /* stack_align */
@@ -547,8 +547,8 @@
   current_gdbarch->remote_translate_xfer_address = generic_remote_translate_xfer_address;
   current_gdbarch->frame_args_skip = -1;
   current_gdbarch->frameless_function_invocation = generic_frameless_function_invocation_not;
-  current_gdbarch->frame_args_address = get_frame_base;
-  current_gdbarch->frame_locals_address = get_frame_base;
+  current_gdbarch->deprecated_frame_args_address = get_frame_base;
+  current_gdbarch->deprecated_frame_locals_address = get_frame_base;
   current_gdbarch->convert_from_func_ptr_addr = core_addr_identity;
   current_gdbarch->addr_bits_remove = core_addr_identity;
   current_gdbarch->smash_text_address = core_addr_identity;
@@ -723,8 +723,8 @@
   /* Skip verify of deprecated_frame_saved_pc, has predicate */
   /* Skip verify of unwind_pc, has predicate */
   /* Skip verify of unwind_sp, has predicate */
-  /* Skip verify of frame_args_address, invalid_p == 0 */
-  /* Skip verify of frame_locals_address, invalid_p == 0 */
+  /* Skip verify of deprecated_frame_args_address, has predicate */
+  /* Skip verify of deprecated_frame_locals_address, has predicate */
   /* Skip verify of deprecated_saved_pc_after_call, has predicate */
   /* Skip verify of frame_num_args, has predicate */
   /* Skip verify of stack_align, has predicate */
@@ -1169,6 +1169,26 @@
                       "gdbarch_dump: DEPRECATED_FP_REGNUM = %d\n",
                       DEPRECATED_FP_REGNUM);
 #endif
+#ifdef DEPRECATED_FRAME_ARGS_ADDRESS_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_FRAME_ARGS_ADDRESS_P()",
+                      XSTRING (DEPRECATED_FRAME_ARGS_ADDRESS_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: DEPRECATED_FRAME_ARGS_ADDRESS_P() = %d\n",
+                      DEPRECATED_FRAME_ARGS_ADDRESS_P ());
+#endif
+#ifdef DEPRECATED_FRAME_ARGS_ADDRESS
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_FRAME_ARGS_ADDRESS(fi)",
+                      XSTRING (DEPRECATED_FRAME_ARGS_ADDRESS (fi)));
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: DEPRECATED_FRAME_ARGS_ADDRESS = <0x%08lx>\n",
+                        (long) current_gdbarch->deprecated_frame_args_address
+                        /*DEPRECATED_FRAME_ARGS_ADDRESS ()*/);
+#endif
 #ifdef DEPRECATED_FRAME_CHAIN_P
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1232,6 +1252,26 @@
                         (long) current_gdbarch->deprecated_frame_init_saved_regs
                         /*DEPRECATED_FRAME_INIT_SAVED_REGS ()*/);
 #endif
+#ifdef DEPRECATED_FRAME_LOCALS_ADDRESS_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_FRAME_LOCALS_ADDRESS_P()",
+                      XSTRING (DEPRECATED_FRAME_LOCALS_ADDRESS_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: DEPRECATED_FRAME_LOCALS_ADDRESS_P() = %d\n",
+                      DEPRECATED_FRAME_LOCALS_ADDRESS_P ());
+#endif
+#ifdef DEPRECATED_FRAME_LOCALS_ADDRESS
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_FRAME_LOCALS_ADDRESS(fi)",
+                      XSTRING (DEPRECATED_FRAME_LOCALS_ADDRESS (fi)));
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: DEPRECATED_FRAME_LOCALS_ADDRESS = <0x%08lx>\n",
+                        (long) current_gdbarch->deprecated_frame_locals_address
+                        /*DEPRECATED_FRAME_LOCALS_ADDRESS ()*/);
+#endif
 #ifdef DEPRECATED_FRAME_SAVED_PC_P
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1792,17 +1832,6 @@
                         (long) current_gdbarch->frameless_function_invocation
                         /*FRAMELESS_FUNCTION_INVOCATION ()*/);
 #endif
-#ifdef FRAME_ARGS_ADDRESS
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "FRAME_ARGS_ADDRESS(fi)",
-                      XSTRING (FRAME_ARGS_ADDRESS (fi)));
-  if (GDB_MULTI_ARCH)
-    fprintf_unfiltered (file,
-                        "gdbarch_dump: FRAME_ARGS_ADDRESS = <0x%08lx>\n",
-                        (long) current_gdbarch->frame_args_address
-                        /*FRAME_ARGS_ADDRESS ()*/);
-#endif
 #ifdef FRAME_ARGS_SKIP
   fprintf_unfiltered (file,
                       "gdbarch_dump: FRAME_ARGS_SKIP # %s\n",
@@ -1811,17 +1840,6 @@
                       "gdbarch_dump: FRAME_ARGS_SKIP = %ld\n",
                       (long) FRAME_ARGS_SKIP);
 #endif
-#ifdef FRAME_LOCALS_ADDRESS
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "FRAME_LOCALS_ADDRESS(fi)",
-                      XSTRING (FRAME_LOCALS_ADDRESS (fi)));
-  if (GDB_MULTI_ARCH)
-    fprintf_unfiltered (file,
-                        "gdbarch_dump: FRAME_LOCALS_ADDRESS = <0x%08lx>\n",
-                        (long) current_gdbarch->frame_locals_address
-                        /*FRAME_LOCALS_ADDRESS ()*/);
-#endif
 #ifdef FRAME_NUM_ARGS_P
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -5049,42 +5067,58 @@
   gdbarch->unwind_sp = unwind_sp;
 }
 
-CORE_ADDR
-gdbarch_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi)
+int
+gdbarch_deprecated_frame_args_address_p (struct gdbarch *gdbarch)
 {
   gdb_assert (gdbarch != NULL);
-  if (gdbarch->frame_args_address == 0)
-    internal_error (__FILE__, __LINE__,
-                    "gdbarch: gdbarch_frame_args_address invalid");
-  if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_args_address called\n");
-  return gdbarch->frame_args_address (fi);
-}
-
-void
-set_gdbarch_frame_args_address (struct gdbarch *gdbarch,
-                                gdbarch_frame_args_address_ftype frame_args_address)
-{
-  gdbarch->frame_args_address = frame_args_address;
+  return gdbarch->deprecated_frame_args_address != get_frame_base;
 }
 
 CORE_ADDR
-gdbarch_frame_locals_address (struct gdbarch *gdbarch, struct frame_info *fi)
+gdbarch_deprecated_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi)
 {
   gdb_assert (gdbarch != NULL);
-  if (gdbarch->frame_locals_address == 0)
+  if (gdbarch->deprecated_frame_args_address == 0)
     internal_error (__FILE__, __LINE__,
-                    "gdbarch: gdbarch_frame_locals_address invalid");
+                    "gdbarch: gdbarch_deprecated_frame_args_address invalid");
+  /* Ignore predicate (gdbarch->deprecated_frame_args_address != get_frame_base).  */
   if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_locals_address called\n");
-  return gdbarch->frame_locals_address (fi);
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_args_address called\n");
+  return gdbarch->deprecated_frame_args_address (fi);
 }
 
 void
-set_gdbarch_frame_locals_address (struct gdbarch *gdbarch,
-                                  gdbarch_frame_locals_address_ftype frame_locals_address)
+set_gdbarch_deprecated_frame_args_address (struct gdbarch *gdbarch,
+                                           gdbarch_deprecated_frame_args_address_ftype deprecated_frame_args_address)
 {
-  gdbarch->frame_locals_address = frame_locals_address;
+  gdbarch->deprecated_frame_args_address = deprecated_frame_args_address;
+}
+
+int
+gdbarch_deprecated_frame_locals_address_p (struct gdbarch *gdbarch)
+{
+  gdb_assert (gdbarch != NULL);
+  return gdbarch->deprecated_frame_locals_address != get_frame_base;
+}
+
+CORE_ADDR
+gdbarch_deprecated_frame_locals_address (struct gdbarch *gdbarch, struct frame_info *fi)
+{
+  gdb_assert (gdbarch != NULL);
+  if (gdbarch->deprecated_frame_locals_address == 0)
+    internal_error (__FILE__, __LINE__,
+                    "gdbarch: gdbarch_deprecated_frame_locals_address invalid");
+  /* Ignore predicate (gdbarch->deprecated_frame_locals_address != get_frame_base).  */
+  if (gdbarch_debug >= 2)
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_locals_address called\n");
+  return gdbarch->deprecated_frame_locals_address (fi);
+}
+
+void
+set_gdbarch_deprecated_frame_locals_address (struct gdbarch *gdbarch,
+                                             gdbarch_deprecated_frame_locals_address_ftype deprecated_frame_locals_address)
+{
+  gdbarch->deprecated_frame_locals_address = deprecated_frame_locals_address;
 }
 
 int
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
index a0e09b2..4dd7cfa9 100644
--- a/gdb/gdbarch.h
+++ b/gdb/gdbarch.h
@@ -2330,34 +2330,80 @@
 extern CORE_ADDR gdbarch_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame);
 extern void set_gdbarch_unwind_sp (struct gdbarch *gdbarch, gdbarch_unwind_sp_ftype *unwind_sp);
 
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (FRAME_ARGS_ADDRESS)
-#define FRAME_ARGS_ADDRESS(fi) (get_frame_base (fi))
+/* DEPRECATED_FRAME_ARGS_ADDRESS as been replaced by the per-frame
+   frame-base.  Enable frame-base before frame-unwind. */
+
+#if defined (DEPRECATED_FRAME_ARGS_ADDRESS)
+/* Legacy for systems yet to multi-arch DEPRECATED_FRAME_ARGS_ADDRESS */
+#if !defined (DEPRECATED_FRAME_ARGS_ADDRESS_P)
+#define DEPRECATED_FRAME_ARGS_ADDRESS_P() (1)
+#endif
 #endif
 
-typedef CORE_ADDR (gdbarch_frame_args_address_ftype) (struct frame_info *fi);
-extern CORE_ADDR gdbarch_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi);
-extern void set_gdbarch_frame_args_address (struct gdbarch *gdbarch, gdbarch_frame_args_address_ftype *frame_args_address);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (FRAME_ARGS_ADDRESS)
-#error "Non multi-arch definition of FRAME_ARGS_ADDRESS"
+/* Default predicate for non- multi-arch targets. */
+#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_ARGS_ADDRESS_P)
+#define DEPRECATED_FRAME_ARGS_ADDRESS_P() (0)
 #endif
-#if !defined (FRAME_ARGS_ADDRESS)
-#define FRAME_ARGS_ADDRESS(fi) (gdbarch_frame_args_address (current_gdbarch, fi))
+
+extern int gdbarch_deprecated_frame_args_address_p (struct gdbarch *gdbarch);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_ARGS_ADDRESS_P)
+#error "Non multi-arch definition of DEPRECATED_FRAME_ARGS_ADDRESS"
+#endif
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_FRAME_ARGS_ADDRESS_P)
+#define DEPRECATED_FRAME_ARGS_ADDRESS_P() (gdbarch_deprecated_frame_args_address_p (current_gdbarch))
 #endif
 
 /* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (FRAME_LOCALS_ADDRESS)
-#define FRAME_LOCALS_ADDRESS(fi) (get_frame_base (fi))
+#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_ARGS_ADDRESS)
+#define DEPRECATED_FRAME_ARGS_ADDRESS(fi) (get_frame_base (fi))
 #endif
 
-typedef CORE_ADDR (gdbarch_frame_locals_address_ftype) (struct frame_info *fi);
-extern CORE_ADDR gdbarch_frame_locals_address (struct gdbarch *gdbarch, struct frame_info *fi);
-extern void set_gdbarch_frame_locals_address (struct gdbarch *gdbarch, gdbarch_frame_locals_address_ftype *frame_locals_address);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (FRAME_LOCALS_ADDRESS)
-#error "Non multi-arch definition of FRAME_LOCALS_ADDRESS"
+typedef CORE_ADDR (gdbarch_deprecated_frame_args_address_ftype) (struct frame_info *fi);
+extern CORE_ADDR gdbarch_deprecated_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi);
+extern void set_gdbarch_deprecated_frame_args_address (struct gdbarch *gdbarch, gdbarch_deprecated_frame_args_address_ftype *deprecated_frame_args_address);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_ARGS_ADDRESS)
+#error "Non multi-arch definition of DEPRECATED_FRAME_ARGS_ADDRESS"
 #endif
-#if !defined (FRAME_LOCALS_ADDRESS)
-#define FRAME_LOCALS_ADDRESS(fi) (gdbarch_frame_locals_address (current_gdbarch, fi))
+#if !defined (DEPRECATED_FRAME_ARGS_ADDRESS)
+#define DEPRECATED_FRAME_ARGS_ADDRESS(fi) (gdbarch_deprecated_frame_args_address (current_gdbarch, fi))
+#endif
+
+/* DEPRECATED_FRAME_LOCALS_ADDRESS as been replaced by the per-frame
+   frame-base.  Enable frame-base before frame-unwind. */
+
+#if defined (DEPRECATED_FRAME_LOCALS_ADDRESS)
+/* Legacy for systems yet to multi-arch DEPRECATED_FRAME_LOCALS_ADDRESS */
+#if !defined (DEPRECATED_FRAME_LOCALS_ADDRESS_P)
+#define DEPRECATED_FRAME_LOCALS_ADDRESS_P() (1)
+#endif
+#endif
+
+/* Default predicate for non- multi-arch targets. */
+#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_LOCALS_ADDRESS_P)
+#define DEPRECATED_FRAME_LOCALS_ADDRESS_P() (0)
+#endif
+
+extern int gdbarch_deprecated_frame_locals_address_p (struct gdbarch *gdbarch);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_LOCALS_ADDRESS_P)
+#error "Non multi-arch definition of DEPRECATED_FRAME_LOCALS_ADDRESS"
+#endif
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_FRAME_LOCALS_ADDRESS_P)
+#define DEPRECATED_FRAME_LOCALS_ADDRESS_P() (gdbarch_deprecated_frame_locals_address_p (current_gdbarch))
+#endif
+
+/* Default (function) for non- multi-arch platforms. */
+#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_LOCALS_ADDRESS)
+#define DEPRECATED_FRAME_LOCALS_ADDRESS(fi) (get_frame_base (fi))
+#endif
+
+typedef CORE_ADDR (gdbarch_deprecated_frame_locals_address_ftype) (struct frame_info *fi);
+extern CORE_ADDR gdbarch_deprecated_frame_locals_address (struct gdbarch *gdbarch, struct frame_info *fi);
+extern void set_gdbarch_deprecated_frame_locals_address (struct gdbarch *gdbarch, gdbarch_deprecated_frame_locals_address_ftype *deprecated_frame_locals_address);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_LOCALS_ADDRESS)
+#error "Non multi-arch definition of DEPRECATED_FRAME_LOCALS_ADDRESS"
+#endif
+#if !defined (DEPRECATED_FRAME_LOCALS_ADDRESS)
+#define DEPRECATED_FRAME_LOCALS_ADDRESS(fi) (gdbarch_deprecated_frame_locals_address (current_gdbarch, fi))
 #endif
 
 #if defined (DEPRECATED_SAVED_PC_AFTER_CALL)
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
index a5b2bf9..494b916 100755
--- a/gdb/gdbarch.sh
+++ b/gdb/gdbarch.sh
@@ -631,8 +631,12 @@
 F:2:DEPRECATED_FRAME_SAVED_PC:CORE_ADDR:deprecated_frame_saved_pc:struct frame_info *fi:fi::0:0
 M::UNWIND_PC:CORE_ADDR:unwind_pc:struct frame_info *next_frame:next_frame:
 M::UNWIND_SP:CORE_ADDR:unwind_sp:struct frame_info *next_frame:next_frame:
-f:2:FRAME_ARGS_ADDRESS:CORE_ADDR:frame_args_address:struct frame_info *fi:fi::0:get_frame_base::0
-f:2:FRAME_LOCALS_ADDRESS:CORE_ADDR:frame_locals_address:struct frame_info *fi:fi::0:get_frame_base::0
+# DEPRECATED_FRAME_ARGS_ADDRESS as been replaced by the per-frame
+# frame-base.  Enable frame-base before frame-unwind.
+F::DEPRECATED_FRAME_ARGS_ADDRESS:CORE_ADDR:deprecated_frame_args_address:struct frame_info *fi:fi::get_frame_base:get_frame_base
+# DEPRECATED_FRAME_LOCALS_ADDRESS as been replaced by the per-frame
+# frame-base.  Enable frame-base before frame-unwind.
+F::DEPRECATED_FRAME_LOCALS_ADDRESS:CORE_ADDR:deprecated_frame_locals_address:struct frame_info *fi:fi::get_frame_base:get_frame_base
 F::DEPRECATED_SAVED_PC_AFTER_CALL:CORE_ADDR:deprecated_saved_pc_after_call:struct frame_info *frame:frame
 F:2:FRAME_NUM_ARGS:int:frame_num_args:struct frame_info *frame:frame
 #
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 8886ace..636b13b 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -35,11 +35,6 @@
 	if 'int' is smaller than PTRACE_XFER_TYPE, you end up throwing
 	away part of the register's value.
 
-2003-04-24  Andrew Cagney  <cagney@redhat.com>
-
-	* low-nbsd.c (fetch_inferior_registers): 
-	(store_inferior_registers): 
-
 2003-03-26  Daniel Jacobowitz  <drow@mvista.com>
 
 	* linux-low.c (linux_create_inferior): Use __SIGRTMIN.
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 3889afc..4ce6cc7 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -60,6 +60,7 @@
 struct type *builtin_type_complex;
 struct type *builtin_type_double_complex;
 struct type *builtin_type_string;
+struct type *builtin_type_int0;
 struct type *builtin_type_int8;
 struct type *builtin_type_uint8;
 struct type *builtin_type_int16;
@@ -3410,6 +3411,10 @@
     init_type (TYPE_CODE_STRING, TARGET_CHAR_BIT / TARGET_CHAR_BIT,
 	       0,
 	       "string", (struct objfile *) NULL);
+  builtin_type_int0 =
+    init_type (TYPE_CODE_INT, 0 / 8,
+	       0,
+	       "int0_t", (struct objfile *) NULL);
   builtin_type_int8 =
     init_type (TYPE_CODE_INT, 8 / 8,
 	       0,
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index 847e23a..e7d755a 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -956,7 +956,10 @@
    (cf MIPS). */
 extern struct type *builtin_type_bfd_vma;
 
-/* Explicit sizes - see C9X <intypes.h> for naming scheme */
+/* Explicit sizes - see C9X <intypes.h> for naming scheme.  The "int0"
+   is for when an architecture needs to describe a register that has
+   no size.  */
+extern struct type *builtin_type_int0;
 extern struct type *builtin_type_int8;
 extern struct type *builtin_type_uint8;
 extern struct type *builtin_type_int16;
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index 63ebbeb..0bc4dea 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -2296,8 +2296,8 @@
   set_gdbarch_deprecated_call_dummy_words (gdbarch, ia64_call_dummy_words);
   set_gdbarch_deprecated_sizeof_call_dummy_words (gdbarch, sizeof (ia64_call_dummy_words));
   set_gdbarch_deprecated_init_extra_frame_info (gdbarch, ia64_init_extra_frame_info);
-  set_gdbarch_frame_args_address (gdbarch, ia64_frame_args_address);
-  set_gdbarch_frame_locals_address (gdbarch, ia64_frame_locals_address);
+  set_gdbarch_deprecated_frame_args_address (gdbarch, ia64_frame_args_address);
+  set_gdbarch_deprecated_frame_locals_address (gdbarch, ia64_frame_locals_address);
 
   /* We won't necessarily have a frame pointer and even if we do, it
      winds up being extraordinarly messy when attempting to find the
diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c
index c1859f3..f0f4ea5 100644
--- a/gdb/m68hc11-tdep.c
+++ b/gdb/m68hc11-tdep.c
@@ -1352,6 +1352,9 @@
   set_gdbarch_ptr_bit (gdbarch, 16);
   set_gdbarch_long_long_bit (gdbarch, 64);
 
+  /* Characters are unsigned.  */
+  set_gdbarch_char_signed (gdbarch, 0);
+
   /* Set register info.  */
   set_gdbarch_fp0_regnum (gdbarch, -1);
   set_gdbarch_deprecated_max_register_raw_size (gdbarch, 2);
@@ -1386,7 +1389,7 @@
 
   set_gdbarch_deprecated_frame_chain (gdbarch, m68hc11_frame_chain);
   set_gdbarch_deprecated_frame_saved_pc (gdbarch, m68hc11_frame_saved_pc);
-  set_gdbarch_frame_args_address (gdbarch, m68hc11_frame_args_address);
+  set_gdbarch_deprecated_frame_args_address (gdbarch, m68hc11_frame_args_address);
   set_gdbarch_deprecated_saved_pc_after_call (gdbarch, m68hc11_saved_pc_after_call);
 
   set_gdbarch_deprecated_get_saved_register (gdbarch, deprecated_generic_get_saved_register);
diff --git a/gdb/mcore-tdep.c b/gdb/mcore-tdep.c
index 4b860e5..3c4e7e7 100644
--- a/gdb/mcore-tdep.c
+++ b/gdb/mcore-tdep.c
@@ -1101,8 +1101,8 @@
 						       mcore_extract_struct_value_address);
   set_gdbarch_skip_prologue (gdbarch, mcore_skip_prologue);
   set_gdbarch_frame_args_skip (gdbarch, 0);
-  set_gdbarch_frame_args_address (gdbarch, mcore_frame_args_address);
-  set_gdbarch_frame_locals_address (gdbarch, mcore_frame_locals_address);
+  set_gdbarch_deprecated_frame_args_address (gdbarch, mcore_frame_args_address);
+  set_gdbarch_deprecated_frame_locals_address (gdbarch, mcore_frame_locals_address);
   set_gdbarch_deprecated_pop_frame (gdbarch, mcore_pop_frame);
   set_gdbarch_virtual_frame_pointer (gdbarch, mcore_virtual_frame_pointer);
 
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 4009ca5..f39179d 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -5270,12 +5270,20 @@
      the procedure descriptor exists and the address therein is odd,
      it's definitely a 16-bit function.  Otherwise, we have to just
      guess that if the address passed in is odd, it's 16-bits.  */
+  /* FIXME: cagney/2003-06-26: Is this even necessary?  The
+     disassembler needs to be able to locally determine the ISA, and
+     not rely on GDB.  Otherwize the stand-alone 'objdump -d' will not
+     work.  */
   if (proc_desc)
-    info->mach = pc_is_mips16 (PROC_LOW_ADDR (proc_desc)) ?
-      bfd_mach_mips16 : 0;
+    {
+      if (pc_is_mips16 (PROC_LOW_ADDR (proc_desc)))
+	info->mach =  bfd_mach_mips16;
+    }
   else
-    info->mach = pc_is_mips16 (memaddr) ?
-      bfd_mach_mips16 : 0;
+    {
+      if (pc_is_mips16 (memaddr))
+       info->mach = bfd_mach_mips16;
+    } 
 
   /* Round down the instruction address to the appropriate boundary.  */
   memaddr &= (info->mach == bfd_mach_mips16 ? ~1 : ~3);
diff --git a/gdb/ns32k-tdep.c b/gdb/ns32k-tdep.c
index a52f39f..7bad91d 100644
--- a/gdb/ns32k-tdep.c
+++ b/gdb/ns32k-tdep.c
@@ -327,7 +327,7 @@
   /* Get sigcontext address, it is the third parameter on the stack.  */
   if (get_next_frame (frame))
     sigcontext_addr = read_memory_typed_address
-      (FRAME_ARGS_ADDRESS (get_next_frame (frame)) + FRAME_ARGS_SKIP + sigcontext_offs,
+      (DEPRECATED_FRAME_ARGS_ADDRESS (get_next_frame (frame)) + FRAME_ARGS_SKIP + sigcontext_offs,
        builtin_type_void_data_ptr);
   else
     sigcontext_addr = read_memory_typed_address
@@ -569,7 +569,7 @@
   set_gdbarch_deprecated_frame_chain (gdbarch, ns32k_frame_chain);
   set_gdbarch_deprecated_frame_saved_pc (gdbarch, ns32k_frame_saved_pc);
 
-  set_gdbarch_frame_args_address (gdbarch, ns32k_frame_args_address);
+  set_gdbarch_deprecated_frame_args_address (gdbarch, ns32k_frame_args_address);
 
   set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, ns32k_frame_init_saved_regs);
 
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index ab038b7..05b0510 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -731,6 +731,16 @@
 }
 
 
+/* If DESC is the address of a 64-bit PowerPC GNU/Linux function
+   descriptor, return the descriptor's entry point.  */
+static CORE_ADDR
+ppc64_desc_entry_point (CORE_ADDR desc)
+{
+  /* The first word of the descriptor is the entry point.  */
+  return (CORE_ADDR) read_memory_unsigned_integer (desc, 8);
+}
+
+
 /* Pattern for the standard linkage function.  These are built by
    build_plt_stub in elf64-ppc.c, whose GLINK argument is always
    zero.  */
@@ -865,7 +875,7 @@
        + insn_ds_field (insn[2]));
 
   /* The first word of the descriptor is the entry point.  Return that.  */
-  return (CORE_ADDR) read_memory_unsigned_integer (desc, 8);
+  return ppc64_desc_entry_point (desc);
 }
 
 
@@ -884,6 +894,53 @@
 }
 
 
+/* Support for CONVERT_FROM_FUNC_PTR_ADDR(ADDR) on PPC64 GNU/Linux.
+
+   Usually a function pointer's representation is simply the address
+   of the function. On GNU/Linux on the 64-bit PowerPC however, a
+   function pointer is represented by a pointer to a TOC entry. This
+   TOC entry contains three words, the first word is the address of
+   the function, the second word is the TOC pointer (r2), and the
+   third word is the static chain value.  Throughout GDB it is
+   currently assumed that a function pointer contains the address of
+   the function, which is not easy to fix.  In addition, the
+   conversion of a function address to a function pointer would
+   require allocation of a TOC entry in the inferior's memory space,
+   with all its drawbacks.  To be able to call C++ virtual methods in
+   the inferior (which are called via function pointers),
+   find_function_addr uses this function to get the function address
+   from a function pointer.  */
+
+/* Return real function address if ADDR (a function pointer) is in the data
+   space and is therefore a special function pointer.  */
+
+static CORE_ADDR
+ppc64_linux_convert_from_func_ptr_addr (CORE_ADDR addr)
+{
+  struct obj_section *s;
+
+  s = find_pc_section (addr);
+  if (s && s->the_bfd_section->flags & SEC_CODE)
+    return addr;
+
+  /* ADDR is in the data space, so it's a pointer to a descriptor, not
+     the entry point.  */
+  return ppc64_desc_entry_point (addr);
+}
+
+
+/* On 64-bit PowerPC GNU/Linux, the ELF header's e_entry field is the
+   address of a function descriptor for the entry point function, not
+   the actual entry point itself.  So to find the actual address at
+   which execution should begin, we need to fetch the function's entry
+   point from that descriptor.  */
+static CORE_ADDR
+ppc64_call_dummy_address (void)
+{
+  return ppc64_desc_entry_point (entry_point_address ());
+}
+
+
 enum {
   ELF_NGREG = 48,
   ELF_NFPREG = 33,
@@ -1005,6 +1062,13 @@
   
   if (tdep->wordsize == 8)
     {
+      /* Handle PPC64 GNU/Linux function pointers (which are really
+         function descriptors).  */
+      set_gdbarch_convert_from_func_ptr_addr
+        (gdbarch, ppc64_linux_convert_from_func_ptr_addr);
+
+      set_gdbarch_call_dummy_address (gdbarch, ppc64_call_dummy_address);
+
       set_gdbarch_in_solib_call_trampoline
         (gdbarch, ppc64_in_solib_call_trampoline);
       set_gdbarch_skip_trampoline_code (gdbarch, ppc64_skip_trampoline_code);
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index e12a6be..9f3e9ea 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -1894,6 +1894,10 @@
       int size = regsize (reg, tdep->wordsize);
       switch (size)
 	{
+	case 0:
+	  return builtin_type_int0;
+	case 4:
+	  return builtin_type_int32;
 	case 8:
 	  if (tdep->ppc_ev0_regnum <= n && n <= tdep->ppc_ev31_regnum)
 	    return builtin_type_vec64;
@@ -1904,8 +1908,8 @@
 	  return builtin_type_vec128;
 	  break;
 	default:
-	  return builtin_type_int32;
-	  break;
+	  internal_error (__FILE__, __LINE__, "Register %d size %d unknown",
+			  n, size);
 	}
     }
 }
@@ -2995,8 +2999,8 @@
       set_gdbarch_convert_from_func_ptr_addr (gdbarch,
 	rs6000_convert_from_func_ptr_addr);
     }
-  set_gdbarch_frame_args_address (gdbarch, rs6000_frame_args_address);
-  set_gdbarch_frame_locals_address (gdbarch, rs6000_frame_args_address);
+  set_gdbarch_deprecated_frame_args_address (gdbarch, rs6000_frame_args_address);
+  set_gdbarch_deprecated_frame_locals_address (gdbarch, rs6000_frame_args_address);
   set_gdbarch_deprecated_saved_pc_after_call (gdbarch, rs6000_saved_pc_after_call);
 
   /* Helpers for function argument information.  */
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 3b7ebc2..839a7bc 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -566,12 +566,8 @@
 		   int mainline,
                    int verbo)
 {
-  asection *lower_sect;
-  asection *sect;
-  CORE_ADDR lower_offset;
   struct section_addr_info *local_addr = NULL;
   struct cleanup *old_chain;
-  int i;
 
   gdb_assert (! (addrs && offsets));
 
@@ -626,8 +622,13 @@
 
      We no longer warn if the lowest section is not a text segment (as
      happens for the PA64 port.  */
-  if (!mainline)
+  if (!mainline && addrs && addrs->other[0].name)
     {
+      asection *lower_sect;
+      asection *sect;
+      CORE_ADDR lower_offset;
+      int i;
+
       /* Find lowest loadable section to be used as starting point for 
          continguous sections. FIXME!! won't work without call to find
 	 .text first, but this assumes text is lowest section. */
@@ -659,9 +660,7 @@
  	 (the loadable section directly below it in memory).
  	 this_offset = lower_offset = lower_addr - lower_orig_addr */
 
-      /* Calculate offsets for sections. */
-      if (addrs)
-        for (i=0 ; i < addrs->num_sections && addrs->other[i].name; i++)
+        for (i = 0; i < addrs->num_sections && addrs->other[i].name; i++)
           {
             if (addrs->other[i].addr != 0)
               {
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 771675a..642b960 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -394,8 +394,9 @@
   /* Value is in register number SYMBOL_VALUE.  Just like LOC_REGISTER
      except this is an argument.  Probably the cleaner way to handle
      this would be to separate address_class (which would include
-     separate ARG and LOCAL to deal with FRAME_ARGS_ADDRESS versus
-     FRAME_LOCALS_ADDRESS), and an is_argument flag.
+     separate ARG and LOCAL to deal with the frame's arguments
+     (get_frame_args_address) versus the frame's locals
+     (get_frame_locals_address), and an is_argument flag.
 
      For some symbol formats (stabs, for some compilers at least),
      the compiler generates two symbols, an argument and a register.
@@ -439,9 +440,9 @@
 
   /* Value is arg at SYMBOL_VALUE offset in stack frame. Differs from
      LOC_LOCAL in that symbol is an argument; differs from LOC_ARG in
-     that we find it in the frame (FRAME_LOCALS_ADDRESS), not in the
-     arglist (FRAME_ARGS_ADDRESS).  Added for i960, which passes args
-     in regs then copies to frame.  */
+     that we find it in the frame (get_frame_locals_address), not in
+     the arglist (get_frame_args_address).  Added for i960, which
+     passes args in regs then copies to frame.  */
 
   LOC_LOCAL_ARG,
 
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 8a1a411..e2a6aea 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,17 @@
+2003-06-24  Joel Brobecker  <brobecker@gnat.com>
+
+	* gdb.base/bang.exp: New testcase.
+
+2003-06-23  Joel Brobecker  <brobecker@gnat.com>
+
+	* gdb.base/langs.exp: Add some tests for the "minimal" language
+	support.
+
+2003-06-23  Elena Zannoni  <ezannoni@redhat.com>
+
+	* gdb.objc/basicclass.exp: Return -1 if we cannot compile
+	the testcase.
+
 2003-06-22  Daniel Jacobowitz  <drow@mvista.com>
 
 	* gdb.base/relocate.exp: Test add-symbol-file with a variable
diff --git a/gdb/testsuite/gdb.base/bang.exp b/gdb/testsuite/gdb.base/bang.exp
new file mode 100644
index 0000000..f584074
--- /dev/null
+++ b/gdb/testsuite/gdb.base/bang.exp
@@ -0,0 +1,41 @@
+# Copyright 2003 Free Software Foundation, Inc.
+
+# 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.
+
+# This is a test that verifies that GDB is able to "run" when the name
+# of the executable file contains a '!'.
+
+if $tracelevel then {
+    strace $tracelevel
+}
+
+set testfile "args"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/bang!
+
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
+    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+# Verify that we can run the program and that it terminates normally.
+gdb_test "run" \
+         ".*Program exited normally\." \
+         "run program"
+
diff --git a/gdb/testsuite/gdb.base/langs.exp b/gdb/testsuite/gdb.base/langs.exp
index 9ed1e91..8006bbf 100644
--- a/gdb/testsuite/gdb.base/langs.exp
+++ b/gdb/testsuite/gdb.base/langs.exp
@@ -145,5 +145,20 @@
     }
 }
 
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+# Try exercising the "minimal" language a bit...
+
+if [runto csub] then {
+    gdb_test "set lang minimal" \
+             "Warning: the current language does not match this frame." \
+             "set lang to minimal"
+    
+    gdb_test "print x" " = 5000" "print parameter value"
+}
+
 set timeout $oldtimeout
 return 0
diff --git a/gdb/testsuite/gdb.objc/basicclass.exp b/gdb/testsuite/gdb.objc/basicclass.exp
index 44b709e..5fb5181 100644
--- a/gdb/testsuite/gdb.objc/basicclass.exp
+++ b/gdb/testsuite/gdb.objc/basicclass.exp
@@ -29,7 +29,7 @@
 # which libraries to link in. Most of the time it uses pthread
 #
 if {[gdb_compile_objc "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug ]] != "" } {
-  gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+  return -1
 }
 
 #
diff --git a/gdb/utils.c b/gdb/utils.c
index 3d820de..0817353 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -689,42 +689,49 @@
 internal_vproblem (struct internal_problem *problem,
 		   const char *file, int line, const char *fmt, va_list ap)
 {
-  static char msg[] = "Recursive internal problem.\n";
   static int dejavu;
   int quit_p;
   int dump_core_p;
+  char *reason;
 
   /* Don't allow infinite error/warning recursion.  */
-  switch (dejavu)
-    {
-    case 0:
-      dejavu = 1;
-      break;
-    case 1:
-      dejavu = 2;
-      fputs_unfiltered (msg, gdb_stderr);
-      abort ();			/* NOTE: GDB has only three calls to abort().  */
-    default:
-      dejavu = 3;
-      write (STDERR_FILENO, msg, sizeof (msg));
-      exit (1);
-    }
+  {
+    static char msg[] = "Recursive internal problem.\n";
+    switch (dejavu)
+      {
+      case 0:
+	dejavu = 1;
+	break;
+      case 1:
+	dejavu = 2;
+	fputs_unfiltered (msg, gdb_stderr);
+	abort ();	/* NOTE: GDB has only three calls to abort().  */
+      default:
+	dejavu = 3;
+	write (STDERR_FILENO, msg, sizeof (msg));
+	exit (1);
+      }
+  }
 
   /* Try to get the message out and at the start of a new line.  */
   target_terminal_ours ();
   begin_line ();
 
-  /* The error/warning message.  Format using a style similar to a
-     compiler error message.  */
-  fprintf_unfiltered (gdb_stderr, "%s:%d: %s: ", file, line, problem->name);
-  vfprintf_unfiltered (gdb_stderr, fmt, ap);
-  fputs_unfiltered ("\n", gdb_stderr);
-
-  /* Provide more details so that the user knows that they are living
-     on the edge.  */
-  fprintf_unfiltered (gdb_stderr, "\
-A problem internal to GDB has been detected.  Further\n\
-debugging may prove unreliable.\n");
+  /* Create a string containing the full error/warning message.  Need
+     to call query with this full string, as otherwize the reason
+     (error/warning) and question become separated.  Format using a
+     style similar to a compiler error message.  Include extra detail
+     so that the user knows that they are living on the edge.  */
+  {
+    char *msg;
+    xasprintf (&msg, fmt, ap);
+    xasprintf (&reason, "\
+%s:%d: %s: %s\n\
+A problem internal to GDB has been detected,\n\
+further debugging may prove unreliable.", file, line, problem->name, msg);
+    xfree (msg);
+    make_cleanup (xfree, reason);
+  }
 
   switch (problem->should_quit)
     {
@@ -732,7 +739,7 @@
       /* Default (yes/batch case) is to quit GDB.  When in batch mode
          this lessens the likelhood of GDB going into an infinate
          loop.  */
-      quit_p = query ("Quit this debugging session? ");
+      quit_p = query ("%s\nQuit this debugging session? ", reason);
       break;
     case AUTO_BOOLEAN_TRUE:
       quit_p = 1;
@@ -750,7 +757,7 @@
       /* Default (yes/batch case) is to dump core.  This leaves a GDB
          `dropping' so that it is easier to see that something went
          wrong in GDB.  */
-      dump_core_p = query ("Create a core file of GDB? ");
+      dump_core_p = query ("%s\nCreate a core file of GDB? ", reason);
       break;
       break;
     case AUTO_BOOLEAN_TRUE:
diff --git a/gdb/vax-tdep.c b/gdb/vax-tdep.c
index 1b6f8ca..c2a3fbb 100644
--- a/gdb/vax-tdep.c
+++ b/gdb/vax-tdep.c
@@ -38,8 +38,6 @@
 static gdbarch_skip_prologue_ftype vax_skip_prologue;
 static gdbarch_frame_num_args_ftype vax_frame_num_args;
 static gdbarch_deprecated_frame_chain_ftype vax_frame_chain;
-static gdbarch_frame_args_address_ftype vax_frame_args_address;
-static gdbarch_frame_locals_address_ftype vax_frame_locals_address;
 
 static gdbarch_deprecated_extract_return_value_ftype vax_extract_return_value;
 static gdbarch_deprecated_extract_struct_value_address_ftype
@@ -136,7 +134,7 @@
   /* Get sigcontext address, it is the third parameter on the stack.  */
   if (get_next_frame (frame))
     sigcontext_addr = read_memory_typed_address
-      (FRAME_ARGS_ADDRESS (get_next_frame (frame))
+      (DEPRECATED_FRAME_ARGS_ADDRESS (get_next_frame (frame))
        + FRAME_ARGS_SKIP + sigcontext_offs,
        builtin_type_void_data_ptr);
   else
@@ -181,7 +179,7 @@
 static int
 vax_frame_num_args (struct frame_info *fi)
 {
-  return (0xff & read_memory_integer (FRAME_ARGS_ADDRESS (fi), 1));
+  return (0xff & read_memory_integer (DEPRECATED_FRAME_ARGS_ADDRESS (fi), 1));
 }
 
 static CORE_ADDR
@@ -380,7 +378,7 @@
   set_gdbarch_deprecated_frame_chain (gdbarch, vax_frame_chain);
   set_gdbarch_deprecated_frame_saved_pc (gdbarch, vax_frame_saved_pc);
 
-  set_gdbarch_frame_args_address (gdbarch, vax_frame_args_address);
+  set_gdbarch_deprecated_frame_args_address (gdbarch, vax_frame_args_address);
 
   set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, vax_frame_init_saved_regs);
 
diff --git a/gdb/version.in b/gdb/version.in
index 9585c52..0e6ab96 100644
--- a/gdb/version.in
+++ b/gdb/version.in
@@ -1 +1 @@
-2003-06-22-cvs
+2003-06-27-cvs
diff --git a/gdb/x86-64-tdep.c b/gdb/x86-64-tdep.c
index 906ebd9..0fe2485 100644
--- a/gdb/x86-64-tdep.c
+++ b/gdb/x86-64-tdep.c
@@ -597,7 +597,15 @@
 {
   int intreg = 0;
   int ssereg = 0;
+  /* For varargs functions we have to pass the total number of SSE arguments
+     in %rax.  So, let's count this number.  */
+  int total_sse_args = 0;
+  /* Once an SSE/int argument is passed on the stack, all subsequent
+     arguments are passed there.  */
+  int sse_stack = 0;
+  int int_stack = 0;
   int i;
+  char buf[8];
   static int int_parameter_registers[INT_REGS] =
   {
     X86_64_RDI_REGNUM, 4,	/* %rdi, %rsi */
@@ -623,9 +631,7 @@
       int needed_sseregs;
 
       if (!n ||
-	  !examine_argument (class, n, &needed_intregs, &needed_sseregs)
-	  || intreg / 2 + needed_intregs > INT_REGS
-	  || ssereg / 2 + needed_sseregs > SSE_REGS)
+	  !examine_argument (class, n, &needed_intregs, &needed_sseregs))
 	{			/* memory class */
 	  stack_values[stack_values_count++] = i;
 	}
@@ -633,6 +639,13 @@
 	{
 	  int j;
 	  int offset = 0;
+
+	  if (intreg / 2 + needed_intregs > INT_REGS)
+	    int_stack = 1;
+	  if (ssereg / 2 + needed_sseregs > SSE_REGS)
+	    sse_stack = 1;
+	  total_sse_args += needed_sseregs;
+
 	  for (j = 0; j < n; j++)
 	    {
 	      switch (class[j])
@@ -640,38 +653,56 @@
 		case X86_64_NO_CLASS:
 		  break;
 		case X86_64_INTEGER_CLASS:
-		  regcache_cooked_write
-		    (regcache, int_parameter_registers[(intreg + 1) / 2],
-		     VALUE_CONTENTS_ALL (args[i]) + offset);
-		  offset += 8;
-		  intreg += 2;
+		  if (int_stack)
+		    stack_values[stack_values_count++] = i;
+		  else
+		    {
+		      regcache_cooked_write
+			(regcache, int_parameter_registers[(intreg + 1) / 2],
+			 VALUE_CONTENTS_ALL (args[i]) + offset);
+		      offset += 8;
+		      intreg += 2;
+		    }
 		  break;
 		case X86_64_INTEGERSI_CLASS:
-		  {
-		    LONGEST val = extract_signed_integer
-		      (VALUE_CONTENTS_ALL (args[i]) + offset, 4);
-		    regcache_cooked_write_signed
-		      (regcache, int_parameter_registers[intreg / 2], val);
-
-		    offset += 8;
-		    intreg++;
-		    break;
-		  }
+		  if (int_stack)
+		    stack_values[stack_values_count++] = i;
+		  else
+		    {
+		      LONGEST val = extract_signed_integer
+			(VALUE_CONTENTS_ALL (args[i]) + offset, 4);
+		      regcache_cooked_write_signed
+			(regcache, int_parameter_registers[intreg / 2], val);
+		      
+		      offset += 8;
+		      intreg++;
+		    }
+		  break;
 		case X86_64_SSEDF_CLASS:
 		case X86_64_SSESF_CLASS:
 		case X86_64_SSE_CLASS:
-		  regcache_cooked_write
-		    (regcache, sse_parameter_registers[(ssereg + 1) / 2],
-		     VALUE_CONTENTS_ALL (args[i]) + offset);
-		  offset += 8;
-		  ssereg += 2;
+		  if (sse_stack)
+		    stack_values[stack_values_count++] = i;
+		  else
+		    {
+		      regcache_cooked_write
+			(regcache, sse_parameter_registers[(ssereg + 1) / 2],
+			 VALUE_CONTENTS_ALL (args[i]) + offset);
+		      offset += 8;
+		      ssereg += 2;
+		    }
 		  break;
 		case X86_64_SSEUP_CLASS:
-		  regcache_cooked_write
-		    (regcache, sse_parameter_registers[ssereg / 2],
-		     VALUE_CONTENTS_ALL (args[i]) + offset);
-		  offset += 8;
-		  ssereg++;
+		  if (sse_stack)
+		    stack_values[stack_values_count++] = i;
+		  else
+		    {
+		      regcache_cooked_write
+			(regcache, sse_parameter_registers[ssereg / 2],
+			 VALUE_CONTENTS_ALL (args[i]) + offset);
+		      offset += 8;
+		      ssereg++;
+		    }
 		  break;
 		case X86_64_X87_CLASS:
 		case X86_64_MEMORY_CLASS:
@@ -700,6 +731,11 @@
       write_memory (sp, VALUE_CONTENTS_ALL (arg), len);
     }
 
+  /* Write number of SSE type arguments to RAX to take care of varargs
+     functions.  */
+  store_unsigned_integer (buf, 8, total_sse_args);
+  regcache_cooked_write (regcache, X86_64_RAX_REGNUM, buf);
+
   return sp;
 }
 
@@ -712,7 +748,8 @@
 {
   int len = TYPE_LENGTH (type);
 
-  if (TYPE_CODE_FLT == TYPE_CODE (type))
+  /* First handle long doubles.  */
+  if (TYPE_CODE_FLT == TYPE_CODE (type)  && len == 16)
     {
       ULONGEST fstat;
       char buf[FPU_REG_RAW_SIZE];
@@ -741,6 +778,12 @@
          for the tag word is 0x3fff.  */
       regcache_raw_write_unsigned (regcache, FTAG_REGNUM, 0x3fff);
     }
+  else if (TYPE_CODE_FLT == TYPE_CODE (type))
+    {
+      /* Handle double and float variables.  */
+      regcache_cooked_write (regcache,  X86_64_XMM0_REGNUM, valbuf);
+    }
+  /* XXX: What about complex floating point types?  */
   else
     {
       int low_size = REGISTER_RAW_SIZE (0);
diff --git a/include/ChangeLog b/include/ChangeLog
index 5e9ac7a..f061efa 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2003-06-25  Alan Modra  <amodra@bigpond.net.au>
+
+	* bfdlink.h: Correct spelling of "relocatable".
+
 2003-06-22  Zack Weinberg  <zack@codesourcery.com>
 
 	* safe-ctype.h (HC_UNKNOWN, HC_ASCII, HC_EBCDIC): Rename to
diff --git a/include/bfdlink.h b/include/bfdlink.h
index 4636025..10746ee 100644
--- a/include/bfdlink.h
+++ b/include/bfdlink.h
@@ -1,5 +1,5 @@
 /* bfdlink.h -- header file for BFD link routines
-   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002
+   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003
    Free Software Foundation, Inc.
    Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
 
@@ -204,7 +204,7 @@
 struct bfd_link_info
 {
   /* TRUE if BFD should generate a relocatable object file.  */
-  unsigned int relocateable: 1;
+  unsigned int relocatable: 1;
 
   /* TRUE if BFD should generate relocation information in the final
      executable.  */
@@ -428,7 +428,7 @@
   /* A function which is called to add a symbol to a set.  ENTRY is
      the link hash table entry for the set itself (e.g.,
      __CTOR_LIST__).  RELOC is the relocation to use for an entry in
-     the set when generating a relocateable file, and is also used to
+     the set when generating a relocatable file, and is also used to
      get the size of the entry when generating an executable file.
      ABFD, SEC and VALUE identify the value to add to the set.  */
   bfd_boolean (*add_to_set)
@@ -439,7 +439,7 @@
      destructor is found.  This is only called by some object file
      formats.  CONSTRUCTOR is TRUE for a constructor, FALSE for a
      destructor.  This will use BFD_RELOC_CTOR when generating a
-     relocateable file.  NAME is the name of the symbol found.  ABFD,
+     relocatable file.  NAME is the name of the symbol found.  ABFD,
      SECTION and VALUE are the value of the symbol.  */
   bfd_boolean (*constructor)
     PARAMS ((struct bfd_link_info *, bfd_boolean constructor,
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index 9785f4e..e100c11 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,3 +1,18 @@
+2003-06-25  Richard Sandiford  <rsandifo@redhat.com>
+
+	* h8300.h (IMM2_NS, IMM8_NS, IMM16_NS): Remove.
+	(IMM8U, IMM8U_NS): Define.
+	(h8_opcodes): Use IMM8U_NS for mov.[wl] #xx:8,@yy.
+
+2003-06-25  Richard Sandiford  <rsandifo@redhat.com>
+
+	* h8300.h (h8_opcodes): Fix the mov.l @(dd:32,ERs),ERd and
+	mov.l ERs,@(dd:32,ERd) entries.
+
+2003-06-23  H.J. Lu <hongjiu.lu@intel.com>
+
+	* i386.h (i386_optab): Support Intel Precott New Instructions.
+
 2003-06-10  Gary Hade <garyhade@us.ibm.com>
 
 	* ppc.h (PPC_OPERAND_DQ): Define.
diff --git a/include/opcode/h8300.h b/include/opcode/h8300.h
index 4318dcc..bfac3f8 100644
--- a/include/opcode/h8300.h
+++ b/include/opcode/h8300.h
@@ -117,6 +117,7 @@
   B31 =		0x40000000,		/* Bit 3 must be high.  */
   E =  		0x80000000,		/* End of nibble sequence.  */
 
+  /* Immediates smaller than 8 bits are always unsigned.  */
   IMM3 =	IMM | L_3,
   IMM4 =	IMM | L_4,
   IMM5 =	IMM | L_5,
@@ -124,15 +125,14 @@
   IMM2 =	IMM | L_2,
 
   IMM8 =	IMM | SRC | L_8,
+  IMM8U =	IMM | SRC | L_8U,
   IMM16 =	IMM | SRC | L_16,
   IMM16U =	IMM | SRC | L_16U,
   IMM32 =	IMM | SRC | L_32,
 
   IMM3NZ_NS =   IMM3NZ | NO_SYMBOLS,
-  IMM2_NS =     IMM2 | NO_SYMBOLS,
   IMM4_NS =	IMM4 | NO_SYMBOLS,
-  IMM8_NS =	IMM8 | NO_SYMBOLS,
-  IMM16_NS =    IMM16 | NO_SYMBOLS,
+  IMM8U_NS =	IMM8U | NO_SYMBOLS,
   IMM16U_NS =   IMM16U | NO_SYMBOLS,
 
   RD8  =	DST | L_8  | REG,
@@ -1475,7 +1475,7 @@
   {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS,  ABS16DST, E}}, {{0x6, 0xb, 0xd, IMM4, DSTABS16LIST, E}}},
   {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS,  ABS32DST, E}}, {{0x6, 0xb, 0xf, IMM4, DSTABS32LIST, E}}},
 
-  MOVFROM_IMM8 (O (O_MOV, SW), PREFIX_015D,   "mov.w", IMM8_NS),
+  MOVFROM_IMM8 (O (O_MOV, SW), PREFIX_015D,   "mov.w", IMM8U_NS),
   MOVFROM_IMM  (O (O_MOV, SW), PREFIX_7974,   "mov.w", IMM16, IMM16LIST),
 
   {O (O_MOV, SW), AV_H8,   2, "mov.w", {{RS16, RD16,      E}}, {{0x0, 0xD, RS16, RD16, E}}},
@@ -1501,7 +1501,7 @@
 
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM3NZ_NS, RD32, E}}, {{0x0, 0xf, B31 | IMM3NZ, B31 | RD32, E}}},
 
-  MOVFROM_IMM8 (O (O_MOV, SL), PREFIX_010D, "mov.l", IMM8_NS),
+  MOVFROM_IMM8 (O (O_MOV, SL), PREFIX_010D, "mov.l", IMM8U_NS),
   MOVFROM_IMM  (O (O_MOV, SL), PREFIX_7A7C, "mov.l", IMM16U_NS, IMM16ULIST),
 
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM16U_NS, RD32, E}}, {{0x7, 0xa, 0x0, B31 | RD32, IMM16ULIST, E}}},
@@ -1518,7 +1518,8 @@
   {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{RS32, RDPREDEC,  E}}, {{PREFIX_0100,                       0x6, 0xd, B31 | RDPREDEC,    RS32, E}}}, 
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, DISP2DST,  E}}, {{PREFIX_010,  B30 | B20 | DISP2DST, 0x6, 0x9, B31 | DSTDISPREG,  RS32, E}}}, 
   {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{RS32, DISP16DST, E}}, {{PREFIX_0100,                       0x6, 0xf, B31 | DSTDISPREG,  RS32, DSTDISP16LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{RS32, DISP32DST, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x0,   0x6, 0xb, 0xa,               RS32, DSTDISP32LIST, E}}}, 
+  {O (O_MOV, SL), AV_H8SX, 6, "mov.l", {{RS32, DISP32DST, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x0,   0x6, 0xb, 0xa,               RS32, DSTDISP32LIST, E}}},
+  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{RS32, DISP32DST, E}}, {{PREFIX_0100,                       0x7, 0x8, B31 | DSTDISPREG, 0x0,   0x6, 0xb, 0xa,               RS32, DSTDISP32LIST, E}}},
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXB16D, E}}, {{PREFIX_0101,                       0x6, 0xf, B31 | DSTDISPREG,  RS32, DSTDISP16LIST, E}}}, 
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXW16D, E}}, {{PREFIX_0102,                       0x6, 0xf, B31 | DSTDISPREG,  RS32, DSTDISP16LIST, E}}}, 
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXL16D, E}}, {{PREFIX_0103,                       0x6, 0xf, B31 | DSTDISPREG,  RS32, DSTDISP16LIST, E}}}, 
@@ -1535,7 +1536,8 @@
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPREDEC,  RD32, E}}, {{PREFIX_0103,                       0x6, 0xd, B30 | RSPREDEC,  RD32, E}}}, 
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{DISP2SRC,  RD32, E}}, {{PREFIX_010,  B30 | B20 | DISP2SRC, 0x6, 0x9, B30 | DISPREG,   RD32, E}}}, 
   {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{DISP16SRC, RD32, E}}, {{PREFIX_0100,                       0x6, 0xf, B30 | DISPREG,   RD32, SRC | DISP16LIST, E}}}, 
-  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{DISP32SRC, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x0,      0x6, 0xb, 0x2,             RD32, SRC | DISP32LIST, E}}}, 
+  {O (O_MOV, SL), AV_H8SX, 6, "mov.l", {{DISP32SRC, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x0,      0x6, 0xb, 0x2,             RD32, SRC | DISP32LIST, E}}},
+  {O (O_MOV, SL), AV_H8H,  6, "mov.l", {{DISP32SRC, RD32, E}}, {{PREFIX_0100,                       0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xb, 0x2,             RD32, SRC | DISP32LIST, E}}},
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXB16,  RD32, E}}, {{PREFIX_0101,                       0x6, 0xf, B30 | DISPREG,   RD32, SRC | DISP16LIST, E}}}, 
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXW16,  RD32, E}}, {{PREFIX_0102,                       0x6, 0xf, B30 | DISPREG,   RD32, SRC | DISP16LIST, E}}}, 
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXL16,  RD32, E}}, {{PREFIX_0103,                       0x6, 0xf, B30 | DISPREG,   RD32, SRC | DISP16LIST, E}}}, 
diff --git a/include/opcode/i386.h b/include/opcode/i386.h
index 71c204c..cb3a99a 100644
--- a/include/opcode/i386.h
+++ b/include/opcode/i386.h
@@ -1302,6 +1302,30 @@
 {"punpckhqdq",2, 0x660f6d,  X, CpuSSE2, FP|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
 {"punpcklqdq",2, 0x660f6c,  X, CpuSSE2, FP|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
 
+/* Prescott New Instructions.  */
+
+{"addsubpd",  2, 0x660fd0,  X, CpuPNI, FP|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
+{"addsubps",  2, 0xf20fd0,  X, CpuPNI, FP|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
+{"fisttp",    1, 0xdf,      1, CpuPNI, sl_FP|FloatMF|Modrm, { ShortMem|LongMem, 0, 0} },
+/* Intel Syntax */
+{"fisttpd",   1, 0xdd,      1, CpuPNI, FP|Modrm,	{ LLongMem, 0, 0} },
+{"fisttpq",   1, 0xdd,      1, CpuPNI, FP|Modrm,	{ LLongMem, 0, 0} },
+{"fisttpll",  1, 0xdd,      1, CpuPNI, FP|Modrm,	{ LLongMem, 0, 0} },
+{"haddpd",    2, 0x660f7c,  X, CpuPNI, FP|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
+{"haddps",    2, 0xf20f7c,  X, CpuPNI, FP|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
+{"hsubpd",    2, 0x660f7d,  X, CpuPNI, FP|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
+{"hsubps",    2, 0xf20f7d,  X, CpuPNI, FP|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
+{"lddqu",     2, 0xf20ff0,  X, CpuPNI, FP|Modrm,	{ LLongMem, RegXMM, 0 } },
+{"monitor",   0, 0x0f01, 0xc8, CpuPNI, FP|ImmExt,	{ 0, 0, 0} },
+/* Need to ensure only "monitor %eax,%ecx,%edx" is accepted. */
+{"monitor",   3, 0x0f01, 0xc8, CpuPNI, FP|ImmExt,	{ Reg32, Reg32, Reg32} },
+{"movddup",   2, 0xf20f12,  X, CpuPNI, FP|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
+{"movshdup",  2, 0xf30f16,  X, CpuPNI, FP|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
+{"movsldup",  2, 0xf30f12,  X, CpuPNI, FP|Modrm,	{ RegXMM|LLongMem, RegXMM, 0 } },
+{"mwait",     0, 0x0f01, 0xc9, CpuPNI, FP|ImmExt,	{ 0, 0, 0} },
+/* Need to ensure only "mwait %eax,%ecx" is accepted.  */
+{"mwait",     2, 0x0f01, 0xc9, CpuPNI, FP|ImmExt,	{ Reg32, Reg32, 0} },
+
 /* AMD 3DNow! instructions.  */
 
 {"prefetch", 1, 0x0f0d,	   0, Cpu3dnow, FP|Modrm,		{ ByteMem, 0, 0 } },
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 913bf54..99f2f0a 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,7 @@
+2003-06-26  H.J. Lu <hongjiu.lu@intel.com>
+
+	* testsuite/demangle-expected: Add more GNU V3 testcases.
+
 2003-06-22  Zack Weinberg  <zack@codesourcery.com>
 
 	* safe-ctype.c: Use HOST_CHARSET_ASCII and HOST_CHARSET_EBCDIC,
diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected
index c048318..6be66e1 100644
--- a/libiberty/testsuite/demangle-expected
+++ b/libiberty/testsuite/demangle-expected
@@ -2598,9 +2598,269 @@
 --format=gnu-v3
 St9bad_alloc
 std::bad_alloc
+#
+--format=gnu-v3
+_ZN1f1fE
+f::f
+#
+--format=gnu-v3
+_Z1fv
+f()
+#
+--format=gnu-v3
+_Z1fi
+f(int)
+#
+--format=gnu-v3
+_Z3foo3bar
+foo(bar)
+#
+--format=gnu-v3
+_Zrm1XS_
+operator%(X, X)
+#
+--format=gnu-v3
+_ZplR1XS0_
+operator+(X&, X&)
+#
+--format=gnu-v3
+_ZlsRK1XS1_
+operator<<(X const&, X const&)
+#
+--format=gnu-v3
+_ZN3FooIA4_iE3barE
+Foo<int[4]>::bar
+#
+--format=gnu-v3
+_Z1fIiEvi
+void f<int>(int)
+#
+--format=gnu-v3
+_Z5firstI3DuoEvS0_
+void first<Duo>(Duo)
+#
+--format=gnu-v3
+_Z5firstI3DuoEvT_
+void first<Duo>(Duo)
+#
+--format=gnu-v3
+_Z3fooIiFvdEiEvv
+void foo<int, void ()(double), int>()
+#
+--format=gnu-v3
+_ZN1N1fE
+N::f
+#
+--format=gnu-v3
+_ZN6System5Sound4beepEv
+System::Sound::beep()
+#
+--format=gnu-v3
+_ZN5Arena5levelE
+Arena::level
+#
+--format=gnu-v3
+_ZN5StackIiiE5levelE
+Stack<int, int>::level
+#
+--format=gnu-v3
+_Z1fI1XEvPVN1AIT_E1TE
+void f<X>(A<X>::T volatile*)
+#
+--format=gnu-v3
+_ZngILi42EEvN1AIXplT_Li2EEE1TE
+void operator-<42>(A<(42) + (2)>::T)
+#
+--format=gnu-v3
+_Z4makeI7FactoryiET_IT0_Ev
+Factory<int> make<Factory, int>()
+#
+--format=gnu-v3
+_Z4makeI7FactoryiET_IT0_Ev
+Factory<int> make<Factory, int>()
+#
+--format=gnu-v3
+_Z3foo5Hello5WorldS0_S_
+foo(Hello, World, World, Hello)
+#
+--format=gnu-v3
+_Z3fooPM2ABi
+foo(int AB::**)
+#
+--format=gnu-v3
+_ZlsRSoRKSs
+operator<<(std::ostream&, std::string const&)
+#
+--format=gnu-v3
+_ZTI7a_class
+typeinfo for a_class
+#
+--format=gnu-v3
+U4_farrVKPi
+int* restrict volatile const _far
+# 
+--format=gnu-v3
+_Z3fooILi2EEvRAplT_Li1E_i
+void foo<2>(int (&) [(2) + (1)])
+# 
+--format=gnu-v3
+_Z1fM1AKFvvE
+f(void (A::*)() const)
+#
+--format=gnu-v3
+_Z3fooc
+foo(char)
+#
+--format=gnu-v3
+2CBIL_Z3foocEE
+CB<foo(char)>
+#
+--format=gnu-v3
+2CBIL_Z7IsEmptyEE
+CB<IsEmpty>
+#
+--format=gnu-v3
+_ZZN1N1fEiE1p
+N::f(int)::p
+#
+--format=gnu-v3
+_ZZN1N1fEiEs
+N::f(int)::string literal
+# 
+--format=gnu-v3
+_Z1fPFvvEM1SFvvE
+f(void (*)(), void (S::*)())
+#
+--format=gnu-v3
+_ZN1N1TIiiE2mfES0_IddE
+N::T<int, int>::mf(N::T<double, double>)
+# 
+--format=gnu-v3
+_ZSt5state
+std::state
+# 
+--format=gnu-v3
+_ZNSt3_In4wardE
+std::_In::ward
+#
+--format=gnu-v3
+_Z1fKPFiiE
+f(int (* const)(int))
+#
+--format=gnu-v3
+_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i
+f(int[sizeof(N::A::f() const::foo)])
+#
+--format=gnu-v3
+_Z1fA37_iPS_
+f(int[37], int (*) [37])
+#
+--format=gnu-v3
+_Z1fM1AFivEPS0_
+f(int (A::*)(), int (*)())
+#
+--format=gnu-v3
+_Z1fPFPA1_ivE
+f(int (*(*)()) [1])
+#
+--format=gnu-v3
+_Z1fPKM1AFivE
+f(int (A::* const*)())
+#
+--format=gnu-v3
+_Z1jM1AFivEPS1_
+j(int (A::*)(), int (A::**)())
+#
+--format=gnu-v3
+_Z1sPA37_iPS0_
+s(int (*) [37], int (**) [37])
+#
+--format=gnu-v3
+_Z3fooA30_A_i
+foo(int[30][])
+#
+--format=gnu-v3
+_Z3kooPA28_A30_i
+koo(int (*) [28][30])
+#
+--format=gnu-v3
+_ZlsRKU3fooU4bart1XS0_
+operator<<(X bart foo const&, X bart)
+#
+--format=gnu-v3
+_ZlsRKU3fooU4bart1XS2_
+operator<<(X bart foo const&, X bart foo const)
+#
+--format=gnu-v3
+_Z1fM1AKFivE
+f(int (A::*)() const)
+#
+--format=gnu-v3
+_Z3absILi11EEvv
+void abs<11>()
+#
+--format=gnu-v3
+_ZN1AIfEcvT_IiEEv
+A<float>::operator int<int>()
+#
+--format=gnu-v3
+_ZN12libcw_app_ct10add_optionIS_EEvMT_FvPKcES3_cS3_S3_
+void libcw_app_ct::add_option<libcw_app_ct>(void (libcw_app_ct::*)(char const*), char const*, char, char const*, char const*)
+#
+--format=gnu-v3
+_ZGVN5libcw24_GLOBAL__N_cbll.cc0ZhUKa23compiler_bug_workaroundISt6vectorINS_13omanip_id_tctINS_5debug32memblk_types_manipulator_data_ctEEESaIS6_EEE3idsE
+guard variable for libcw::(anonymous namespace)::compiler_bug_workaround<std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct>, std::allocator<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > > >::ids
+#
+--format=gnu-v3
+_ZN5libcw5debug13cwprint_usingINS_9_private_12GlobalObjectEEENS0_17cwprint_using_tctIT_EERKS5_MS5_KFvRSt7ostreamE
+libcw::debug::cwprint_using_tct<libcw::_private_::GlobalObject> libcw::debug::cwprint_using<libcw::_private_::GlobalObject>(libcw::_private_::GlobalObject const&, void (libcw::_private_::GlobalObject::*)(std::ostream&) const)
+#
+--format=gnu-v3
+_ZNKSt14priority_queueIP27timer_event_request_base_ctSt5dequeIS1_SaIS1_EE13timer_greaterE3topEv
+std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*, std::allocator<timer_event_request_base_ct*> >, timer_greater>::top() const
+#
+--format=gnu-v3
+_ZNKSt15_Deque_iteratorIP15memory_block_stRKS1_PS2_EeqERKS5_
+std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*>::operator==(std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*> const&) const
+#
+--format=gnu-v3
+_ZNKSt17__normal_iteratorIPK6optionSt6vectorIS0_SaIS0_EEEmiERKS6_
+std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > >::operator-(std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > > const&) const
+#
+--format=gnu-v3
+_ZNSbIcSt11char_traitsIcEN5libcw5debug27no_alloc_checking_allocatorEE12_S_constructIPcEES6_T_S7_RKS3_
+char* std::basic_string<char, std::char_traits<char>, libcw::debug::no_alloc_checking_allocator>::_S_construct<char*>(char*, char*, libcw::debug::no_alloc_checking_allocator const&)
+#
+--format=gnu-v3
+_Z1fI1APS0_PKS0_EvT_T0_T1_PA4_S3_M1CS8_
+void f<A, A*, A const*>(A, A*, A const*, A const* (*) [4], A const* (* C::*) [4])
+#
+--format=gnu-v3
+_Z3fooiPiPS_PS0_PS1_PS2_PS3_PS4_PS5_PS6_PS7_PS8_PS9_PSA_PSB_PSC_
+foo(int, int*, int**, int***, int****, int*****, int******, int*******, int********, int*********, int**********, int***********, int************, int*************, int**************, int***************)
+#
+--format=gnu-v3
+_ZSt1BISt1DIP1ARKS2_PS3_ES0_IS2_RS2_PS2_ES2_ET0_T_SB_SA_PT1_
+std::D<A*, A*&, A**> std::B<std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A*>(std::D<A*, A* const&, A* const*>, std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A**)
+#
+--format=gnu-v3
+_X11TransParseAddress
+_X11TransParseAddress
+#
+--format=gnu-v3
+_ZNSt13_Alloc_traitsISbIcSt18string_char_traitsIcEN5libcw5debug9_private_17allocator_adaptorIcSt24__default_alloc_templateILb0ELi327664EELb1EEEENS5_IS9_S7_Lb1EEEE15_S_instancelessE
+std::_Alloc_traits<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, libcw::debug::_private_::allocator_adaptor<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, std::__default_alloc_template<false, 327664>, true> >::_S_instanceless
+#
+--format=gnu-v3
+_GLOBAL__I__Z2fnv
+global constructors keyed to fn()
+#
+--format=gnu-v3
+_Z1rM1GFivEMS_KFivES_M1HFivES1_4whatIKS_E5what2IS8_ES3_
+r(int (G::*)(), int (G::*)() const, G, int (H::*)(), int (G::*)(), what<G const>, what2<G const>, int (G::*)() const)
 # 
 # This caused an infinite loop.
 # We still don't demangle this correctly, but at least we don't hang.
 --format=auto
 __CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm__7_Z1ZZ2Z8iterator
-_Z1ZZ2Z::__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm(iterator)
+__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm__7_Z1ZZ2Z8iterator
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index b112aae..d0806c4 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,26 @@
+2003-06-23  H.J. Lu <hongjiu.lu@intel.com>
+
+	* i386-dis.c (PNI_Fixup): New. Fix up "mwait" and "monitor" in
+	Intel Precott New Instructions.
+	(PREGRP27): New. Added for "addsubpd" and "addsubps".
+	(PREGRP28): New. Added for "haddpd" and "haddps".
+	(PREGRP29): New. Added for "hsubpd" and "hsubps".
+	(PREGRP30): New. Added for "movsldup" and "movddup".
+	(PREGRP31): New. Added for "movshdup" and "movhpd".
+	(PREGRP32): New. Added for "lddqu".
+	(dis386_twobyte): Use PREGRP30 to replace the "movlpX" entry.
+	Use PREGRP31 to replace the "movhpX" entry. Use PREGRP28 for
+	entry 0x7c. Use PREGRP29 for entry 0x7d. Use PREGRP27 for
+	entry 0xd0. Use PREGRP32 for entry 0xf0.
+	(twobyte_has_modrm): Updated.
+	(twobyte_uses_SSE_prefix): Likewise.
+	(grps): Use PNI_Fixup in the "sidtQ" entry.
+	(prefix_user_table): Add PREGRP27, PREGRP28, PREGRP29, PREGRP30,
+	PREGRP31 and PREGRP32.
+	(float_mem): Use "fisttp{l||l|}" in entry 1 in opcode 0xdb.
+	Use "fisttpll" in entry 1 in opcode 0xdd.
+	Use "fisttp" in entry 1 in opcode 0xdf.
+
 2003-06-19  Christian Groessler  <chris@groessler.org>
 
 	* z8k-dis.c (instr_data_s): Change tabl_index from long to int.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index be78e83..7c03205 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -93,6 +93,7 @@
 static void OP_3DNowSuffix PARAMS ((int, int));
 static void OP_SIMD_Suffix PARAMS ((int, int));
 static void SIMD_Fixup PARAMS ((int, int));
+static void PNI_Fixup PARAMS ((int, int));
 static void BadOp PARAMS ((void));
 
 struct dis_private {
@@ -417,6 +418,12 @@
 #define PREGRP24  NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 24, NULL, 0
 #define PREGRP25  NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 25, NULL, 0
 #define PREGRP26  NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 26, NULL, 0
+#define PREGRP27  NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 27, NULL, 0
+#define PREGRP28  NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 28, NULL, 0
+#define PREGRP29  NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 29, NULL, 0
+#define PREGRP30  NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 30, NULL, 0
+#define PREGRP31  NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 31, NULL, 0
+#define PREGRP32  NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 32, NULL, 0
 
 #define X86_64_0  NULL, NULL, X86_64_SPECIAL, NULL,  0, NULL, 0
 
@@ -776,11 +783,11 @@
   /* 10 */
   { PREGRP8 },
   { PREGRP9 },
-  { "movlpX",		XM, EX, SIMD_Fixup, 'h' }, /* really only 2 operands */
+  { PREGRP30 },
   { "movlpX",		EX, XM, SIMD_Fixup, 'h' },
   { "unpcklpX",		XM, EX, XX },
   { "unpckhpX",		XM, EX, XX },
-  { "movhpX",		XM, EX, SIMD_Fixup, 'l' },
+  { PREGRP31 },
   { "movhpX",		EX, XM, SIMD_Fixup, 'l' },
   /* 18 */
   { GRP14 },
@@ -895,8 +902,8 @@
   { "(bad)",		XX, XX, XX },
   { "(bad)",		XX, XX, XX },
   { "(bad)",		XX, XX, XX },
-  { "(bad)",		XX, XX, XX },
-  { "(bad)",		XX, XX, XX },
+  { PREGRP28 },
+  { PREGRP29 },
   { PREGRP23 },
   { PREGRP20 },
   /* 80 */
@@ -990,7 +997,7 @@
   { "bswap",		RMeSI, XX, XX },
   { "bswap",		RMeDI, XX, XX },
   /* d0 */
-  { "(bad)",		XX, XX, XX },
+  { PREGRP27 },
   { "psrlw",		MX, EM, XX },
   { "psrld",		MX, EM, XX },
   { "psrlq",		MX, EM, XX },
@@ -1026,7 +1033,7 @@
   { "pmaxsw",		MX, EM, XX },
   { "pxor",		MX, EM, XX },
   /* f0 */
-  { "(bad)",		XX, XX, XX },
+  { PREGRP32 },
   { "psllw",		MX, EM, XX },
   { "pslld",		MX, EM, XX },
   { "psllq",		MX, EM, XX },
@@ -1078,15 +1085,15 @@
   /* 40 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 4f */
   /* 50 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 5f */
   /* 60 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 6f */
-  /* 70 */ 1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1, /* 7f */
+  /* 70 */ 1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1, /* 7f */
   /* 80 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 8f */
   /* 90 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 9f */
   /* a0 */ 0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1, /* af */
   /* b0 */ 1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1, /* bf */
   /* c0 */ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, /* cf */
-  /* d0 */ 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* df */
+  /* d0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* df */
   /* e0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ef */
-  /* f0 */ 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0  /* ff */
+  /* f0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0  /* ff */
   /*       -------------------------------        */
   /*       0 1 2 3 4 5 6 7 8 9 a b c d e f        */
 };
@@ -1095,21 +1102,21 @@
   /*       0 1 2 3 4 5 6 7 8 9 a b c d e f        */
   /*       -------------------------------        */
   /* 00 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0f */
-  /* 10 */ 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 1f */
+  /* 10 */ 1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0, /* 1f */
   /* 20 */ 0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0, /* 2f */
   /* 30 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 3f */
   /* 40 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 4f */
   /* 50 */ 0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1, /* 5f */
   /* 60 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1, /* 6f */
-  /* 70 */ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, /* 7f */
+  /* 70 */ 1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, /* 7f */
   /* 80 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 8f */
   /* 90 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 9f */
   /* a0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* af */
   /* b0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* bf */
   /* c0 */ 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, /* cf */
-  /* d0 */ 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, /* df */
+  /* d0 */ 1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, /* df */
   /* e0 */ 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, /* ef */
-  /* f0 */ 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0  /* ff */
+  /* f0 */ 1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0  /* ff */
   /*       -------------------------------        */
   /*       0 1 2 3 4 5 6 7 8 9 a b c d e f        */
 };
@@ -1349,7 +1356,7 @@
   /* GRP7 */
   {
     { "sgdtQ",	 M, XX, XX },
-    { "sidtQ",	 M, XX, XX },
+    { "sidtQ", PNI_Fixup, 0, XX, XX },
     { "lgdtQ",	 M, XX, XX },
     { "lidtQ",	 M, XX, XX },
     { "smswQ",	Ev, XX, XX },
@@ -1638,6 +1645,48 @@
     { "punpcklqdq", XM, EX, XX },
     { "(bad)", XM, EX, XX },
   },
+  /* PREGRP27 */
+  {
+    { "(bad)", MX, EX, XX },
+    { "(bad)", XM, EX, XX },
+    { "addsubpd", XM, EX, XX },
+    { "addsubps", XM, EX, XX },
+  },
+  /* PREGRP28 */
+  {
+    { "(bad)", MX, EX, XX },
+    { "(bad)", XM, EX, XX },
+    { "haddpd", XM, EX, XX },
+    { "haddps", XM, EX, XX },
+  },
+  /* PREGRP29 */
+  {
+    { "(bad)", MX, EX, XX },
+    { "(bad)", XM, EX, XX },
+    { "hsubpd", XM, EX, XX },
+    { "hsubps", XM, EX, XX },
+  },
+  /* PREGRP30 */
+  {
+    { "movlpX", XM, EX, SIMD_Fixup, 'h' }, /* really only 2 operands */
+    { "movsldup", XM, EX, XX },
+    { "movlpd", XM, EX, XX },
+    { "movddup", XM, EX, XX },
+  },
+  /* PREGRP31 */
+  {
+    { "movhpX", XM, EX, SIMD_Fixup, 'l' },
+    { "movshdup", XM, EX, XX },
+    { "movhpd", XM, EX, XX },
+    { "(bad)", XM, EX, XX },
+  },
+  /* PREGRP32 */
+  {
+    { "(bad)", XM, EX, XX },
+    { "(bad)", XM, EX, XX },
+    { "(bad)", XM, EX, XX },
+    { "lddqu", XM, M, XX },
+  },
 };
 
 static const struct dis386 x86_64_table[][2] = {
@@ -2294,7 +2343,7 @@
   "fidivr{l||l|}",
   /* db */
   "fild{l||l|}",
-  "(bad)",
+  "fisttp{l||l|}",
   "fist{l||l|}",
   "fistp{l||l|}",
   "(bad)",
@@ -2312,7 +2361,7 @@
   "fdivr{l||l|}",
   /* dd */
   "fld{l||l|}",
-  "(bad)",
+  "fisttpll",
   "fst{l||l|}",
   "fstp{l||l|}",
   "frstor",
@@ -2330,7 +2379,7 @@
   "fidivr",
   /* df */
   "fild",
-  "(bad)",
+  "fisttp",
   "fist",
   "fistp",
   "fbld",
@@ -4138,6 +4187,33 @@
 }
 
 static void
+PNI_Fixup (extrachar, sizeflag)
+     int extrachar ATTRIBUTE_UNUSED;
+     int sizeflag ATTRIBUTE_UNUSED;
+{
+  if (mod == 3 && reg == 1)
+    {
+      char *p = obuf + strlen (obuf);
+
+      /* Override "sidt".  */
+      if (rm)
+	{
+	  /* mwait %eax,%ecx  */
+	  strcpy (p - 4, "mwait   %eax,%ecx");
+	}
+      else
+	{
+	  /* monitor %eax,%ecx,%edx"  */
+	  strcpy (p - 4, "monitor %eax,%ecx,%edx");
+	}
+
+      codep++;
+    }
+  else
+    OP_E (0, sizeflag);
+}
+
+static void
 BadOp (void)
 {
   /* Throw away prefixes and 1st. opcode byte.  */
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index 9417d32..c7172f9 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-23  Michael Snyder  <msnyder@redhat.com>
+
+	* nrun.c (main): Delete h8/300 ifdef (sim now handles signals).
+	* sim-reg.c: Fix cut-and-paste bug in comment.
+
 2003-06-22  Andrew Cagney  <cagney@redhat.com>
 
 	From matthew green <mrg@redhat.com>:
diff --git a/sim/common/nrun.c b/sim/common/nrun.c
index 7c77f5c..8dfa946 100644
--- a/sim/common/nrun.c
+++ b/sim/common/nrun.c
@@ -176,11 +176,6 @@
      the signal that the simulator received; we want to return that to
      indicate failure.  */
   
-#ifdef SIM_H8300 /* FIXME: Ugh.  grep for SLEEP in compile.c  */
-  if (sigrc == SIGILL)
-    abort ();
-  sigrc = 0;
-#else
   /* Why did we stop? */
   switch (reason)
     {
@@ -198,7 +193,6 @@
       break;
 
     }
-#endif
 
   return sigrc;
 }
diff --git a/sim/common/sim-reg.c b/sim/common/sim-reg.c
index 3f3dc41..75cfb0a 100644
--- a/sim/common/sim-reg.c
+++ b/sim/common/sim-reg.c
@@ -36,8 +36,8 @@
   return (* CPU_REG_FETCH (cpu)) (cpu, rn, buf, length);
 }
 
-/* Generic implementation of sim_fetch_register for simulators using
-   CPU_REG_FETCH.
+/* Generic implementation of sim_store_register for simulators using
+   CPU_REG_STORE.
    The contents of BUF are in target byte order.  */
 /* ??? Obviously the interface needs to be extended to handle multiple
    cpus.  */