This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Last take: approval for MIPS_STABS_ELF killing


On Wed, Jun 12, 2002 at 06:17:12PM -0400, Daniel Jacobowitz wrote:
> Eric approved the MIPS portion of this offline.  Could a global write
> maintainer look over the generic bits, please?

H.J.'s new GCC patches (which I still disapprove of...) turned up a
possible segfault in the s_mips_file changes I got from him earlier. 
Here's an update with only that changed.

-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer

2002-06-11  H.J. Lu  <hjl@gnu.org>
	    Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2dbg.h (dwarf2_directive_file): Return char *.
	* dwarf2dbg.c (dwarf2_directive_file): Return filename.
	* config/tc-mips.c (s_mips_file): Call s_app_file_string
	and new_logical_line for the first .file directive.
	* read.c (s_app_file_string): New function.
	(s_app_file): Call it.
	* read.h (s_app_file_string): Add declaration.

2002-06-11  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Remove MIPS_STABS_ELF.
	* configure: Regenerated.
	* config.in: Regenerated.
	* config/obj-elf.h (ECOFF_DEBUGGING): Define to mips_flag_mdebug
	for MIPS targets.
	* config/tc-mips.c (mips_pseudo_table): Remove #ifdef around
	".extern".
	(pdr_seg): Declare unconditionally.
	(md_begin): Always generate .pdr unless ECOFF_DEBUGGING or not ELF.
	(s_mips_end): Likewise.  Generate stabs function markers.
	(s_mips_ent): Generate stabs function markers.
	(s_mips_frame): Always generate .pdr unless ECOFF_DEBUGGING or not
	ELF.
	(s_mips_mask): Likewise.
	(mips_flag_mdebug): New.
	(md_longopts): Add "mdebug" and "no-mdebug".
	(md_parse_options): Add OPTION_MDEBUG and OPTION_NO_MDEBUG.
	(mips_after_parse_args): Set mips_flag_mdebug.
	* doc/as.texinfo: Add "-mdebug" and "-no-mdebug" for MIPS.

2002-06-11  Daniel Jacobowitz  <drow@mvista.com>

	* gas/mips/lineno.d: Use --gstabs.
	* gas/mips/mips.exp (lineno.s): Remove XFAIL.

Index: configure.in
===================================================================
RCS file: /cvs/src/src/gas/configure.in,v
retrieving revision 1.107
diff -u -p -r1.107 configure.in
--- configure.in	9 Jun 2002 00:45:41 -0000	1.107
+++ configure.in	11 Jun 2002 21:13:04 -0000
@@ -170,7 +170,6 @@ changequote([,])dnl
     dev=no
     bfd_gas=no
     em=generic
-    mips_stabs_elf=
 
     # assign object format
     case ${generic_target} in
@@ -373,13 +372,13 @@ changequote([,])dnl
       mips-*-irix*)         fmt=ecoff ;;
       mips-*-lnews*)        fmt=ecoff em=lnews ;;
       mips-*-riscos*)       fmt=ecoff ;;
-      mips*-*-linux*)	    fmt=elf em=tmips mips_stabs_elf=y ;;
+      mips*-*-linux*)	    fmt=elf em=tmips ;;
       mips-*-sysv4*MP* | mips-*-gnu*)
 			    fmt=elf em=tmips ;;
       mips-*-sysv*)         fmt=ecoff ;;
       mips-*-elf* | mips-*-rtems* | mips-*-netbsd* | mips-*-openbsd*)
 			    fmt=elf ;;
-      mips-*-vxworks*)      fmt=elf mips_stabs_elf=y ;;
+      mips-*-vxworks*)      fmt=elf ;;
       mmix-*-*)		    fmt=elf bfd_gas=yes ;;
       mn10200-*-*)	    fmt=elf bfd_gas=yes ;;
       mn10300-*-*)	    fmt=elf bfd_gas=yes ;;
@@ -522,11 +521,6 @@ changequote([,])dnl
 	AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
 			   [Define as 1 if big endian.])
       fi
-    fi
-
-    if test x${mips_stabs_elf} != x; then
-      AC_DEFINE(MIPS_STABS_ELF, 1,
-		[Use ELF stabs for MIPS, not ECOFF stabs])
     fi
 
     case ${cpu_type}-${fmt} in
