If we don't specify -g, actually suppress debugging output
authorH. Peter Anvin <hpa@zytor.com>
Wed, 10 Sep 2003 23:34:23 +0000 (23:34 +0000)
committerH. Peter Anvin <hpa@zytor.com>
Wed, 10 Sep 2003 23:34:23 +0000 (23:34 +0000)
nasm.c
output/outelf.c

diff --git a/nasm.c b/nasm.c
index e8bc680..e6be925 100644 (file)
--- a/nasm.c
+++ b/nasm.c
@@ -173,6 +173,10 @@ int main(int argc, char **argv)
        return 1;
     }
 
+    /* If debugging info is disabled, suppress any debug calls */
+    if (!using_debug_info)
+        ofmt->current_dfmt = &null_debug_form;
+
     if (ofmt->stdmac)
        pp_extra_stdmac (ofmt->stdmac);
     parser_global_info (ofmt, &location);
index 349b15f..16c25d1 100644 (file)
@@ -185,6 +185,7 @@ static int symtabsection;
 static unsigned char *stabbuf=0,*stabstrbuf=0,*stabrelbuf=0;
 static int stablen,stabstrlen,stabrellen;
 
+static struct dfmt df_stabs;
 
 void stabs_init(struct ofmt *,void *,FILE *,efunc );
 void stabs_linenum(const char *filename,long linenumber,long);
@@ -917,7 +918,7 @@ static void elf_write(void)
      * sections `.comment', `.shstrtab', `.symtab' and `.strtab',
      * then optionally relocation sections for the user sections.
      */
-    if (of_elf.current_dfmt)
+    if (of_elf.current_dfmt == &df_stabs)
       nsections=8;
     else
       nsections = 5;                  /* SHN_UNDEF and the fixed ones */
@@ -934,7 +935,7 @@ static void elf_write(void)
        }
     }
 
-    if (of_elf.current_dfmt) {
+    if (of_elf.current_dfmt == &df_stabs) {
       /* in case the debug information is wanted, just add these three sections... */
       add_sectname("",".stab");
       add_sectname("",".stabstr");
@@ -1019,7 +1020,7 @@ static void elf_write(void)
        elf_section_header (p - shstrtab, 9, 0, sects[i]->rel, TRUE,
                            sects[i]->rellen, nsects+3, i+1, 4, 8);
     }
-    if (of_elf.current_dfmt) {
+    if (of_elf.current_dfmt == &df_stabs) {
       /* for debugging information, create the last three sections
         which are the .stab , .stabstr and .rel.stab sections respectively */