summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgiulio <giulio@3ad0048d-3df7-0310-abae-a5850022a9f2>2008-06-24 07:46:27 +0000
committergiulio <giulio@3ad0048d-3df7-0310-abae-a5850022a9f2>2008-06-24 07:46:27 +0000
commit1620514d354c27b4ffecc17f80c7090aa8b25809 (patch)
tree430e7c91a450134ba1ef8617b54fcf795e1be596
parent92892c25ebc21a50b9d554d306ad5cc427376966 (diff)
downloadfpc-1620514d354c27b4ffecc17f80c7090aa8b25809.tar.gz
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: http://svn.freepascal.org/svn/fpc/branches/rc_2_2_2@11271 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--compiler/aggas.pas7
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/aggas.pas b/compiler/aggas.pas
index 2a19709a99..efacba7100 100644
--- a/compiler/aggas.pas
+++ b/compiler/aggas.pas
@@ -312,6 +312,13 @@ implementation
(target_info.system=system_i386_win32) then
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,
it is easier to disable it for smartlinking. It doesn't take up
filespace }