瀏覽代碼

* combine the data, bss, stack and heap into the same NewExe segment

git-svn-id: trunk@42566 -
nickysn 6 年之前
父節點
當前提交
b739d79f9b
共有 2 個文件被更改,包括 5 次插入21 次删除
  1. 5 15
      compiler/ogomf.pas
  2. 0 6
      compiler/systems/t_win16.pas

+ 5 - 15
compiler/ogomf.pas

@@ -476,19 +476,13 @@ interface
       TNewExeMetaSection = (
       TNewExeMetaSection = (
         nemsNone,
         nemsNone,
         nemsCode,
         nemsCode,
-        nemsData,
-        nemsBss,
-        nemsStack,
-        nemsLocalHeap);
+        nemsData);
 
 
     const
     const
       NewExeMetaSection2String: array [TNewExeMetaSection] of string[9] = (
       NewExeMetaSection2String: array [TNewExeMetaSection] of string[9] = (
         '',
         '',
         'Code',
         'Code',
-        'Data',
-        'Bss',
-        'Stack',
-        'LocalHeap');
+        'Data');
 
 
     type
     type
 
 
@@ -3593,7 +3587,9 @@ cleanup:
 
 
     procedure TNewExeSection.AddObjSection(objsec: TObjSection; ignoreprops: boolean);
     procedure TNewExeSection.AddObjSection(objsec: TObjSection; ignoreprops: boolean);
       begin
       begin
-        inherited;
+        { allow mixing initialized and uninitialized data in the same section
+          => set ignoreprops=true }
+        inherited AddObjSection(objsec,true);
         EarlySize:=align_qword(EarlySize,SecAlign)+objsec.Size;
         EarlySize:=align_qword(EarlySize,SecAlign)+objsec.Size;
       end;
       end;
 
 
@@ -3716,12 +3712,6 @@ cleanup:
             CurrExeMetaSec:=nemsCode;
             CurrExeMetaSec:=nemsCode;
           '.NE_data':
           '.NE_data':
             CurrExeMetaSec:=nemsData;
             CurrExeMetaSec:=nemsData;
-          '.NE_bss':
-            CurrExeMetaSec:=nemsBss;
-          '.NE_stack':
-            CurrExeMetaSec:=nemsStack;
-          '.NE_localheap':
-            CurrExeMetaSec:=nemsLocalHeap;
           else
           else
             internalerror(2019080201);
             internalerror(2019080201);
         end;
         end;

+ 0 - 6
compiler/systems/t_win16.pas

@@ -395,15 +395,9 @@ begin
   LinkScript.Concat('  OBJSECTION *||BEGDATA');
   LinkScript.Concat('  OBJSECTION *||BEGDATA');
   LinkScript.Concat('  OBJSECTION *||DATA');
   LinkScript.Concat('  OBJSECTION *||DATA');
   LinkScript.Concat('  SYMBOL _edata');
   LinkScript.Concat('  SYMBOL _edata');
-  LinkScript.Concat('ENDEXESECTION');
-  LinkScript.Concat('EXESECTION .NE_bss');
   LinkScript.Concat('  OBJSECTION *||BSS');
   LinkScript.Concat('  OBJSECTION *||BSS');
   LinkScript.Concat('  SYMBOL _end');
   LinkScript.Concat('  SYMBOL _end');
-  LinkScript.Concat('ENDEXESECTION');
-  LinkScript.Concat('EXESECTION .NE_stack');
   LinkScript.Concat('  OBJSECTION *||STACK');
   LinkScript.Concat('  OBJSECTION *||STACK');
-  LinkScript.Concat('ENDEXESECTION');
-  LinkScript.Concat('EXESECTION .NE_localheap');
   LinkScript.Concat('  OBJSECTION *||HEAP');
   LinkScript.Concat('  OBJSECTION *||HEAP');
   LinkScript.Concat('ENDEXESECTION');
   LinkScript.Concat('ENDEXESECTION');