Index: dwarf2dbg.c
===================================================================
RCS file: /cvs/src/src/gas/dwarf2dbg.c,v
retrieving revision 1.50
diff -u -p -r1.50 dwarf2dbg.c
--- dwarf2dbg.c	23 May 2002 06:51:41 -0000	1.50
+++ dwarf2dbg.c	11 Jun 2002 21:13:07 -0000
@@ -346,7 +346,7 @@ get_filenum (filename)
 
 /* Handle the .file directive.  */
 
-void
+char *
 dwarf2_directive_file (dummy)
      int dummy ATTRIBUTE_UNUSED;
 {
@@ -359,7 +359,7 @@ dwarf2_directive_file (dummy)
   if (*input_line_pointer == '"')
     {
       s_app_file (0);
-      return;
+      return NULL;
     }
 
   num = get_absolute_expression ();
@@ -369,13 +369,13 @@ dwarf2_directive_file (dummy)
   if (num < 1)
     {
       as_bad (_("file number less than one"));
-      return;
+      return NULL;
     }
 
   if (num < (int) files_in_use && files[num].filename != 0)
     {
       as_bad (_("file number %ld already allocated"), (long) num);
-      return;
+      return NULL;
     }
 
   if (num >= (int) files_allocated)
@@ -393,6 +393,8 @@ dwarf2_directive_file (dummy)
   files[num].filename = filename;
   files[num].dir = 0;
   files_in_use = num + 1;
+
+  return filename;
 }
 
 void
Index: dwarf2dbg.h
===================================================================
RCS file: /cvs/src/src/gas/dwarf2dbg.h,v
retrieving revision 1.10
diff -u -p -r1.10 dwarf2dbg.h
--- dwarf2dbg.h	8 Mar 2001 23:24:22 -0000	1.10
+++ dwarf2dbg.h	11 Jun 2002 21:13:07 -0000
@@ -36,7 +36,7 @@ struct dwarf2_line_info {
 /* Implements the .file FILENO "FILENAME" directive.  FILENO can be 0
    to indicate that no file number has been assigned.  All real file
    number must be >0.  */
-extern void dwarf2_directive_file PARAMS ((int dummy));
+extern char *dwarf2_directive_file PARAMS ((int dummy));
 
 /* Implements the .loc FILENO LINENO [COLUMN] directive.  FILENO is
    the file number, LINENO the line number and the (optional) COLUMN
Index: read.c
===================================================================
RCS file: /cvs/src/src/gas/read.c,v
retrieving revision 1.51
diff -u -p -r1.51 read.c
--- read.c	3 May 2002 02:25:33 -0000	1.51
+++ read.c	11 Jun 2002 21:13:20 -0000
@@ -1572,6 +1572,20 @@ s_data (ignore)
    .file.  */
 
 void
+s_app_file_string (file)
+     char *file;
+{
+#ifdef LISTING
+  if (listing)
+    listing_source_file (file);
+#endif
+  register_dependency (file);
+#ifdef obj_app_file
+  obj_app_file (file);
+#endif
+}
+
+void
 s_app_file (appfile)
      int appfile;
 {
@@ -1596,16 +1610,7 @@ s_app_file (appfile)
 
       demand_empty_rest_of_line ();
       if (!may_omit)
-	{
-#ifdef LISTING
-	  if (listing)
-	    listing_source_file (s);
-#endif
-	  register_dependency (s);
-#ifdef obj_app_file
-	  obj_app_file (s);
-#endif
-	}
+	s_app_file_string (s);
     }
 }
 
Index: read.h
===================================================================
RCS file: /cvs/src/src/gas/read.h,v
retrieving revision 1.14
diff -u -p -r1.14 read.h
--- read.h	12 Oct 2001 08:56:17 -0000	1.14
+++ read.h	11 Jun 2002 21:13:21 -0000
@@ -137,6 +137,7 @@ extern void generate_lineno_debug PARAMS
 extern void s_abort PARAMS ((int)) ATTRIBUTE_NORETURN;
 extern void s_align_bytes PARAMS ((int arg));
 extern void s_align_ptwo PARAMS ((int));
+extern void s_app_file_string PARAMS ((char *));
 extern void s_app_file PARAMS ((int));
 extern void s_app_line PARAMS ((int));
 extern void s_bad_endr PARAMS ((int));
