elf32-m68k.o \
        elf32-m88k.o \
        elf32-mips.o \
-       elf32-powerpc.o \
+       elf32-ppc.o \
        elf32-sparc.o \
        elf32.o \
        hp300hpux.o \
        nlm32-i386.o \
        nlm32-sparc.o \
        $(start-sanitize-powerpc-netware) \
-       nlm32-powerpc.o \
+       nlm32-ppc.o \
        $(end-sanitize-powerpc-netware) \
        nlm32.o \
        oasys.o \
         cpu-rs6000.c coff-h8300.c som.c cpu-hppa.c cpu-we32k.c reloc16.c \
         mipsbsd.c cpu-sh.c \
         elf.c elf32.c elf32-sparc.c elf32-i386.c elf32-i860.c elf32-m68k.c \
-        elf32-hppa.c elf32-m88k.c elf32-mips.c elf32-gen.c elf32-powerpc.c \
+        elf32-hppa.c elf32-m88k.c elf32-mips.c elf32-gen.c elf32-ppc.c \
         elf64.c elf64-gen.c \
         nlm.c nlm32.c nlm32-i386.c nlm32-sparc.c nlm32-alpha.c \
         nlm64.c coff-alpha.c cpu-alpha.c \
 stmp-bfd.h : $(srcdir)/bfd-in2.h Makefile
        rm -f bfd.h-new 64 ../include/bfd.h
        -grep BFD_HOST_64_BIT sysdep.h > 64
-       sed -e 's/@WORDSIZE@/$(WORDSIZE)/' -e '/64-bit.*sysdep.h/ r 64' < $(srcdir)/bfd-in2.h > bfd.h-new
+       sed -e 's/@WORDSIZE@/$(WORDSIZE)/' \
+           -e "s/@VERSION@/`cat $(srcdir)/VERSION`/" \
+           -e '/64-bit.*sysdep.h/ r 64' \
+               < $(srcdir)/bfd-in2.h \
+               > bfd.h-new
        $(srcdir)/../move-if-change bfd.h-new $(BFD_H)
        rm -f 64
        touch stmp-bfd.h
   elf32-target.h
 elf32-gen.o : elf32-gen.c libelf.h $(INCDIR)/elf/common.h \
   $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elf32-target.h
-elf32-powerpc.o : elf32-powerpc.c libelf.h $(INCDIR)/elf/common.h \
+elf32-ppc.o : elf32-ppc.c libelf.h $(INCDIR)/elf/common.h \
   $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h elf32-target.h
 elf64.o : elf64.c elfcode.h libelf.h $(INCDIR)/elf/common.h \
   $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h
 
 #include "ansidecl.h"
 #include "obstack.h"
 
-#define BFD_VERSION "2.2"
-
+/* These two lines get substitutions done by commands in Makefile.in.  */
+#define BFD_VERSION   "@VERSION@"
 #define BFD_ARCH_SIZE @WORDSIZE@
 
 #if BFD_ARCH_SIZE >= 64
 CAT(NAME,_set_section_contents),\
 CAT(NAME,_get_section_contents),\
 CAT(NAME,_new_section_hook),\
+CAT(NAME,_bfd_copy_private_section_data),\
+CAT(NAME,_bfd_copy_private_bfd_data),\
 CAT(NAME,_get_symtab_upper_bound),\
 CAT(NAME,_get_symtab),\
 CAT(NAME,_get_reloc_upper_bound),\
 CAT(NAME,_make_empty_symbol),\
 CAT(NAME,_print_symbol),\
 CAT(NAME,_get_symbol_info),\
+CAT(NAME,_bfd_is_local_label),\
 CAT(NAME,_get_lineno),\
 CAT(NAME,_set_arch_mach),\
 CAT(NAME,_openr_next_archived_file),\
  PARAMS ((bfd *abfd, asection *section, PTR location,
     file_ptr offset, bfd_size_type count));
 
+boolean 
+bfd_copy_private_section_data PARAMS ((bfd *ibfd, asection *isec, bfd *obfd, asection *osec));
+
+#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
+     BFD_SEND (ibfd, _bfd_copy_private_section_data, \
+               (ibfd, isection, obfd, osection))
 enum bfd_architecture 
 {
   bfd_arch_unknown,    /* File arch not known */
 } asymbol;
 #define get_symtab_upper_bound(abfd) \
      BFD_SEND (abfd, _get_symtab_upper_bound, (abfd))
+boolean 
+bfd_is_local_label PARAMS ((bfd *abfd, asymbol *sym));
+
+#define bfd_is_local_label(abfd, sym) \
+     BFD_SEND (abfd, _bfd_is_local_label,(abfd, sym))
 #define bfd_canonicalize_symtab(abfd, location) \
      BFD_SEND (abfd, _bfd_canonicalize_symtab,\
                   (abfd, location))
 bfd_vma 
 bfd_scan_vma PARAMS ((CONST char *string, CONST char **end, int base));
 
+boolean 
+bfd_copy_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd));
+
+#define bfd_copy_private_bfd_data(ibfd, obfd) \
+     BFD_SEND (ibfd, _bfd_copy_private_bfd_data, \
+               (ibfd, obfd))
 #define bfd_sizeof_headers(abfd, reloc) \
      BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, reloc))
 
   boolean       (*_bfd_get_section_contents) PARAMS ((bfd *, sec_ptr, PTR, 
                                             file_ptr, bfd_size_type));
   boolean       (*_new_section_hook) PARAMS ((bfd *, sec_ptr));
+  boolean       (*_bfd_copy_private_section_data) PARAMS ((bfd *, sec_ptr,
+                                                       bfd *, sec_ptr));
+  boolean       (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *));
   unsigned int  (*_get_symtab_upper_bound) PARAMS ((bfd *));
   unsigned int  (*_bfd_canonicalize_symtab) PARAMS ((bfd *,
                                               struct symbol_cache_entry **));
                                       struct symbol_cache_entry *,
                                       symbol_info *));
 #define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e))
+  boolean       (*_bfd_is_local_label) PARAMS ((bfd *, asymbol *));
   alent *    (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *));
 
   boolean    (*_bfd_set_arch_mach) PARAMS ((bfd *, enum bfd_architecture,