Browse Source

* enabled generation of dwarf frames for non x64 targets when dwarf debug info is requested
* renamed al_dwarf enum to al_dwarf_frame since this enum only enables frame generation
* renamed create_dwarf procedure for the same reason
* skipped check for dwarf support in assember, since we generate all dwarf info ourselves

git-svn-id: trunk@12906 -

Marc Weustink 16 years ago
parent
commit
0efd37a4c9
2 changed files with 14 additions and 12 deletions
  1. 2 2
      compiler/aasmdata.pas
  2. 12 10
      compiler/pmodules.pas

+ 2 - 2
compiler/aasmdata.pas

@@ -57,7 +57,7 @@ interface
         al_exports,
         al_resources,
         al_rtti,
-        al_dwarf,
+        al_dwarf_frame,
         al_dwarf_info,
         al_dwarf_abbrev,
         al_dwarf_line,
@@ -96,7 +96,7 @@ interface
         'al_exports',
         'al_resources',
         'al_rtti',
-        'al_dwarf',
+        'al_dwarf_frame',
         'al_dwarf_info',
         'al_dwarf_abbrev',
         'al_dwarf_line',

+ 12 - 10
compiler/pmodules.pas

@@ -133,18 +133,20 @@ implementation
       end;
 
 
-    procedure create_dwarf;
+    procedure create_dwarf_frame;
       begin
         { Dwarf conflicts with smartlinking in separate .a files }
         if create_smartlink_library then
           exit;
         { Call frame information }
-        if (tf_needs_dwarf_cfi in target_info.flags) and
-           (af_supports_dwarf in target_asm.flags) then
+        { MWE: we write our own info, so dwarf asm support is not really needed }
+        { if (af_supports_dwarf in target_asm.flags) and }
+        if (tf_needs_dwarf_cfi in target_info.flags) or
+           (paratargetdbg in [dbg_dwarf2, dbg_dwarf3]) then
           begin
-            current_asmdata.asmlists[al_dwarf].Free;
-            current_asmdata.asmlists[al_dwarf] := TAsmList.create;
-            current_asmdata.asmcfi.generate_code(current_asmdata.asmlists[al_dwarf]);
+            current_asmdata.asmlists[al_dwarf_frame].Free;
+            current_asmdata.asmlists[al_dwarf_frame] := TAsmList.create;
+            current_asmdata.asmcfi.generate_code(current_asmdata.asmlists[al_dwarf_frame]);
           end;
       end;
 
@@ -1246,8 +1248,8 @@ implementation
 
          if ag then
           begin
-            { create dwarf debuginfo }
-            create_dwarf;
+            { create callframe info }
+            create_dwarf_frame;
             { assemble }
             create_objectfile;
           end;
@@ -2200,8 +2202,8 @@ implementation
          { Insert symbol to resource info }
          InsertResourceInfo(resources_used);
 
-         { create dwarf debuginfo }
-         create_dwarf;
+         { create callframe info }
+         create_dwarf_frame;
 
          { insert own objectfile }
          insertobjectfile;