Index: config/obj-elf.h
===================================================================
RCS file: /cvs/src/src/gas/config/obj-elf.h,v
retrieving revision 1.16
diff -u -p -r1.16 obj-elf.h
--- config/obj-elf.h	8 Jun 2002 16:04:35 -0000	1.16
+++ config/obj-elf.h	11 Jun 2002 21:13:22 -0000
@@ -48,11 +48,8 @@ extern int alpha_flag_mdebug;
 
 /* For now, always set ECOFF_DEBUGGING for a MIPS target.  */
 #ifdef TC_MIPS
-#ifdef MIPS_STABS_ELF
-#define ECOFF_DEBUGGING 0
-#else
-#define ECOFF_DEBUGGING (debug_type == DEBUG_ECOFF)
-#endif /* MIPS_STABS_ELF */
+#define ECOFF_DEBUGGING mips_flag_mdebug
+extern int mips_flag_mdebug;
 #endif /* TC_MIPS */
 
 #ifdef OBJ_MAYBE_ECOFF
Index: config/tc-mips.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-mips.c,v
retrieving revision 1.142
diff -u -p -r1.142 tc-mips.c
--- config/tc-mips.c	8 Jun 2002 07:37:15 -0000	1.142
+++ config/tc-mips.c	11 Jun 2002 21:13:55 -0000
@@ -77,6 +77,8 @@ static int mips_output_flavor () { retur
 #define ECOFF_DEBUGGING 0
 #endif
 
+int mips_flag_mdebug = -1;
+
 #include "ecoff.h"
 
 #if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
@@ -885,9 +887,7 @@ static const pseudo_typeS mips_pseudo_ta
   {"text", s_change_sec, 't'},
   {"word", s_cons, 2},
 
-#ifdef MIPS_STABS_ELF
   { "extern", ecoff_directive_extern, 0},
-#endif
 
   { NULL, NULL, 0 },
 };
@@ -967,11 +967,10 @@ static boolean imm_unmatched_hi;
 
 static boolean mips16_small, mips16_ext;
 
-#ifdef MIPS_STABS_ELF
-/* The pdr segment for per procedure frame/regmask info */
+/* The pdr segment for per procedure frame/regmask info.  Not used for
+   ECOFF debugging.  */
 
 static segT pdr_seg;
-#endif
 
 static const char *
 mips_isa_to_str (isa)
@@ -1224,12 +1223,15 @@ md_begin ()
 					  SEC_HAS_CONTENTS | SEC_READONLY);
 	    (void) bfd_set_section_alignment (stdoutput, sec, 2);
 	  }
-
-#ifdef MIPS_STABS_ELF
-	pdr_seg = subseg_new (".pdr", (subsegT) 0);
-	(void) bfd_set_section_flags (stdoutput, pdr_seg,
-			     SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
-	(void) bfd_set_section_alignment (stdoutput, pdr_seg, 2);
+#ifdef OBJ_ELF
+	else if (OUTPUT_FLAVOR == bfd_target_elf_flavour)
+	  {
+	    pdr_seg = subseg_new (".pdr", (subsegT) 0);
+	    (void) bfd_set_section_flags (stdoutput, pdr_seg,
+					  SEC_READONLY | SEC_RELOC
+					  | SEC_DEBUGGING);
+	    (void) bfd_set_section_alignment (stdoutput, pdr_seg, 2);
+	  }
 #endif
 
 	subseg_set (seg, subseg);
@@ -9929,6 +9931,10 @@ struct option md_longopts[] =
   {"n32",         no_argument, NULL, OPTION_N32},
 #define OPTION_64          (OPTION_ELF_BASE + 6)
   {"64",          no_argument, NULL, OPTION_64},
+#define OPTION_MDEBUG      (OPTION_ELF_BASE + 7)
+  {"mdebug", no_argument, NULL, OPTION_MDEBUG},
+#define OPTION_NO_MDEBUG   (OPTION_ELF_BASE + 8)
+  {"no-mdebug", no_argument, NULL, OPTION_NO_MDEBUG},
 #endif /* OBJ_ELF */
   {NULL, no_argument, NULL, 0}
 };
@@ -10295,6 +10301,16 @@ md_parse_option (c, arg)
       mips_7000_hilo_fix = false;
       break;
 
