浏览代码

Merged revisions 11257,11259 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r11257 | giulio | 2008-06-21 16:06:12 +0200 (sab, 21 giu 2008) | 4 lines

.rodata* sections must end up in .data section on go32v2, since the go32v2 stub
only handles .text, .data and .bss sections.
Solves bug #11509.
........
r11259 | giulio | 2008-06-21 16:32:37 +0200 (sab, 21 giu 2008) | 2 lines

Added comment for 11257
........

git-svn-id: branches/fixes_2_2@11264 -

giulio 17 年之前
父节点
当前提交
d925449024
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      compiler/aggas.pas

+ 7 - 0
compiler/aggas.pas

@@ -312,6 +312,13 @@ implementation
           (target_info.system=system_i386_win32) then
           (target_info.system=system_i386_win32) then
           secname:='.tls';
           secname:='.tls';
 
 
+        { go32v2 stub only loads .text and .data sections, and allocates space for .bss.
+          Thus, data which normally goes into .rodata and .rodata_norel sections must 
+          end up in .data section }
+        if (atype in [sec_rodata,sec_rodata_norel]) and
+          (target_info.system=system_i386_go32v2) then
+          secname:='.data';
+
         { For bss we need to set some flags that are target dependent,
         { For bss we need to set some flags that are target dependent,
           it is easier to disable it for smartlinking. It doesn't take up
           it is easier to disable it for smartlinking. It doesn't take up
           filespace }
           filespace }