Assorted code cleanup and fixes for hppa. Re-enable elf32-hppa as
authorAlan Modra <amodra@gmail.com>
Tue, 2 May 2000 00:12:52 +0000 (00:12 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 2 May 2000 00:12:52 +0000 (00:12 +0000)
it now compiles even if it doesn't work too well.

21 files changed:
bfd/ChangeLog
bfd/Makefile.am
bfd/Makefile.in
bfd/config.bfd
bfd/configure
bfd/configure.in
bfd/dep-in.sed
bfd/elf-hppa.h
bfd/elf32-hppa.c
bfd/libhppa.h
bfd/reloc.c
gas/ChangeLog
gas/config/obj-elf.h
gas/config/obj-ieee.h
gas/config/obj-som.h
gas/config/tc-hppa.c
gas/config/tc-hppa.h
gas/configure
gas/configure.in
gas/doc/Makefile.in
gas/frags.c

index 4cf7bde3b62831a9e8983c430993e3b7ce1c9256..e501a1510fca366ec9b3a14c4c8eb45cbe4b3823 100644 (file)
@@ -1,3 +1,81 @@
+2000-05-02  Alan Modra  <alan@linuxcare.com.au>
+
+       * config.bfd: Re-enable elf32-hppa.  It now compiles, even if it
+       doesn't work very well.
+
+       * elf-hppa.h (elf_hppa_internal_shdr): Define.
+       (elf_hppa_fake_sections): hdr is elf_hppa_internal_shdr.
+       Set hdr->s_type to 1 if ARCH_SIZE == 32.
+       (_bfd_elf_hppa_gen_reloc_type): Add prototype.
+       (elf_hppa_info_to_howto): Likewise.
+       (elf_hppa_info_to_howto_rel): Likewise.
+       (elf_hppa_reloc_type_lookup): Likewise.
+       (elf_hppa_is_local_label_name): Likewise.
+       (elf_hppa_fake_sections): Likewise.
+       (elf_hppa_final_write_processing): Likewise.
+       (elf_hppa_howto_table): Fully initialise all entries.
+       (_bfd_elf_hppa_gen_reloc_type): Add ATTRIBUTE_UNUSED to args.
+       (elf_hppa_info_to_howto): Likewise.
+       (elf_hppa_info_to_howto_rel): Likewise.
+       (elf_hppa_reloc_type_lookup): Likewise.
+       (elf_hppa_final_write_processing, elf_hppa_add_symbol_hook,
+       elf_hppa_unmark_useless_dynamic_symbols,
+       elf_hppa_remark_useless_dynamic_symbols,
+       elf_hppa_record_segment_addrs, elf_hppa_final_link,
+       elf_hppa_relocate_section, elf_hppa_final_link_relocate,
+       elf_hppa_relocate_insn): Compile only if ARCH_SIZE == 64 until
+       elf32-hppa.c mess is cleaned up.
+       (elf_hppa_final_link_relocate): Make insn and r_type unsigned
+       int.  Delete r_field.  In case R_PARISC_PCREL21L, don't set
+       r_field then call hppa_field_adjust inline func with variable
+       r_field arg, instead call hppa_field_adjust with fixed arg.
+       In case R_PARISC_PCREL22F, don't set r_field.
+       (elf_hppa_relocate_insn): Change args and return type to unsigned
+       int.  Call re_assemble_* funcs to do the work.
+
+       * elf32-hppa.c (hppa_elf_relocate_insn): Don't assume 32 bit when
+       sign extending.
+
+       * libhppa.h (HPPA_R_CONSTANT): Don't assume 32 bit when sign
+       extending.
+       (sign_extend): Mask first before sign extending.
+       (low_sign_extend): Rewrite without condition expression.
+       (ones, dis_assemble_3, dis_assemble_12, dis_assemble_16,
+       dis_assemble_17, dis_assemble_21, dis_assemble_22): Delete.
+       (assemble_3, assemble_6, assemble_12, assemble_16, assemble_16a,
+       assemble_17, assemble_21, sign_unext, low_sign_unext): Return
+       result as function return value rather than through pointer arg.
+       Accept unsigned int args, and return unsigned int.
+       (re_assemble_3): New.  Combines function of dis_assemble_3 with
+       re-assembly of opcode and immediate.
+       (re_assemble_12): Likewise.
+       (re_assemble_16): Likewise.
+       (re_assemble_17): Likewise.
+       (re_assemble_21): Likewise.
+       (re_assemble_22): Likewise.
+       (hppa_field_adjust): Rewrite and document, paying attention to
+       size of types and signed/unsigned issues.
+       (get_opcode): Shift before masking.
+       (FDLW): Rename to FLDW.
+       (bfd_hppa_insn2fmt): Change arg to unsigned int.  Delete fmt.
+       (hppa_rebuild_insn): Change args and return value to unsigned
+       int.  Make use of re_assemble_*.  Correct case 11.
+       
+       * dep-in.sed: Handle ../opcodes/.
+       * Makefile.am (SOURCE_HFILES): Add elf-hppa.h, elf32-hppa.h,
+       elf64-hppa.h, hppa_stubs.h, xcoff.h.
+       (BFD32_BACKENDS_CFILES): Restore elf32-hppa.c.
+       Remove elf64-hppa.lo, cpu-ia64.lo, elf64-ia64.lo, elfarm-oabi.lo,
+       elfarm-nabi.lo dependencies outside of auto-dependency area.
+       Regenerate dependencies.
+       * Makefile.in: Regenerate.
+
+       * configure.in (TRAD_HEADER): Test non-null before
+       AC_DEFINE_UNQUOTED.
+       * configure: Regenerate.
+
+       * reloc.c: Fix mis-spelling in comment.
+
 2000-05-01  Alan Modra  <alan@linuxcare.com.au>
 
        * coff-sh.c (bfd_coff_small_swap_table): Fix Fri Apr 28 change.
index f10730aa58ca2e6e9bad16a39d313cddf1904d64..3cde717b437464118276d7141987c0c0569fa28b 100644 (file)
@@ -303,6 +303,7 @@ BFD32_BACKENDS_CFILES = \
        elf32-d30v.c \
        elf32-fr30.c \
        elf32-gen.c \
+       elf32-hppa.c \
        elf32-i370.c \
        elf32-i386.c \
        elf32-i860.c \
@@ -455,12 +456,12 @@ CFILES = \
 
 ## This is a list of all .h files which are in the source tree.
 SOURCE_HFILES = \
-       aout-target.h aoutf1.h aoutx.h coffcode.h coffswap.h \
-       ecoffswap.h elf32-arm.h elfcode.h elfcore.h \
-       elflink.h freebsd.h genlink.h go32stub.h libaout.h \
-       libbfd.h libcoff.h libecoff.h elf-bfd.h libhppa.h libieee.h \
-       libnlm.h liboasys.h libpei.h netbsd.h nlm-target.h nlmcode.h \
-       nlmswap.h ns32k.h peicode.h som.h vms.h
+       aout-target.h aoutf1.h aoutx.h coffcode.h coffswap.h ecoffswap.h \
+       elf-bfd.h elf-hppa.h elf32-arm.h elf32-hppa.h elf64-hppa.h \
+       elfcode.h elfcore.h elflink.h freebsd.h genlink.h go32stub.h \
+       hppa_stubs.h libaout.h libbfd.h libcoff.h libecoff.h libhppa.h \
+       libieee.h libnlm.h liboasys.h libpei.h netbsd.h nlm-target.h \
+       nlmcode.h nlmswap.h ns32k.h peicode.h som.h vms.h xcoff.h
 
 HFILES = \
        elf32-target.h elf64-target.h targmatch.h \
@@ -662,23 +663,6 @@ config.status: $(srcdir)/configure $(srcdir)/config.bfd $(srcdir)/configure.host
        $(SHELL) ./config.status --recheck
 
 
-elf64-hppa.lo: elf64-hppa.c elf64-hppa.h elf-bfd.h  \
-  $(INCDIR)/elf/hppa.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
-  $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/reloc-macros.h \
-  elf64-target.h
-cpu-ia64.lo: cpu-ia64.c cpu-ia64-opc.c $(srcdir)/../opcodes/ia64-opc.h
-elf64-ia64.lo: elf64-ia64.c elf-bfd.h $(INCDIR)/opcode/ia64.h \
-  $(INCDIR)/elf/ia64.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
-  $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/reloc-macros.h \
-  elf64-target.h
-elfarm-oabi.lo: elfarm-oabi.c elf32-arm.h elf-bfd.h $(INCDIR)/elf/common.h \
-  $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
-  $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
-
-elfarm-nabi.lo: elfarm-nabi.c elf32-arm.h elf-bfd.h $(INCDIR)/elf/common.h \
-  $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
-  $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
-
 # What appears below is generated by a hacked mkdep using gcc -MM.
 
 # DO NOT DELETE THIS LINE -- mkdep uses it.
@@ -722,6 +706,8 @@ cpu-fr30.lo: cpu-fr30.c
 cpu-h8300.lo: cpu-h8300.c
 cpu-h8500.lo: cpu-h8500.c
 cpu-hppa.lo: cpu-hppa.c
+cpu-ia64.lo: cpu-ia64.c cpu-ia64-opc.c $(srcdir)/../opcodes/ia64-opc.h \
+  $(INCDIR)/opcode/ia64.h
 cpu-i370.lo: cpu-i370.c
 cpu-i386.lo: cpu-i386.c
 cpu-i860.lo: cpu-i860.c
@@ -814,16 +800,12 @@ coff-mips.lo: coff-mips.c $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \
   $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h \
   $(INCDIR)/coff/mips.h libcoff.h libecoff.h coffswap.h \
   ecoffswap.h
-coff-pmac.lo: coff-pmac.c coff-rs6000.c xcoff.h $(INCDIR)/coff/internal.h \
+coff-pmac.lo: coff-pmac.c $(INCDIR)/coff/internal.h \
   $(INCDIR)/coff/rs6000.h libcoff.h $(INCDIR)/bfdlink.h \
-  coffcode.h coffswap.h
-coff-rs6000.lo: coff-rs6000.c xcoff.h $(INCDIR)/coff/internal.h \
+  xcoff.h coffcode.h coffswap.h
+coff-rs6000.lo: coff-rs6000.c $(INCDIR)/coff/internal.h \
   $(INCDIR)/coff/rs6000.h libcoff.h $(INCDIR)/bfdlink.h \
-  coffcode.h coffswap.h
-coff64-rs6000.lo: coff64-rs6000.c coff-rs6000.c xcoff.h \
-  $(INCDIR)/coff/internal.h \
-  $(INCDIR)/coff/rs6000.h libcoff.h $(INCDIR)/bfdlink.h \
-  coffcode.h coffswap.h
+  xcoff.h coffcode.h coffswap.h
 coff-sh.lo: coff-sh.c $(INCDIR)/bfdlink.h $(INCDIR)/coff/sh.h \
   $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h
 coff-sparc.lo: coff-sparc.c $(INCDIR)/coff/sparc.h \
@@ -898,6 +880,10 @@ elf32-fr30.lo: elf32-fr30.c elf-bfd.h $(INCDIR)/elf/common.h \
 elf32-gen.lo: elf32-gen.c elf-bfd.h $(INCDIR)/elf/common.h \
   $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
   elf32-target.h
+elf32-hppa.lo: elf32-hppa.c elf-bfd.h $(INCDIR)/elf/common.h \
+  $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
+  $(INCDIR)/elf/hppa.h $(INCDIR)/elf/reloc-macros.h libhppa.h \
+  elf32-hppa.h elf-hppa.h hppa_stubs.h elf32-target.h
 elf32-i370.lo: elf32-i370.c $(INCDIR)/bfdlink.h elf-bfd.h \
   $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
   $(INCDIR)/elf/i370.h elf32-target.h
@@ -1117,7 +1103,11 @@ coff-alpha.lo: coff-alpha.c $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \
   $(INCDIR)/coff/alpha.h $(INCDIR)/aout/ar.h libcoff.h \
   libecoff.h coffswap.h ecoffswap.h
 coff-ia64.lo: coff-ia64.c $(INCDIR)/coff/ia64.h $(INCDIR)/coff/internal.h \
-  $(INCDIR)/coff/pe.h libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
+  $(INCDIR)/coff/pe.h libcoff.h $(INCDIR)/bfdlink.h coffcode.h \
+  coffswap.h
+coff64-rs6000.lo: coff64-rs6000.c $(INCDIR)/coff/internal.h \
+  $(INCDIR)/coff/rs6k64.h libcoff.h $(INCDIR)/bfdlink.h \
+  xcoff.h coffcode.h coffswap.h
 demo64.lo: demo64.c aoutf1.h $(INCDIR)/aout/sun4.h \
   libaout.h $(INCDIR)/bfdlink.h $(INCDIR)/aout/aout64.h \
   $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h \
@@ -1128,6 +1118,14 @@ elf64-alpha.lo: elf64-alpha.c elf-bfd.h $(INCDIR)/elf/common.h \
   $(INCDIR)/coff/internal.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \
   $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/alpha.h $(INCDIR)/aout/ar.h \
   libcoff.h libecoff.h ecoffswap.h elf64-target.h
+elf64-hppa.lo: elf64-hppa.c elf-bfd.h $(INCDIR)/elf/common.h \
+  $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
+  $(INCDIR)/elf/hppa.h $(INCDIR)/elf/reloc-macros.h libhppa.h \
+  elf64-hppa.h elf-hppa.h elf64-target.h
+elf64-ia64.lo: elf64-ia64.c elf-bfd.h $(INCDIR)/elf/common.h \
+  $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
+  $(INCDIR)/opcode/ia64.h $(INCDIR)/elf/ia64.h $(INCDIR)/elf/reloc-macros.h \
+  elf64-target.h
 elf64-gen.lo: elf64-gen.c elf-bfd.h $(INCDIR)/elf/common.h \
   $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
   elf64-target.h
index babcb1c0d09090ff33e02c53898ed4ac35bed4d4..79a9812890d32d84a7efe80fbc3b69c878570264 100644 (file)
@@ -421,6 +421,7 @@ BFD32_BACKENDS_CFILES = \
        elf32-d30v.c \
        elf32-fr30.c \
        elf32-gen.c \
+       elf32-hppa.c \
        elf32-i370.c \
        elf32-i386.c \
        elf32-i860.c \
@@ -578,12 +579,12 @@ CFILES = \
 
 
 SOURCE_HFILES = \
-       aout-target.h aoutf1.h aoutx.h coffcode.h coffswap.h \
-       ecoffswap.h elf32-arm.h elfcode.h elfcore.h \
-       elflink.h freebsd.h genlink.h go32stub.h libaout.h \
-       libbfd.h libcoff.h libecoff.h elf-bfd.h libhppa.h libieee.h \
-       libnlm.h liboasys.h libpei.h netbsd.h nlm-target.h nlmcode.h \
-       nlmswap.h ns32k.h peicode.h som.h vms.h
+       aout-target.h aoutf1.h aoutx.h coffcode.h coffswap.h ecoffswap.h \
+       elf-bfd.h elf-hppa.h elf32-arm.h elf32-hppa.h elf64-hppa.h \
+       elfcode.h elfcore.h elflink.h freebsd.h genlink.h go32stub.h \
+       hppa_stubs.h libaout.h libbfd.h libcoff.h libecoff.h libhppa.h \
+       libieee.h libnlm.h liboasys.h libpei.h netbsd.h nlm-target.h \
+       nlmcode.h nlmswap.h ns32k.h peicode.h som.h vms.h xcoff.h
 
 
 HFILES = \
@@ -1190,23 +1191,6 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES)
 config.status: $(srcdir)/configure $(srcdir)/config.bfd $(srcdir)/configure.host
        $(SHELL) ./config.status --recheck
 
-elf64-hppa.lo: elf64-hppa.c elf64-hppa.h elf-bfd.h  \
-  $(INCDIR)/elf/hppa.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
-  $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/reloc-macros.h \
-  elf64-target.h
-cpu-ia64.lo: cpu-ia64.c cpu-ia64-opc.c $(srcdir)/../opcodes/ia64-opc.h
-elf64-ia64.lo: elf64-ia64.c elf-bfd.h $(INCDIR)/opcode/ia64.h \
-  $(INCDIR)/elf/ia64.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
-  $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/reloc-macros.h \
-  elf64-target.h
-elfarm-oabi.lo: elfarm-oabi.c elf32-arm.h elf-bfd.h $(INCDIR)/elf/common.h \
-  $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
-  $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
-
-elfarm-nabi.lo: elfarm-nabi.c elf32-arm.h elf-bfd.h $(INCDIR)/elf/common.h \
-  $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
-  $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
-
 # What appears below is generated by a hacked mkdep using gcc -MM.
 
 # DO NOT DELETE THIS LINE -- mkdep uses it.
@@ -1250,6 +1234,8 @@ cpu-fr30.lo: cpu-fr30.c
 cpu-h8300.lo: cpu-h8300.c
 cpu-h8500.lo: cpu-h8500.c
 cpu-hppa.lo: cpu-hppa.c
+cpu-ia64.lo: cpu-ia64.c cpu-ia64-opc.c $(srcdir)/../opcodes/ia64-opc.h \
+  $(INCDIR)/opcode/ia64.h
 cpu-i370.lo: cpu-i370.c
 cpu-i386.lo: cpu-i386.c
 cpu-i860.lo: cpu-i860.c
@@ -1342,16 +1328,12 @@ coff-mips.lo: coff-mips.c $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \
   $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h \
   $(INCDIR)/coff/mips.h libcoff.h libecoff.h coffswap.h \
   ecoffswap.h
-coff-pmac.lo: coff-pmac.c coff-rs6000.c xcoff.h $(INCDIR)/coff/internal.h \
+coff-pmac.lo: coff-pmac.c $(INCDIR)/coff/internal.h \
   $(INCDIR)/coff/rs6000.h libcoff.h $(INCDIR)/bfdlink.h \
-  coffcode.h coffswap.h
-coff-rs6000.lo: coff-rs6000.c xcoff.h $(INCDIR)/coff/internal.h \
+  xcoff.h coffcode.h coffswap.h
+coff-rs6000.lo: coff-rs6000.c $(INCDIR)/coff/internal.h \
   $(INCDIR)/coff/rs6000.h libcoff.h $(INCDIR)/bfdlink.h \
-  coffcode.h coffswap.h
-coff64-rs6000.lo: coff64-rs6000.c coff-rs6000.c xcoff.h \
-  $(INCDIR)/coff/internal.h \
-  $(INCDIR)/coff/rs6000.h libcoff.h $(INCDIR)/bfdlink.h \
-  coffcode.h coffswap.h
+  xcoff.h coffcode.h coffswap.h
 coff-sh.lo: coff-sh.c $(INCDIR)/bfdlink.h $(INCDIR)/coff/sh.h \
   $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h
 coff-sparc.lo: coff-sparc.c $(INCDIR)/coff/sparc.h \
@@ -1426,6 +1408,10 @@ elf32-fr30.lo: elf32-fr30.c elf-bfd.h $(INCDIR)/elf/common.h \
 elf32-gen.lo: elf32-gen.c elf-bfd.h $(INCDIR)/elf/common.h \
   $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
   elf32-target.h
+elf32-hppa.lo: elf32-hppa.c elf-bfd.h $(INCDIR)/elf/common.h \
+  $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
+  $(INCDIR)/elf/hppa.h $(INCDIR)/elf/reloc-macros.h libhppa.h \
+  elf32-hppa.h elf-hppa.h hppa_stubs.h elf32-target.h
 elf32-i370.lo: elf32-i370.c $(INCDIR)/bfdlink.h elf-bfd.h \
   $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
   $(INCDIR)/elf/i370.h elf32-target.h
