Add linux-elf flavour to pseudos in tc-hppa.c and some tidying
authorAlan Modra <amodra@gmail.com>
Sun, 9 Jul 2000 08:16:21 +0000 (08:16 +0000)
committerAlan Modra <amodra@gmail.com>
Sun, 9 Jul 2000 08:16:21 +0000 (08:16 +0000)
and bug fixes.  Handle wide mode relocs.  Don't select target
size based on BFD64.

gas/ChangeLog
gas/config/tc-hppa.c
gas/config/tc-hppa.h
gas/config/te-hppa.h
gas/config/te-hppa64.h [new file with mode: 0644]
gas/config/te-hppalinux64.h [new file with mode: 0644]
gas/configure
gas/configure.in

index 3320dbc..baed8e9 100644 (file)
@@ -1,3 +1,81 @@
+2000-07-09  Alan Modra  <alan@linuxcare.com.au>
+
+       From  David Huggins-Daines  <dhd@linuxcare.com>
+       * config/te-hppalinux64.h: Add a new emulation.
+       * configure.in (emulations): Add configure bits to support the
+       64-bit Linux/parisc target.
+       * configure: Regenerate.
+
+       * config/tc-hppa.c (md_parse_option): Support `-V' for ELF.
+       (md_shortopts): Add `V' for ELF.
+
+       * config/tc-hppa.c (arg_reloc_stub_needed): Define as zero except
+       when SOM or ELF_ARG_RELOC are defined.
+       (pa_type_args): Only set symbol_arg_reloc_info when SOM or
+       ELF_ARG_RELOC are defined.
+       (pa_stringer_aux): Don't pa_check_current_space_and_subspace here..
+       (pa_stringer): ..Do it here instead.  Fix comment typos.
+       (hppa_force_relocation): Cast enums to int before comparing with
+       ints.
+
+       From  Ryan Bradetich  <rbradetich@uswest.net>
+       * config/tc-hppa.c: Removed unneeded libbfd.h to fix macro
+       redifinition warning.
+       (md_apply_fix): Added cast from enum to int for fixP->fx_r_type.
+       (hppa_force_relocation): ditto
+       (pa_vtable_entry): ditto
+       (pa_vtable_inherit): ditto
+       (md_apply_fix): Added cast to buf to fix warnings.
+
+       * config/tc-hppa.h (pa_define_label, parse_cons_expression_hppa,
+       cons_fix_new_hppa, hppa_force_relocation): Prototype.
+
+       * config/tc-hppa.c (reloc_type): It's an enum for OBJ_ELF.
+       (R_N0SEL, R_N1SEL): Define only for OBJ_SOM.
+       (tc_gen_reloc): Make `code' a reloc_type and `codes' a
+       reloc_type** to avoid warnings in switch.
+       (md_apply_fix): Make insn, val signed.  Zap buf_wd and read insn a
+       little earlier instead.
+
+       * config/tc-hppa.c (symbol_arg_reloc_info): Define for both som
+       and elf.
+       (pa_type_args): Use symbol_arg_reloc_info.
+       (struct pa_it): Make arg_reloc unsigned int.
+       (struct hppa_fix_struct): Likewise for fx_arg_reloc.
+       (pa_text, pa_data, pa_comm): Don't compile for TE_LINUX.
+       (pa_code): Delete.  pa_text duplicates this function.
+       (md_pseudo_table): Call obj_elf_text for ".code" if TE_LINUX.
+       (fix_new_hppa): Argument offset is offsetT, arg_reloc is unsigned
+       int.
+       (cons_fix_new_hppa): Actually change selector to e_fsel when
+       warning about assuming so.
+       (tc_gen_reloc): More example elf arg reloc code.
+       (md_apply_fix): Use arg_reloc_stub_needed for elf too.
+       (hppa_force_relocation): Likewise.
+
+       * config/tc-hppa.h: Use TARGET_ARCH_SIZE to select target include
+       files.
+       (pa_end_of_source): Prototype.
+       (hppa_fix_adjustable): Prototype.
+       (LABELS_WITHOUT_COLONS): Move it..
+       * config/te-hppa.h: To here.
+
+       * config/te-hppa64.h: New file.
+
+       * config/tc-hppa.c: Use TARGET_ARCH_SIZE to select target reloc
+       type.
+       (md_apply_fix): Pass stdoutput to bfd_hppa_insn2fmt.  Handle
+       format -10, -16, 16 relocs.
+       (hppa_elf_mark_end_of_function): Test for null
+       last_call_info->start_symbol
+
+       * config/tc-hppa.c (pa_ip): In case 'V', pass `strict' to
+       CHECK_FIELD, not INSERT_FIELD_AND_CONTINUE.  Don't pass opcode to
+       re_assesmble_* functions.  Delete extraneous statements.  Fix
+       typos in comments.
+       (md_apply_fix): Compare against 1048575 in case 21.  Don't pass
+       insn to re_assemble_*.
+
 2000-07-08  Ulf Carlsson  <ulfc@engr.sgi.com>
 
        * doc/internals.texi (Expressions): Fix typo.
index 61f42c1..6506ec4 100644 (file)
@@ -1,5 +1,5 @@
 /* tc-hppa.c -- Assemble for the PA
-   Copyright (C) 1989, 93, 94, 95, 96, 97, 98, 1999
+   Copyright (C) 1989, 93, 94, 95, 96, 97, 98, 99, 2000
    Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
@@ -30,7 +30,6 @@
 #include "subsegs.h"
 
 #include "bfd/libhppa.h"
-#include "bfd/libbfd.h"
 
 /* Be careful, this file includes data *declarations*.  */
 #include "opcode/hppa.h"
@@ -45,18 +44,19 @@ error only one of OBJ_ELF and OBJ_SOM can be defined
 #ifdef OBJ_ELF
 #include "dwarf2dbg.h"
 struct dwarf2_line_info debug_line;
-#endif
 
 /* A "convient" place to put object file dependencies which do
    not need to be seen outside of tc-hppa.c.  */
-#ifdef OBJ_ELF
+
 /* Object file formats specify relocation types.  */
-typedef elf_hppa_reloc_type reloc_type;
+typedef enum elf_hppa_reloc_type reloc_type;
 
 /* Object file formats specify BFD symbol types.  */
 typedef elf_symbol_type obj_symbol_type;
+#define symbol_arg_reloc_info(sym)\
+  (((obj_symbol_type *) symbol_get_bfdsym (sym))->tc_data.hppa_arg_reloc)
 
-#ifdef BFD64
+#if TARGET_ARCH_SIZE == 64
 /* How to generate a relocation.  */
 #define hppa_gen_reloc_type _bfd_elf64_hppa_gen_reloc_type
 #else
@@ -69,7 +69,7 @@ typedef elf_symbol_type obj_symbol_type;
 #define obj_copyright obj_elf_version
 
 #define UNWIND_SECTION_NAME ".PARISC.unwind"
-#endif
+#endif /* OBJ_ELF */
 
 #ifdef OBJ_SOM
 /* Names of various debugging spaces/subspaces.  */
@@ -90,12 +90,13 @@ typedef int reloc_type;
 
 /* Object file formats specify BFD symbol types.  */
 typedef som_symbol_type obj_symbol_type;
+#define symbol_arg_reloc_info(sym)\
+  (((obj_symbol_type *) symbol_get_bfdsym (sym))->tc_data.ap.hppa_arg_reloc)
 
 /* This apparently isn't in older versions of hpux reloc.h.  */
 #ifndef R_DLT_REL
 #define R_DLT_REL 0x78
 #endif
-#endif
 
 #ifndef R_N0SEL
 #define R_N0SEL 0xd8
@@ -104,6 +105,7 @@ typedef som_symbol_type obj_symbol_type;
 #ifndef R_N1SEL
 #define R_N1SEL 0xd9
 #endif
+#endif /* OBJ_SOM */
 
 /* Various structures and types used internally in tc-hppa.c.  */
 
@@ -219,7 +221,7 @@ struct pa_it
 
     /* Holds any argument relocation bits associated with this
        instruction.  (instruction should be some sort of call).  */
-    long arg_reloc;
+    unsigned int arg_reloc;
 
     /* The format specification for this instruction.  */
     int format;
@@ -438,7 +440,7 @@ struct hppa_fix_struct
     int fx_r_format;
 
     /* Argument relocation bits.  */
-    long fx_arg_reloc;
+    unsigned int fx_arg_reloc;
 
     /* The segment this fixup appears in.  */
     segT segment;
@@ -474,15 +476,18 @@ struct selector_entry
 static void pa_check_current_space_and_subspace PARAMS ((void));
 #endif
 
+#if !(defined (OBJ_ELF) && defined (TE_LINUX))
+static void pa_text PARAMS ((int));
+static void pa_data PARAMS ((int));
+static void pa_comm PARAMS ((int));
+#endif
 static fp_operand_format pa_parse_fp_format PARAMS ((char **s));
 static void pa_cons PARAMS ((int));
-static void pa_data PARAMS ((int));
 static void pa_float_cons PARAMS ((int));
 static void pa_fill PARAMS ((int));
 static void pa_lcomm PARAMS ((int));
 static void pa_lsym PARAMS ((int));
 static void pa_stringer PARAMS ((int));
-static void pa_text PARAMS ((int));
 static void pa_version PARAMS ((int));
 static int pa_parse_fp_cmp_cond PARAMS ((char **));
 static int get_expression PARAMS ((char *));
@@ -504,8 +509,6 @@ static void pa_try PARAMS ((int));
 static void pa_call PARAMS ((int));
 static void pa_call_args PARAMS ((struct call_desc *));
 static void pa_callinfo PARAMS ((int));
-static void pa_code PARAMS ((int));
-static void pa_comm PARAMS ((int));
 static void pa_copyright PARAMS ((int));
 static void pa_end PARAMS ((int));
 static void pa_enter PARAMS ((int));
@@ -560,10 +563,10 @@ static void pa_spaces_begin PARAMS ((void));
 #endif
 static void pa_ip PARAMS ((char *));
 static void fix_new_hppa PARAMS ((fragS *, int, int, symbolS *,
-                                 long, expressionS *, int,
+                                 offsetT, expressionS *, int,
                                  bfd_reloc_code_real_type,
                                  enum hppa_reloc_field_selector_type_alt,
-                                 int, long, int *));
+                                 int, unsigned int, int *));
 static int is_end_of_statement PARAMS ((void));
 static int reg_name_search PARAMS ((char *));
 static int pa_chk_field_selector PARAMS ((char **));
@@ -604,10 +607,6 @@ static struct call_desc last_call_desc;
 /* handle of the OPCODE hash table */
 static struct hash_control *op_hash = NULL;
 
-/* This array holds the chars that always start a comment.  If the
-   pre-processor is disabled, these aren't very useful.  */
-const char comment_chars[] = ";";
-
 /* Table of pseudo ops for the PA.  FIXME -- how many of these
    are now redundant with the overall GAS and the object file
    dependent tables?  */
@@ -628,25 +627,33 @@ const pseudo_typeS md_pseudo_table[] =
   {"byte", pa_cons, 1},
   {"call", pa_call, 0},
   {"callinfo", pa_callinfo, 0},
-  {"code", pa_code, 0},
+#if defined (OBJ_ELF) && defined (TE_LINUX)
+  {"code", obj_elf_text, 0},
+#else
+  {"code", pa_text, 0},
   {"comm", pa_comm, 0},
+#endif
 #ifdef OBJ_SOM
   {"compiler", pa_compiler, 0},
 #endif
   {"copyright", pa_copyright, 0},
+#if !(defined (OBJ_ELF) && defined (TE_LINUX))
   {"data", pa_data, 0},
+#endif
   {"double", pa_float_cons, 'd'},
   {"dword", pa_cons, 8},
   {"end", pa_end, 0},
   {"end_brtab", pa_brtab, 0},
+#if !(defined (OBJ_ELF) && defined (TE_LINUX))
   {"end_try", pa_try, 0},
+#endif
   {"enter", pa_enter, 0},
   {"entry", pa_entry, 0},
   {"equ", pa_equ, 0},
   {"exit", pa_exit, 0},
   {"export", pa_export, 0},
 #ifdef OBJ_ELF
-  { "file", dwarf2_directive_file, 0 },
+  {"file", dwarf2_directive_file, 0 },
 #endif
   {"fill", pa_fill, 0},
   {"float", pa_float_cons, 'f'},
@@ -658,7 +665,7 @@ const pseudo_typeS md_pseudo_table[] =
   {"leave", pa_leave, 0},
   {"level", pa_level, 0},
 #ifdef OBJ_ELF
-  { "loc", dwarf2_directive_loc, 0 },
+  {"loc", dwarf2_directive_loc, 0 },
 #endif
   {"long", pa_cons, 4},
   {"lsym", pa_lsym, 0},
@@ -684,7 +691,9 @@ const pseudo_typeS md_pseudo_table[] =
 #ifdef OBJ_SOM
   {"subspa", pa_subspace, 0},
 #endif
+#if !(defined (OBJ_ELF) && defined (TE_LINUX))
   {"text", pa_text, 0},
+#endif
   {"version", pa_version, 0},
   {"word", pa_cons, 4},
   {NULL, 0, 0}
@@ -701,6 +710,10 @@ const pseudo_typeS md_pseudo_table[] =
    Also note that C style comments will always work. */
 const char line_comment_chars[] = "#";
 
+/* This array holds the chars that always start a comment.  If the
+   pre-processor is disabled, these aren't very useful.  */
+const char comment_chars[] = ";";
+
 /* This array holds the characters which act as line separators.  */
 const char line_separator_chars[] = "!";
 
@@ -731,7 +744,7 @@ static int within_entry_exit;
 /* Nonzero if the assembler is currently within a procedure definition.  */
 static int within_procedure;
 
-/* Handle on strucutre which keep track of the last symbol
+/* Handle on structure which keep track of the last symbol
    seen in each subspace.  */
 static label_symbol_struct *label_symbols_rootp = NULL;
 
@@ -1264,13 +1277,13 @@ fix_new_hppa (frag, where, size, add_symbol, offset, exp, pcrel,
      int where;
      int size;
      symbolS *add_symbol;
-     long offset;
+     offsetT offset;
      expressionS *exp;
      int pcrel;
      bfd_reloc_code_real_type r_type;
      enum hppa_reloc_field_selector_type_alt r_field;
      int r_format;
-     long arg_reloc;
+     unsigned int arg_reloc;
      int* unwind_bits ATTRIBUTE_UNUSED;
 {
   fixS *new_fix;
@@ -1333,7 +1346,10 @@ cons_fix_new_hppa (frag, where, size, exp)
     rel_type = R_HPPA;
 
   if (hppa_field_selector != e_psel && hppa_field_selector != e_fsel)
-    as_warn (_("Invalid field selector.  Assuming F%%."));
+    {
+      as_warn (_("Invalid field selector.  Assuming F%%."));
+      hppa_field_selector = e_fsel;
+    }
 
   fix_new_hppa (frag, where, size,
                (symbolS *) NULL, (offsetT) 0, exp, 0, rel_type,
@@ -1711,7 +1727,7 @@ pa_ip (str)
              s = expr_end;
              /* 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)
+             CHECK_FIELD (num, 15, -16, strict);
              num = low_sign_unext (num, 5);
              INSERT_FIELD_AND_CONTINUE (opcode, num, 0);
 
@@ -1721,8 +1737,8 @@ pa_ip (str)
              if (strict && the_insn.exp.X_op != O_constant)
                break;
              s = expr_end;
-             CHECK_FIELD (num, 31, 0, 0);
-             INSERT_FIELD_AND_CONTINUE (opcode, num, strict);
+             CHECK_FIELD (num, 31, 0, strict);
+             INSERT_FIELD_AND_CONTINUE (opcode, num, 0);
 
            /* Handle an unsigned 5 bit immediate at 15.  */
            case 'R':
@@ -1758,7 +1774,7 @@ pa_ip (str)
                break;
              num = pa_parse_number (&s, 0);
              CHECK_FIELD (num, 7, 0, 1);
-             opcode = re_assemble_3 (opcode, num);
+             opcode |= re_assemble_3 (num);
              continue;
 
            /* Handle all completers.  */
@@ -2622,7 +2638,6 @@ pa_ip (str)
                          }
                        else if (*s == '*')
                          break;
-                       name = s;
 
                        name = s;
                        while (*s != ',' && *s != ' ' && *s != '\t')
@@ -2630,7 +2645,6 @@ pa_ip (str)
                        c = *s;
                        *s = 0x00;
 
-
                        if (strcmp (name, "=") == 0)
                          cmpltr = 1;
                        else if (strcmp (name, "<") == 0)
@@ -2691,7 +2705,6 @@ pa_ip (str)
                          }
                        else if (*s == '*')
                          break;
-                       name = s;
 
                        name = s;
                        while (*s != ',' && *s != ' ' && *s != '\t')
@@ -2987,7 +3000,7 @@ pa_ip (str)
                  break;
                }
 
-           /* Handle 14 bit immediated, shifted left three times.  */
+           /* Handle 14 bit immediate, shifted left three times.  */
            case '#':
              the_insn.field_selector = pa_chk_field_selector (&s);
              get_expression (s);
@@ -3079,7 +3092,7 @@ pa_ip (str)
                {
                  num = evaluate_absolute (&the_insn);
                  CHECK_FIELD (num >> 11, 1048575, -1048576, 0);
-                 opcode = re_assemble_21 (opcode, num);
+                 opcode |= re_assemble_21 (num);
                  continue;
                }
              else
@@ -3103,7 +3116,7 @@ pa_ip (str)
                {
                  num = evaluate_absolute (&the_insn);
                  CHECK_FIELD (num, 32767, -32768, 0);
-                 opcode = re_assemble_16 (opcode, num, 1);
+                 opcode |= re_assemble_16 (num);
                  continue;
                }
              else
@@ -3129,7 +3142,7 @@ pa_ip (str)
                  num = evaluate_absolute (&the_insn);
                  CHECK_FIELD (num, 32767, -32768, 0);
                  CHECK_ALIGN (num, 4, 0);
-                 opcode = re_assemble_16 (opcode, num, 1);
+                 opcode |= re_assemble_16 (num);
                  continue;
                }
              else
@@ -3155,7 +3168,7 @@ pa_ip (str)
                  num = evaluate_absolute (&the_insn);
                  CHECK_FIELD (num, 32767, -32768, 0);
                  CHECK_ALIGN (num, 8, 0);
-                 opcode = re_assemble_16 (opcode, num, 1);
+                 opcode |= re_assemble_16 (num);
                  continue;
                }
              else
@@ -3187,7 +3200,7 @@ pa_ip (str)
                    }
                  CHECK_FIELD (num, 8199, -8184, 0);
                  
-                 opcode = re_assemble_12 (opcode, (num - 8) >> 2);
+                 opcode |= re_assemble_12 ((num - 8) >> 2);
                  continue;
                }
              else
@@ -3221,7 +3234,7 @@ pa_ip (str)
                  if (the_insn.exp.X_add_symbol)
                    num -= 8;
 
-                 opcode = re_assemble_17 (opcode, num >> 2);
+                 opcode |= re_assemble_17 (num >> 2);
                  continue;
                }
              else
@@ -3254,7 +3267,7 @@ pa_ip (str)
                  if (the_insn.exp.X_add_symbol)
                    num -= 8;
 
-                 opcode = re_assemble_22 (opcode, num >> 2);
+                 opcode |= re_assemble_22 (num >> 2);
                }
              else
                {
@@ -3286,7 +3299,7 @@ pa_ip (str)
                  if (the_insn.exp.X_add_symbol)
                    num -= 8;
 
-                 opcode = re_assemble_17 (opcode, num >> 2);
+                 opcode |= re_assemble_17 (num >> 2);
                  continue;
                }
              else
@@ -4021,16 +4034,17 @@ tc_gen_reloc (section, fixp)
 {
   arelent *reloc;
   struct hppa_fix_struct *hppa_fixp;
-  bfd_reloc_code_real_type code;
   static arelent *no_relocs = NULL;
   arelent **relocs;
-  bfd_reloc_code_real_type **codes;
+  reloc_type **codes;
+  reloc_type code;
   int n_relocs;
   int i;
 
   hppa_fixp = (struct hppa_fix_struct *) fixp->tc_fix_data;
   if (fixp->fx_addsy == 0)
     return &no_relocs;
+
   assert (hppa_fixp != 0);
   assert (section != 0);
 
@@ -4038,7 +4052,7 @@ tc_gen_reloc (section, fixp)
 
   reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
   *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
-  codes = (bfd_reloc_code_real_type **) hppa_gen_reloc_type (stdoutput,
+  codes = hppa_gen_reloc_type (stdoutput,
                               fixp->fx_r_type,
                               hppa_fixp->fx_r_format,
                               hppa_fixp->fx_r_field,
@@ -4068,11 +4082,11 @@ tc_gen_reloc (section, fixp)
 
       reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
       *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
-      reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
+      reloc->howto = bfd_reloc_type_lookup (stdoutput,
+                                           (bfd_reloc_code_real_type) code);
       reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
-      reloc->addend = 0;       /* default */
 
-      assert (reloc->howto && code == reloc->howto->type);
+      assert (reloc->howto && (unsigned int) code == reloc->howto->type);
 
       /* Now, do any processing that is dependent on the relocation type.  */
       switch (code)
@@ -4095,15 +4109,61 @@ tc_gen_reloc (section, fixp)
          reloc->addend = 0;
          break;
 
-       case R_PARISC_PCREL21L:
+#ifdef ELF_ARG_RELOC
        case R_PARISC_PCREL17R:
        case R_PARISC_PCREL17F:
        case R_PARISC_PCREL17C:
-       case R_PARISC_PCREL14R:
-       case R_PARISC_PCREL14F:
-         /* The constant is stored in the instruction.  */
-         reloc->addend = HPPA_R_ADDEND (hppa_fixp->fx_arg_reloc, 0);
+       case R_PARISC_DIR17R:
+       case R_PARISC_DIR17F:
+         {
+           char *buf = fixp->fx_where + fixp->fx_frag->fr_literal;
+           int insn = bfd_get_32 (stdoutput, buf);
+
+#ifdef ELF_ARG_RELOC_INSN
+           /* Store the arg reloc in the instruction.  */
+           insn = ((insn & ~ 0x1ff8)
+                   | ((hppa_fixp->fx_arg_reloc << 3) & 0x1ff8));
+           bfd_put_32 (stdoutput, insn, buf);
+           reloc->addend = fixp->fx_offset;
+#else
+           /* The high 22 bits of the constant are stored in the
+              reloc.  The remaining 10 bits can be retrieved from the
+              instruction.  */
+           insn = (insn & ~ 0x7f8) | ((fixp->fx_offset & 0x3fc) << 1);
+           bfd_put_32 (stdoutput, insn, buf);
+           reloc->addend = HPPA_R_ADDEND (hppa_fixp->fx_arg_reloc,
+                                          fixp->fx_offset >> 10);
+#endif
+         }
          break;
+
+       case R_PARISC_PCREL21L:
+       case R_PARISC_DIR21L:
+         {
+           char *buf = fixp->fx_where + fixp->fx_frag->fr_literal;
+           int insn = bfd_get_32 (stdoutput, buf);
+
+#ifdef ELF_ARG_RELOC_INSN
+           /* Store the arg reloc in the instruction.  */
+           insn = ((insn & ~ 0xff9)
+                   | ((hppa_fixp->fx_arg_reloc >> 9) & 1)
+                   | ((hppa_fixp->fx_arg_reloc << 3) & 0xff8));
+           bfd_put_32 (stdoutput, insn, buf);
+           reloc->addend = fixp->fx_offset;
+#else
+           /* In this case, the instruction stores the high bits, so
+              the reloc stores the low 22 bits.  */
+           insn = ((insn & ~ 0xff9)
+                   | ((fixp->fx_offset >> 31) & 1)
+                   | ((fixp->fx_offset >> 19) & 0xff8));
+           bfd_put_32 (stdoutput, insn, buf);
+           reloc->addend = HPPA_R_ADDEND (hppa_fixp->fx_arg_reloc,
+                                          fixp->fx_offset);
+#endif
+         }
+         break;
+#endif
+
        default:
          reloc->addend = fixp->fx_offset;
          break;
@@ -4119,7 +4179,9 @@ tc_gen_reloc (section, fixp)
 
       relocs[i]->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
       *relocs[i]->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
-      relocs[i]->howto = bfd_reloc_type_lookup (stdoutput, code);
+      relocs[i]->howto =
+       bfd_reloc_type_lookup (stdoutput,
+                              (bfd_reloc_code_real_type) code);
       relocs[i]->address = fixp->fx_frag->fr_address + fixp->fx_where;
 
       switch (code)
@@ -4130,25 +4192,35 @@ tc_gen_reloc (section, fixp)
             relocs now and break out of the loop.  */
          assert (i == 1);
          relocs[0]->sym_ptr_ptr = (asymbol **) &(bfd_abs_symbol);
-         relocs[0]->howto = bfd_reloc_type_lookup (stdoutput, *codes[0]);
+         relocs[0]->howto =
+           bfd_reloc_type_lookup (stdoutput,
+                                  (bfd_reloc_code_real_type) *codes[0]);
          relocs[0]->address = fixp->fx_frag->fr_address + fixp->fx_where;
          relocs[0]->addend = 0;
          relocs[1]->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
          *relocs[1]->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
-         relocs[1]->howto = bfd_reloc_type_lookup (stdoutput, *codes[1]);
+         relocs[1]->howto =
+           bfd_reloc_type_lookup (stdoutput,
+                                  (bfd_reloc_code_real_type) *codes[1]);
          relocs[1]->address = fixp->fx_frag->fr_address + fixp->fx_where;
          relocs[1]->addend = 0;
          relocs[2]->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
          *relocs[2]->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_subsy);
-         relocs[2]->howto = bfd_reloc_type_lookup (stdoutput, *codes[2]);
+         relocs[2]->howto =
+           bfd_reloc_type_lookup (stdoutput,
+                                  (bfd_reloc_code_real_type) *codes[2]);
          relocs[2]->address = fixp->fx_frag->fr_address + fixp->fx_where;
          relocs[2]->addend = 0;
          relocs[3]->sym_ptr_ptr = (asymbol **) &(bfd_abs_symbol);
-         relocs[3]->howto = bfd_reloc_type_lookup (stdoutput, *codes[3]);
+         relocs[3]->howto =
+           bfd_reloc_type_lookup (stdoutput,
+                                  (bfd_reloc_code_real_type) *codes[3]);
          relocs[3]->address = fixp->fx_frag->fr_address + fixp->fx_where;
          relocs[3]->addend = 0;
          relocs[4]->sym_ptr_ptr = (asymbol **) &(bfd_abs_symbol);
-         relocs[4]->howto = bfd_reloc_type_lookup (stdoutput, *codes[4]);
+         relocs[4]->howto =
+           bfd_reloc_type_lookup (stdoutput,
+                                  (bfd_reloc_code_real_type) *codes[4]);
          relocs[4]->address = fixp->fx_frag->fr_address + fixp->fx_where;
          relocs[4]->addend = 0;
          goto done;
@@ -4272,7 +4344,12 @@ md_estimate_size_before_relax (fragP, segment)
   return size;
 }
 \f
-CONST char *md_shortopts = "";
+#ifdef OBJ_ELF
+const char *md_shortopts = "V";
+#else
+const char *md_shortopts = "";
+#endif
+
 struct option md_longopts[] = {
   {NULL, no_argument, NULL, 0}
 };
@@ -4283,7 +4360,19 @@ md_parse_option (c, arg)
      int c ATTRIBUTE_UNUSED;
      char *arg ATTRIBUTE_UNUSED;
 {
-  return 0;
+  switch (c)
+    {
+    default:
+      return 0;
+
+#ifdef OBJ_ELF
+    case 'V':
+      print_version_id ();
+      break;
+#endif
+    }
+
+  return 1;
 }
 
 void
@@ -4301,6 +4390,13 @@ md_undefined_symbol (name)
   return 0;
 }
 
+#if defined (SOM) || defined (ELF_ARG_RELOC)
+#define arg_reloc_stub_needed(CALLER, CALLEE) \
+  ((CALLEE) && (CALLER) && ((CALLEE) != (CALLER)))
+#else
+#define arg_reloc_stub_needed(CALLER, CALLEE) 0
+#endif
+
 /* Apply a fixup to an instruction.  */
 
 int
@@ -4311,7 +4407,7 @@ md_apply_fix (fixP, valp)
   char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
   struct hppa_fix_struct *hppa_fixP;
   offsetT new_val;
-  unsigned int insn, val;
+  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
@@ -4335,19 +4431,19 @@ md_apply_fix (fixP, valp)
     }
 #endif
 
+  insn = bfd_get_32 (stdoutput, (unsigned char *)buf);
   /* There should have been an HPPA specific fixup associated
      with the GAS fixup.  */
   if (hppa_fixP)
     {
-      unsigned long buf_wd = bfd_get_32 (stdoutput, buf);
-      int fmt = bfd_hppa_insn2fmt (buf_wd);
+      int fmt = bfd_hppa_insn2fmt (stdoutput, insn);
 
       /* If there is a symbol associated with this fixup, then it's something
         which will need a SOM relocation (except for some PC-relative relocs).
         In such cases we should treat the "val" or "addend" as zero since it
         will be added in as needed from fx_offset in tc_gen_reloc.  */
       if ((fixP->fx_addsy != NULL
-          || fixP->fx_r_type == R_HPPA_NONE)
+          || fixP->fx_r_type == (int) R_HPPA_NONE)
 #ifdef OBJ_SOM
          && fmt != 32
 #endif
@@ -4374,25 +4470,19 @@ md_apply_fix (fixP, valp)
        new_val = hppa_field_adjust (*valp, 0, hppa_fixP->fx_r_field);
 
       /* Handle pc-relative exceptions from above.  */
-#define arg_reloc_stub_needed(CALLER, CALLEE) \
-  ((CALLEE) && (CALLER) && ((CALLEE) != (CALLER)))
       if ((fmt == 12 || fmt == 17 || fmt == 22)
          && fixP->fx_addsy
          && fixP->fx_pcrel
-#ifdef OBJ_SOM
-         && !arg_reloc_stub_needed ((long) ((obj_symbol_type *)
-               symbol_get_bfdsym (fixP->fx_addsy))->tc_data.ap.hppa_arg_reloc,
-               hppa_fixP->fx_arg_reloc)
-#endif
-         && (((int)(*valp) > -262144 && (int)(*valp) < 262143) && fmt != 22)
+         && !arg_reloc_stub_needed (symbol_arg_reloc_info (fixP->fx_addsy),
+                                    hppa_fixP->fx_arg_reloc)
+         && (*valp + 262144) < 524288
          && S_GET_SEGMENT (fixP->fx_addsy) == hppa_fixP->segment
          && !(fixP->fx_subsy
               && S_GET_SEGMENT (fixP->fx_subsy) != hppa_fixP->segment))
-             
-       new_val = hppa_field_adjust (*valp, 0, hppa_fixP->fx_r_field);
-#undef arg_reloc_stub_needed
+       {
+         new_val = hppa_field_adjust (*valp, 0, hppa_fixP->fx_r_field);
+       }
 
-      insn = bfd_get_32 (stdoutput, buf);
       switch (fmt)
        {
        case 10:
@@ -4419,10 +4509,10 @@ md_apply_fix (fixP, valp)
 
        /* Handle all opcodes with the 'k' operand type.  */
        case 21:
-         CHECK_FIELD (new_val, 1048576, -1048576, 0);
+         CHECK_FIELD (new_val, 1048575, -1048576, 0);
          val = new_val;
 
-         insn = re_assemble_21 (insn & ~ 0x1fffff, val);
+         insn = (insn & ~ 0x1fffff) | re_assemble_21 (val);
          break;
 
        /* Handle all the opcodes with the 'i' operand type.  */
@@ -4438,7 +4528,7 @@ md_apply_fix (fixP, valp)
          CHECK_FIELD (new_val, 8199, -8184, 0);
          val = new_val;
 
-         insn = re_assemble_12 (insn & ~ 0x1ffd, (val - 8) >> 2);
+         insn = (insn & ~ 0x1ffd) | re_assemble_12 ((val - 8) >> 2);
          break;
 
        /* Handle some of the opcodes with the 'W' operand type.  */
@@ -4448,14 +4538,14 @@ md_apply_fix (fixP, 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
+           if (fixP->fx_r_type == (int) R_HPPA_PCREL_CALL
                && (insn & 0xffe00000) == 0xe8000000)
              CHECK_FIELD (distance, 262143, -262144, 0);
 
            CHECK_FIELD (new_val, 262143, -262144, 0);
            val = new_val;
 
-           insn = re_assemble_17 (insn & ~ 0x1f1ffd, (val - 8) >> 2);
+           insn = (insn & ~ 0x1f1ffd) | re_assemble_17 ((val - 8) >> 2);
            break;
          }
 
@@ -4465,17 +4555,32 @@ md_apply_fix (fixP, 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
+           if (fixP->fx_r_type == (int) R_HPPA_PCREL_CALL
                && (insn & 0xffe00000) == 0xe8000000)
              CHECK_FIELD (distance, 8388607, -8388608, 0);
 
            CHECK_FIELD (new_val, 8388607, -8388608, 0);
            val = new_val;
 
-           insn = re_assemble_22 (insn & ~ 0x3ff1ffd, (val - 8) >> 2);
+           insn = (insn & ~ 0x3ff1ffd) | re_assemble_22 ((val - 8) >> 2);
            break;
          }
 
+       case -10:
+         val = new_val;
+         insn = (insn & ~ 0xfff1) | re_assemble_16 (val & -8);
+         break;
+
+       case -16:
+         val = new_val;
+         insn = (insn & ~ 0xfff9) | re_assemble_16 (val & -4);
+         break;
+
+       case 16:
+         val = new_val;
+         insn = (insn & ~ 0xffff) | re_assemble_16 (val);
+         break;
+
        case 32:
          insn = new_val;
          break;
@@ -4486,7 +4591,7 @@ md_apply_fix (fixP, valp)
        }
 
       /* Insert the relocation.  */
-      bfd_put_32 (stdoutput, insn, buf);
+      bfd_put_32 (stdoutput, insn, (unsigned char *) buf);
       return 1;
     }
   else
@@ -6217,10 +6322,11 @@ pa_callinfo (unused)
   demand_empty_rest_of_line ();
 }
 
-/* Switch into the code subspace.  */
-
+#if !(defined (OBJ_ELF) && defined (TE_LINUX))
+/* Switch to the text space.  Like s_text, but delete our
+   label when finished.  */
 static void
-pa_code (unused)
+pa_text (unused)
      int unused ATTRIBUTE_UNUSED;
 {
 #ifdef OBJ_SOM
@@ -6228,10 +6334,25 @@ pa_code (unused)
   current_subspace
     = pa_subsegment_to_subspace (current_space->sd_seg, 0);
 #endif
+
   s_text (0);
   pa_undefine_label ();
 }
 
+/* Switch to the data space.  As usual delete our label.  */
+static void
+pa_data (unused)
+     int unused ATTRIBUTE_UNUSED;
+{
+#ifdef OBJ_SOM
+  current_space = is_defined_space ("$PRIVATE$");
+  current_subspace
+    = pa_subsegment_to_subspace (current_space->sd_seg, 0);
+#endif
+  s_data (0);
+  pa_undefine_label ();
+}
+
 /* This is different than the standard GAS s_comm(). On HP9000/800 machines,
    the .comm pseudo-op has the following symtax:
 
@@ -6281,6 +6402,7 @@ pa_comm (unused)
     }
   demand_empty_rest_of_line ();
 }
+#endif /* !(defined (OBJ_ELF) && defined (TE_LINUX)) */
 
 /* Process a .END pseudo-op.  */
 
@@ -6495,9 +6617,6 @@ 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)
 
@@ -6594,8 +6713,8 @@ pa_type_args (symbolP, is_export)
          name = input_line_pointer;
          c = get_symbol_end ();
          arg_reloc = pa_align_arg_reloc (temp, pa_build_arg_reloc (name));
-#ifdef OBJ_SOM
-         symbol->tc_data.ap.hppa_arg_reloc |= arg_reloc;
+#if defined (SOM) || defined (ELF_ARG_RELOC)
+         symbol_arg_reloc_info (symbolP) |= arg_reloc;
 #endif
          *input_line_pointer = c;
        }
@@ -6608,8 +6727,8 @@ pa_type_args (symbolP, is_export)
          name = input_line_pointer;
          c = get_symbol_end ();
          arg_reloc = pa_build_arg_reloc (name);
-#ifdef OBJ_SOM
-         symbol->tc_data.ap.hppa_arg_reloc |= arg_reloc;
+#if defined (SOM) || defined (ELF_ARG_RELOC)
+         symbol_arg_reloc_info (symbolP) |= arg_reloc;
 #endif
          *input_line_pointer = c;
        }
@@ -6621,7 +6740,8 @@ pa_type_args (symbolP, is_export)
          input_line_pointer++;
          temp = atoi (input_line_pointer);
 #ifdef OBJ_SOM
-         symbol->tc_data.ap.hppa_priv_level = temp;
+         ((obj_symbol_type *) symbol_get_bfdsym (symbolP))
+           ->tc_data.ap.hppa_priv_level = temp;
 #endif
          c = get_symbol_end ();
          *input_line_pointer = c;
@@ -6828,7 +6948,7 @@ pa_param (unused)
 }
 
 /* Handle a .PROC pseudo-op.  It is used to mark the beginning
-   of a procedure from a syntatical point of view.  */
+   of a procedure from a syntactical point of view.  */
 
 static void
 pa_proc (unused)
@@ -7990,11 +8110,6 @@ pa_stringer_aux (s)
 {
   unsigned int c = *s & CHAR_MASK;
 
-#ifdef OBJ_SOM
-  /* We must have a valid space and subspace.  */
-  pa_check_current_space_and_subspace ();
-#endif
-
   switch (c)
     {
     case '\"':
@@ -8017,9 +8132,14 @@ pa_stringer (append_zero)
   int i;
 
   /* Preprocess the string to handle PA-specific escape sequences.
-     For example, \xDD where DD is a hexidecimal number should be
+     For example, \xDD where DD is a hexadecimal number should be
      changed to \OOO where OOO is an octal number.  */
 
+#ifdef OBJ_SOM
+  /* We must have a valid space and subspace.  */
+  pa_check_current_space_and_subspace ();
+#endif
+
   /* Skip the opening quote.  */
   s = input_line_pointer + 1;
 
@@ -8038,7 +8158,7 @@ pa_stringer (append_zero)
                char dg;
                char *s_start = s;
 
-               /* Get pas the 'x'.  */
+               /* Get past the 'x'.  */
                s++;
                for (num_digit = 0, number = 0, dg = *s;
                     num_digit < 2
@@ -8128,21 +8248,6 @@ pa_cons (nbytes)
   pa_undefine_label ();
 }
 
-/* Switch to the data space.  As usual delete our label.  */
-
-static void
-pa_data (unused)
-     int unused ATTRIBUTE_UNUSED;
-{
-#ifdef OBJ_SOM
-  current_space = is_defined_space ("$PRIVATE$");
-  current_subspace
-    = pa_subsegment_to_subspace (current_space->sd_seg, 0);
-#endif
-  s_data (0);
-  pa_undefine_label ();
-}
-
 /* Like float_cons, but we need to undefine our label.  */
 
 static void
@@ -8198,22 +8303,6 @@ pa_lsym (unused)
   pa_undefine_label ();
 }
 
-/* Switch to the text space.  Like s_text, but delete our
-   label when finished.  */
-static void
-pa_text (unused)
-     int unused ATTRIBUTE_UNUSED;
-{
-#ifdef OBJ_SOM
-  current_space = is_defined_space ("$TEXT$");
-  current_subspace
-    = pa_subsegment_to_subspace (current_space->sd_seg, 0);
-#endif
-
-  s_text (0);
-  pa_undefine_label ();
-}
-
 /* On the PA relocations which involve function symbols must not be
    adjusted.  This so that the linker can know when/how to create argument
    relocation stubs for indirect calls and calls to static functions.
@@ -8305,46 +8394,41 @@ hppa_fix_adjustable (fixp)
 
 int
 hppa_force_relocation (fixp)
-     fixS *fixp;
+     struct fix *fixp;
 {
   struct hppa_fix_struct *hppa_fixp;
   int distance;
 
   hppa_fixp = (struct hppa_fix_struct *) fixp->tc_fix_data;
 #ifdef OBJ_SOM
-  if (fixp->fx_r_type == R_HPPA_ENTRY || fixp->fx_r_type == R_HPPA_EXIT
-      || fixp->fx_r_type == R_HPPA_BEGIN_BRTAB
-      || fixp->fx_r_type == R_HPPA_END_BRTAB
-      || fixp->fx_r_type == R_HPPA_BEGIN_TRY
-      || fixp->fx_r_type == R_HPPA_END_TRY
+  if (fixp->fx_r_type == (int) R_HPPA_ENTRY
+      || fixp->fx_r_type == (int) R_HPPA_EXIT
+      || fixp->fx_r_type == (int) R_HPPA_BEGIN_BRTAB
+      || fixp->fx_r_type == (int) R_HPPA_END_BRTAB
+      || fixp->fx_r_type == (int) R_HPPA_BEGIN_TRY
+      || fixp->fx_r_type == (int) R_HPPA_END_TRY
       || (fixp->fx_addsy != NULL && fixp->fx_subsy != NULL
          && (hppa_fixp->segment->flags & SEC_CODE) != 0))
     return 1;
 #endif
 
-#define arg_reloc_stub_needed(CALLER, CALLEE) \
-  ((CALLEE) && (CALLER) && ((CALLEE) != (CALLER)))
-
-#ifdef OBJ_SOM
   /* It is necessary to force PC-relative calls/jumps to have a relocation
      entry if they're going to need either a argument relocation or long
      call stub.  FIXME.  Can't we need the same for absolute calls?  */
   if (fixp->fx_pcrel && fixp->fx_addsy
-      && (arg_reloc_stub_needed ((long) ((obj_symbol_type *)
-       symbol_get_bfdsym (fixp->fx_addsy))->tc_data.ap.hppa_arg_reloc,
-       hppa_fixp->fx_arg_reloc)))
+      && (arg_reloc_stub_needed (symbol_arg_reloc_info (fixp->fx_addsy),
+                                hppa_fixp->fx_arg_reloc)))
     return 1;
-#endif
+
   distance = (fixp->fx_offset + S_GET_VALUE (fixp->fx_addsy)
              - md_pcrel_from (fixp));
   /* Now check and see if we're going to need a long-branch stub.  */
-  if (fixp->fx_r_type == R_HPPA_PCREL_CALL
+  if (fixp->fx_r_type == (int) R_HPPA_PCREL_CALL
       && (distance > 262143 || distance < -262144))
     return 1;
 
-  if (fixp->fx_r_type == R_HPPA_ABS_CALL)
+  if (fixp->fx_r_type == (int) R_HPPA_ABS_CALL)
     return 1;
-#undef arg_reloc_stub_needed
 
   /* No need (yet) to force another relocations to be emitted.  */
   return 0;
@@ -8360,10 +8444,18 @@ hppa_elf_mark_end_of_function ()
 {
   /* ELF does not have EXIT relocations.  All we do is create a
      temporary symbol marking the end of the function.  */
-  char *name = (char *)
-    xmalloc (strlen ("L$\001end_") +
-            strlen (S_GET_NAME (last_call_info->start_symbol)) + 1);
+  char *name;
+
+  if (last_call_info == NULL || last_call_info->start_symbol == NULL)
+    {
+      /* We have already warned about a missing label,
+        or other problems.  */
+      return;
+    }
 
+  name = (char *) xmalloc (strlen ("L$\001end_")
+                          + strlen (S_GET_NAME (last_call_info->start_symbol))
+                          + 1);
   if (name)
     {
       symbolS *symbolP;
@@ -8428,10 +8520,9 @@ elf_hppa_final_processing ()
        - S_GET_VALUE (call_info_pointer->start_symbol) + 4;
     }
 }
-#endif
 
-#ifdef OBJ_ELF
-void pa_end_of_source ()
+void
+pa_end_of_source ()
 {
   if (debug_type == DEBUG_DWARF2)
     dwarf2_finish ();
index fce147c..69de41a 100644 (file)
@@ -47,7 +47,7 @@
 #define WORKING_DOT_WORD
 
 #ifdef OBJ_ELF
-#if BFD_ARCH_SIZE == 64
+#if TARGET_ARCH_SIZE == 64
 #include "bfd/elf64-hppa.h"
 #define TARGET_FORMAT "elf64-hppa"
 #else
 
 #define ASEC_NULL (asection *)0
 
-/* Labels are not required to have a colon for a suffix.  */
-#define LABELS_WITHOUT_COLONS 1
+/* pa_define_label gets used outside of tc-hppa.c via tc_frob_label.  */
+extern void pa_define_label PARAMS ((symbolS *));
 
-/* FIXME.  This should be static and declared in tc-hppa.c, but 
-   pa_define_label gets used outside of tc-hppa.c via tc_frob_label.
-   Should also be PARAMized, but symbolS isn't available here.  */
-extern void pa_define_label ();
-
-/* FIXME.  Types not available here, so they can't be PARAMized.  */
-extern void parse_cons_expression_hppa ();
-extern void cons_fix_new_hppa ();
-extern int hppa_force_relocation ();
+extern void parse_cons_expression_hppa PARAMS ((expressionS *));
+extern void cons_fix_new_hppa PARAMS ((fragS *, int, int, expressionS *));
+extern int hppa_force_relocation PARAMS ((struct fix *));
 
 /* This gets called before writing the object file to make sure
    things like entry/exit and proc/procend pairs match.  */
@@ -101,6 +95,7 @@ extern void pa_check_eof PARAMS ((void));
 #ifdef OBJ_ELF
 #define elf_tc_final_processing        elf_hppa_final_processing
 void elf_hppa_final_processing PARAMS ((void));
+void pa_end_of_source PARAMS ((void));
 #endif
 
 /* The PA needs to parse field selectors in .byte, etc.  */
@@ -120,6 +115,7 @@ void elf_hppa_final_processing PARAMS ((void));
    it will always follow a comma.  */
 #define TC_EOL_IN_INSN(PTR)    (*(PTR) == '!' && (PTR)[-1] == ',')
 
+int hppa_fix_adjustable PARAMS((struct fix *));
 #define tc_fix_adjustable hppa_fix_adjustable
 
 /* Because of the strange PA calling conventions, it is sometimes
index 466f5f9..f250b4e 100644 (file)
@@ -21,5 +21,8 @@
 /* HP PA-RISC and OSF/1 support was contributed by the Center for
        Software Science at the University of Utah.  */
 
+/* Labels are not required to have a colon for a suffix.  */
+#define LABELS_WITHOUT_COLONS 1
+
 /* These define interfaces.  */
 #include "obj-format.h"
diff --git a/gas/config/te-hppa64.h b/gas/config/te-hppa64.h
new file mode 100644 (file)
index 0000000..dfeb62b
--- /dev/null
@@ -0,0 +1,6 @@
+#define TARGET_ARCH_SIZE 64
+
+/* Labels are not required to have a colon for a suffix.  */
+#define LABELS_WITHOUT_COLONS 1
+
+#include "obj-format.h"
diff --git a/gas/config/te-hppalinux64.h b/gas/config/te-hppalinux64.h
new file mode 100644 (file)
index 0000000..4d67c95
--- /dev/null
@@ -0,0 +1,5 @@
+#define TE_LINUX
+#define TARGET_ARCH_SIZE 64
+#define LOCAL_LABELS_FB 1
+
+#include "obj-format.h"
index cbed431..f9e488b 100755 (executable)
@@ -1727,19 +1727,22 @@ for this_target in $target $canon_targets ; do
 
       fr30-*-*)                    fmt=elf bfd_gas=yes ;;
 
-      hppa-*-linux-gnu*)    fmt=elf em=linux ;;
+      hppa-*-linux-gnu*)    case ${cpu} in
+                               hppa*64*)
+                                       fmt=elf em=hppalinux64;;
+                               hppa*)
+                                       fmt=elf em=linux;;
+                           esac ;;
       hppa-*-*elf*)         fmt=elf em=hppa ;;
       hppa-*-lites*)        fmt=elf em=hppa ;;
       hppa-*-osf*)          fmt=som em=hppa ;;
       hppa-*-rtems*)        fmt=elf em=hppa ;;
-      hppa-*-hpux11*)      em=hppa
-                           case ${cpu} in
+      hppa-*-hpux11*)      case ${cpu} in
                                hppa*64*)
-                                       fmt=elf;;
+                                       fmt=elf em=hppa64 ;;
                                hppa*)
-                                       fmt=som;;
-                           esac
-                           ;;
+                                       fmt=som em=hppa ;;
+                           esac ;;
       hppa-*-hpux*)         fmt=som em=hppa ;;
       hppa-*-mpeix*)        fmt=som em=hppa ;;
       hppa-*-bsd*)          fmt=som em=hppa ;;
@@ -2444,7 +2447,7 @@ EOF
 # 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:2448: checking for $ac_word" >&5
+echo "configure:2451: 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
@@ -2474,7 +2477,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:2478: checking for $ac_word" >&5
+echo "configure:2481: 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
@@ -2525,7 +2528,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:2529: checking for $ac_word" >&5
+echo "configure:2532: 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
@@ -2557,7 +2560,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2561: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2564: 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.
@@ -2568,12 +2571,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 2572 "configure"
+#line 2575 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:2577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2580: \"$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
@@ -2599,12 +2602,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:2603: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2606: 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:2608: checking whether we are using GNU C" >&5
+echo "configure:2611: 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
@@ -2613,7 +2616,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2617: \"$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:2620: \"$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
@@ -2632,7 +2635,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:2636: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2639: 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
@@ -2669,7 +2672,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2673: checking for $ac_word" >&5
+echo "configure:2676: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2700,7 +2703,7 @@ done
 test -n "$YACC" || YACC="yacc"
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2704: checking how to run the C preprocessor" >&5
+echo "configure:2707: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -2715,13 +2718,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 2719 "configure"
+#line 2722 "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:2725: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2728: \"$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
   :
@@ -2732,13 +2735,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 2736 "configure"
+#line 2739 "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:2742: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2745: \"$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
   :
@@ -2749,13 +2752,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 2753 "configure"
+#line 2756 "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:2759: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2762: \"$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
   :
@@ -2785,7 +2788,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2789: checking for $ac_word" >&5
+echo "configure:2792: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2818,7 +2821,7 @@ test -n "$LEX" || LEX=""$missing_dir/missing flex""
 # Extract the first word of "flex", so it can be a program name with args.
 set dummy flex; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2822: checking for $ac_word" >&5
+echo "configure:2825: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2852,7 +2855,7 @@ then
   *) ac_lib=l ;;
   esac
   echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
-echo "configure:2856: checking for yywrap in -l$ac_lib" >&5
+echo "configure:2859: checking for yywrap in -l$ac_lib" >&5
 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2860,7 +2863,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$ac_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2864 "configure"
+#line 2867 "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
@@ -2871,7 +2874,7 @@ int main() {
 yywrap()
 ; return 0; }
 EOF
-if { (eval echo configure:2875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2878: \"$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
@@ -2894,7 +2897,7 @@ fi
 fi
 
 echo $ac_n "checking lex output file root""... $ac_c" 1>&6
-echo "configure:2898: checking lex output file root" >&5
+echo "configure:2901: checking lex output file root" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2915,7 +2918,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6
 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
 
 echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6
-echo "configure:2919: checking whether yytext is a pointer" >&5
+echo "configure:2922: checking whether yytext is a pointer" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2927,14 +2930,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
 ac_save_LIBS="$LIBS"
 LIBS="$LIBS $LEXLIB"
 cat > conftest.$ac_ext <<EOF
-#line 2931 "configure"
+#line 2934 "configure"
 #include "confdefs.h"
 `cat $LEX_OUTPUT_ROOT.c`
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_prog_lex_yytext_pointer=yes
 else
@@ -2958,7 +2961,7 @@ fi
 
 ALL_LINGUAS=
 echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:2962: checking for POSIXized ISC" >&5
+echo "configure:2965: 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
@@ -2979,12 +2982,12 @@ else
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2983: checking for ANSI C header files" >&5
+echo "configure:2986: 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 2988 "configure"
+#line 2991 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -2992,7 +2995,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2996: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2999: \"$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*
@@ -3009,7 +3012,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 3013 "configure"
+#line 3016 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -3027,7 +3030,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 3031 "configure"
+#line 3034 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -3048,7 +3051,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 3052 "configure"
+#line 3055 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3059,7 +3062,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:3063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -3083,12 +3086,12 @@ EOF
 fi
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:3087: checking for working const" >&5
+echo "configure:3090: 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 3092 "configure"
+#line 3095 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -3137,7 +3140,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:3141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3144: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -3158,21 +3161,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:3162: checking for inline" >&5
+echo "configure:3165: 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 3169 "configure"
+#line 3172 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:3176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3179: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -3198,12 +3201,12 @@ EOF
 esac
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3202: checking for off_t" >&5
+echo "configure:3205: 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 3207 "configure"
+#line 3210 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3231,12 +3234,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3235: checking for size_t" >&5
+echo "configure:3238: 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 3240 "configure"
+#line 3243 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3266,19 +3269,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:3270: checking for working alloca.h" >&5
+echo "configure:3273: 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 3275 "configure"
+#line 3278 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:3282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3285: \"$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
@@ -3299,12 +3302,12 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:3303: checking for alloca" >&5
+echo "configure:3306: 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 3308 "configure"
+#line 3311 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -3332,7 +3335,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:3336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3339: \"$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
@@ -3364,12 +3367,12 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:3368: checking whether alloca needs Cray hooks" >&5
+echo "configure:3371: 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 3373 "configure"
+#line 3376 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -3394,12 +3397,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:3398: checking for $ac_func" >&5
+echo "configure:3401: 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 3403 "configure"
+#line 3406 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3422,7 +3425,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3426: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3429: \"$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
@@ -3449,7 +3452,7 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:3453: checking stack direction for C alloca" >&5
+echo "configure:3456: 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
@@ -3457,7 +3460,7 @@ else
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 3461 "configure"
+#line 3464 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -3476,7 +3479,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:3480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3483: \"$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
@@ -3501,17 +3504,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:3505: checking for $ac_hdr" >&5
+echo "configure:3508: 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 3510 "configure"
+#line 3513 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3518: \"$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*
@@ -3540,12 +3543,12 @@ done
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3544: checking for $ac_func" >&5
+echo "configure:3547: 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 3549 "configure"
+#line 3552 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3568,7 +3571,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3575: \"$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
@@ -3593,7 +3596,7 @@ fi
 done
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:3597: checking for working mmap" >&5
+echo "configure:3600: 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
@@ -3601,7 +3604,7 @@ else
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 3605 "configure"
+#line 3608 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -3741,7 +3744,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:3745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3748: \"$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
@@ -3769,17 +3772,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:3773: checking for $ac_hdr" >&5
+echo "configure:3776: 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 3778 "configure"
+#line 3781 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3783: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3786: \"$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*
@@ -3809,12 +3812,12 @@ done
 __argz_count __argz_stringify __argz_next
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3813: checking for $ac_func" >&5
+echo "configure:3816: 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 3818 "configure"
+#line 3821 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3837,7 +3840,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3844: \"$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
@@ -3866,12 +3869,12 @@ done
      for ac_func in stpcpy
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3870: checking for $ac_func" >&5
+echo "configure:3873: 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 3875 "configure"
+#line 3878 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3894,7 +3897,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3901: \"$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
@@ -3928,19 +3931,19 @@ EOF
 
    if test $ac_cv_header_locale_h = yes; then
     echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:3932: checking for LC_MESSAGES" >&5
+echo "configure:3935: 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 3937 "configure"
+#line 3940 "configure"
 #include "confdefs.h"
 #include <locale.h>
 int main() {
 return LC_MESSAGES
 ; return 0; }
 EOF
-if { (eval echo configure:3944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3947: \"$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
@@ -3961,7 +3964,7 @@ EOF
     fi
   fi
    echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:3965: checking whether NLS is requested" >&5
+echo "configure:3968: 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"
@@ -3981,7 +3984,7 @@ fi
 EOF
 
       echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:3985: checking whether included gettext is requested" >&5
+echo "configure:3988: 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"
@@ -4000,17 +4003,17 @@ fi
 
        ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:4004: checking for libintl.h" >&5
+echo "configure:4007: 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 4009 "configure"
+#line 4012 "configure"
 #include "confdefs.h"
 #include <libintl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4014: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4017: \"$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*
@@ -4027,19 +4030,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:4031: checking for gettext in libc" >&5
+echo "configure:4034: 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 4036 "configure"
+#line 4039 "configure"
 #include "confdefs.h"
 #include <libintl.h>
 int main() {
 return (int) gettext ("")
 ; return 0; }
 EOF
-if { (eval echo configure:4043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4046: \"$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
@@ -4055,7 +4058,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:4059: checking for bindtextdomain in -lintl" >&5
+echo "configure:4062: 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
@@ -4063,7 +4066,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4067 "configure"
+#line 4070 "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
@@ -4074,7 +4077,7 @@ int main() {
 bindtextdomain()
 ; return 0; }
 EOF
-if { (eval echo configure:4078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4081: \"$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
@@ -4090,19 +4093,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:4094: checking for gettext in libintl" >&5
+echo "configure:4097: 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 4099 "configure"
+#line 4102 "configure"
 #include "confdefs.h"
 
 int main() {
 return (int) gettext ("")
 ; return 0; }
 EOF
-if { (eval echo configure:4106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4109: \"$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
@@ -4130,7 +4133,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:4134: checking for $ac_word" >&5
+echo "configure:4137: 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
@@ -4164,12 +4167,12 @@ fi
                for ac_func in dcgettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4168: checking for $ac_func" >&5
+echo "configure:4171: 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 4173 "configure"
+#line 4176 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4192,7 +4195,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4196: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4199: \"$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
@@ -4219,7 +4222,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:4223: checking for $ac_word" >&5
+echo "configure:4226: 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
@@ -4255,7 +4258,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:4259: checking for $ac_word" >&5
+echo "configure:4262: 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
@@ -4287,7 +4290,7 @@ else
 fi
 
                cat > conftest.$ac_ext <<EOF
-#line 4291 "configure"
+#line 4294 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -4295,7 +4298,7 @@ extern int _nl_msg_cat_cntr;
                               return _nl_msg_cat_cntr
 ; return 0; }
 EOF
-if { (eval echo configure:4299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   CATOBJEXT=.gmo
                   DATADIRNAME=share
@@ -4327,7 +4330,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:4331: checking for $ac_word" >&5
+echo "configure:4334: 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
@@ -4361,7 +4364,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:4365: checking for $ac_word" >&5
+echo "configure:4368: 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
@@ -4397,7 +4400,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:4401: checking for $ac_word" >&5
+echo "configure:4404: 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
@@ -4487,7 +4490,7 @@ fi
        LINGUAS=
      else
        echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:4491: checking for catalogs to be installed" >&5
+echo "configure:4494: checking for catalogs to be installed" >&5
        NEW_LINGUAS=
        for lang in ${LINGUAS=$ALL_LINGUAS}; do
          case "$ALL_LINGUAS" in
@@ -4515,17 +4518,17 @@ echo "configure:4491: 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:4519: checking for linux/version.h" >&5
+echo "configure:4522: 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 4524 "configure"
+#line 4527 "configure"
 #include "confdefs.h"
 #include <linux/version.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4529: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4532: \"$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*
@@ -4588,7 +4591,7 @@ fi
   
 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:4592: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:4595: 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"
@@ -4611,12 +4614,12 @@ fi
   
 
 echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:4615: checking for Cygwin environment" >&5
+echo "configure:4618: 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 4620 "configure"
+#line 4623 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -4627,7 +4630,7 @@ int main() {
 return __CYGWIN__;
 ; return 0; }
 EOF
-if { (eval echo configure:4631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4634: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_cygwin=yes
 else
@@ -4644,19 +4647,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:4648: checking for mingw32 environment" >&5
+echo "configure:4651: 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 4653 "configure"
+#line 4656 "configure"
 #include "confdefs.h"
 
 int main() {
 return __MINGW32__;
 ; return 0; }
 EOF
-if { (eval echo configure:4660: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4663: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_mingw32=yes
 else
@@ -4675,7 +4678,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
 
 
 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:4679: checking for executable suffix" >&5
+echo "configure:4682: checking for executable suffix" >&5
 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4685,7 +4688,7 @@ else
   rm -f conftest*
   echo 'int main () { return 0; }' > conftest.$ac_ext
   ac_cv_exeext=
-  if { (eval echo configure:4689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+  if { (eval echo configure:4692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
     for file in conftest.*; do
       case $file in
       *.c | *.o | *.obj | *.ilk | *.pdb) ;;
@@ -4710,17 +4713,17 @@ for ac_hdr in string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h e
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4714: checking for $ac_hdr" >&5
+echo "configure:4717: 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 4719 "configure"
+#line 4722 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4724: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4727: \"$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*
@@ -4750,7 +4753,7 @@ done
 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
 # people who are not cross-compiling but are compiling cross-assemblers.
 echo $ac_n "checking whether compiling a cross-assembler""... $ac_c" 1>&6
-echo "configure:4754: checking whether compiling a cross-assembler" >&5
+echo "configure:4757: checking whether compiling a cross-assembler" >&5
 if test "${host}" = "${target}"; then
   cross_gas=no
 else
@@ -4765,19 +4768,19 @@ echo "$ac_t""$cross_gas" 1>&6
 # 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:4769: checking for working alloca.h" >&5
+echo "configure:4772: 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 4774 "configure"
+#line 4777 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:4781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4784: \"$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
@@ -4798,12 +4801,12 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:4802: checking for alloca" >&5
+echo "configure:4805: 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 4807 "configure"
+#line 4810 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -4831,7 +4834,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:4835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4838: \"$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
@@ -4863,12 +4866,12 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:4867: checking whether alloca needs Cray hooks" >&5
+echo "configure:4870: 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 4872 "configure"
+#line 4875 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -4893,12 +4896,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:4897: checking for $ac_func" >&5
+echo "configure:4900: 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 4902 "configure"
+#line 4905 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4921,7 +4924,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4928: \"$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
@@ -4948,7 +4951,7 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:4952: checking stack direction for C alloca" >&5
+echo "configure:4955: 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
@@ -4956,7 +4959,7 @@ else
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 4960 "configure"
+#line 4963 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -4975,7 +4978,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:4979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4982: \"$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
@@ -4997,21 +5000,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:5001: checking for inline" >&5
+echo "configure:5004: 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 5008 "configure"
+#line 5011 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:5015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5018: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -5041,12 +5044,12 @@ esac
 for ac_func in unlink remove
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5045: checking for $ac_func" >&5
+echo "configure:5048: 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 5050 "configure"
+#line 5053 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5069,7 +5072,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5076: \"$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
@@ -5098,12 +5101,12 @@ done
 for ac_func in sbrk
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5102: checking for $ac_func" >&5
+echo "configure:5105: 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 5107 "configure"
+#line 5110 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5126,7 +5129,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5133: \"$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
@@ -5161,7 +5164,7 @@ case "$host" in
   ;;
 *-ncr-sysv4.3*)
   echo $ac_n "checking for _mwvalidcheckl in -lmw""... $ac_c" 1>&6
-echo "configure:5165: checking for _mwvalidcheckl in -lmw" >&5
+echo "configure:5168: checking for _mwvalidcheckl in -lmw" >&5
 ac_lib_var=`echo mw'_'_mwvalidcheckl | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5169,7 +5172,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmw  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5173 "configure"
