delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1997/01/28/05:34:55

Date: Tue, 28 Jan 1997 11:27:32 +0100 (MET)
From: Robert Hoehne <robert DOT hoehne AT mathematik DOT tu-chemnitz DOT de>
To: DJGPP workers <djgpp-workers AT delorie DOT com>
Subject: Patch for go32.h
Message-Id: <Pine.HPP.3.95q.970128111856.2040C-100000@newton.mathematik.tu-chemnitz.de>
Mime-Version: 1.0

Here is now the patch for go32.h from the gcc sources.
As already said in the previous diskussion, this patch
allows to use the stabs debugging information and it
fixes also the the bug with the wrong filename when
compiling a file like 'foo.cpp'.

This patch is designed to leave the "old" coff debugging
information as default (that means when you select -g).

If you want to have stabs debugging as default change
the first "#if 0" to "#if 1" (which is commented).
Independent from you choice, coff or stabs debugging
can be selected with '-gcoff' or '-gstabs'.

And again the warning: Do NOT mix coff and stabs debugging
information, which will produce non-debugging exe's.

BTW: The changes are taken mostly from other header files
in the gcc-distrib.

*** gnu/gcc-2721/config/i386/go32.h~	Fri May 12 13:24:30 1995
--- gnu/gcc-2721/config/i386/go32.h	Mon Jan 27 21:07:12 1997
***************
*** 1,5 ****
--- 1,13 ----
  /* Configuration for an i386 running MS-DOS with djgpp/go32.  */
  
+ #define DBX_DEBUGGING_INFO /* support for stabs debugging info */
+ #define PREFERRED_DEBUGGING_TYPE SDB_DEBUG /* leave sdb as default */
+ #define NO_STAB_H /* DJGPP has no stab.h */
+ #if 0 /* enable this, if '-g' should select stabs debugging
+ #undef PREFERRED_DEBUGGING_TYPE
+ #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
+ #endif
+ 
  /* Don't assume anything about the header files. */
  #define NO_IMPLICIT_EXTERN_C
  
***************
*** 61,64 ****
--- 69,112 ----
      fprintf (FILE, "\n");			\
    } while (0)
  
+ /* Output at beginning of assembler file.  */
+ /* The .file command should always begin the output.  */
+ /* Use the main_input_filename instead of dump_base_name */
+ 
+ #undef ASM_FILE_START
+ #define ASM_FILE_START(FILE)						\
+   do {									\
+ 	output_file_directive (FILE, main_input_filename);		\
+   } while (0)
+ 
+ /* Be function-relative for block and source line stab directives. */
+ 
+ #define DBX_BLOCKS_FUNCTION_RELATIVE 1
+ 
+ /* but, to make this work, functions must appear prior to line info */
+ 
+ #define DBX_FUNCTION_FIRST
+ 
+ /* Generate a blank trailing N_SO to mark the end of the .o file, since
+    we can't depend upon the linker to mark .o file boundaries with
+    embedded stabs.  */
+ 
+ #define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME)			\
+   fprintf (FILE,							\
+ 	   "\t.text\n\t.stabs \"\",%d,0,0,Letext\nLetext:\n", N_SO)
+ 
+ #undef  ASM_OUTPUT_SOURCE_LINE
+ #define ASM_OUTPUT_SOURCE_LINE(file, line)		\
+   if ( write_symbols == DBX_DEBUG )                     \
+   { static int sym_lineno = 1;				\
+     fprintf (file, ".stabn 68,0,%d,.LM%d-",		\
+ 	     line, sym_lineno);				\
+     assemble_name (file,				\
+ 		   XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \
+     fprintf (file, "\n.LM%d:\n", sym_lineno);		\
+     sym_lineno += 1; } \
+   else { \
+     fprintf (file, "\t.ln\t%d\n", \
+   	     ((sdb_begin_function_line > -1) \
+ 	     ? line - sdb_begin_function_line : 1)); }
  


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019