浏览代码

* support dwarf2 sections

git-svn-id: trunk@7171 -
peter 18 年之前
父节点
当前提交
04f5026a0d
共有 1 个文件被更改,包括 13 次插入15 次删除
  1. 13 15
      compiler/systems/t_win.pas

+ 13 - 15
compiler/systems/t_win.pas

@@ -906,6 +906,8 @@ implementation
       var
       var
         s,s2,
         s,s2,
         ibase : TCmdStr;
         ibase : TCmdStr;
+        secname,
+        secnames : string;
       begin
       begin
         with LinkScript do
         with LinkScript do
           begin
           begin
@@ -1007,21 +1009,17 @@ implementation
             Concat('  OBJSECTION .idata$6*');
             Concat('  OBJSECTION .idata$6*');
             Concat('  OBJSECTION .idata$7*');
             Concat('  OBJSECTION .idata$7*');
             Concat('ENDEXESECTION');
             Concat('ENDEXESECTION');
-            Concat('EXESECTION .edata');
-            Concat('  OBJSECTION .edata*');
-            Concat('ENDEXESECTION');
-            Concat('EXESECTION .rsrc');
-            Concat('  OBJSECTION .rsrc*');
-            Concat('ENDEXESECTION');
-            Concat('EXESECTION .reloc');
-            Concat('  OBJSECTION .reloc');
-            Concat('ENDEXESECTION');
-            Concat('EXESECTION .stab');
-            Concat('  OBJSECTION .stab');
-            Concat('ENDEXESECTION');
-            Concat('EXESECTION .stabstr');
-            Concat('  OBJSECTION .stabstr');
-            Concat('ENDEXESECTION');
+            secnames:='.edata,.rsrc,.reloc,.stab,.stabstr,'+
+                      '.debug_aranges,.debug_pubnames,.debug_info,.debug_abbrev,.debug_line,.debug_frame,.debug_str,.debug_loc,'+
+                      '.debug_macinfo,.debug_weaknames,.debug_funcnames,.debug_typenames,.debug_varnames,.debug_ranges';
+            repeat
+              secname:=gettoken(secnames,',');
+              if secname='' then
+                break;
+              Concat('EXESECTION '+secname);
+              Concat('  OBJSECTION '+secname+'*');
+              Concat('ENDEXESECTION');
+            until false;
             Concat('STABS');
             Concat('STABS');
             Concat('SYMBOLS');
             Concat('SYMBOLS');
           end;
           end;