+#ifdef OBJ_ELF
+    case OPTION_MDEBUG:
+      mips_flag_mdebug = true;
+      break;
+
+    case OPTION_NO_MDEBUG:
+      mips_flag_mdebug = false;
+      break;
+#endif /* OBJ_ELF */
+
     default:
       return 0;
     }
@@ -10650,6 +10666,16 @@ mips_after_parse_args ()
 
   if (HAVE_NEWABI)
     mips_big_got = 1;
+
+  if (mips_flag_mdebug < 0)
+    {
+#ifdef OBJ_MAYBE_ECOFF
+      if (OUTPUT_FLAVOR == bfd_target_ecoff_flavour)
+	mips_flag_mdebug = 1;
+      else
+#endif /* OBJ_MAYBE_ECOFF */
+	mips_flag_mdebug = 0;
+    }
 }
 
 void
@@ -13366,13 +13392,30 @@ static void
 s_mips_file (x)
      int x ATTRIBUTE_UNUSED;
 {
+  static int first_file_directive = 1;
+
   if (ECOFF_DEBUGGING)
     {
       get_number ();
       s_app_file (0);
     }
   else
-    dwarf2_directive_file (0);
+    {
+      char *filename;
+
+      filename = dwarf2_directive_file (0);
+
+      /* Versions of GCC up to 3.1 start files with a ".file"
+	 directive even for stabs output.  Make sure that this
+	 ".file" is handled.  Note that you need a version of GCC
+         after 3.1 in order to support DWARF-2 on MIPS.  */
+      if (filename != NULL && first_file_directive)
+	{
+	  (void) new_logical_line (filename, -1);
+	  s_app_file_string (filename);
+	}
+      first_file_directive = 0;
+    }
 }
 
 /* The .loc directive, implying DWARF-2.  */
@@ -13433,46 +13476,52 @@ s_mips_end (x)
       assert (S_GET_NAME (p));
       if (strcmp (S_GET_NAME (p), S_GET_NAME (cur_proc_ptr->isym)))
 	as_warn (_(".end symbol does not match .ent symbol."));
+
+      if (debug_type == DEBUG_STABS)
+	stabs_generate_asm_endfunc (S_GET_NAME (p),
+				    S_GET_NAME (p));
     }
   else
     as_warn (_(".end directive missing or unknown symbol"));
 
-#ifdef MIPS_STABS_ELF
-  {
-    segT saved_seg = now_seg;
-    subsegT saved_subseg = now_subseg;
-    valueT dot;
-    expressionS exp;
-    char *fragp;
+#ifdef OBJ_ELF
+  /* Generate a .pdr section.  */
+  if (OUTPUT_FLAVOR == bfd_target_elf_flavour && ! ECOFF_DEBUGGING)
+    {
+      segT saved_seg = now_seg;
+      subsegT saved_subseg = now_subseg;
+      valueT dot;
+      expressionS exp;
+      char *fragp;
 
-    dot = frag_now_fix ();
+      dot = frag_now_fix ();
 
 #ifdef md_flush_pending_output
-    md_flush_pending_output ();
+      md_flush_pending_output ();
 #endif
 
-    assert (pdr_seg);
-    subseg_set (pdr_seg, 0);
+      assert (pdr_seg);
+      subseg_set (pdr_seg, 0);
+
+      /* Write the symbol.  */
+      exp.X_op = O_symbol;
+      exp.X_add_symbol = p;
+      exp.X_add_number = 0;
+      emit_expr (&exp, 4);
+
+      fragp = frag_more (7 * 4);
 
-    /* Write the symbol.  */
-    exp.X_op = O_symbol;
-    exp.X_add_symbol = p;
-    exp.X_add_number = 0;
-    emit_expr (&exp, 4);
-
-    fragp = frag_more (7 * 4);
-
-    md_number_to_chars (fragp,      (valueT) cur_proc_ptr->reg_mask, 4);
-    md_number_to_chars (fragp +  4, (valueT) cur_proc_ptr->reg_offset, 4);
-    md_number_to_chars (fragp +  8, (valueT) cur_proc_ptr->fpreg_mask, 4);
-    md_number_to_chars (fragp + 12, (valueT) cur_proc_ptr->fpreg_offset, 4);
-    md_number_to_chars (fragp + 16, (valueT) cur_proc_ptr->frame_offset, 4);
-    md_number_to_chars (fragp + 20, (valueT) cur_proc_ptr->frame_reg, 4);
-    md_number_to_chars (fragp + 24, (valueT) cur_proc_ptr->pc_reg, 4);
-
-    subseg_set (saved_seg, saved_subseg);
-  }
-#endif /* MIPS_STABS_ELF */
+      md_number_to_chars (fragp,      (valueT) cur_proc_ptr->reg_mask, 4);
+      md_number_to_chars (fragp +  4, (valueT) cur_proc_ptr->reg_offset, 4);
+      md_number_to_chars (fragp +  8, (valueT) cur_proc_ptr->fpreg_mask, 4);
+      md_number_to_chars (fragp + 12, (valueT) cur_proc_ptr->fpreg_offset, 4);
+      md_number_to_chars (fragp + 16, (valueT) cur_proc_ptr->frame_offset, 4);
+      md_number_to_chars (fragp + 20, (valueT) cur_proc_ptr->frame_reg, 4);
+      md_number_to_chars (fragp + 24, (valueT) cur_proc_ptr->pc_reg, 4);
+
+      subseg_set (saved_seg, saved_subseg);
+    }
+#endif /* OBJ_ELF */
 
   cur_proc_ptr = NULL;
 }
