Browse Source

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/rc_2_2_2@11271 -

giulio 17 years ago
parent
commit
b8ea1cca03
1 changed files with 7 additions and 0 deletions
  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 }