@@ -1645,7 +1631,11 @@ coff-alpha.lo: coff-alpha.c $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \
   $(INCDIR)/coff/alpha.h $(INCDIR)/aout/ar.h libcoff.h \
   libecoff.h coffswap.h ecoffswap.h
 coff-ia64.lo: coff-ia64.c $(INCDIR)/coff/ia64.h $(INCDIR)/coff/internal.h \
-  $(INCDIR)/coff/pe.h libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
+  $(INCDIR)/coff/pe.h libcoff.h $(INCDIR)/bfdlink.h coffcode.h \
+  coffswap.h
+coff64-rs6000.lo: coff64-rs6000.c $(INCDIR)/coff/internal.h \
+  $(INCDIR)/coff/rs6k64.h libcoff.h $(INCDIR)/bfdlink.h \
+  xcoff.h coffcode.h coffswap.h
 demo64.lo: demo64.c aoutf1.h $(INCDIR)/aout/sun4.h \
   libaout.h $(INCDIR)/bfdlink.h $(INCDIR)/aout/aout64.h \
   $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h \
@@ -1656,6 +1646,14 @@ elf64-alpha.lo: elf64-alpha.c elf-bfd.h $(INCDIR)/elf/common.h \
   $(INCDIR)/coff/internal.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \
   $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/alpha.h $(INCDIR)/aout/ar.h \
   libcoff.h libecoff.h ecoffswap.h elf64-target.h
+elf64-hppa.lo: elf64-hppa.c elf-bfd.h $(INCDIR)/elf/common.h \
+  $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
+  $(INCDIR)/elf/hppa.h $(INCDIR)/elf/reloc-macros.h libhppa.h \
+  elf64-hppa.h elf-hppa.h elf64-target.h
+elf64-ia64.lo: elf64-ia64.c elf-bfd.h $(INCDIR)/elf/common.h \
+  $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
+  $(INCDIR)/opcode/ia64.h $(INCDIR)/elf/ia64.h $(INCDIR)/elf/reloc-macros.h \
+  elf64-target.h
 elf64-gen.lo: elf64-gen.c elf-bfd.h $(INCDIR)/elf/common.h \
   $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
   elf64-target.h
index 33985369df5e310bc9547fa4d22862fd9d730eed..0266ca20643e76f22dce07d3e5531697b0f4b34f 100644 (file)
@@ -224,11 +224,9 @@ case "${targ}" in
     targ_underscore=yes
     ;;
 
-#if 0 /* HPPA ELF does not work currently.  */
   hppa*-*-*elf* | hppa*-*-linux-gnu* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems*)
     targ_defvec=bfd_elf32_hppa_vec
     ;;
-#endif
 #if 0
 #ifdef BFD64 
   # Do not enable this until we've settled the configury issues
@@ -242,18 +240,14 @@ case "${targ}" in
 #if defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) || defined (HOST_HPPAMPEIX)
   hppa*-*-bsd*)
     targ_defvec=som_vec
-#if 0 /* HPPA ELF does not work currently.  */
     targ_selvecs=bfd_elf32_hppa_vec
-#endif
     ;;
   hppa*-*-hpux* | hppa*-*-hiux* | hppa*-*-mpeix*)
     targ_defvec=som_vec
     ;;
   hppa*-*-osf*)
     targ_defvec=som_vec
-#if 0 /* HPPA ELF does not work currently.  */
     targ_selvecs=bfd_elf32_hppa_vec
-#endif
     ;;
 #endif /* defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) */
 
index 9f1425e088d8e944a214b0f228ce16c3a6287cef..49098fe1b164fcd4dda723b3533c800d2d6d8e37 100755 (executable)
@@ -55,6 +55,7 @@ program_suffix=NONE
 program_transform_name=s,x,x,
 silent=
 site=
+sitefile=
 srcdir=
 target=NONE
 verbose=
@@ -169,6 +170,7 @@ Configuration:
   --help                  print this message
   --no-create             do not create output files
   --quiet, --silent       do not print \`checking...' messages
+  --site-file=FILE        use FILE as the site file
   --version               print the version of autoconf that created configure
 Directory and file names:
   --prefix=PREFIX         install architecture-independent files in PREFIX
@@ -339,6 +341,11 @@ EOF
   -site=* | --site=* | --sit=*)
     site="$ac_optarg" ;;
 
+  -site-file | --site-file | --site-fil | --site-fi | --site-f)
+    ac_prev=sitefile ;;
+  -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
+    sitefile="$ac_optarg" ;;
+
   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
     ac_prev=srcdir ;;
   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
@@ -504,12 +511,16 @@ fi
 srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
 
 # Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+if test -z "$sitefile"; then
+  if test -z "$CONFIG_SITE"; then
+    if test "x$prefix" != xNONE; then
+      CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+    else
+      CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+    fi
   fi
+else
+  CONFIG_SITE="$sitefile"
 fi
 for ac_site_file in $CONFIG_SITE; do
   if test -r "$ac_site_file"; then
@@ -596,7 +607,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:600: checking host system type" >&5
+echo "configure:611: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -617,7 +628,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$host" 1>&6
 
 echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:621: checking target system type" >&5
+echo "configure:632: checking target system type" >&5
 
 target_alias=$target
 case "$target_alias" in
@@ -635,7 +646,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$target" 1>&6
 
 echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:639: checking build system type" >&5
+echo "configure:650: checking build system type" >&5
 
 build_alias=$build
 case "$build_alias" in
@@ -660,7 +671,7 @@ test "$host_alias" != "$target_alias" &&
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:664: checking for $ac_word" >&5
+echo "configure:675: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -690,7 +701,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:694: checking for $ac_word" >&5
+echo "configure:705: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -741,7 +752,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:745: checking for $ac_word" >&5
+echo "configure:756: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -773,7 +784,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:777: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:788: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -784,12 +795,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 788 "configure"
+#line 799 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -815,12 +826,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:819: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:830: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:824: checking whether we are using GNU C" >&5
+echo "configure:835: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -829,7 +840,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:833: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:844: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -848,7 +859,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:852: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:863: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -880,7 +891,7 @@ else
 fi
 
 echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:884: checking for POSIXized ISC" >&5
+echo "configure:895: checking for POSIXized ISC" >&5
 if test -d /etc/conf/kconfig.d &&
   grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
 then
@@ -913,7 +924,7 @@ fi
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:917: checking for a BSD compatible install" >&5
+echo "configure:928: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -966,7 +977,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:970: checking whether build environment is sane" >&5
+echo "configure:981: checking whether build environment is sane" >&5
 # Just in case
 sleep 1
 echo timestamp > conftestfile
@@ -1023,7 +1034,7 @@ test "$program_suffix" != NONE &&
 test "$program_transform_name" = "" && program_transform_name="s,x,x,"
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1027: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1038: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1069,7 +1080,7 @@ EOF
 
 missing_dir=`cd $ac_aux_dir && pwd`
 echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:1073: checking for working aclocal" >&5
+echo "configure:1084: checking for working aclocal" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -1082,7 +1093,7 @@ else
 fi
 
 echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:1086: checking for working autoconf" >&5
+echo "configure:1097: checking for working autoconf" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -1095,7 +1106,7 @@ else
 fi
 
 echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:1099: checking for working automake" >&5
+echo "configure:1110: checking for working automake" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -1108,7 +1119,7 @@ else
 fi
 
 echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:1112: checking for working autoheader" >&5
+echo "configure:1123: checking for working autoheader" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -1121,7 +1132,7 @@ else
 fi
 
 echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:1125: checking for working makeinfo" >&5
+echo "configure:1136: checking for working makeinfo" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -1144,7 +1155,7 @@ fi
 # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1148: checking for $ac_word" >&5
+echo "configure:1159: 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
@@ -1176,7 +1187,7 @@ fi
 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1180: checking for $ac_word" >&5
+echo "configure:1191: 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
@@ -1208,7 +1219,7 @@ if test -n "$ac_tool_prefix"; then
   # 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:1212: checking for $ac_word" >&5
+echo "configure:1223: 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
@@ -1314,7 +1325,7 @@ fi
 # 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:1318: checking for $ac_word" >&5
+echo "configure:1329: 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
@@ -1353,7 +1364,7 @@ ac_prog=ld
 if test "$ac_cv_prog_gcc" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
   echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1357: checking for ld used by GCC" >&5
+echo "configure:1368: checking for ld used by GCC" >&5
   ac_prog=`($CC -print-prog-name=ld) 2>&5`
   case "$ac_prog" in
     # Accept absolute paths.
@@ -1377,10 +1388,10 @@ echo "configure:1357: checking for ld used by GCC" >&5
   esac
 elif test "$with_gnu_ld" = yes; then
   echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1381: checking for GNU ld" >&5
+echo "configure:1392: checking for GNU ld" >&5
 else
   echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1384: checking for non-GNU ld" >&5
+echo "configure:1395: checking for non-GNU ld" >&5
 fi
 if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1415,7 +1426,7 @@ else
 fi
 test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
 echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1419: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1430: checking if the linker ($LD) is GNU ld" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1431,7 +1442,7 @@ echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6
 
 
 echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1435: checking for BSD-compatible nm" >&5
+echo "configure:1446: checking for BSD-compatible nm" >&5
 if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1467,7 +1478,7 @@ NM="$ac_cv_path_NM"
 echo "$ac_t""$NM" 1>&6
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1471: checking whether ln -s works" >&5
+echo "configure:1482: checking whether ln -s works" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1516,8 +1527,8 @@ test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
 case "$lt_target" in
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 1520 "configure"' > conftest.$ac_ext
-  if { (eval echo configure:1521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  echo '#line 1531 "configure"' > conftest.$ac_ext
+  if { (eval echo configure:1532: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
     case "`/usr/bin/file conftest.o`" in
     *32-bit*)
       LD="${LD-ld} -32"
@@ -1538,19 +1549,19 @@ case "$lt_target" in
   SAVE_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -belf"
   echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:1542: checking whether the C compiler needs -belf" >&5
+echo "configure:1553: checking whether the C compiler needs -belf" >&5
 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1547 "configure"
+#line 1558 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   lt_cv_cc_needs_belf=yes
 else
@@ -1745,7 +1756,7 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x,"
 
 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:1749: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:1760: 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"
@@ -1768,12 +1779,12 @@ fi
   
 
 echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:1772: checking for Cygwin environment" >&5
+echo "configure:1783: checking for Cygwin environment" >&5
 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1777 "configure"
+#line 1788 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1784,7 +1795,7 @@ int main() {
 return __CYGWIN__;
 ; return 0; }
 EOF
-if { (eval echo configure:1788: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_cygwin=yes
 else
@@ -1801,19 +1812,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
 CYGWIN=
 test "$ac_cv_cygwin" = yes && CYGWIN=yes
 echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:1805: checking for mingw32 environment" >&5
+echo "configure:1816: checking for mingw32 environment" >&5
 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1810 "configure"
+#line 1821 "configure"
 #include "confdefs.h"
 
 int main() {
 return __MINGW32__;
 ; return 0; }
 EOF
-if { (eval echo configure:1817: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1828: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_mingw32=yes
 else
@@ -1832,7 +1843,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
 
 
 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1836: checking for executable suffix" >&5
+echo "configure:1847: checking for executable suffix" >&5
 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1842,10 +1853,10 @@ else
   rm -f conftest*
   echo 'int main () { return 0; }' > conftest.$ac_ext
   ac_cv_exeext=
-  if { (eval echo configure:1846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+  if { (eval echo configure:1857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
     for file in conftest.*; do
       case $file in
-      *.c | *.o | *.obj) ;;
+      *.c | *.o | *.obj | *.ilk | *.pdb) ;;
       *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
       esac
     done
@@ -1871,7 +1882,7 @@ target64=false
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1875: checking for $ac_word" >&5
+echo "configure:1886: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1901,7 +1912,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1905: checking for $ac_word" >&5
+echo "configure:1916: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1952,7 +1963,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1956: checking for $ac_word" >&5
+echo "configure:1967: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1984,7 +1995,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1988: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1999: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1995,12 +2006,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 1999 "configure"
+#line 2010 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:2004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -2026,12 +2037,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:2030: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2041: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:2035: checking whether we are using GNU C" >&5
+echo "configure:2046: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2040,7 +2051,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2044: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2055: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -2059,7 +2070,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:2063: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2074: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2093,7 +2104,7 @@ fi
 
 ALL_LINGUAS=
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2097: checking how to run the C preprocessor" >&5
+echo "configure:2108: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -2108,13 +2119,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 2112 "configure"
+#line 2123 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2118: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2129: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -2125,13 +2136,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 2129 "configure"
+#line 2140 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2146: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -2142,13 +2153,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 2146 "configure"
+#line 2157 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2152: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2163: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -2173,12 +2184,12 @@ fi
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2177: checking for ANSI C header files" >&5
+echo "configure:2188: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2182 "configure"
+#line 2193 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -2186,7 +2197,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2201: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2203,7 +2214,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2207 "configure"
+#line 2218 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -2221,7 +2232,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2225 "configure"
+#line 2236 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -2242,7 +2253,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 2246 "configure"
+#line 2257 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2253,7 +2264,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:2257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -2277,12 +2288,12 @@ EOF
 fi
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:2281: checking for working const" >&5
+echo "configure:2292: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2286 "configure"
+#line 2297 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2331,7 +2342,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:2335: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2346: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -2352,21 +2363,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:2356: checking for inline" >&5
+echo "configure:2367: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 2363 "configure"
+#line 2374 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:2370: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -2392,12 +2403,12 @@ EOF
 esac
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:2396: checking for off_t" >&5
+echo "configure:2407: checking for off_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2401 "configure"
+#line 2412 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -2425,12 +2436,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:2429: checking for size_t" >&5
+echo "configure:2440: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2434 "configure"
+#line 2445 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -2460,19 +2471,19 @@ fi
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:2464: checking for working alloca.h" >&5
+echo "configure:2475: checking for working alloca.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2469 "configure"
+#line 2480 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:2476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -2493,12 +2504,12 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:2497: checking for alloca" >&5
+echo "configure:2508: checking for alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2502 "configure"
+#line 2513 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -2526,7 +2537,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:2530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -2558,12 +2569,12 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:2562: checking whether alloca needs Cray hooks" >&5
+echo "configure:2573: checking whether alloca needs Cray hooks" >&5
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2567 "configure"
+#line 2578 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -2588,12 +2599,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2592: checking for $ac_func" >&5
+echo "configure:2603: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2597 "configure"
+#line 2608 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2616,7 +2627,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2643,7 +2654,7 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:2647: checking stack direction for C alloca" >&5
+echo "configure:2658: checking stack direction for C alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2651,7 +2662,7 @@ else
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 2655 "configure"
+#line 2666 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -2670,7 +2681,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:2674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
@@ -2695,17 +2706,17 @@ for ac_hdr in unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2699: checking for $ac_hdr" >&5
+echo "configure:2710: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2704 "configure"
+#line 2715 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2709: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2720: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2734,12 +2745,12 @@ done
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2738: checking for $ac_func" >&5
+echo "configure:2749: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2743 "configure"
+#line 2754 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2762,7 +2773,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2787,7 +2798,7 @@ fi
 done
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:2791: checking for working mmap" >&5
+echo "configure:2802: checking for working mmap" >&5
 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2795,7 +2806,7 @@ else
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 2799 "configure"
+#line 2810 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -2935,7 +2946,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:2939: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_fixed_mapped=yes
 else
@@ -2963,17 +2974,17 @@ unistd.h values.h sys/param.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2967: checking for $ac_hdr" >&5
+echo "configure:2978: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2972 "configure"
+#line 2983 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2977: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2988: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3003,12 +3014,12 @@ done
 __argz_count __argz_stringify __argz_next
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3007: checking for $ac_func" >&5
+echo "configure:3018: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3012 "configure"
+#line 3023 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3031,7 +3042,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3060,12 +3071,12 @@ done
      for ac_func in stpcpy
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3064: checking for $ac_func" >&5
+echo "configure:3075: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3069 "configure"
+#line 3080 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3088,7 +3099,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3122,19 +3133,19 @@ EOF
 
    if test $ac_cv_header_locale_h = yes; then
     echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:3126: checking for LC_MESSAGES" >&5
+echo "configure:3137: checking for LC_MESSAGES" >&5
 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3131 "configure"
+#line 3142 "configure"
 #include "confdefs.h"
 #include <locale.h>
 int main() {
 return LC_MESSAGES
 ; return 0; }
 EOF
-if { (eval echo configure:3138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   am_cv_val_LC_MESSAGES=yes
 else
@@ -3155,7 +3166,7 @@ EOF
     fi
   fi
    echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:3159: checking whether NLS is requested" >&5
+echo "configure:3170: checking whether NLS is requested" >&5
         # Check whether --enable-nls or --disable-nls was given.
 if test "${enable_nls+set}" = set; then
   enableval="$enable_nls"
@@ -3175,7 +3186,7 @@ fi
 EOF
 
       echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:3179: checking whether included gettext is requested" >&5
+echo "configure:3190: checking whether included gettext is requested" >&5
       # Check whether --with-included-gettext or --without-included-gettext was given.
 if test "${with_included_gettext+set}" = set; then
   withval="$with_included_gettext"
@@ -3194,17 +3205,17 @@ fi
 
        ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:3198: checking for libintl.h" >&5
+echo "configure:3209: checking for libintl.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3203 "configure"
+#line 3214 "configure"
 #include "confdefs.h"
 #include <libintl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3208: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3219: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3221,19 +3232,19 @@ fi
 if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
-echo "configure:3225: checking for gettext in libc" >&5
+echo "configure:3236: checking for gettext in libc" >&5
 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3230 "configure"
+#line 3241 "configure"
 #include "confdefs.h"
 #include <libintl.h>
 int main() {
 return (int) gettext ("")
 ; return 0; }
 EOF
-if { (eval echo configure:3237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gt_cv_func_gettext_libc=yes
 else
@@ -3249,7 +3260,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
 
           if test "$gt_cv_func_gettext_libc" != "yes"; then
             echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
-echo "configure:3253: checking for bindtextdomain in -lintl" >&5
+echo "configure:3264: checking for bindtextdomain in -lintl" >&5
 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3257,7 +3268,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3261 "configure"
+#line 3272 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3268,7 +3279,7 @@ int main() {
 bindtextdomain()
 ; return 0; }
 EOF
-if { (eval echo configure:3272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3284,19 +3295,19 @@ fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
-echo "configure:3288: checking for gettext in libintl" >&5
+echo "configure:3299: checking for gettext in libintl" >&5
 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3293 "configure"
+#line 3304 "configure"
 #include "confdefs.h"
 
 int main() {
 return (int) gettext ("")
 ; return 0; }
 EOF
-if { (eval echo configure:3300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gt_cv_func_gettext_libintl=yes
 else
@@ -3324,7 +3335,7 @@ EOF
              # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3328: checking for $ac_word" >&5
+echo "configure:3339: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3358,12 +3369,12 @@ fi
                for ac_func in dcgettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3362: checking for $ac_func" >&5
+echo "configure:3373: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3367 "configure"
+#line 3378 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3386,7 +3397,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3413,7 +3424,7 @@ done
                # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3417: checking for $ac_word" >&5
+echo "configure:3428: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3449,7 +3460,7 @@ fi
                # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3453: checking for $ac_word" >&5
+echo "configure:3464: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3481,7 +3492,7 @@ else
 fi
 
                cat > conftest.$ac_ext <<EOF
-#line 3485 "configure"
+#line 3496 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -3489,7 +3500,7 @@ extern int _nl_msg_cat_cntr;
                               return _nl_msg_cat_cntr
 ; return 0; }
 EOF
-if { (eval echo configure:3493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   CATOBJEXT=.gmo
                   DATADIRNAME=share
@@ -3521,7 +3532,7 @@ fi
         # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3525: checking for $ac_word" >&5
+echo "configure:3536: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3555,7 +3566,7 @@ fi
         # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3559: checking for $ac_word" >&5
+echo "configure:3570: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3591,7 +3602,7 @@ fi
         # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3595: checking for $ac_word" >&5
+echo "configure:3606: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3681,7 +3692,7 @@ fi
        LINGUAS=
      else
        echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:3685: checking for catalogs to be installed" >&5
+echo "configure:3696: checking for catalogs to be installed" >&5
        NEW_LINGUAS=
        for lang in ${LINGUAS=$ALL_LINGUAS}; do
          case "$ALL_LINGUAS" in
@@ -3709,17 +3720,17 @@ echo "configure:3685: checking for catalogs to be installed" >&5
       if test "$CATOBJEXT" = ".cat"; then
         ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
-echo "configure:3713: checking for linux/version.h" >&5
+echo "configure:3724: checking for linux/version.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3718 "configure"
+#line 3729 "configure"
 #include "confdefs.h"
 #include <linux/version.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3723: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3734: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3797,7 +3808,7 @@ fi
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:3801: checking for a BSD compatible install" >&5
+echo "configure:3812: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3880,7 +3891,7 @@ if test "x$cross_compiling" = "xno"; then
   EXEEXT_FOR_BUILD='$(EXEEXT)'
 else
   echo $ac_n "checking for build system executable suffix""... $ac_c" 1>&6
-echo "configure:3884: checking for build system executable suffix" >&5
+echo "configure:3895: checking for build system executable suffix" >&5
 if eval "test \"`echo '$''{'bfd_cv_build_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3908,17 +3919,17 @@ for ac_hdr in stddef.h string.h strings.h stdlib.h time.h unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3912: checking for $ac_hdr" >&5