@@ -13526,6 +13575,10 @@ s_mips_ent (aent)
       symbol_get_bfdsym (symbolP)->flags |= BSF_FUNCTION;
 
       ++numprocs;
+
+      if (debug_type == DEBUG_STABS)
+        stabs_generate_asm_func (S_GET_NAME (symbolP),
+				 S_GET_NAME (symbolP));
     }
 
   demand_empty_rest_of_line ();
@@ -13541,36 +13594,38 @@ static void
 s_mips_frame (ignore)
      int ignore ATTRIBUTE_UNUSED;
 {
-#ifdef MIPS_STABS_ELF
+#ifdef OBJ_ELF
+  if (OUTPUT_FLAVOR == bfd_target_elf_flavour && ! ECOFF_DEBUGGING)
+    {
+      long val;
 
-  long val;
+      if (cur_proc_ptr == (procS *) NULL)
+	{
+	  as_warn (_(".frame outside of .ent"));
+	  demand_empty_rest_of_line ();
+	  return;
+	}
 
-  if (cur_proc_ptr == (procS *) NULL)
-    {
-      as_warn (_(".frame outside of .ent"));
-      demand_empty_rest_of_line ();
-      return;
-    }
+      cur_proc_ptr->frame_reg = tc_get_register (1);
+
+      SKIP_WHITESPACE ();
+      if (*input_line_pointer++ != ','
+	  || get_absolute_expression_and_terminator (&val) != ',')
+	{
+	  as_warn (_("Bad .frame directive"));
+	  --input_line_pointer;
+	  demand_empty_rest_of_line ();
+	  return;
+	}
 
-  cur_proc_ptr->frame_reg = tc_get_register (1);
+      cur_proc_ptr->frame_offset = val;
+      cur_proc_ptr->pc_reg = tc_get_register (0);
 
-  SKIP_WHITESPACE ();
-  if (*input_line_pointer++ != ','
-      || get_absolute_expression_and_terminator (&val) != ',')
-    {
-      as_warn (_("Bad .frame directive"));
-      --input_line_pointer;
       demand_empty_rest_of_line ();
-      return;
     }
-
-  cur_proc_ptr->frame_offset = val;
-  cur_proc_ptr->pc_reg = tc_get_register (0);
-
-  demand_empty_rest_of_line ();
-#else
-  s_ignore (ignore);
-#endif /* MIPS_STABS_ELF */
+  else
+#endif /* OBJ_ELF */
+    s_ignore (ignore);
 }
 
 /* The .fmask and .mask directives. If the mdebug section is present
@@ -13583,41 +13638,44 @@ static void
 s_mips_mask (reg_type)
      char reg_type;
 {
-#ifdef MIPS_STABS_ELF
-  long mask, off;
-
-  if (cur_proc_ptr == (procS *) NULL)
+#ifdef OBJ_ELF
+  if (OUTPUT_FLAVOR == bfd_target_elf_flavour && ! ECOFF_DEBUGGING)
     {
-      as_warn (_(".mask/.fmask outside of .ent"));
-      demand_empty_rest_of_line ();
-      return;
-    }
+      long mask, off;
 
-  if (get_absolute_expression_and_terminator (&mask) != ',')
-    {
-      as_warn (_("Bad .mask/.fmask directive"));
-      --input_line_pointer;
-      demand_empty_rest_of_line ();
-      return;
-    }
+      if (cur_proc_ptr == (procS *) NULL)
+	{
+	  as_warn (_(".mask/.fmask outside of .ent"));
+	  demand_empty_rest_of_line ();
+	  return;
+	}
 
-  off = get_absolute_expression ();
+      if (get_absolute_expression_and_terminator (&mask) != ',')
+	{
+	  as_warn (_("Bad .mask/.fmask directive"));
+	  --input_line_pointer;
+	  demand_empty_rest_of_line ();
+	  return;
+	}
 
-  if (reg_type == 'F')
-    {
-      cur_proc_ptr->fpreg_mask = mask;
-      cur_proc_ptr->fpreg_offset = off;
+      off = get_absolute_expression ();
+
+      if (reg_type == 'F')
+	{
+	  cur_proc_ptr->fpreg_mask = mask;
+	  cur_proc_ptr->fpreg_offset = off;
+	}
+      else
+	{
+	  cur_proc_ptr->reg_mask = mask;
+	  cur_proc_ptr->reg_offset = off;
+	}
+
+      demand_empty_rest_of_line ();
     }
   else
-    {
-      cur_proc_ptr->reg_mask = mask;
-      cur_proc_ptr->reg_offset = off;
-    }
-
-  demand_empty_rest_of_line ();
-#else
-  s_ignore (reg_type);
-#endif /* MIPS_STABS_ELF */
+#endif /* OBJ_ELF */
+    s_ignore (reg_type);
 }
 
 /* The .loc directive.  */
