aboutsummaryrefslogtreecommitdiff
path: root/ld/scripttempl/pe.sc
diff options
context:
space:
mode:
Diffstat (limited to 'ld/scripttempl/pe.sc')
-rw-r--r--ld/scripttempl/pe.sc75
1 files changed, 49 insertions, 26 deletions
diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc
index cc9e78e..626885f 100644
--- a/ld/scripttempl/pe.sc
+++ b/ld/scripttempl/pe.sc
@@ -12,33 +12,54 @@ ENTRY(_mainCRTStartup)
SECTIONS
{
- .text ${RELOCATING+ 0x401000} :
+ .text ${RELOCATING+ __image_base__ + __section_alignment__ } :
{
${RELOCATING+ *(.init);}
*(.text)
- ${CONSTRUCTING+ ___CTOR_LIST__ = .; LONG (-1); *(.ctor); LONG (0); }
- ${CONSTRUCTING+ ___DTOR_LIST__ = .; LONG (-1); *(.dtor); LONG (0); }
+ ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
+ LONG (-1); *(.ctors); *(.ctor); LONG (0); }
+ ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
+ LONG (-1); *(.dtors); *(.dtor); LONG (0); }
${RELOCATING+ *(.fini);}
${RELOCATING+ etext = .};
}
- .bss BLOCK(0x1000) :
+ .bss BLOCK(__section_alignment__) :
{
- *(.bss)
+ __bss_start__ = . ;
+ *(.bss) ;
*(COMMON);
+ __bss_end__ = . ;
+ }
+ .data BLOCK(__section_alignment__) :
+ {
+ __data_start__ = . ;
+ *(.data);
+ *(.data2);
+ __data_end__ = . ;
}
- .rdata BLOCK(0x1000) :
+ .rdata BLOCK(__section_alignment__) :
{
*(.rdata)
;
}
- .data BLOCK(0x1000) : {
- *(.data)
- *(.data2)
+
+
+
+ .edata BLOCK(__section_alignment__) : {
+ *(.edata) ;
+ }
+
+ .junk BLOCK(__section_alignment__) : {
+ *(.debug\$S)
+ *(.debug\$T)
+ *(.debug\$F)
+ *(.drectve)
;
}
- .idata BLOCK(0x1000) :
+
+ .idata BLOCK(__section_alignment__) :
{
*(.idata\$2)
*(.idata\$3)
@@ -48,7 +69,7 @@ SECTIONS
*(.idata\$7)
;
}
- .CRT BLOCK(0x1000) :
+ .CRT BLOCK(__section_alignment__) :
{
*(.CRT\$XCA)
*(.CRT\$XCC)
@@ -65,33 +86,35 @@ SECTIONS
*(.CRT\$XTZ)
;
}
- .rsrc BLOCK(0x1000) :
+ .rsrc BLOCK(__section_alignment__) :
{
*(.rsrc\$01)
*(.rsrc\$02)
;
}
- .reloc BLOCK(0x1000) :
- {
- *(.reloc)
- ;
- }
- .junk BLOCK(0x1000) :
- {
- *(.debug\$S)
- *(.debug\$T)
- *(.debug\$F)
- *(.drectve)
- ;
+
+ .endjunk BLOCK(__section_alignment__) :
+ {
+ ${RELOCATING+ end = .};
}
- .stab 0 ${RELOCATING+(NOLOAD)} :
+
+ .stab BLOCK(__section_alignment__) ${RELOCATING+(NOLOAD)} :
{
[ .stab ]
}
- .stabstr 0 ${RELOCATING+(NOLOAD)} :
+ .stabstr BLOCK(__section_alignment__) ${RELOCATING+(NOLOAD)} :
{
[ .stabstr ]
}
+
+
+ .reloc BLOCK(__section_alignment__) :
+ {
+ *(.reloc)
+ ;
+ }
+
+
}
EOF