+#line 5176 "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
@@ -5180,7 +5183,7 @@ int main() {
 _mwvalidcheckl()
 ; return 0; }
 EOF
-if { (eval echo configure:5184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5187: \"$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
@@ -5201,7 +5204,7 @@ else
 fi
 
   echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:5205: checking for main in -lm" >&5
+echo "configure:5208: checking for main in -lm" >&5
 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5209,14 +5212,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5213 "configure"
+#line 5216 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5223: \"$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
@@ -5239,7 +5242,7 @@ fi
   ;;
 *)
   echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:5243: checking for main in -lm" >&5
+echo "configure:5246: checking for main in -lm" >&5
 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5247,14 +5250,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5251 "configure"
+#line 5254 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5261: \"$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
@@ -5285,12 +5288,12 @@ esac
 # enough, but on some of those systems, the assert macro relies on requoting
 # working properly!
 echo $ac_n "checking for working assert macro""... $ac_c" 1>&6
-echo "configure:5289: checking for working assert macro" >&5
+echo "configure:5292: checking for working assert macro" >&5
 if eval "test \"`echo '$''{'gas_cv_assert_ok'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5294 "configure"
+#line 5297 "configure"
 #include "confdefs.h"
 #include <assert.h>
 #include <stdio.h>
@@ -5306,7 +5309,7 @@ assert (a == b
 
 ; return 0; }
 EOF
-if { (eval echo configure:5310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gas_cv_assert_ok=yes
 else
@@ -5347,12 +5350,12 @@ gas_test_headers="
 "
 
 echo $ac_n "checking whether declaration is required for strstr""... $ac_c" 1>&6
-echo "configure:5351: checking whether declaration is required for strstr" >&5
+echo "configure:5354: checking whether declaration is required for strstr" >&5
 if eval "test \"`echo '$''{'gas_cv_decl_needed_strstr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5356 "configure"
+#line 5359 "configure"
 #include "confdefs.h"
 $gas_test_headers
 int main() {
@@ -5363,7 +5366,7 @@ x = (f) strstr;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gas_cv_decl_needed_strstr=no
 else
@@ -5384,12 +5387,12 @@ fi
 
 
 echo $ac_n "checking whether declaration is required for malloc""... $ac_c" 1>&6
-echo "configure:5388: checking whether declaration is required for malloc" >&5
+echo "configure:5391: checking whether declaration is required for malloc" >&5
 if eval "test \"`echo '$''{'gas_cv_decl_needed_malloc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5393 "configure"
+#line 5396 "configure"
 #include "confdefs.h"
 $gas_test_headers
 int main() {
@@ -5400,7 +5403,7 @@ x = (f) malloc;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gas_cv_decl_needed_malloc=no
 else
@@ -5421,12 +5424,12 @@ fi
 
 
 echo $ac_n "checking whether declaration is required for free""... $ac_c" 1>&6
-echo "configure:5425: checking whether declaration is required for free" >&5
+echo "configure:5428: checking whether declaration is required for free" >&5
 if eval "test \"`echo '$''{'gas_cv_decl_needed_free'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5430 "configure"
+#line 5433 "configure"
 #include "confdefs.h"
 $gas_test_headers
 int main() {
@@ -5437,7 +5440,7 @@ x = (f) free;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gas_cv_decl_needed_free=no
 else
@@ -5458,12 +5461,12 @@ fi
 
 
 echo $ac_n "checking whether declaration is required for sbrk""... $ac_c" 1>&6
-echo "configure:5462: checking whether declaration is required for sbrk" >&5
+echo "configure:5465: checking whether declaration is required for sbrk" >&5
 if eval "test \"`echo '$''{'gas_cv_decl_needed_sbrk'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5467 "configure"
+#line 5470 "configure"
 #include "confdefs.h"
 $gas_test_headers
 int main() {
@@ -5474,7 +5477,7 @@ x = (f) sbrk;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gas_cv_decl_needed_sbrk=no
 else
@@ -5495,12 +5498,12 @@ fi
 
 
 echo $ac_n "checking whether declaration is required for environ""... $ac_c" 1>&6
-echo "configure:5499: checking whether declaration is required for environ" >&5
+echo "configure:5502: checking whether declaration is required for environ" >&5
 if eval "test \"`echo '$''{'gas_cv_decl_needed_environ'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5504 "configure"
+#line 5507 "configure"
 #include "confdefs.h"
 $gas_test_headers
 int main() {
@@ -5511,7 +5514,7 @@ x = (f) environ;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gas_cv_decl_needed_environ=no
 else
@@ -5535,12 +5538,12 @@ fi
 # for it?
 
 echo $ac_n "checking whether declaration is required for errno""... $ac_c" 1>&6
-echo "configure:5539: checking whether declaration is required for errno" >&5
+echo "configure:5542: checking whether declaration is required for errno" >&5
 if eval "test \"`echo '$''{'gas_cv_decl_needed_errno'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5544 "configure"
+#line 5547 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_ERRNO_H
@@ -5555,7 +5558,7 @@ x = (f) errno;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gas_cv_decl_needed_errno=no
 else
index df24951..c31af0d 100644 (file)
@@ -195,19 +195,22 @@ changequote([,])dnl
 
       fr30-*-*)                    fmt=elf bfd_gas=yes ;;
 
-      hppa-*-linux-gnu*)    fmt=elf em=linux ;;
+      hppa-*-linux-gnu*)    case ${cpu} in
+                               hppa*64*)
+                                       fmt=elf em=hppalinux64;;
+                               hppa*)
+                                       fmt=elf em=linux;;
+                           esac ;;
       hppa-*-*elf*)         fmt=elf em=hppa ;;
       hppa-*-lites*)        fmt=elf em=hppa ;;
       hppa-*-osf*)          fmt=som em=hppa ;;
       hppa-*-rtems*)        fmt=elf em=hppa ;;
-      hppa-*-hpux11*)      em=hppa
-                           case ${cpu} in
+      hppa-*-hpux11*)      case ${cpu} in
                                hppa*64*)
-                                       fmt=elf;;
+                                       fmt=elf em=hppa64 ;;
                                hppa*)
-                                       fmt=som;;
-                           esac
-                           ;;
+                                       fmt=som em=hppa ;;
+                           esac ;;
       hppa-*-hpux*)         fmt=som em=hppa ;;
       hppa-*-mpeix*)        fmt=som em=hppa ;;
       hppa-*-bsd*)          fmt=som em=hppa ;;