Index: doc/as.texinfo
===================================================================
RCS file: /cvs/src/src/gas/doc/as.texinfo,v
retrieving revision 1.65
diff -u -p -r1.65 as.texinfo
--- doc/as.texinfo	7 Jun 2002 23:07:19 -0000	1.65
+++ doc/as.texinfo	11 Jun 2002 21:14:21 -0000
@@ -382,6 +382,7 @@ gcc(1), ld(1), and the Info entries for 
    [@b{-mips16}] [@b{-no-mips16}]
    [@b{-mips3d}] [@b{-no-mips3d}]
    [@b{-mdmx}] [@b{-no-mdmx}]
+   [@b{-mdebug}] [@b{-no-mdebug}]
 @end ifset
 @ifset MMIX
 
@@ -891,6 +892,11 @@ Schedule and tune for a particular @sc{m
 @itemx -mno-fix7000
 Cause nops to be inserted if the read of the destination register
 of an mfhi or mflo instruction occurs in the following two instructions.
+
+@item -mdebug
+@itemx -no-mdebug
+Cause stabs-style debugging output to go into an ECOFF-style .mdebug
+section instead of the standard ELF .stabs sections.
 
 @item -mgp32
 @itemx -mfp32
Index: testsuite/gas/mips/lineno.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/mips/lineno.d,v
retrieving revision 1.3
diff -u -p -r1.3 lineno.d
--- testsuite/gas/mips/lineno.d	29 Jun 2001 21:27:43 -0000	1.3
+++ testsuite/gas/mips/lineno.d	11 Jun 2002 21:14:25 -0000
@@ -1,6 +1,6 @@
 #objdump: -d -l -mmips:4000
 #name: assembly line numbers
-#as: -g -march=r4000
+#as: --gstabs -march=r4000
 
 
 .*: +file format .*mips.*
Index: testsuite/gas/mips/mips.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/mips/mips.exp,v
retrieving revision 1.36
diff -u -p -r1.36 mips.exp
--- testsuite/gas/mips/mips.exp	31 May 2002 18:27:02 -0000	1.36
+++ testsuite/gas/mips/mips.exp	11 Jun 2002 21:14:25 -0000
@@ -145,8 +145,6 @@ if { [istarget mips*-*-*] } then {
     run_dump_test "mips4650"
     run_dump_test "mips4100"
     run_dump_test "perfcount"
-    # Linux uses ELF stabs, which doesn't support line number.
-    setup_xfail "mips*-*-*linux*"
     run_dump_test "lineno"
     run_dump_test "sync"
     run_dump_test "mips32"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]