+echo "configure:3923: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3917 "configure"
+#line 3928 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3922: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3933: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3948,17 +3959,17 @@ for ac_hdr in fcntl.h sys/file.h sys/time.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3952: checking for $ac_hdr" >&5
+echo "configure:3963: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3957 "configure"
+#line 3968 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3962: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3973: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3985,12 +3996,12 @@ fi
 done
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3989: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:4000: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3994 "configure"
+#line 4005 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -3999,7 +4010,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:4003: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4014: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -4024,12 +4035,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:4028: checking for $ac_hdr that defines DIR" >&5
+echo "configure:4039: checking for $ac_hdr that defines DIR" >&5
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4033 "configure"
+#line 4044 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -4037,7 +4048,7 @@ int main() {
 DIR *dirp = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:4041: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
@@ -4062,7 +4073,7 @@ done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:4066: checking for opendir in -ldir" >&5
+echo "configure:4077: checking for opendir in -ldir" >&5
 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4070,7 +4081,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4074 "configure"
+#line 4085 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4081,7 +4092,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:4085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4103,7 +4114,7 @@ fi
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:4107: checking for opendir in -lx" >&5
+echo "configure:4118: checking for opendir in -lx" >&5
 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4111,7 +4122,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4115 "configure"
+#line 4126 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4122,7 +4133,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:4126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4147,12 +4158,12 @@ fi
 for ac_func in fcntl getpagesize setitimer sysconf fdopen getuid getgid
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4151: checking for $ac_func" >&5
+echo "configure:4162: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4156 "configure"
+#line 4167 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4175,7 +4186,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4210,12 +4221,12 @@ EOF
 esac
 
 echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6
-echo "configure:4214: checking whether strstr must be declared" >&5
+echo "configure:4225: checking whether strstr must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4219 "configure"
+#line 4230 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4236,7 +4247,7 @@ int main() {
 char *(*pfn) = (char *(*)) strstr
 ; return 0; }
 EOF
-if { (eval echo configure:4240: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4251: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_strstr=no
 else
@@ -4257,12 +4268,12 @@ EOF
 fi
 
 echo $ac_n "checking whether malloc must be declared""... $ac_c" 1>&6
-echo "configure:4261: checking whether malloc must be declared" >&5
+echo "configure:4272: checking whether malloc must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_malloc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4266 "configure"
+#line 4277 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4283,7 +4294,7 @@ int main() {
 char *(*pfn) = (char *(*)) malloc
 ; return 0; }
 EOF
-if { (eval echo configure:4287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4298: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_malloc=no
 else
@@ -4304,12 +4315,12 @@ EOF
 fi
 
 echo $ac_n "checking whether realloc must be declared""... $ac_c" 1>&6
-echo "configure:4308: checking whether realloc must be declared" >&5
+echo "configure:4319: checking whether realloc must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_realloc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4313 "configure"
+#line 4324 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4330,7 +4341,7 @@ int main() {
 char *(*pfn) = (char *(*)) realloc
 ; return 0; }
 EOF
-if { (eval echo configure:4334: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_realloc=no
 else
@@ -4351,12 +4362,12 @@ EOF
 fi
 
 echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6
-echo "configure:4355: checking whether free must be declared" >&5
+echo "configure:4366: checking whether free must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_free'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4360 "configure"
+#line 4371 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4377,7 +4388,7 @@ int main() {
 char *(*pfn) = (char *(*)) free
 ; return 0; }
 EOF
-if { (eval echo configure:4381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4392: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_free=no
 else
@@ -4398,12 +4409,12 @@ EOF
 fi
 
 echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6
-echo "configure:4402: checking whether getenv must be declared" >&5
+echo "configure:4413: checking whether getenv must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_getenv'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4407 "configure"
+#line 4418 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4424,7 +4435,7 @@ int main() {
 char *(*pfn) = (char *(*)) getenv
 ; return 0; }
 EOF
-if { (eval echo configure:4428: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_getenv=no
 else
@@ -4634,17 +4645,17 @@ if test "${target}" = "${host}"; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4638: checking for $ac_hdr" >&5
+echo "configure:4649: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4643 "configure"
+#line 4654 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4648: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4659: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4672,19 +4683,19 @@ done
 
   if test "$ac_cv_header_sys_procfs_h" = yes; then
     echo $ac_n "checking for prstatus_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:4676: checking for prstatus_t in sys/procfs.h" >&5
+echo "configure:4687: checking for prstatus_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prstatus_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4681 "configure"
+#line 4692 "configure"
 #include "confdefs.h"
 #include <sys/procfs.h>
 int main() {
 prstatus_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:4688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4699: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_prstatus_t=yes
 else
@@ -4706,19 +4717,19 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_prstatus_t" 1>&6
 
     echo $ac_n "checking for prstatus_t.pr_who in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:4710: checking for prstatus_t.pr_who in sys/procfs.h" >&5
+echo "configure:4721: checking for prstatus_t.pr_who in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4715 "configure"
+#line 4726 "configure"
 #include "confdefs.h"
 #include <sys/procfs.h>
 int main() {
 prstatus_t avar; void* aref = (void*) &avar.pr_who
 ; return 0; }
 EOF
-if { (eval echo configure:4722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who=yes
 else
@@ -4740,19 +4751,19 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who" 1>&6
 
     echo $ac_n "checking for pstatus_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:4744: checking for pstatus_t in sys/procfs.h" >&5
+echo "configure:4755: checking for pstatus_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pstatus_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4749 "configure"
+#line 4760 "configure"
 #include "confdefs.h"
 #include <sys/procfs.h>
 int main() {
 pstatus_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:4756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_pstatus_t=yes
 else
@@ -4774,19 +4785,19 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_pstatus_t" 1>&6
 
     echo $ac_n "checking for prpsinfo_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:4778: checking for prpsinfo_t in sys/procfs.h" >&5
+echo "configure:4789: checking for prpsinfo_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prpsinfo_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4783 "configure"
+#line 4794 "configure"
 #include "confdefs.h"
 #include <sys/procfs.h>
 int main() {
 prpsinfo_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:4790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4801: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_prpsinfo_t=yes
 else
@@ -4808,19 +4819,19 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_prpsinfo_t" 1>&6
 
     echo $ac_n "checking for psinfo_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:4812: checking for psinfo_t in sys/procfs.h" >&5
+echo "configure:4823: checking for psinfo_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_psinfo_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4817 "configure"
+#line 4828 "configure"
 #include "confdefs.h"
 #include <sys/procfs.h>
 int main() {
 psinfo_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:4824: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_psinfo_t=yes
 else
@@ -4842,19 +4853,19 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_psinfo_t" 1>&6
 
     echo $ac_n "checking for lwpstatus_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:4846: checking for lwpstatus_t in sys/procfs.h" >&5
+echo "configure:4857: checking for lwpstatus_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_lwpstatus_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4851 "configure"
+#line 4862 "configure"
 #include "confdefs.h"
 #include <sys/procfs.h>
 int main() {
 lwpstatus_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:4858: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_lwpstatus_t=yes
 else
@@ -4876,19 +4887,19 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_lwpstatus_t" 1>&6
 
     echo $ac_n "checking for lwpstatus_t.pr_context in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:4880: checking for lwpstatus_t.pr_context in sys/procfs.h" >&5
+echo "configure:4891: checking for lwpstatus_t.pr_context in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4885 "configure"
+#line 4896 "configure"
 #include "confdefs.h"
 #include <sys/procfs.h>
 int main() {
 lwpstatus_t avar; void* aref = (void*) &avar.pr_context
 ; return 0; }
 EOF
-if { (eval echo configure:4892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4903: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context=yes
 else
@@ -4910,19 +4921,19 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context" 1>&6
 
     echo $ac_n "checking for lwpstatus_t.pr_reg in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:4914: checking for lwpstatus_t.pr_reg in sys/procfs.h" >&5
+echo "configure:4925: checking for lwpstatus_t.pr_reg in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4919 "configure"
+#line 4930 "configure"
 #include "confdefs.h"
 #include <sys/procfs.h>
 int main() {
 lwpstatus_t avar; void* aref = (void*) &avar.pr_reg
 ; return 0; }
 EOF
-if { (eval echo configure:4926: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4937: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg=yes
 else
@@ -4944,19 +4955,19 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg" 1>&6
 
     echo $ac_n "checking for win32_pstatus_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:4948: checking for win32_pstatus_t in sys/procfs.h" >&5
+echo "configure:4959: checking for win32_pstatus_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_win32_pstatus_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4953 "configure"
+#line 4964 "configure"
 #include "confdefs.h"
 #include <sys/procfs.h>
 int main() {
 win32_pstatus_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:4960: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_win32_pstatus_t=yes
 else
@@ -4981,10 +4992,12 @@ EOF
 fi
 
 
-cat >> confdefs.h <<EOF
+if test -n "$TRAD_HEADER"; then
+  cat >> confdefs.h <<EOF
 #define TRAD_HEADER $TRAD_HEADER
 EOF
 
+fi
 
 # Horrible hacks to build DLLs on Windows.
 WIN32LDFLAGS=
@@ -5336,17 +5349,17 @@ for ac_hdr in unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5340: checking for $ac_hdr" >&5
+echo "configure:5353: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5345 "configure"
+#line 5358 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5350: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5363: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5375,12 +5388,12 @@ done
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5379: checking for $ac_func" >&5
+echo "configure:5392: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5384 "configure"
+#line 5397 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5403,7 +5416,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5428,7 +5441,7 @@ fi
 done
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:5432: checking for working mmap" >&5
+echo "configure:5445: checking for working mmap" >&5
 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5436,7 +5449,7 @@ else
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 5440 "configure"
+#line 5453 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -5576,7 +5589,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:5580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_fixed_mapped=yes
 else
@@ -5601,12 +5614,12 @@ fi
 for ac_func in madvise mprotect
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5605: checking for $ac_func" >&5
+echo "configure:5618: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5610 "configure"
+#line 5623 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5629,7 +5642,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5646: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
index c87197d3c7e8f5c7342a2b4366819e0076190d56..74ba3e2237f770015a4fafadeebe0ab8e449b901 100644 (file)
@@ -351,8 +351,10 @@ changequote([,])dnl
 fi
 AC_SUBST(COREFILE)
 AC_SUBST(COREFLAG)
-AC_DEFINE_UNQUOTED(TRAD_HEADER, $TRAD_HEADER,
-  [Name of host specific header file to include in trad-core.c.])
+if test -n "$TRAD_HEADER"; then
+  AC_DEFINE_UNQUOTED(TRAD_HEADER, $TRAD_HEADER,
+    [Name of host specific header file to include in trad-core.c.])
+fi
 
 # Horrible hacks to build DLLs on Windows.
 WIN32LDFLAGS=
index 9da181ab8fc1582bc4d636758fa071504c30043f..c3781f23bcbd50469b59f785bff8829324e07dc8 100644 (file)
@@ -6,6 +6,7 @@ t loop
 s!\.o:!.lo:!
 s! @BFD_H@!!g
 s!@INCDIR@!$(INCDIR)!g
+s!@SRCDIR@/../opcodes!$(srcdir)/../opcodes!g
 s!@SRCDIR@/!!g
 s! hosts/[^ ]*\.h! !g
 s/ sysdep.h//g
index b55e1c4e5bc1111f238c2e38128794d6edf8e42b..9b1e25d2c367e337b88ef5a3301b1aea44860912 100644 (file)
@@ -1,5 +1,5 @@
 /* Common code for PA ELF implementations.
-   Copyright (C) 1999 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -28,6 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #if ARCH_SIZE == 64
 #define ELF_R_TYPE(X)   ELF64_R_TYPE(X)
 #define ELF_R_SYM(X)   ELF64_R_SYM(X)
+#define elf_hppa_internal_shdr Elf64_Internal_Shdr
 #define _bfd_elf_hppa_gen_reloc_type _bfd_elf64_hppa_gen_reloc_type
 #define elf_hppa_relocate_section elf64_hppa_relocate_section
 #define bfd_elf_bfd_final_link bfd_elf64_bfd_final_link
@@ -36,33 +37,39 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #if ARCH_SIZE == 32
 #define ELF_R_TYPE(X)   ELF32_R_TYPE(X)
 #define ELF_R_SYM(X)   ELF32_R_SYM(X)
+#define elf_hppa_internal_shdr Elf32_Internal_Shdr
 #define _bfd_elf_hppa_gen_reloc_type _bfd_elf32_hppa_gen_reloc_type
 #define elf_hppa_relocate_section elf32_hppa_relocate_section
 #define bfd_elf_bfd_final_link bfd_elf32_bfd_final_link
 #define elf_hppa_final_link elf32_hppa_final_link
 #endif
 
-static boolean
-elf_hppa_relocate_section
-  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
-           bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
+elf_hppa_reloc_type ** _bfd_elf_hppa_gen_reloc_type
+  PARAMS ((bfd *, elf_hppa_reloc_type, int, int, int, asymbol *));
 
-static bfd_reloc_status_type elf_hppa_final_link_relocate
-  PARAMS ((Elf_Internal_Rela *, bfd *, bfd *, asection *,
-           bfd_byte *, bfd_vma, struct bfd_link_info *,
-           asection *, struct elf_link_hash_entry *,
-          struct elf64_hppa_dyn_hash_entry *));
+static void elf_hppa_info_to_howto
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+
+static void elf_hppa_info_to_howto_rel
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rel *));
+
+static reloc_howto_type * elf_hppa_reloc_type_lookup
+  PARAMS ((bfd *, bfd_reloc_code_real_type));
 
-static unsigned long elf_hppa_relocate_insn
-  PARAMS ((unsigned long, long, unsigned long));
+static boolean elf_hppa_is_local_label_name
+  PARAMS ((bfd *, const char *));
+
+static boolean elf_hppa_fake_sections
+  PARAMS ((bfd *abfd, elf_hppa_internal_shdr *, asection *));
+
+#if ARCH_SIZE == 64
+static void elf_hppa_final_write_processing
+  PARAMS ((bfd *, boolean));
 
 static boolean elf_hppa_add_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
           const char **, flagword *, asection **, bfd_vma *));
 
-static boolean elf_hppa_final_link
-  PARAMS ((bfd *, struct bfd_link_info *));
-
 static boolean elf_hppa_unmark_useless_dynamic_symbols
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
@@ -72,268 +79,518 @@ static boolean elf_hppa_remark_useless_dynamic_symbols
 static void elf_hppa_record_segment_addrs
   PARAMS ((bfd *, asection *, PTR));
 
+static boolean elf_hppa_final_link
+  PARAMS ((bfd *, struct bfd_link_info *));
+
+static boolean elf_hppa_relocate_section
+  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
+           bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
+
+static bfd_reloc_status_type elf_hppa_final_link_relocate
+  PARAMS ((Elf_Internal_Rela *, bfd *, bfd *, asection *,
+           bfd_byte *, bfd_vma, struct bfd_link_info *,
+           asection *, struct elf_link_hash_entry *,
+          struct elf64_hppa_dyn_hash_entry *));
+
+static unsigned int elf_hppa_relocate_insn
+  PARAMS ((unsigned int, unsigned int, unsigned int));
+#endif
+
+
 /* ELF/PA relocation howto entries.  */
 
 static reloc_howto_type elf_hppa_howto_table[ELF_HOWTO_TABLE_SIZE] =
 {
-  {R_PARISC_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_NONE"},
+  { R_PARISC_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_NONE", false, 0, 0, false },
 
   /* The values in DIR32 are to placate the check in
      _bfd_stab_section_find_nearest_line.  */
-  {R_PARISC_DIR32, 0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DIR32", false, 0, 0xffffffff, false},
-  {R_PARISC_DIR21L, 0, 0, 21, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DIR21L"},
-  {R_PARISC_DIR17R, 0, 0, 17, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DIR17R"},
-  {R_PARISC_DIR17F, 0, 0, 17, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DIR17F"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_DIR14R, 0, 0, 14, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DIR14R"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_PCREL32, 0, 0, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL32"},
-
-  {R_PARISC_PCREL21L, 0, 0, 21, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL21L"},
-  {R_PARISC_PCREL17R, 0, 0, 17, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL17R"},
-  {R_PARISC_PCREL17F, 0, 0, 17, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL17F"},
-  {R_PARISC_PCREL17C, 0, 0, 17, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL17C"},
-  {R_PARISC_PCREL14R, 0, 0, 14, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL14R"},
-  {R_PARISC_PCREL14F, 0, 0, 14, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL14F"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_DPREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DPREL21L"},
-  {R_PARISC_DPREL14WR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DPREL14WR"},
-
-  {R_PARISC_DPREL14DR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DPREL14DR"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_DPREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DPREL14R"},
-  {R_PARISC_DPREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DPREL14F"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_DLTREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DLTREL21L"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_DLTREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DLTREL14R"},
-  {R_PARISC_DLTREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DLTREL14F"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_DLTIND21L, 0, 0, 21, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DLTIND21L"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_DLTIND14R, 0, 0, 14, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DLTIND14R"},
-  {R_PARISC_DLTIND14F, 0, 0, 14, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DLTIND14F"},
-
-  {R_PARISC_SETBASE, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_SETBASE"},
-  {R_PARISC_SECREL32, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_SECREL32"},
-  {R_PARISC_BASEREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_BASEREL21L"},
-  {R_PARISC_BASEREL17R, 0, 0, 17, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_BASEREL17R"},
-  {R_PARISC_BASEREL17F, 0, 0, 17, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_BASEREL17F"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_BASEREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_BASEREL14R"},
-  {R_PARISC_BASEREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_BASEREL14F"},
-  {R_PARISC_SEGBASE, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_SEGBASE"},
-  {R_PARISC_SEGREL32, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_SEGREL32"},
-
-  {R_PARISC_PLTOFF21L, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PLTOFF21L"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_PLTOFF14R, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PLTOFF14R"},
-  {R_PARISC_PLTOFF14F, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PLTOFF14F"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_LTOFF_FPTR32, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR32"},
-  {R_PARISC_LTOFF_FPTR21L, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR21L"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_LTOFF_FPTR14R, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14R"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_FPTR64, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_FPTR64"},
-  {R_PARISC_PLABEL32, 0, 0, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PLABEL32"},
-  {R_PARISC_PLABEL21L, 0, 0, 21, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PLABEL21L"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_PLABEL14R, 0, 0, 14, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PLABEL14R"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_PCREL64, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL64"},
-  {R_PARISC_PCREL22C, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL22C"},
-  {R_PARISC_PCREL22F, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL22F"},
-  {R_PARISC_PCREL14WR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL14WR"},
-  {R_PARISC_PCREL14DR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL14DR"},
-  {R_PARISC_PCREL16F, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL16F"},
-  {R_PARISC_PCREL16WF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL16WF"},
-  {R_PARISC_PCREL16DF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PCREL16DF"},
-
-  {R_PARISC_DIR64, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DIR64"},
-  {R_PARISC_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_NONE"},
-  {R_PARISC_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_NONE"},
-  {R_PARISC_DIR14WR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DIR14WR"},
-  {R_PARISC_DIR14DR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DIR14DR"},
-  {R_PARISC_DIR16F, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DIR16F"},
-  {R_PARISC_DIR16WF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DIR16WF"},
-  {R_PARISC_DIR16DF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DIR16DF"},
-  {R_PARISC_GPREL64, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_GPREL64"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_DLTREL14WR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DLTREL14WR"},
-  {R_PARISC_DLTREL14DR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DLTREL14DR"},
-  {R_PARISC_GPREL16F, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_GPREL16F"},
-  {R_PARISC_GPREL16WF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_GPREL16WF"},
-  {R_PARISC_GPREL16DF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_GPREL16DF"},
-  {R_PARISC_LTOFF64, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF64"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_DLTIND14WR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DLTIND14WR"},
-
-  {R_PARISC_DLTIND14DR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_DLTIND14DR"},
-  {R_PARISC_LTOFF16F, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF16F"},
-  {R_PARISC_LTOFF16WF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF"},
-  {R_PARISC_LTOFF16DF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_BASEREL14WR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_BSEREL14WR"},
-  {R_PARISC_BASEREL14DR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_BASEREL14DR"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_SEGREL64, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_SEGREL64"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_PLTOFF14WR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PLTOFF14WR"},
-  {R_PARISC_PLTOFF14DR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PLTOFF14DR"},
-  {R_PARISC_PLTOFF16F, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PLTOFF16F"},
-  {R_PARISC_PLTOFF16WF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PLTOFF16WF"},
-  {R_PARISC_PLTOFF16DF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_PLTOFF16DF"},
-
-  {R_PARISC_LTOFF_FPTR64, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_LTOFF_FPTR14WR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14WR"},
-  {R_PARISC_LTOFF_FPTR14DR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14DR"},
-  {R_PARISC_LTOFF_FPTR16F, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16F"},
-  {R_PARISC_LTOFF_FPTR16WF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16WF"},
-  {R_PARISC_LTOFF_FPTR16DF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_COPY, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_COPY"},
-  {R_PARISC_IPLT, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_IPLT"},
-
-  {R_PARISC_EPLT, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_EPLT"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_TPREL32, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_TPREL32"},
-  {R_PARISC_TPREL21L, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_TPREL21L"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_TPREL14R, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_TPREL14R"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_LTOFF_TP21L, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP21L"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_LTOFF_TP14R, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_LTOFF_TP14F, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14F"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_TPREL64, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_TPREL64"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_TPREL14WR, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_TPREL14WR"},
-
-  {R_PARISC_TPREL14DR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_TPREL14DR"},
-  {R_PARISC_TPREL16F, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_TPREL16F"},
-  {R_PARISC_TPREL16WF, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_TPREL16WF"},
-  {R_PARISC_TPREL16DF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_TPREL16DF"},
-  {R_PARISC_LTOFF_TP64, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP64"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED"},
-  {R_PARISC_LTOFF_TP14WR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14WR"},
-  {R_PARISC_LTOFF_TP14DR, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14DR"},
-  {R_PARISC_LTOFF_TP16F, 0, 0, 0, false, 0, complain_overflow_dont, NULL, "R_PARISC_LTOFF_TP16F"},
-
-  {R_PARISC_LTOFF_TP16WF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16WF"},
-  {R_PARISC_LTOFF_TP16DF, 0, 0, 0, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16DF"},
+  { R_PARISC_DIR32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR32", false, 0, 0xffffffff, false },
+  { R_PARISC_DIR21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR21L", false, 0, 0, false },
+  { R_PARISC_DIR17R, 0, 0, 17, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR17R", false, 0, 0, false },
+  { R_PARISC_DIR17F, 0, 0, 17, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR17F", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_DIR14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR14R", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_PCREL32, 0, 0, 32, true, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL32", false, 0, 0, false },
+
+  { R_PARISC_PCREL21L, 0, 0, 21, true, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL21L", false, 0, 0, false },
+  { R_PARISC_PCREL17R, 0, 0, 17, true, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL17R", false, 0, 0, false },
+  { R_PARISC_PCREL17F, 0, 0, 17, true, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL17F", false, 0, 0, false },
+  { R_PARISC_PCREL17C, 0, 0, 17, true, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL17C", false, 0, 0, false },
+  { R_PARISC_PCREL14R, 0, 0, 14, true, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL14R", false, 0, 0, false },
+  { R_PARISC_PCREL14F, 0, 0, 14, true, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL14F", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_DPREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DPREL21L", false, 0, 0, false },
+  { R_PARISC_DPREL14WR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DPREL14WR", false, 0, 0, false },
+
+  { R_PARISC_DPREL14DR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DPREL14DR", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_DPREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DPREL14R", false, 0, 0, false },
+  { R_PARISC_DPREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DPREL14F", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_DLTREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTREL21L", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_DLTREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTREL14R", false, 0, 0, false },
+  { R_PARISC_DLTREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTREL14F", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_DLTIND21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTIND21L", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_DLTIND14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTIND14R", false, 0, 0, false },
+  { R_PARISC_DLTIND14F, 0, 0, 14, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTIND14F", false, 0, 0, false },
+
+  { R_PARISC_SETBASE, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_SETBASE", false, 0, 0, false },
+  { R_PARISC_SECREL32, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_SECREL32", false, 0, 0, false },
+  { R_PARISC_BASEREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL21L", false, 0, 0, false },
+  { R_PARISC_BASEREL17R, 0, 0, 17, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL17R", false, 0, 0, false },
+  { R_PARISC_BASEREL17F, 0, 0, 17, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL17F", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_BASEREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL14R", false, 0, 0, false },
+  { R_PARISC_BASEREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL14F", false, 0, 0, false },
+  { R_PARISC_SEGBASE, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_SEGBASE", false, 0, 0, false },
+  { R_PARISC_SEGREL32, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_SEGREL32", false, 0, 0, false },
+
+  { R_PARISC_PLTOFF21L, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF21L", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_PLTOFF14R, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14R", false, 0, 0, false },
+  { R_PARISC_PLTOFF14F, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14F", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_LTOFF_FPTR32, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR32", false, 0, 0, false },
+  { R_PARISC_LTOFF_FPTR21L, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR21L", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_LTOFF_FPTR14R, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14R", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_FPTR64, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_FPTR64", false, 0, 0, false },
+  { R_PARISC_PLABEL32, 0, 0, 32, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLABEL32", false, 0, 0, false },
+  { R_PARISC_PLABEL21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLABEL21L", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_PLABEL14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLABEL14R", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_PCREL64, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL64", false, 0, 0, false },
+  { R_PARISC_PCREL22C, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL22C", false, 0, 0, false },
+  { R_PARISC_PCREL22F, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL22F", false, 0, 0, false },
+  { R_PARISC_PCREL14WR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL14WR", false, 0, 0, false },
+  { R_PARISC_PCREL14DR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL14DR", false, 0, 0, false },
+  { R_PARISC_PCREL16F, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL16F", false, 0, 0, false },
+  { R_PARISC_PCREL16WF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL16WF", false, 0, 0, false },
+  { R_PARISC_PCREL16DF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL16DF", false, 0, 0, false },
+
+  { R_PARISC_DIR64, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR64", false, 0, 0, false },
+  { R_PARISC_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_NONE", false, 0, 0, false },
+  { R_PARISC_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_NONE", false, 0, 0, false },
+  { R_PARISC_DIR14WR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR14WR", false, 0, 0, false },
+  { R_PARISC_DIR14DR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR14DR", false, 0, 0, false },
+  { R_PARISC_DIR16F, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR16F", false, 0, 0, false },
+  { R_PARISC_DIR16WF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR16WF", false, 0, 0, false },
+  { R_PARISC_DIR16DF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR16DF", false, 0, 0, false },
+  { R_PARISC_GPREL64, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_GPREL64", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_DLTREL14WR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTREL14WR", false, 0, 0, false },
+  { R_PARISC_DLTREL14DR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTREL14DR", false, 0, 0, false },
+  { R_PARISC_GPREL16F, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_GPREL16F", false, 0, 0, false },
+  { R_PARISC_GPREL16WF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_GPREL16WF", false, 0, 0, false },
+  { R_PARISC_GPREL16DF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_GPREL16DF", false, 0, 0, false },
+  { R_PARISC_LTOFF64, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF64", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_DLTIND14WR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTIND14WR", false, 0, 0, false },
+
+  { R_PARISC_DLTIND14DR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTIND14DR", false, 0, 0, false },
+  { R_PARISC_LTOFF16F, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF16F", false, 0, 0, false },
+  { R_PARISC_LTOFF16WF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", false, 0, 0, false },
+  { R_PARISC_LTOFF16DF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_BASEREL14WR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BSEREL14WR", false, 0, 0, false },
+  { R_PARISC_BASEREL14DR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL14DR", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_SEGREL64, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_SEGREL64", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_PLTOFF14WR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14WR", false, 0, 0, false },
+  { R_PARISC_PLTOFF14DR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14DR", false, 0, 0, false },
+  { R_PARISC_PLTOFF16F, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF16F", false, 0, 0, false },
+  { R_PARISC_PLTOFF16WF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF16WF", false, 0, 0, false },
+  { R_PARISC_PLTOFF16DF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF16DF", false, 0, 0, false },
+
+  { R_PARISC_LTOFF_FPTR64, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_LTOFF_FPTR14WR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14WR", false, 0, 0, false },
+  { R_PARISC_LTOFF_FPTR14DR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14DR", false, 0, 0, false },
+  { R_PARISC_LTOFF_FPTR16F, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16F", false, 0, 0, false },
+  { R_PARISC_LTOFF_FPTR16WF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16WF", false, 0, 0, false },
+  { R_PARISC_LTOFF_FPTR16DF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_COPY, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_COPY", false, 0, 0, false },
+  { R_PARISC_IPLT, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_IPLT", false, 0, 0, false },
+
+  { R_PARISC_EPLT, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_EPLT", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_TPREL32, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_TPREL32", false, 0, 0, false },
+  { R_PARISC_TPREL21L, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_TPREL21L", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_TPREL14R, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_TPREL14R", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_LTOFF_TP21L, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP21L", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_LTOFF_TP14R, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_LTOFF_TP14F, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14F", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_TPREL64, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL64", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_TPREL14WR, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_TPREL14WR", false, 0, 0, false },
+
+  { R_PARISC_TPREL14DR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL14DR", false, 0, 0, false },
+  { R_PARISC_TPREL16F, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL16F", false, 0, 0, false },
+  { R_PARISC_TPREL16WF, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_TPREL16WF", false, 0, 0, false },
+  { R_PARISC_TPREL16DF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL16DF", false, 0, 0, false },
+  { R_PARISC_LTOFF_TP64, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP64", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_LTOFF_TP14WR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14WR", false, 0, 0, false },
+  { R_PARISC_LTOFF_TP14DR, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14DR", false, 0, 0, false },
+  { R_PARISC_LTOFF_TP16F, 0, 0, 0, false, 0, complain_overflow_dont,
+    NULL, "R_PARISC_LTOFF_TP16F", false, 0, 0, false },
+
+  { R_PARISC_LTOFF_TP16WF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16WF", false, 0, 0, false },
+  { R_PARISC_LTOFF_TP16DF, 0, 0, 0, false, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16DF", false, 0, 0, false },
 };
 
 #define OFFSET_14R_FROM_21L 4
@@ -348,8 +605,8 @@ _bfd_elf_hppa_gen_reloc_type (abfd, base_type, format, field, ignore, sym)
      elf_hppa_reloc_type base_type;
      int format;
      int field;
-     int ignore;
-     asymbol *sym;
+     int ignore ATTRIBUTE_UNUSED;
+     asymbol *sym ATTRIBUTE_UNUSED;
 {
   elf_hppa_reloc_type *finaltype;
   elf_hppa_reloc_type **final_types;
@@ -599,7 +856,7 @@ _bfd_elf_hppa_gen_reloc_type (abfd, base_type, format, field, ignore, sym)
 
 static void
 elf_hppa_info_to_howto (abfd, bfd_reloc, elf_reloc)
-     bfd *abfd;
+     bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
      Elf_Internal_Rela *elf_reloc;
 {
@@ -612,7 +869,7 @@ elf_hppa_info_to_howto (abfd, bfd_reloc, elf_reloc)
 
 static void
 elf_hppa_info_to_howto_rel (abfd, bfd_reloc, elf_reloc)
-     bfd *abfd;
+     bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
      Elf_Internal_Rel *elf_reloc;
 {
@@ -626,7 +883,7 @@ elf_hppa_info_to_howto_rel (abfd, bfd_reloc, elf_reloc)
 
 static reloc_howto_type *
 elf_hppa_reloc_type_lookup (abfd, code)
-     bfd *abfd;
+     bfd *abfd ATTRIBUTE_UNUSED;
      bfd_reloc_code_real_type code;
 {
   if ((int) code < (int) R_PARISC_UNIMPLEMENTED)
@@ -637,34 +894,6 @@ elf_hppa_reloc_type_lookup (abfd, code)
   return NULL;
 }
 
-static void
-elf_hppa_final_write_processing (abfd, linker)
-     bfd *abfd;
-     boolean linker;
-{
-  int mach = bfd_get_mach (abfd);
-
-  elf_elfheader (abfd)->e_flags &= ~(EF_PARISC_ARCH | EF_PARISC_TRAPNIL
-                                    | EF_PARISC_EXT | EF_PARISC_LSB
-                                    | EF_PARISC_WIDE | EF_PARISC_NO_KABP
-                                    | EF_PARISC_LAZYSWAP);
-
-  if (mach == 10)
-    elf_elfheader (abfd)->e_flags |= EFA_PARISC_1_0;
-  else if (mach == 11)
-    elf_elfheader (abfd)->e_flags |= EFA_PARISC_1_1;
-  else if (mach == 20)
-    elf_elfheader (abfd)->e_flags |= EFA_PARISC_2_0;
-  else if (mach == 25)
-    elf_elfheader (abfd)->e_flags |= (EF_PARISC_WIDE
-                                     | EFA_PARISC_2_0
-                                     /* The GNU tools have trapped without
-                                        option since 1993, so need to take
-                                        a step backwards with the ELF
-                                        based toolchains.  */
-                                     | EF_PARISC_TRAPNIL);
-}
-
 /* Return true if SYM represents a local label symbol.  */
 
 static boolean
@@ -681,7 +910,7 @@ elf_hppa_is_local_label_name (abfd, name)
 static boolean
 elf_hppa_fake_sections (abfd, hdr, sec)
      bfd *abfd;
-     Elf64_Internal_Shdr *hdr;
+     elf_hppa_internal_shdr *hdr;
      asection *sec;
 {
   register const char *name;
@@ -692,7 +921,11 @@ elf_hppa_fake_sections (abfd, hdr, sec)
     {
       int indx;
       asection *sec;
+#if ARCH_SIZE == 64
       hdr->sh_type = SHT_LOPROC + 1;
+#else
+      hdr->sh_type = 1;
+#endif
       /* ?!? How are unwinds supposed to work for symbols in arbitrary
         sections?  Or what if we have multiple .text sections in a single
         .o file?  HP really messed up on this one.
@@ -717,6 +950,35 @@ elf_hppa_fake_sections (abfd, hdr, sec)
   return true;
 }
 
+#if ARCH_SIZE == 64
+static void
+elf_hppa_final_write_processing (abfd, linker)
+     bfd *abfd;
+     boolean linker;
+{
+  int mach = bfd_get_mach (abfd);
+
+  elf_elfheader (abfd)->e_flags &= ~(EF_PARISC_ARCH | EF_PARISC_TRAPNIL
+                                    | EF_PARISC_EXT | EF_PARISC_LSB
+                                    | EF_PARISC_WIDE | EF_PARISC_NO_KABP
+                                    | EF_PARISC_LAZYSWAP);
+
+  if (mach == 10)
+    elf_elfheader (abfd)->e_flags |= EFA_PARISC_1_0;
+  else if (mach == 11)
+    elf_elfheader (abfd)->e_flags |= EFA_PARISC_1_1;
+  else if (mach == 20)
+    elf_elfheader (abfd)->e_flags |= EFA_PARISC_2_0;
+  else if (mach == 25)
+    elf_elfheader (abfd)->e_flags |= (EF_PARISC_WIDE
+                                     | EFA_PARISC_2_0
+                                     /* The GNU tools have trapped without
+                                        option since 1993, so need to take
+                                        a step backwards with the ELF
+                                        based toolchains.  */
+                                     | EF_PARISC_TRAPNIL);
+}
+
 /* Hook called by the linker routine which adds symbols from an object
    file.  HP's libraries define symbols with HP specific section
    indices, which we have to handle.  */
@@ -763,10 +1025,10 @@ elf_hppa_unmark_useless_dynamic_symbols (h, data)
      the generic code will warn that it is undefined.
 
      This behavior is undesirable on HPs since the standard shared
-     libraries contain reerences to undefined symbols.
+     libraries contain references to undefined symbols.
 
      So we twiddle the flags associated with such symbols so that they
-     will not trigger the warning.  ?!? FIXME.  This is horribly fraglie.
+     will not trigger the warning.  ?!? FIXME.  This is horribly fragile.
 
      Ultimately we should have better controls over the generic ELF BFD
      linker code.  */
@@ -1182,12 +1444,11 @@ elf_hppa_final_link_relocate (rel, input_bfd, output_bfd,
      struct elf_link_hash_entry *h;
      struct elf64_hppa_dyn_hash_entry *dyn_h;
 {
-  unsigned long insn;
+  unsigned int insn;
   bfd_vma offset = rel->r_offset;
   bfd_vma addend = rel->r_addend;
   reloc_howto_type *howto = elf_hppa_howto_table + ELF_R_TYPE (rel->r_info);
-  unsigned long r_type = howto->type;
-  unsigned long r_field = e_fsel;
+  unsigned int r_type = howto->type;
   bfd_byte *hit_data = contents + offset;
   struct elf64_hppa_link_hash_table *hppa_info = elf64_hppa_hash_table (info);
 
@@ -1198,6 +1459,12 @@ elf_hppa_final_link_relocate (rel, input_bfd, output_bfd,
     case R_PARISC_NONE:
       break;
 
+    /* Basic function call support.  I'm not entirely sure if PCREL14F is
+       actually needed or even handled correctly.
+
+       Note for a call to a function defined in another dynamic library
+       we want to redirect the call to a stub.  */
+
     /* Random PC relative relocs.  */
     case R_PARISC_PCREL21L:
     case R_PARISC_PCREL14R:
@@ -1208,16 +1475,6 @@ elf_hppa_final_link_relocate (rel, input_bfd, output_bfd,
     case R_PARISC_PCREL16WF:
     case R_PARISC_PCREL16DF:
       {
-       if (r_type == R_PARISC_PCREL21L)
-         r_field = e_lsel;
-       else if (r_type == R_PARISC_PCREL14F
-                || r_type == R_PARISC_PCREL16F
-                || r_type == R_PARISC_PCREL16WF
-                || r_type == R_PARISC_PCREL16DF)
-         r_field = e_fsel;
-       else
-         r_field = e_rsel;
-
        /* If this is a call to a function defined in another dynamic
           library, then redirect the call to the local stub for this
           function.  */
@@ -1230,29 +1487,27 @@ elf_hppa_final_link_relocate (rel, input_bfd, output_bfd,
                  + input_section->output_section->vma);
 
        /* Adjust for any field selectors.  */
-       value = hppa_field_adjust (value, -8 + addend, r_field);
+       if (r_type == R_PARISC_PCREL21L)
+         value = hppa_field_adjust (value, -8 + addend, e_lsel);
+       else if (r_type == R_PARISC_PCREL14F
+                || r_type == R_PARISC_PCREL16F
+                || r_type == R_PARISC_PCREL16WF
+                || r_type == R_PARISC_PCREL16DF)
+         value = hppa_field_adjust (value, -8 + addend, e_fsel);
+       else
+         value = hppa_field_adjust (value, -8 + addend, e_rsel);
 
        /* Apply the relocation to the given instruction.  */
        insn = elf_hppa_relocate_insn (insn, value, r_type);
        break;
       }
 
-    /* Basic function call support.  I'm not entirely sure if PCREL14F is
-       actually needed or even handled correctly.
-
-       Note for a call to a function defined in another dynamic library
-       we want to redirect the call to a stub.  */
     case R_PARISC_PCREL22F:
     case R_PARISC_PCREL17F:
     case R_PARISC_PCREL22C:
     case R_PARISC_PCREL17C:
     case R_PARISC_PCREL17R:
       {
-       if (r_type == R_PARISC_PCREL17R)
-         r_field = e_rsel;
-       else
-         r_field = e_fsel;
-
        /* If this is a call to a function defined in another dynamic
           library, then redirect the call to the local stub for this
           function.  */
@@ -1352,7 +1607,6 @@ elf_hppa_final_link_relocate (rel, input_bfd, output_bfd,
                 + hppa_info->dlt_sec->output_section->vma);
        value -= _bfd_get_gp_value (output_bfd);
 
-
        /* All DLTIND relocations are basically the same at this point,
           except that we need different field selectors for the 21bit
           version vs the 14bit versions.  */
@@ -1428,6 +1682,7 @@ elf_hppa_final_link_relocate (rel, input_bfd, output_bfd,
        /* All DIR relocations are basically the same at this point,
           except that we need different field selectors for the 21bit
           version vs the 14bit versions.  */
+
        if (r_type == R_PARISC_DIR21L)
          value = hppa_field_adjust (value, addend, e_lrsel);
        else if (r_type == R_PARISC_DIR17F
@@ -1698,11 +1953,11 @@ elf_hppa_final_link_relocate (rel, input_bfd, output_bfd,
    Instead this routine is meant to handle the bit manipulations needed
    to insert the relocation into the given instruction.  */
 
-static unsigned long
+static unsigned int
 elf_hppa_relocate_insn (insn, sym_value, r_type)
-     unsigned long insn;
-     long sym_value;
-     unsigned long r_type;
+     unsigned int insn;
+     unsigned int sym_value;
+     unsigned int r_type;
 {
   switch (r_type)
     {
@@ -1710,24 +1965,7 @@ elf_hppa_relocate_insn (insn, sym_value, r_type)
        the "B" instruction.  */
     case R_PARISC_PCREL22F:
     case R_PARISC_PCREL22C:
-      {
-       unsigned int w3, w2, w1, w;
-
-       /* These are 22 bit branches.  Mask off bits we do not care
-          about.  */
-       sym_value &= 0x3fffff;
-
-       /* Now extract the W1, W2, W3 and W fields from the value.  */
-       dis_assemble_22 (sym_value, &w3, &w1, &w2, &w);
-
-       /* Mask out bits for the value in the instruction.  */
-       insn &= 0xfc00e002;
-
-       /* Insert the bits for the W1, W2 and W fields into the
-          instruction.  */
-       insn |= (w3 << 21) | (w2 << 2) | (w1 << 16) | w;
-       return insn;
-       }
+      return re_assemble_22 (insn, sym_value);
 
     /* This is any 17bit branch.  In PA2.0 syntax it also corresponds to
        the "B" instruction as well as BE.  */
@@ -1736,24 +1974,7 @@ elf_hppa_relocate_insn (insn, sym_value, r_type)
     case R_PARISC_DIR17R:
     case R_PARISC_PCREL17C:
     case R_PARISC_PCREL17R:
-      {
-       unsigned int w2, w1, w;
-
-       /* These are 17 bit branches.  Mask off bits we do not care
-          about.  */
-       sym_value &= 0x1ffff;
-
-       /* Now extract the W1, W2 and W fields from the value.  */
-       dis_assemble_17 (sym_value, &w1, &w2, &w);
-
-       /* Mask out bits for the value in the instruction.  */
-       insn &= 0xffe0e002;
-
-       /* Insert the bits for the W1, W2 and W fields into the
-          instruction.  */
-       insn |= (w2 << 2) | (w1 << 16) | w;
-       return insn;
-      }
+      return re_assemble_17 (insn, sym_value);
 
     /* ADDIL or LDIL instructions.  */
     case R_PARISC_DLTREL21L:
@@ -1764,18 +1985,7 @@ elf_hppa_relocate_insn (insn, sym_value, r_type)
     case R_PARISC_DPREL21L:
     case R_PARISC_PLTOFF21L:
     case R_PARISC_DIR21L:
-      {
-        int w;
-
-       /* Mask off bits in INSN we do not want.  */
-       insn &= 0xffe00000;
-
-       /* Turn the 21bit value into the proper format.  */
-       dis_assemble_21 (sym_value, &w);
-
-       /* And insert the proper bits into INSN.  */
-        return insn | w;
-      }
+      return re_assemble_21 (insn, sym_value);
 
     /* LDO and integer loads/stores with 14bit displacements.  */
     case R_PARISC_DLTREL14R:
@@ -1799,18 +2009,7 @@ elf_hppa_relocate_insn (insn, sym_value, r_type)
     case R_PARISC_DIR14R:
     case R_PARISC_DIR16F:
     case R_PARISC_LTOFF16F:
-      {
-        int w;
-
-       /* Mask off bits in INSN we do not want.  */
-       insn &= 0xffffc000;
-
-       /* Turn the 14bit value into the proper format.  */
-       low_sign_unext (sym_value, 14, &w);
-
-       /* And insert the proper bits into INSN.  */
-        return insn | w;
-      }
+      return (insn & ~ 0x3fff) | low_sign_unext (sym_value, 14);
 
     /* Doubleword loads and stores with a 14bit displacement.  */
     case R_PARISC_DLTREL14DR:
@@ -1828,22 +2027,8 @@ elf_hppa_relocate_insn (insn, sym_value, r_type)
     case R_PARISC_DIR14DR:
     case R_PARISC_DIR16DF:
     case R_PARISC_LTOFF16DF:
-      {
-       /* Mask off bits in INSN we do not want.  */
-       insn &= 0xffffc00e;
-
-       /* The sign bit at 14 moves into bit zero in the destination.  */
-        insn |= ((sym_value & 0x2000) >> 13);
-
-       /* Turn off the bits in sym_value we do not care about.  */
-       sym_value &= 0x1ff8;
-
-       /* Now shift it one bit position left so that it lines up with the
-          destination field in INSN.  */
-       sym_value <<= 1;
-
-       return insn | sym_value;
-      }
+      return (insn & ~ 0x3ff1) | (((sym_value & 0x2000) >> 13)
+                                 | ((sym_value & 0x1ff8) << 1));
 
     /* Floating point single word load/store instructions.  */
     case R_PARISC_DLTREL14WR:
@@ -1861,24 +2046,11 @@ elf_hppa_relocate_insn (insn, sym_value, r_type)
     case R_PARISC_DIR16WF:
     case R_PARISC_DIR14WR:
     case R_PARISC_LTOFF16WF:
-      {
-       /* Mask off bits in INSN we do not want.  */
-       insn &= 0xffffc006;
-
-       /* The sign bit at 14 moves into bit zero in the destination.  */
-        insn |= ((sym_value & 0x2000) >> 13);
-
-       /* Turn off the bits in sym_value we do not care about.  */
-       sym_value &= 0x1ffc;
-
-       /* Now shift it one bit position left so that it lines up with the
-          destination field in INSN.  */
-       sym_value <<= 1;
-
-       return insn | sym_value;
-      }
+      return (insn & ~ 0x3ff9) | (((sym_value & 0x2000) >> 13)
+                                 | ((sym_value & 0x1ffc) << 1));
 
     default:
       return insn;
     }
 }
+#endif
index dfabbad00824b165569043b1dfd034598a58b86c..1fdd4abb26fe3bf1b6678c98c410359438942248 100644 (file)
@@ -311,17 +311,17 @@ hppa_elf_relocate_insn (abfd, input_sect, insn, address, sym_value,
     case BL:
     case BE:
     case BLE:
-      /* XXX computing constant_value is not needed??? */
+      /* XXX r_addend ignored ???.  */
       constant_value = assemble_17 ((insn & 0x001f0000) >> 16,
                                    (insn & 0x00001ffc) >> 2,
                                    insn & 1);
 
-      constant_value = (constant_value << 15) >> 15;
+      constant_value = (constant_value << (BFD_ARCH_SIZE-17))
+                                      >> (BFD_ARCH_SIZE-17);
       if (pcrel)
        {
-         sym_value -=
-           address + input_sect->output_offset
-           + input_sect->output_section->vma;
+         sym_value -= (address + input_sect->output_offset
+                       + input_sect->output_section->vma);
          sym_value = hppa_field_adjust (sym_value, -8, r_field);
        }
       else
index f52a7322c798faa4b604034e266328e0008e9d0c..121398d2b2d4ce61a16ac4f2c942e4eae254ea92 100644 (file)
 #endif /* GNU C? */
 #endif /* INLINE */
 
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
-/* Declare the functions with the unused attribute to avoid warnings.  */
-static INLINE unsigned int assemble_3 (unsigned int)
-     __attribute__ ((__unused__));
-static INLINE void dis_assemble_3 (unsigned int, unsigned int *)
-     __attribute__ ((__unused__));
-static INLINE unsigned int assemble_12 (unsigned int, unsigned int)
-     __attribute__ ((__unused__));
-static INLINE void dis_assemble_12 (unsigned int, unsigned int *,
-                                   unsigned int *)
-     __attribute__ ((__unused__));
-static INLINE void dis_assemble_16 (unsigned int, unsigned int *, int)
-     __attribute__ ((__unused__));
-static INLINE unsigned long assemble_17 (unsigned int, unsigned int,
-                                        unsigned int)
-     __attribute__ ((__unused__));
-static INLINE void dis_assemble_17 (unsigned int, unsigned int *,
-                                   unsigned int *, unsigned int *)
-     __attribute__ ((__unused__));
-static INLINE void dis_assemble_22 (unsigned int, unsigned int *,
-                                   unsigned int *, unsigned int *,
-                                   unsigned int *)
-     __attribute__ ((__unused__));
-static INLINE unsigned long assemble_21 (unsigned int)
-     __attribute ((__unused__));
-static INLINE void dis_assemble_21 (unsigned int, unsigned int *)
-     __attribute__ ((__unused__));
-static INLINE unsigned long sign_extend (unsigned int, unsigned int)
-     __attribute__ ((__unused__));
-static INLINE unsigned int ones (int) __attribute ((__unused__));
-static INLINE void sign_unext (unsigned int, unsigned int, unsigned int *)
-     __attribute__ ((__unused__));
-static INLINE unsigned long low_sign_extend (unsigned int, unsigned int)
-     __attribute__ ((__unused__));
-static INLINE void low_sign_unext (unsigned int, unsigned int, unsigned int *)
-     __attribute__ ((__unused__));
-static INLINE unsigned long hppa_field_adjust (unsigned long, unsigned long,
-                                              unsigned short)
-     __attribute__ ((__unused__));
-static INLINE int bfd_hppa_insn2fmt (unsigned long)
-     __attribute__ ((__unused__));
-static INLINE  unsigned long hppa_rebuild_insn (bfd *, unsigned long,
-                                               unsigned long, unsigned long)
-     __attribute__ ((__unused__));
-#endif /* gcc 2.7 or higher */
-
-
 /* The PA instruction set variants.  */
 enum pa_arch {pa10 = 10, pa11 = 11, pa20 = 20, pa20w = 25};
 
@@ -199,10 +152,13 @@ enum hppa_reloc_expr_type_alt
 
    The high order 10 bits contain parameter relocation information,
    the low order 22 bits contain the constant offset.  */
-   
-#define HPPA_R_ARG_RELOC(a)    (((a) >> 22) & 0x3FF)
-#define HPPA_R_CONSTANT(a)     ((((int)(a)) << 10) >> 10)
-#define HPPA_R_ADDEND(r,c)     (((r) << 22) + ((c) & 0x3FFFFF))
+
+#define HPPA_R_ARG_RELOC(a)    \
+  (((a) >> 22) & 0x3ff)
+#define HPPA_R_CONSTANT(a)     \
+  ((((int)(a)) << (BFD_ARCH_SIZE-22)) >> (BFD_ARCH_SIZE-22))
+#define HPPA_R_ADDEND(r, c)    \
+  (((r) << 22) + ((c) & 0x3fffff))
 #define HPPA_WIDE             (0) /* PSW W-bit, need to check! FIXME */
 
 /* These macros get bit fields using HP's numbering (MSB = 0),
@@ -212,54 +168,110 @@ enum hppa_reloc_expr_type_alt
 #ifndef GET_FIELD
 #define GET_FIELD(X, FROM, TO) \
   ((X) >> (31 - (TO)) & ((1 << ((TO) - (FROM) + 1)) - 1))
-#endif  
+#endif
 #define GET_BIT(X, WHICH) \
   GET_FIELD (X, WHICH, WHICH)
 
 #define MASK(SIZE) \
   (~((-1) << SIZE))
-  
+
 #define CATENATE(X, XSIZE, Y, YSIZE) \
   (((X & MASK (XSIZE)) << YSIZE) | (Y & MASK (YSIZE)))
 
 #define ELEVEN(X) \
   CATENATE (GET_BIT (X, 10), 1, GET_FIELD (X, 0, 9), 10)
-  
+
 /* Some functions to manipulate PA instructions.  */
 
-/* NOTE: these use the HP convention that f{1} is the _left_ most
+/* NOTE: these use the HP convention that f{0} is the _left_ most
  *       bit (MSB) of f; they sometimes have to impose an assumption
  *       about the size of a field; and as far as I can tell, most
  *       aren't used.
  */
 
-static INLINE unsigned long
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+/* Declare the functions with the unused attribute to avoid warnings.  */
+static INLINE unsigned int sign_extend (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int low_sign_extend (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int assemble_3 (unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int assemble_6 (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int assemble_12 (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int assemble_16 (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int assemble_16a (unsigned int, unsigned int,
+                                        unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int assemble_17 (unsigned int, unsigned int,
+                                       unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int assemble_21 (unsigned int)
+     __attribute ((__unused__));
+
+static INLINE unsigned int sign_unext (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int low_sign_unext (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int re_assemble_3 (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int re_assemble_12 (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int re_assemble_16 (unsigned int, unsigned int, int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int re_assemble_17 (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int re_assemble_22 (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE unsigned int re_assemble_21 (unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+static INLINE bfd_signed_vma hppa_field_adjust (bfd_signed_vma, bfd_signed_vma,
+                                               enum hppa_reloc_field_selector_type_alt)
+     __attribute__ ((__unused__));
+static INLINE int bfd_hppa_insn2fmt (unsigned int)
+     __attribute__ ((__unused__));
+static INLINE  unsigned int hppa_rebuild_insn (bfd *, unsigned int,
+                                              unsigned int, unsigned int)
+     __attribute__ ((__unused__));
+#endif /* gcc 2.7 or higher */
+
+
+/* The *sign_extend and assemble_* functions are used to assemble
+   various bitfields taken from an instruction and return the
+   resulting immediate value.  They correspond to functions by the
+   same name in HP's PA-RISC 2.0 Architecture Reference Manual.  */
+
+static INLINE unsigned int
 sign_extend (x, len)
      unsigned int x, len;
 {
-  return (int)(x >> (len - 1) ? (-1 << len) | x : x);
+  unsigned int signbit = (1 << (len - 1));
+  unsigned int mask = (signbit << 1) - 1;
+  return ((x & mask) ^ signbit) - signbit;
 }
 
 static INLINE unsigned int
-assemble_3 (x)
-     unsigned int x;
+low_sign_extend (x, len)
+     unsigned int x, len;
 {
-  return CATENATE (GET_BIT (x, 2), 1, GET_FIELD (x, 0, 1), 2);
+  return (x >> 1) - ((x & 1) << (len - 1));
 }
 
-static INLINE void
-dis_assemble_3 (x, r)
+static INLINE unsigned int
+assemble_3 (x)
      unsigned int x;
-     unsigned int *r;
 {
-  *r = (((x & 4) >> 2) | ((x & 3) << 1)) & 7;
+  return CATENATE (GET_BIT (x, 2), 1, GET_FIELD (x, 0, 1), 2);
 }
 
 static INLINE unsigned int
 assemble_6 (x, y)
      unsigned int x, y;
 {
-  return (((x & 0x1) << 5) + (32 - (y & 0x1f)));
+  return (((x & 1) << 5) + (32 - (y & 0x1f)));
 }
 
 static INLINE unsigned int
@@ -270,40 +282,7 @@ assemble_12 (x, y)
                   GET_FIELD (x, 0, 9), 9);
 }
 
-static INLINE void
-dis_assemble_12 (as12, x, y)
-     unsigned int as12;
-     unsigned int *x, *y;
-{
-  *y = (as12 & 0x800) >> 11;
-  *x = ((as12 & 0x3ff) << 1) | ((as12 & 0x400) >> 10);
-}
-
-static INLINE void
-dis_assemble_16 (as16, x, wide)
-     unsigned int as16;
-     unsigned int *x;
-     int wide;
-{
-  unsigned int t1, t2;
-
-  if (wide)
-    {
-      /* Unusual 16-bit encoding.  */
-      t1 = (as16 << 1) & 0xffff;
-      t2 = (as16 & 0x8000);
-      *x = t1 ^ t2 ^ (t2 >> 1) | (t2 >> 15);
-    }
-  else
-    {
-      /* Standard 14-bit encoding.  */
-      t1 = (as16 << 1) & 0x3fff;
-      t2 = (as16 & 0x2000);
-      *x = t1 | (t2 >> 13);
-    }
-}
-
-static INLINE unsigned long
+static INLINE unsigned int
 assemble_16 (x, y)
      unsigned int x, y;
 {
@@ -322,8 +301,7 @@ assemble_16 (x, y)
   return sign_extend (temp, 16);
 }
 
-
-static INLINE unsigned long
+static INLINE unsigned int
 assemble_16a (x, y, z)
      unsigned int x, y, z;
 {
@@ -333,223 +311,252 @@ assemble_16a (x, y, z)
   if (HPPA_WIDE)
     temp = CATENATE (CATENATE (z, 1, (z ^ GET_BIT (x, 0)), 1), 2,
                     CATENATE ((z ^ GET_BIT (x, 1)), 1, y, 11), 12);
-  else 
-      temp = CATENATE (CATENATE (z, 1, z, 1), 2, CATENATE (z, 1, y, 11), 12);
+  else
+    temp = CATENATE (CATENATE (z, 1, z, 1), 2, CATENATE (z, 1, y, 11), 12);
 
   return sign_extend ((temp << 2), 16);
 }
 
-static INLINE unsigned long
+static INLINE unsigned int
 assemble_17 (x, y, z)
      unsigned int x, y, z;
 {
-  unsigned long temp;
+  unsigned int temp;
 
   temp = CATENATE (CATENATE (z, 1, x, 5), 6,
                   CATENATE (GET_BIT (y, 10), 1, GET_FIELD (y, 0, 9), 10), 11);
-  
-  return temp;
-}
-
-static INLINE void
-dis_assemble_17 (as17, x, y, z)
-     unsigned int as17;
-     unsigned int *x, *y, *z;
-{
 
-  *z = (as17 & 0x10000) >> 16;
-  *x = (as17 & 0x0f800) >> 11;
-  *y = (((as17 & 0x00400) >> 10) | ((as17 & 0x3ff) << 1)) & 0x7ff;
-}
-
-static INLINE void
-dis_assemble_22 (as22, a, b, c, d)
-     unsigned int as22;
-     unsigned int *a, *b, *c, *d;
-{
-
-  *d = (as22 & 0x200000) >> 21;
-  *a = (as22 & 0x1f0000) >> 16;
-  *b = (as22 & 0x0f800) >> 11;
-  *c = (((as22 & 0x00400) >> 10) | ((as22 & 0x3ff) << 1)) & 0x7ff;
+  return temp;
 }
 
-static INLINE unsigned long
+static INLINE unsigned int
 assemble_21 (x)
      unsigned int x;
 {
-  unsigned long temp;
-
-  temp = ((x & 1) << 20) |
-    ((x & 0xffe) << 8) |
-    ((x & 0xc000) >> 7) |
-    ((x & 0x1f0000) >> 14) |
-    ((x & 0x003000) >> 12);
-  return temp & 0x1fffff;
+  unsigned int temp;
+
+  temp = ((  (x & 0x000001) << 20)
+         | ((x & 0x000ffe) << 8)
+         | ((x & 0x003000) >> 12)
+         | ((x & 0x00c000) >> 7)
+         | ((x & 0x1f0000) >> 14));
+  return temp;
 }
 
-static INLINE unsigned long
+static INLINE unsigned int
 assemble_22 (a,b,c,d)
      unsigned int a,b,c,d;
 {
-  unsigned long temp;
-  
+  unsigned int temp;
+
   temp = CATENATE (CATENATE (d, 1, a, 5), 6,
                   CATENATE (b, 5, ELEVEN (c), 11), 16);
 
   return sign_extend (temp, 22);
 }
 
-static INLINE void
-dis_assemble_21 (as21, x)
-     unsigned int as21, *x;
-{
-  unsigned long temp;
 
-
-  temp = (as21 & 0x100000) >> 20;
-  temp |= (as21 & 0x0ffe00) >> 8;
-  temp |= (as21 & 0x000180) << 7;
-  temp |= (as21 & 0x00007c) << 14;
-  temp |= (as21 & 0x000003) << 12;
-  *x = temp;
-}
+/* The re_assemble_* functions splice together an opcode and an
+   immediate value.  pa-risc uses all sorts of weird bitfields in the
+   instruction to hold the value.  */
 
 static INLINE unsigned int
-ones (n)
-     int n;
+sign_unext (x, len)
+     unsigned int x, len;
 {
   unsigned int len_ones;
-  int i;
 
-  i = 0;
-  len_ones = 0;
-  while (i < n)
-    {
-      len_ones = (len_ones << 1) | 1;
-      i++;
-    }
+  len_ones = ((unsigned int) 1 << len) - 1;
 
-  return len_ones;
+  return x & len_ones;
 }
 
-static INLINE void
-sign_unext (x, len, result)
+static INLINE unsigned int
+low_sign_unext (x, len)
      unsigned int x, len;
-     unsigned int *result;
 {
-  unsigned int len_ones;
+  unsigned int temp;
+  unsigned int sign;
 
-  len_ones = ones (len);
+  sign = (x >> (len-1)) & 1;
 
-  *result = x & len_ones;
+  temp = sign_unext (x, len-1);
+
+  return (temp << 1) | sign;
 }
 
-static INLINE unsigned long
-low_sign_extend (x, len)
-     unsigned int x, len;
+static INLINE unsigned int
+re_assemble_3 (insn, as3)
+     unsigned int insn;
+     unsigned int as3;
 {
-  return (int)((x & 0x1 ? (-1 << (len - 1)) : 0) | x >> 1);
+  return ((insn & ~ (7 << 13))
+         | ((as3 & 4) << (13-2))
+         | ((as3 & 3) << (13+1)));
 }
 
-static INLINE void
-low_sign_unext (x, len, result)
-     unsigned int x, len;
-     unsigned int *result;
+static INLINE unsigned int
+re_assemble_12 (insn, as12)
+     unsigned int insn;
+     unsigned int as12;
 {
-  unsigned int temp;
-  unsigned int sign;
-  unsigned int rest;
-  unsigned int one_bit_at_len;
-  unsigned int len_ones;
+  return ((insn & ~ 0x1ffd)
+         | ((as12 & 0x800) >> 11)
+         | ((as12 & 0x400) >> (10 - 2))
+         | ((as12 & 0x3ff) << (1 + 2)));
+}
+
+static INLINE unsigned int
+re_assemble_16 (insn, as16, wide)
+     unsigned int insn;
+     unsigned int as16;
+     int wide;
+{
+  unsigned int s, t;
 
-  len_ones = ones (len);
-  one_bit_at_len = 1 << (len - 1);
+  if (wide)
+    {
+      /* Unusual 16-bit encoding.  */
+      t = (as16 << 1) & 0xffff;
+      s = (as16 & 0x8000);
+      return (insn & ~ 0xffff) | (t ^ s ^ (s >> 1)) | (s >> 15);
+    }
+  else
+    {
+      /* Standard 14-bit encoding.  */
+      t = (as16 << 1) & 0x3fff;
+      s = (as16 & 0x2000);
+      return (insn & ~ 0xffff) | t | (s >> 13);
+    }
+}
 
-  sign_unext (x, len, &temp);
-  sign = temp & one_bit_at_len;
-  sign >>= (len - 1);
+static INLINE unsigned int
+re_assemble_17 (insn, as17)
+     unsigned int insn;
+     unsigned int as17;
+{
+  return ((insn & ~ 0x1f1ffd)
+         | ((as17 & 0x10000) >> 16)
+         | ((as17 & 0x0f800) << (16 - 11))
+         | ((as17 & 0x00400) >> (10 - 2))
+         | ((as17 & 0x003ff) << (1 + 2)));
+}
 
-  rest = temp & (len_ones ^ one_bit_at_len);
-  rest <<= 1;
+static INLINE unsigned int
+re_assemble_21 (insn, as21)
+     unsigned int insn;
+     unsigned int as21;
+{
+  return ((insn & ~ 0x1fffff)
+         | ((as21 & 0x100000) >> 20)
+         | ((as21 & 0x0ffe00) >> 8)
+         | ((as21 & 0x000180) << 7)
+         | ((as21 & 0x00007c) << 14)
+         | ((as21 & 0x000003) << 12));
+}
 
-  *result = rest | sign;
+static INLINE unsigned int
+re_assemble_22 (insn, as22)
+     unsigned int insn;
+     unsigned int as22;
+{
+  return ((insn & ~ 0x3ff1ffd)
+         | ((as22 & 0x200000) >> 21)
+         | ((as22 & 0x1f0000) << (21 - 16))
+         | ((as22 & 0x00f800) << (16 - 11))
+         | ((as22 & 0x000400) >> (10 - 2))
+         | ((as22 & 0x0003ff) << (1 + 2)));
 }
 
-/* Handle field selectors for PA instructions.  */
 
-static INLINE unsigned long
-hppa_field_adjust (value, constant_value, r_field)
-     unsigned long value;
-     unsigned long constant_value;
-     unsigned short r_field;
+/* Handle field selectors for PA instructions.
+   The L and R (and LS, RS etc.) selectors are used in pairs to form a
+   full 32 bit address.  eg.
+
+   LDIL        L'start,%r1             ; put left part into r1
+   LDW R'start(%r1),%r2        ; add r1 and right part to form address
+
+   This function returns sign extended values in all cases.
+*/
+
+static INLINE bfd_signed_vma
+hppa_field_adjust (sym_val, addend, r_field)
+     bfd_signed_vma sym_val;
+     bfd_signed_vma addend;
+     enum hppa_reloc_field_selector_type_alt r_field;
 {
+  bfd_signed_vma value;
+
+  value = sym_val + addend;
   switch (r_field)
     {
-    case e_fsel:               /* F  : no change                     */
-    case e_nsel:               /* N  : no change                      */
-      value += constant_value;
+    case e_fsel:
+    case e_nsel:
+      /* F: No change.  */
       break;
 
-    case e_lssel:              /* LS : if (bit 21) then add 0x800
-                                  arithmetic shift right 11 bits */
-      value += constant_value;
-      if (value & 0x00000400)
-       value += 0x800;
-      value = (value & 0xfffff800) >> 11;
+    case e_lsel:
+    case e_nlsel:
+      /* L:  Select top 21 bits.  */
+      value = value >> 11;
       break;
 
-    case e_rssel:              /* RS : Sign extend from bit 21 */
-      value += constant_value;
-      if (value & 0x00000400)
-       value |= 0xfffff800;
-      else
-       value &= 0x7ff;
+    case e_rsel:
+      /* R:  Select bottom 11 bits.  */
+      value = value & 0x7ff;
       break;
 
-    case e_lsel:               /* L  : Arithmetic shift right 11 bits */
-    case e_nlsel:              /* NL  : Arithmetic shift right 11 bits */
-      value += constant_value;
-      value = (value & 0xfffff800) >> 11;
+    case e_lssel:
+      /* LS:  Round to nearest multiple of 2048 then select top 21 bits.  */
+      value = value + 0x400;
+      value = value >> 11;
       break;
 
-    case e_rsel:               /* R  : Set bits 0-20 to zero     */
-      value += constant_value;
-      value = value & 0x7ff;
+    case e_rssel:
+      /* RS:  Select bottom 11 bits for LS.
+        We need to return a value such that 2048 * LS'x + RS'x == x.
+        ie. RS'x = x - ((x + 0x400) & -0x800)
+        this is just a sign extension from bit 21.  */
+      value = ((value & 0x7ff) ^ 0x400) - 0x400;
       break;
 
-    case e_ldsel:              /* LD : Add 0x800, arithmetic shift
-                                  right 11 bits                  */
-      value += constant_value;
-      value += 0x800;
-      value = (value & 0xfffff800) >> 11;
+    case e_ldsel:
+      /* LD:  Round to next multiple of 2048 then select top 21 bits.
+        Yes, if we are already on a multiple of 2048, we go up to the
+        next one.  RD in this case will be -2048.  */
+      value = value + 0x800;
+      value = value >> 11;
       break;
 
-    case e_rdsel:              /* RD : Set bits 0-20 to one       */
-      value += constant_value;
-      value |= 0xfffff800;
+    case e_rdsel:
+      /* RD:  Set bits 0-20 to one.  */
+      value = value | -0x800;
       break;
 
-    case e_lrsel:              /* LR : L with "rounded" constant      */
-    case e_nlrsel:             /* NLR : NL with "rounded" constant      */
-      value = value + ((constant_value + 0x1000) & 0xffffe000);
-      value = (value & 0xfffff800) >> 11;
+    case e_lrsel:
+    case e_nlrsel:
+      /* LR:  L with rounding of the addend to nearest 8k.  */
+      value = sym_val + ((addend + 0x1000) & -0x2000);
+      value = value >> 11;
       break;
 
-    case e_rrsel:              /* RR : R with "rounded" constant      */
-      value = value + ((constant_value + 0x1000) & 0xffffe000);
-      value = (value & 0x7ff) + constant_value - ((constant_value + 0x1000) & 0xffffe000);
+    case e_rrsel:
+      /* RR:  R with rounding of the addend to nearest 8k.
+        We need to return a value such that 2048 * LR'x + RR'x == x
+        ie. RR'x = s+a - (s + (((a + 0x1000) & -0x2000) & -0x800))
+        .        = s+a - ((s & -0x800) + ((a + 0x1000) & -0x2000))
+        .        = (s & 0x7ff) + a - ((a + 0x1000) & -0x2000)  */
+      value = (sym_val & 0x7ff) + (((addend & 0x1fff) ^ 0x1000) - 0x1000);
       break;
 
     default:
       abort ();
     }
   return value;
-
 }
 
 /* PA-RISC OPCODES */
-#define get_opcode(insn)       ((insn) & 0xfc000000) >> 26
+#define get_opcode(insn)       (((insn) >> 26) & 0x3f)
 
 /* FIXME: this list is incomplete.  It should also be an enumerated
    type rather than #defines.  */
@@ -597,9 +604,9 @@ hppa_field_adjust (value, constant_value, r_field)
 #define STD    0x1c
 #define LDWL   0x17
 #define STWL   0x1f
-#define FDLW    0x16
+#define FLDW    0x16
 #define FSTW    0x1e
-  
+
 /* Given a machine instruction, return its format.
 
    FIXME:  opcodes which do not map to a known format
@@ -607,18 +614,17 @@ hppa_field_adjust (value, constant_value, r_field)
 
 static INLINE int
 bfd_hppa_insn2fmt (insn)
-     unsigned long insn;
+     unsigned int insn;
 {
-  int fmt = -1;
   unsigned char op = get_opcode (insn);
-  
+
   switch (op)
     {
     case ADDI:
     case ADDIT:
     case SUBI:
-      fmt = 11;
-      break;
+      return 11;
+
     case MOVB:
     case MOVIB:
     case COMBT:
@@ -634,8 +640,8 @@ bfd_hppa_insn2fmt (insn)
     case CMPBDT:
     case CMPBDF:
     case CMPIBD:
-      fmt = 12;
-      break;
+      return 12;
+
     case LDO:
     case LDB:
     case LDH:
@@ -645,106 +651,57 @@ bfd_hppa_insn2fmt (insn)
     case STH:
     case STW:
     case STWM:
-      fmt = 14;
-      break;
+      return 14;
+
     case LDWL:
     case STWL:
-    case FDLW:
+    case FLDW:
     case FSTW:
       /* This is a hack.  Unfortunately, format 11 is already taken
         and we're using integers rather than an enum, so it's hard
-        to describe the 10a format.  */
-      fmt = -11;
-      break;
+        to describe the 11a format.  */
+      return -11;
+
     case LDD:
     case STD:
-      fmt = 10;
-      break;
+      return 10;
+
     case BL:
     case BE:
     case BLE:
-      if ((insn & 0x00008000) == 0x00008000)
+      if ((insn & 0x00008000) != 0)
        return 22;
-      fmt = 17;
-      break;
+      return 17;
+
     case LDIL:
     case ADDIL:
-      fmt = 21;
-      break;
+      return 21;
+
     default:
-      fmt = 32;
       break;
     }
-  return fmt;
+  return 32;
 }
 
 
 /* Insert VALUE into INSN using R_FORMAT to determine exactly what
    bits to change.  */
-   
-static INLINE unsigned long
+
+static INLINE unsigned int
 hppa_rebuild_insn (abfd, insn, value, r_format)
      bfd *abfd ATTRIBUTE_UNUSED;
-     unsigned long insn;
-     unsigned long value;
-     unsigned long r_format;
+     unsigned int insn;
+     unsigned int value;
+     unsigned int r_format;
 {
-  unsigned long const_part;
-  unsigned long rebuilt_part;
-
   switch (r_format)
     {
-    case 11:
-      {
-       unsigned w1, w;
-
-       const_part = insn & 0xffffe002;
-       dis_assemble_12 (value, &w1, &w);
-       rebuilt_part = (w1 << 2) | w;
-       return const_part | rebuilt_part;
-      }
-
-    case 12:
-      {
-       unsigned w1, w;
-
-       const_part = insn & 0xffffe002;
-       dis_assemble_12 (value, &w1, &w);
-       rebuilt_part = (w1 << 2) | w;
-       return const_part | rebuilt_part;
-      }
-
-    case 14:
-      {
-       unsigned int ext;
-       
-       const_part = insn & 0xffffc000;
-       low_sign_unext (value, 14, &ext);
-       return const_part | ext;
-      }
-
-    case 17:
-      {
-       unsigned w1, w2, w;
-
-       const_part = insn & 0xffe0e002;
-       dis_assemble_17 (value, &w1, &w2, &w);
-       rebuilt_part = (w2 << 2) | (w1 << 16) | w;
-       return const_part | rebuilt_part;
-      }
-
-    case 21:
-      {
-       unsigned int w;
-
-       const_part = insn & 0xffe00000;
-       dis_assemble_21 (value, &w);
-       return const_part | w;
-      }
-
-    case 32:
-      const_part = 0;
-      return value;
+    case 11: return (insn & ~ 0x7ff) | low_sign_unext (value, 11);
+    case 12: return re_assemble_12 (insn, value);
+    case 14: return (insn & ~ 0x3fff) | low_sign_unext (value, 14);
+    case 17: return re_assemble_17 (insn, value);
+    case 21: return re_assemble_21 (insn, value);
+    case 32: return value;
 
     default:
       abort ();
index 7e1dd87d8054340ec0e2831d9c1e65055fa4d32c..77530a53e8d0374aec032d15302a5117a3879f8d 100644 (file)
@@ -25,7 +25,7 @@ SECTION
 
        BFD maintains relocations in much the same way it maintains
        symbols: they are left alone until required, then read in
-       en-mass and translated into an internal form.  A common
+       en-masse and translated into an internal form.  A common
        routine <<bfd_perform_relocation>> acts upon the
        canonical form to do the fixup.
 
index d8a9dcd17f3bc4de84ee75b2a712b1ad1f103cbd..f59311fa6c66dbb57f23bddf92bc699e9d1e469f 100644 (file)
@@ -1,3 +1,48 @@
+2000-05-02  Alan Modra  <alan@linuxcare.com.au>
+
+       * configure.in: Set em=linux for hppa-*-linux.
+       * configure: Regenerate.
+       * doc/Makefile.in: Regenerate with correct automake.
+
+       * frags.c (frag_grow): Sanity check chunk_size.
+
+       * config/obj-elf.h: #include "bfd.h" not <bfd.h>
+       * config/obj-som.h: Likewise.
+       * config/obj-ieee.h: Likewise.
+
+       * config/tc-hppa.h: Test BFD_ARCH_SIZE, not BFD64.
+
+       * config/tc-hppa.c (log2): Only compile when OBJ_SOM.
+       (md_pseudo_table): Fully initialise OBJ_ELF cases.
+       (fix_new_hppa): Add ATTRIBUTE_UNUSED to args as appropriate.
+       (pa_ip): low_sign_unext now returns via function value.  Use
+       re_assemble_* instead of dis_assemble_* and
+       INSERT_FIELD_AND_CONTINUE combination.  Don't call sign_unext
+       unnecessarily.
+       (md_convert_frag): Add ATTRIBUTE_UNUSED to args as appropriate.
+       (md_section_align, md_parse_option, md_show_usage,
+       md_undefined_symbol, pa_align, pa_block, pa_brtab, pa_try,
+       pa_callinfo, pa_code, pa_comm, pa_end, pa_enter, pa_entry,
+       pa_exit, pa_export, pa_import, pa_label, pa_leave, pa_level,
+       pa_origin, pa_param, pa_proc, pa_procend, pa_space, pa_spnum,
+       pa_version, pa_compiler, pa_copyright, pa_data, pa_fill, pa_lsym,
+       pa_text): Likewise.
+       (md_apply_fix): Change type of new_val to offsetT.  Delete w1, w2,
+       w, resulti.  Add insn, val.  Move bfd_get_32 and bfd_put_32
+       outside of switch.  Correct mask and shifting errors in case 10
+       and case -11.  In case 21, compare against signed range to suit
+       hppa_field_adjust changes.  In case 12, use re_assemble_12.  In
+       case 17 and case 22, use offsetT variable to properly check range.
+       Use re_assemble_* here too.
+       (evaluate_absolute): Change type of value to offsetT.  Call
+       hppa_field_adjust to do the work for us.
+       (pa_parse_cmpb_64_cmpltr): Delete save_s.
+       (pa_parse_cmpib_64_cmpltr): Ditto.
+       (pa_build_unwind_subspace): Delete unused var subseg.  Change type
+       of i to unsigned int.
+       (pa_type_args): Conditionally declare symbol if OBJ_SOM.
+       (pa_end_of_source): Return type is void.
+
 Mon May  1 08:54:23 2000  Catherine Moore  <clm@cygnus.com>
 
        * macro.c (macro_expand_body): Don't prepend macro number with zeroes.
index 722c5fdf94ded51549a10ebb5353440c6cf1892a..d6fd92ca131b5ee3f0934f669ad607a701efc2b7 100644 (file)
@@ -32,7 +32,7 @@
 #define OUTPUT_FLAVOR bfd_target_elf_flavour
 #endif
 
-#include <bfd.h>
+#include "bfd.h"
 
 #define BYTES_IN_WORD 4                /* for now */
 #include "bfd/elf-bfd.h"
index 4a0f126ebe433169b7c2b41714da005541c61f56..4198af8e62de13edc9ccd9a7f802e3538d578f33 100644 (file)
@@ -20,7 +20,7 @@
 
 #define BFD 1
 
-#include <bfd.h>
+#include "bfd.h"
 
 typedef struct
 {
index 62087b125f7a62e5952ad466c216c3baa3969d09..35670bc621cc29b9ef9210558bde3926a1666a15 100644 (file)
@@ -26,7 +26,7 @@
 
 #define OBJ_SOM 1
 
-#include <bfd.h>
+#include "bfd.h"
 #include "bfd/som.h"
 #include "targ-cpu.h"
 
index 1dc5af4744909cfa308fd70f8e0bc7c2fccf2da5..3876842873bf3a754960d6a1de62b4f38d1b1bb5 100644 (file)
@@ -528,6 +528,7 @@ static int need_pa11_opcode PARAMS ((struct pa_it *,
 static int pa_parse_number PARAMS ((char **, struct pa_11_fp_reg_struct *));
 static label_symbol_struct *pa_get_label PARAMS ((void));
 #ifdef OBJ_SOM
+static int log2 PARAMS ((int));
 static void pa_compiler PARAMS ((int));
 static void pa_align PARAMS ((int));
 static void pa_space PARAMS ((int));
@@ -568,7 +569,6 @@ static int reg_name_search PARAMS ((char *));
 static int pa_chk_field_selector PARAMS ((char **));
 static int is_same_frag PARAMS ((fragS *, fragS *));
 static void process_exit PARAMS ((void));
-static int log2 PARAMS ((int));
 static unsigned int pa_stringer_aux PARAMS ((char *));
 static fp_operand_format pa_parse_fp_cnv_format PARAMS ((char **s));
 static int pa_parse_ftest_gfx_completer PARAMS ((char **));
@@ -646,7 +646,7 @@ const pseudo_typeS md_pseudo_table[] =
   {"exit", pa_exit, 0},
   {"export", pa_export, 0},
 #ifdef OBJ_ELF
-  { "file", dwarf2_directive_file },
+  { "file", dwarf2_directive_file, 0 },
 #endif
   {"fill", pa_fill, 0},
   {"float", pa_float_cons, 'f'},
@@ -658,7 +658,7 @@ const pseudo_typeS md_pseudo_table[] =
   {"leave", pa_leave, 0},
   {"level", pa_level, 0},
 #ifdef OBJ_ELF
-  { "loc", dwarf2_directive_loc },
+  { "loc", dwarf2_directive_loc, 0 },
 #endif
   {"long", pa_cons, 4},
   {"lsym", pa_lsym, 0},
@@ -1271,7 +1271,7 @@ fix_new_hppa (frag, where, size, add_symbol, offset, exp, pcrel,
      enum hppa_reloc_field_selector_type_alt r_field;
      int r_format;
      long arg_reloc;
-     int* unwind_bits;
+     int* unwind_bits ATTRIBUTE_UNUSED;
 {
   fixS *new_fix;
 
@@ -1700,7 +1700,7 @@ pa_ip (str)
              /* When in strict mode, we want to just reject this
                 match instead of giving an out of range error.  */
              CHECK_FIELD (num, 15, -16, strict);
-             low_sign_unext (num, 5, &num);
+             num = low_sign_unext (num, 5);
              INSERT_FIELD_AND_CONTINUE (opcode, num, 16);
 
            /* Handle a 5 bit immediate at 31.  */
@@ -1712,7 +1712,7 @@ pa_ip (str)
              /* When in strict mode, we want to just reject this
                 match instead of giving an out of range error.  */
              CHECK_FIELD (num, 15, -16, strict)
-             low_sign_unext (num, 5, &num);
+             num = low_sign_unext (num, 5);
              INSERT_FIELD_AND_CONTINUE (opcode, num, 0);
 
            /* Handle an unsigned 5 bit immediate at 31.  */
@@ -1758,8 +1758,8 @@ pa_ip (str)
                break;
              num = pa_parse_number (&s, 0);
              CHECK_FIELD (num, 7, 0, 1);
-             dis_assemble_3 (num, &num);
-             INSERT_FIELD_AND_CONTINUE (opcode, num, 13);
+             opcode = re_assemble_3 (opcode, num);
+             continue;
 
            /* Handle all completers.  */
            case 'c':
@@ -2911,7 +2911,7 @@ pa_ip (str)
                {
                  num = evaluate_absolute (&the_insn);
                  CHECK_FIELD (num, 1023, -1024, 0);
-                 low_sign_unext (num, 11, &num);
+                 num = low_sign_unext (num, 11);
                  INSERT_FIELD_AND_CONTINUE (opcode, num, 0);
                }
              else
@@ -2946,7 +2946,7 @@ pa_ip (str)
                  if ((a == 1 && num >= 0) || (a == 0 && num < 0))
                    break;
                  CHECK_FIELD (num, 8191, -8192, 0);
-                 low_sign_unext (num, 14, &num);
+                 num = low_sign_unext (num, 14);
                  INSERT_FIELD_AND_CONTINUE (opcode, num, 0);
                }
              else
@@ -3055,7 +3055,7 @@ pa_ip (str)
                {
                  num = evaluate_absolute (&the_insn);
                  CHECK_FIELD (num, 8191, -8192, 0);
-                 low_sign_unext (num, 14, &num);
+                 num = low_sign_unext (num, 14);
                  INSERT_FIELD_AND_CONTINUE (opcode, num, 0);
                }
              else
@@ -3079,8 +3079,8 @@ pa_ip (str)
                {
                  num = evaluate_absolute (&the_insn);
                  CHECK_FIELD (num >> 11, 1048575, -1048576, 0);
-                 dis_assemble_21 (num, &num);
-                 INSERT_FIELD_AND_CONTINUE (opcode, num, 0);
+                 opcode = re_assemble_21 (opcode, num);
+                 continue;
                }
              else
                {
@@ -3101,11 +3101,10 @@ pa_ip (str)
              s = expr_end;
              if (the_insn.exp.X_op == O_constant)
                {
-                 unsigned int result;
                  num = evaluate_absolute (&the_insn);
                  CHECK_FIELD (num, 32767, -32768, 0);
-                 dis_assemble_16 (num, &result, 1);
-                 INSERT_FIELD_AND_CONTINUE (opcode, result, 0);
+                 opcode = re_assemble_16 (opcode, num, 1);
+                 continue;
                }
              else
                {
@@ -3127,12 +3126,11 @@ pa_ip (str)
              s = expr_end;
              if (the_insn.exp.X_op == O_constant)
                {
-                 unsigned int result;
                  num = evaluate_absolute (&the_insn);
                  CHECK_FIELD (num, 32767, -32768, 0);
                  CHECK_ALIGN (num, 4, 0);
-                 dis_assemble_16 (num, &result, 1);
-                 INSERT_FIELD_AND_CONTINUE (opcode, result, 0);
+                 opcode = re_assemble_16 (opcode, num, 1);
+                 continue;
                }
              else
                {
@@ -3154,12 +3152,11 @@ pa_ip (str)
              s = expr_end;
              if (the_insn.exp.X_op == O_constant)
                {
-                 unsigned int result;
                  num = evaluate_absolute (&the_insn);
                  CHECK_FIELD (num, 32767, -32768, 0);
                  CHECK_ALIGN (num, 8, 0);
-                 dis_assemble_16 (num, &result, 1);
-                 INSERT_FIELD_AND_CONTINUE (opcode, result, 0);
+                 opcode = re_assemble_16 (opcode, num, 1);
+                 continue;
                }
              else
                {
@@ -3182,8 +3179,6 @@ pa_ip (str)
              the_insn.pcrel = 1;
              if (!strcmp (S_GET_NAME (the_insn.exp.X_add_symbol), "L$0\001"))
                {
-                 unsigned int w1, w, result;
-
                  num = evaluate_absolute (&the_insn);
                  if (num % 4)
                    {
@@ -3191,9 +3186,9 @@ pa_ip (str)
                      break;
                    }
                  CHECK_FIELD (num, 8199, -8184, 0);
-                 sign_unext ((num - 8) >> 2, 12, &result);
-                 dis_assemble_12 (result, &w1, &w);
-                 INSERT_FIELD_AND_CONTINUE (opcode, ((w1 << 2) | w), 0);
+                 
+                 opcode = re_assemble_12 (opcode, (num - 8) >> 2);
+                 continue;
                }
              else
                {
@@ -3215,8 +3210,6 @@ pa_ip (str)
                  || !strcmp (S_GET_NAME (the_insn.exp.X_add_symbol),
                              "L$0\001"))
                {
-                 unsigned int w2, w1, w, result;
-
                  num = evaluate_absolute (&the_insn);
                  if (num % 4)
                    {
@@ -3228,10 +3221,8 @@ pa_ip (str)
                  if (the_insn.exp.X_add_symbol)
                    num -= 8;
 
-                 sign_unext (num >> 2, 17, &result);
-                 dis_assemble_17 (result, &w1, &w2, &w);
-                 INSERT_FIELD_AND_CONTINUE (opcode,
-                                          ((w2 << 2) | (w1 << 16) | w), 0);
+                 opcode = re_assemble_17 (opcode, num >> 2);
+                 continue;
                }
              else
                {
@@ -3252,8 +3243,6 @@ pa_ip (str)
                  || !strcmp (S_GET_NAME (the_insn.exp.X_add_symbol),
                              "L$0\001"))
                {
-                 unsigned int w3, w2, w1, w, result;
-
                  num = evaluate_absolute (&the_insn);
                  if (num % 4)
                    {
@@ -3265,12 +3254,7 @@ pa_ip (str)
                  if (the_insn.exp.X_add_symbol)
                    num -= 8;
 
-                 sign_unext (num >> 2, 22, &result);
-                 dis_assemble_22 (result, &w3, &w1, &w2, &w);
-                 INSERT_FIELD_AND_CONTINUE (opcode,
-                                            ((w3 << 21) | (w2 << 2)
-                                             | (w1 << 16) | w),
-                                            0);
+                 opcode = re_assemble_22 (opcode, num >> 2);
                }
              else
                {
@@ -3291,8 +3275,6 @@ pa_ip (str)
                  || !strcmp (S_GET_NAME (the_insn.exp.X_add_symbol),
                              "L$0\001"))
                {
-                 unsigned int w2, w1, w, result;
-
                  num = evaluate_absolute (&the_insn);
                  if (num % 4)
                    {
@@ -3304,10 +3286,8 @@ pa_ip (str)
                  if (the_insn.exp.X_add_symbol)
                    num -= 8;
 
-                 sign_unext (num >> 2, 17, &result);
-                 dis_assemble_17 (result, &w1, &w2, &w);
-                 INSERT_FIELD_AND_CONTINUE (opcode,
-                                          ((w2 << 2) | (w1 << 16) | w), 0);
+                 opcode = re_assemble_17 (opcode, num >> 2);
+                 continue;
                }
              else
                {
@@ -4234,8 +4214,8 @@ tc_gen_reloc (section, fixp)
 
 void
 md_convert_frag (abfd, sec, fragP)
-     register bfd *abfd;
-     register asection *sec;
+     register bfd *abfd ATTRIBUTE_UNUSED;
+     register asection *sec ATTRIBUTE_UNUSED;
      register fragS *fragP;
 {
   unsigned int address;
@@ -4280,7 +4260,7 @@ md_section_align (segment, size)
 int
 md_estimate_size_before_relax (fragP, segment)
      register fragS *fragP;
-     asection *segment;
+     asection *segment ATTRIBUTE_UNUSED;
 {
   int size;
 
@@ -4300,15 +4280,15 @@ size_t md_longopts_size = sizeof(md_longopts);
 
 int
 md_parse_option (c, arg)
-     int c;
-     char *arg;
+     int c ATTRIBUTE_UNUSED;
+     char *arg ATTRIBUTE_UNUSED;
 {
   return 0;
 }
 
 void
 md_show_usage (stream)
-     FILE *stream;
+     FILE *stream ATTRIBUTE_UNUSED;
 {
 }
 \f
@@ -4316,7 +4296,7 @@ md_show_usage (stream)
 
 symbolS *
 md_undefined_symbol (name)
-     char *name;
+     char *name ATTRIBUTE_UNUSED;
 {
   return 0;
 }
@@ -4330,8 +4310,8 @@ md_apply_fix (fixP, valp)
 {
   char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
   struct hppa_fix_struct *hppa_fixP;
-  long new_val, result = 0;
-  unsigned int w1, w2, w, resulti;
+  offsetT new_val;
+  unsigned int insn, val;
 
   hppa_fixP = (struct hppa_fix_struct *) fixP->tc_fix_data;
   /* SOM uses R_HPPA_ENTRY and R_HPPA_EXIT relocations which can
@@ -4411,127 +4391,93 @@ md_apply_fix (fixP, valp)
              
        new_val = hppa_field_adjust (*valp, 0, hppa_fixP->fx_r_field);
 #undef arg_reloc_stub_needed
-       
+
+      insn = bfd_get_32 (stdoutput, buf);
       switch (fmt)
        {
        case 10:
          CHECK_FIELD (new_val, 8191, -8192, 0);
+         val = new_val;
 
-         /* Mask off 11 bits to be changed.  */
-         bfd_put_32 (stdoutput,
-                     bfd_get_32 (stdoutput, buf) & 0xffffc00e,
-                     buf);
-         result = ((new_val & 0x1fff) >> 2) | ((new_val & 0x2000) >> 13);
+         insn = (insn & ~ 0x3ff1) | (((val & 0x1ff8) << 1)
+                                     | ((val & 0x2000) >> 13));
          break;
        case -11:
          CHECK_FIELD (new_val, 8191, -8192, 0);
+         val = new_val;
 
-         /* Mask off 14 bits to be changed.  */
-         bfd_put_32 (stdoutput,
-                     bfd_get_32 (stdoutput, buf) & 0xffffc006,
-                     buf);
-         result = ((new_val & 0x1fff) >> 1) | ((new_val & 0x2000) >> 15);
+         insn = (insn & ~ 0x3ff9) | (((val & 0x1ffc) << 1)
+                                     | ((val & 0x2000) >> 13));
          break;
        /* Handle all opcodes with the 'j' operand type.  */
        case 14:
          CHECK_FIELD (new_val, 8191, -8192, 0);
+         val = new_val;
 
-         /* Mask off 14 bits to be changed.  */
-         bfd_put_32 (stdoutput,
-                     bfd_get_32 (stdoutput, buf) & 0xffffc000,
-                     buf);
-         low_sign_unext (new_val, 14, &resulti);
-         result = resulti;
+         insn = ((insn & ~ 0x3fff) | low_sign_unext (val, 14));
          break;
 
        /* Handle all opcodes with the 'k' operand type.  */
        case 21:
-         CHECK_FIELD (new_val, 2097152, 0, 0);
-
-         /* Mask off 21 bits to be changed.  */
-         bfd_put_32 (stdoutput,
-                     bfd_get_32 (stdoutput, buf) & 0xffe00000,
-                     buf);
-         dis_assemble_21 (new_val, &resulti);
-         result = resulti;
+         CHECK_FIELD (new_val, 1048576, -1048576, 0);
+         val = new_val;
+
+         insn = re_assemble_21 (insn, val);
          break;
 
        /* Handle all the opcodes with the 'i' operand type.  */
        case 11:
          CHECK_FIELD (new_val, 1023, -1023, 0);
+         val = new_val;
 
-         /* Mask off 11 bits to be changed.  */
-         bfd_put_32 (stdoutput,
-                     bfd_get_32 (stdoutput, buf) & 0xffff800,
-                     buf);
-         low_sign_unext (new_val, 11, &resulti);
-         result = resulti;
+         insn = (insn & ~ 0x7ff) | low_sign_unext (val, 11);
          break;
 
        /* Handle all the opcodes with the 'w' operand type.  */
        case 12:
          CHECK_FIELD (new_val, 8199, -8184, 0);
+         val = new_val;
 
-         /* Mask off 11 bits to be changed.  */
-         sign_unext ((new_val - 8) >> 2, 12, &resulti);
-         bfd_put_32 (stdoutput,
-                     bfd_get_32 (stdoutput, buf) & 0xffffe002,
-                     buf);
-
-         dis_assemble_12 (resulti, &w1, &w);
-         result = ((w1 << 2) | w);
+         insn = re_assemble_12 (insn, (val - 8) >> 2);
          break;
 
        /* Handle some of the opcodes with the 'W' operand type.  */
        case 17:
          {
-           int distance = *valp;
-
-           CHECK_FIELD (new_val, 262143, -262144, 0);
+           offsetT distance = *valp;
 
            /* If this is an absolute branch (ie no link) with an out of
               range target, then we want to complain.  */
            if (fixP->fx_r_type == R_HPPA_PCREL_CALL
-               && (distance > 262143 || distance < -262144)
-               && (bfd_get_32 (stdoutput, buf) & 0xffe00000) == 0xe8000000)
+               && (insn & 0xffe00000) == 0xe8000000)
              CHECK_FIELD (distance, 262143, -262144, 0);
 
-           /* Mask off 17 bits to be changed.  */
-           bfd_put_32 (stdoutput,
-                       bfd_get_32 (stdoutput, buf) & 0xffe0e002,
-                       buf);
-           sign_unext ((new_val - 8) >> 2, 17, &resulti);
-           dis_assemble_17 (resulti, &w1, &w2, &w);
-           result = ((w2 << 2) | (w1 << 16) | w);
+           CHECK_FIELD (new_val, 262143, -262144, 0);
+           val = new_val;
+
+           insn = re_assemble_17 (insn, (val - 8) >> 2);
            break;
          }
 
        case 22:
          {
-           int distance = *valp, w3;
-
-           CHECK_FIELD (new_val, 8388607, -8388608, 0);
+           offsetT distance = *valp;
 
            /* If this is an absolute branch (ie no link) with an out of
               range target, then we want to complain.  */
            if (fixP->fx_r_type == R_HPPA_PCREL_CALL
-               && (distance > 8388607 || distance < -8388608)
-               && (bfd_get_32 (stdoutput, buf) & 0xffe00000) == 0xe8000000)
+               && (insn & 0xffe00000) == 0xe8000000)
              CHECK_FIELD (distance, 8388607, -8388608, 0);
 
-           /* Mask off 22 bits to be changed.  */
-           bfd_put_32 (stdoutput,
-                       bfd_get_32 (stdoutput, buf) & 0xfc00e002,
-                       buf);
-           sign_unext ((new_val - 8) >> 2, 22, &resulti);
-           dis_assemble_22 (resulti, &w3, &w1, &w2, &w);
-           result = ((w3 << 21) | (w2 << 2) | (w1 << 16) | w);
+           CHECK_FIELD (new_val, 8388607, -8388608, 0);
+           val = new_val;
+
+           insn = re_assemble_22 (insn, (val - 8) >> 2);
            break;
          }
 
        case 32:
-         result = 0;
-         bfd_put_32 (stdoutput, new_val, buf);
+         insn = new_val;
          break;
 
        default:
@@ -4540,7 +4486,7 @@ md_apply_fix (fixP, valp)
        }
 
       /* Insert the relocation.  */
-      bfd_put_32 (stdoutput, bfd_get_32 (stdoutput, buf) | result, buf);
+      bfd_put_32 (stdoutput, insn, buf);
       return 1;
     }
   else
@@ -5189,70 +5135,14 @@ static int
 evaluate_absolute (insn)
      struct pa_it *insn;
 {
-  int value;
+  offsetT value;
   expressionS exp;
   int field_selector = insn->field_selector;
 
   exp = insn->exp;
   value = exp.X_add_number;
 
-  switch (field_selector)
-    {
-    /* No change.  */
-    case e_fsel:
-      break;
-
-    /* If bit 21 is on then add 0x800 and arithmetic shift right 11 bits.  */
-    case e_lssel:
-      if (value & 0x00000400)
-       value += 0x800;
-      value = (value & 0xfffff800) >> 11;
-      break;
-
-    /* Sign extend from bit 21.  */
-    case e_rssel:
-      if (value & 0x00000400)
-       value |= 0xfffff800;
-      else
-       value &= 0x7ff;
-      break;
-
-    /* Arithmetic shift right 11 bits.  */
-    case e_lsel:
-      value = (value & 0xfffff800) >> 11;
-      break;
-
-    /* Set bits 0-20 to zero.  */
-    case e_rsel:
-      value = value & 0x7ff;
-      break;
-
-    /* Add 0x800 and arithmetic shift right 11 bits.  */
-    case e_ldsel:
-      value += 0x800;
-      value = (value & 0xfffff800) >> 11;
-      break;
-
-    /* Set bitgs 0-21 to one.  */
-    case e_rdsel:
-      value |= 0xfffff800;
-      break;
-
-#define RSEL_ROUND(c)  (((c) + 0x1000) & ~0x1fff)
-    case e_rrsel:
-      value = (RSEL_ROUND (value) & 0x7ff) + (value - RSEL_ROUND (value));
-      break;
-
-    case e_lrsel:
-      value = (RSEL_ROUND (value) >> 11) & 0x1fffff;
-      break;
-#undef RSEL_ROUND
-
-    default:
-      BAD_CASE (field_selector);
-      break;
-    }
-  return value;
+  return hppa_field_adjust (0, value, field_selector);
 }
 
 /* Given an argument location specification return the associated
@@ -5509,7 +5399,6 @@ pa_parse_cmpb_64_cmpltr (s)
   int cmpltr;
   char *name = *s + 1;
   char c;
-  char *save_s = *s;
 
   cmpltr = -1;
   if (**s == ',')
@@ -5605,7 +5494,6 @@ pa_parse_cmpib_64_cmpltr (s)
   int cmpltr;
   char *name = *s + 1;
   char c;
-  char *save_s = *s;
 
   cmpltr = -1;
   if (**s == ',')
@@ -5934,7 +5822,7 @@ pa_align (bytes)
 
 static void
 pa_block (z)
-     int z;
+     int z ATTRIBUTE_UNUSED;
 {
   char *p;
   long int temp_fill;
@@ -5972,7 +5860,7 @@ pa_block (z)
 
 static void
 pa_brtab (begin)
-     int begin;
+     int begin ATTRIBUTE_UNUSED;
 {
 
 #ifdef OBJ_SOM
@@ -5993,7 +5881,7 @@ pa_brtab (begin)
 
 static void
 pa_try (begin)
-     int begin;
+     int begin ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   expressionS exp;
@@ -6020,7 +5908,7 @@ pa_try (begin)
 
 static void
 pa_call (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   /* We must have a valid space and subspace.  */
@@ -6111,9 +5999,9 @@ pa_build_unwind_subspace (call_info)
 {
   char *unwind;
   asection *seg, *save_seg;
-  asymbol *sym;
-  subsegT subseg, save_subseg;
-  int i, reloc;
+  subsegT save_subseg;
+  unsigned int i;
+  int reloc;
   char c, *p;
 
   if (now_seg != text_section)
@@ -6190,7 +6078,7 @@ pa_build_unwind_subspace (call_info)
 
 static void
 pa_callinfo (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   char *name, c, *p;
   int temp;
@@ -6333,7 +6221,7 @@ pa_callinfo (unused)
 
 static void
 pa_code (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   current_space = is_defined_space ("$TEXT$");
@@ -6366,7 +6254,7 @@ pa_code (unused)
 
 static void
 pa_comm (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   unsigned int size;
   symbolS *symbol;
@@ -6398,7 +6286,7 @@ pa_comm (unused)
 
 static void
 pa_end (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   demand_empty_rest_of_line ();
 }
@@ -6406,7 +6294,7 @@ pa_end (unused)
 /* Process a .ENTER pseudo-op.  This is not supported.  */
 static void
 pa_enter (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   /* We must have a valid space and subspace.  */
@@ -6421,7 +6309,7 @@ pa_enter (unused)
    procesure.  */
 static void
 pa_entry (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   /* We must have a valid space and subspace.  */
@@ -6528,7 +6416,7 @@ process_exit ()
 
 static void
 pa_exit (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   /* We must have a valid space and subspace.  */
@@ -6561,7 +6449,7 @@ pa_exit (unused)
 
 static void
 pa_export (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   char *name, c, *p;
   symbolS *symbol;
@@ -6602,7 +6490,9 @@ pa_type_args (symbolP, is_export)
   char *name, c, *p;
   unsigned int temp, arg_reloc;
   pa_symbol_type type = SYMBOL_TYPE_UNKNOWN;
+#ifdef OBJ_SOM
   obj_symbol_type *symbol = (obj_symbol_type *) symbol_get_bfdsym (symbolP);
+#endif
 
   if (strncasecmp (input_line_pointer, "absolute", 8) == 0)
 
@@ -6748,7 +6638,7 @@ pa_type_args (symbolP, is_export)
 
 static void
 pa_import (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   char *name, c, *p;
   symbolS *symbol;
@@ -6800,7 +6690,7 @@ pa_import (unused)
 
 static void
 pa_label (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   char *name, c, *p;
 
@@ -6830,7 +6720,7 @@ pa_label (unused)
 
 static void
 pa_leave (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   /* We must have a valid space and subspace.  */
@@ -6845,7 +6735,7 @@ pa_leave (unused)
 
 static void
 pa_level (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   char *level;
 
@@ -6886,7 +6776,7 @@ pa_level (unused)
 
 static void
 pa_origin (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   /* We must have a valid space and subspace.  */
@@ -6902,7 +6792,7 @@ pa_origin (unused)
 
 static void
 pa_param (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   char *name, c, *p;
   symbolS *symbol;
@@ -6937,7 +6827,7 @@ pa_param (unused)
 
 static void
 pa_proc (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   struct call_info *call_info;
 
@@ -7007,7 +6897,7 @@ pa_proc (unused)
 
 static void
 pa_procend (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 
 #ifdef OBJ_SOM
@@ -7074,6 +6964,8 @@ pa_procend (unused)
   pa_undefine_label ();
 }
 
+
+#ifdef OBJ_SOM
 /* If VALUE is an exact power of two between zero and 2^31, then
    return log2 (VALUE).  Else return -1.  */
 
@@ -7092,8 +6984,6 @@ log2 (value)
     return shift;
 }
 
-
-#ifdef OBJ_SOM
 /* Check to make sure we have a valid space and subspace.  */
 
 static void
@@ -7233,7 +7123,7 @@ pa_parse_space_stmt (space_name, create_flag)
 
 static void
 pa_space (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   char *name, c, *space_name, *save_s;
   int temp;
@@ -7352,7 +7242,7 @@ pa_space (unused)
 
 static void
 pa_spnum (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   char *name;
   char c;
@@ -8192,7 +8082,7 @@ pa_stringer (append_zero)
 
 static void
 pa_version (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   obj_version (0);
   pa_undefine_label ();
@@ -8204,7 +8094,7 @@ pa_version (unused)
 
 static void
 pa_compiler (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   obj_som_compiler (0);
   pa_undefine_label ();
@@ -8216,7 +8106,7 @@ pa_compiler (unused)
 
 static void
 pa_copyright (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
   obj_copyright (0);
   pa_undefine_label ();
@@ -8237,7 +8127,7 @@ pa_cons (nbytes)
 
 static void
 pa_data (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   current_space = is_defined_space ("$PRIVATE$");
@@ -8262,7 +8152,7 @@ pa_float_cons (float_type)
 
 static void
 pa_fill (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   /* We must have a valid space and subspace.  */
@@ -8292,7 +8182,7 @@ pa_lcomm (needs_align)
 
 static void
 pa_lsym (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   /* We must have a valid space and subspace.  */
@@ -8307,7 +8197,7 @@ pa_lsym (unused)
    label when finished.  */
 static void
 pa_text (unused)
-     int unused;
+     int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
   current_space = is_defined_space ("$TEXT$");
@@ -8536,7 +8426,7 @@ elf_hppa_final_processing ()
 #endif
 
 #ifdef OBJ_ELF
-pa_end_of_source ()
+void pa_end_of_source ()
 {
   if (debug_type == DEBUG_DWARF2)
     dwarf2_finish ();
index 266c8caac6549ca430c6c2a909af2518f9200628..fce147c39e29d32dcbf8ea65d726f7c338cbe063 100644 (file)
 
 #define WORKING_DOT_WORD
 
-/* FIXME.  The lack of a place to put things which are both target cpu
-   and target format dependent makes hacks like this necessary.  */
 #ifdef OBJ_ELF
-#ifdef BFD64
+#if BFD_ARCH_SIZE == 64
 #include "bfd/elf64-hppa.h"
 #define TARGET_FORMAT "elf64-hppa"
 #else
index d143cc137b25951df055d4f6ff9fdf415eda5e5c..66789059e6aa0640cee6c3cb45eaa0308f525d02 100755 (executable)
@@ -1731,8 +1731,8 @@ for this_target in $target $canon_targets ; do
 
       fr30-*-*)                    fmt=elf bfd_gas=yes ;;
 
+      hppa-*-linux-gnu*)    fmt=elf em=linux ;;
       hppa-*-*elf*)         fmt=elf em=hppa ;;
-      hppa-*-linux-gnu*)    fmt=elf em=hppa ;;
       hppa-*-lites*)        fmt=elf em=hppa ;;
       hppa-*-osf*)          fmt=som em=hppa ;;
       hppa-*-rtems*)        fmt=elf em=hppa ;;
index 40f828374ee337e8497e33c3abc97517116b4711..7ea681115f95b2009688728dca1d9775651b1da4 100644 (file)
@@ -194,8 +194,8 @@ changequote([,])dnl
 
       fr30-*-*)                    fmt=elf bfd_gas=yes ;;
 
+      hppa-*-linux-gnu*)    fmt=elf em=linux ;;
       hppa-*-*elf*)         fmt=elf em=hppa ;;
-      hppa-*-linux-gnu*)    fmt=elf em=hppa ;;
       hppa-*-lites*)        fmt=elf em=hppa ;;
       hppa-*-osf*)          fmt=som em=hppa ;;
       hppa-*-rtems*)        fmt=elf em=hppa ;;
index b6b7204250cfc41779c44833ad2c436ef677d00a..48f4e08c66d706d5f1a0902ffb8f5685d9c4f5cc 100644 (file)
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4a from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
 
-# Copyright (C) 1994, 1995-9, 2000 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -10,6 +10,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+
 SHELL = @SHELL@
 
 srcdir = @srcdir@
@@ -45,10 +46,9 @@ AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_FLAG =
 transform = @program_transform_name@
 
 NORMAL_INSTALL = :
@@ -57,8 +57,6 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-
-@SET_MAKE@
 build_alias = @build_alias@
 build_triplet = @build@
 host_alias = @host_alias@
@@ -100,6 +98,7 @@ RANLIB = @RANLIB@
 USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
 YACC = @YACC@
 atof = @atof@
 cgen_cpu_prefix = @cgen_cpu_prefix@
@@ -110,7 +109,6 @@ obj_format = @obj_format@
 target_cpu_type = @target_cpu_type@
 te_file = @te_file@
 
-
 AUTOMAKE_OPTIONS = cygnus
 
 # What version of the manual you want; "all" includes everything
@@ -149,11 +147,9 @@ noinst_TEXINFOS = internals.texi
 DISTCLEANFILES = asconfig.texi
 
 MAINTAINERCLEANFILES = gasver.texi
-subdir = doc
 mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
 CONFIG_HEADER = ../config.h
 CONFIG_CLEAN_FILES = 
-DIST_SOURCES = 
 TEXI2DVI = `if test -f $(top_srcdir)/../texinfo/util/texi2dvi; then echo $(top_srcdir)/../texinfo/util/texi2dvi; else echo texi2dvi; fi`
 TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex
 INFO_DEPS = as.info gasp.info
@@ -163,12 +159,12 @@ man1dir = $(mandir)/man1
 MANS = $(man_MANS)
 
 NROFF = nroff
-depcomp = 
 DIST_COMMON =  Makefile.am Makefile.in
 
 
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
+TAR = tar
 GZIP_ENV = --best
 all: all-redirect
 .SUFFIXES:
@@ -196,7 +192,7 @@ DVIPS = dvips
        $(MAKEINFO) -I $(srcdir) $<
 
 .texi.dvi:
-       TEXINPUTS=$(top_srcdir)/../texinfo:$$TEXINPUTS \
+       TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \
          MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
 
 .texi:
@@ -212,7 +208,7 @@ DVIPS = dvips
        $(MAKEINFO) -I $(srcdir) $<
 
 .texinfo.dvi:
-       TEXINPUTS=$(top_srcdir)/../texinfo:$$TEXINPUTS \
+       TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \
          MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
 
 .txi.info:
@@ -220,7 +216,7 @@ DVIPS = dvips
        $(MAKEINFO) -I $(srcdir) $<
 
 .txi.dvi:
-       TEXINPUTS=$(top_srcdir)/../texinfo:$$TEXINPUTS \
+       TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \
          MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
 
 .txi:
@@ -235,7 +231,7 @@ install-info-am: $(INFO_DEPS)
        @list='$(INFO_DEPS)'; \
        for file in $$list; do \
          if test -f $$file; then d=.; else d=$(srcdir); fi; \
-         for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
+         for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
            if test -f $$d/$$ifile; then \
              echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
              $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
@@ -254,38 +250,37 @@ install-info-am: $(INFO_DEPS)
 uninstall-info:
        $(PRE_UNINSTALL)
        @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
-         list='$(INFO_DEPS)'; \
-         for file in $$list; do \
-           echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
-           install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \
-         done; \
-       else :; fi
+         ii=yes; \
+       else ii=; fi; \
+       list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         test -z "$ii" \
+           || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
+       done
        @$(NORMAL_UNINSTALL)
-       @list='$(INFO_DEPS)'; \
+       list='$(INFO_DEPS)'; \
        for file in $$list; do \
-         (if cd $(DESTDIR)$(infodir); then \
-            echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
-            rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
-          else :; fi); \
+         (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
        done
 
 dist-info: $(INFO_DEPS)
        list='$(INFO_DEPS)'; \
        for base in $$list; do \
          if test -f $$base; then d=.; else d=$(srcdir); fi; \
-         for file in `CDPATH=: && cd $$d && eval echo $$base*`; do \
+         for file in `cd $$d && eval echo $$base*`; do \
            test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
            || cp -p $$d/$$file $(distdir)/$$file; \
          done; \
        done
 
 mostlyclean-aminfo:
-       -rm -f as.aux as.cp as.cps as.dvi as.fn as.fns as.pgs as.ky as.kys \
-         as.ps as.log as.pg as.toc as.tp as.tps as.vr as.vrs as.op \
-         as.tr as.cv as.cn as.cm as.ov gasp.aux gasp.cp gasp.cps \
-         gasp.dvi gasp.fn gasp.fns gasp.pgs gasp.ky gasp.kys gasp.ps \
-         gasp.log gasp.pg gasp.toc gasp.tp gasp.tps gasp.vr gasp.vrs \
-         gasp.op gasp.tr gasp.cv gasp.cn gasp.cm gasp.ov
+       -rm -f as.aux as.cp as.cps as.dvi as.fn as.fns as.ky as.kys as.ps \
+         as.log as.pg as.toc as.tp as.tps as.vr as.vrs as.op as.tr \
+         as.cv as.cn gasp.aux gasp.cp gasp.cps gasp.dvi gasp.fn \
+         gasp.fns gasp.ky gasp.kys gasp.ps gasp.log gasp.pg gasp.toc \
+         gasp.tp gasp.tps gasp.vr gasp.vrs gasp.op gasp.tr gasp.cv \
+         gasp.cn
 
 clean-aminfo:
 
@@ -313,7 +308,6 @@ install-man1:
          else file=$$i; fi; \
          ext=`echo $$i | sed -e 's/^.*\\.//'`; \
          inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
          inst=`echo $$inst | sed '$(transform)'`.$$ext; \
          echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
          $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
@@ -329,7 +323,6 @@ uninstall-man1:
        for i in $$list; do \
          ext=`echo $$i | sed -e 's/^.*\\.//'`; \
          inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
          inst=`echo $$inst | sed '$(transform)'`.$$ext; \
          echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
          rm -f $(DESTDIR)$(man1dir)/$$inst; \
@@ -346,16 +339,17 @@ TAGS:
 
 distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
 
+subdir = doc
+
 distdir: $(DISTFILES)
        @for file in $(DISTFILES); do \
          if test -f $$file; then d=.; else d=$(srcdir); fi; \
          if test -d $$d/$$file; then \
-           cp -pR $$d/$$file $(distdir) \
-           || exit 1; \
+           cp -pr $$d/$$file $(distdir)/$$file; \
          else \
            test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
-           || exit 1; \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
          fi; \
        done
        $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
@@ -383,7 +377,7 @@ uninstall: uninstall-am
 all-am: Makefile $(MANS)
 all-redirect: all-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
 installdirs:
        $(mkinstalldirs)  $(DESTDIR)$(mandir)/man1
 
@@ -398,7 +392,6 @@ distclean-generic:
        -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
 
 maintainer-clean-generic:
-       -rm -f Makefile.in
        -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
 mostlyclean-am:  mostlyclean-aminfo mostlyclean-generic
 
@@ -426,9 +419,8 @@ uninstall-man1 install-man uninstall-man tags distdir info-am info \
 dvi-am dvi check check-am installcheck-am installcheck install-info-am \
 install-info install-exec-am install-exec install-data-am install-data \
 install-am install uninstall-am uninstall all-redirect all-am all \
-install-strip installdirs mostlyclean-generic distclean-generic \
-clean-generic maintainer-clean-generic clean mostlyclean distclean \
-maintainer-clean
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
 
 
 asconfig.texi: $(CONFIG).texi
index 882cb12284f77ba3a6db1c1d4b8ea7e25064ce3a..6518f3717b0d6dbc25df87d671a5e335c5f55617 100644 (file)
@@ -74,11 +74,13 @@ frag_grow (nchars)
       frag_new (0);
       oldc = frchain_now->frch_obstack.chunk_size;
       frchain_now->frch_obstack.chunk_size = 2 * nchars + SIZEOF_STRUCT_FRAG;
-      while ((n = obstack_room (&frchain_now->frch_obstack)) < nchars)
-       {
-         frag_wane (frag_now);
-         frag_new (0);
-       }
+      if (frchain_now->frch_obstack.chunk_size > 0)
+       while ((n = obstack_room (&frchain_now->frch_obstack)) < nchars
+              && (unsigned long) frchain_now->frch_obstack.chunk_size > nchars)
+         {
+           frag_wane (frag_now);
+           frag_new (0);
+         }
       frchain_now->frch_obstack.chunk_size = oldc;
     }
   if (obstack_room (&frchain_now->frch_obstack) < nchars)