* Makefile.in: Warn when end of cygheap is not on 64k boundary.

* cygwin.sc: Try harder to ensure that cygheap is on a 64k boundary.  Move
cygheap to end of image to stop interference from unstripped debug regions.
This commit is contained in:
Christopher Faylor
2005-08-07 02:38:13 +00:00
parent 244f5a27a6
commit 82eaabf521
4 changed files with 40 additions and 24 deletions

View File

@@ -70,30 +70,6 @@ SECTIONS
{
*(.cygwin_dll_common)
}
.idata ALIGN(__section_alignment__) :
{
/* This cannot currently be handled with grouped sections.
See pe.em:sort_sections. */
SORT(*)(.idata$2)
SORT(*)(.idata$3)
/* These zeroes mark the end of the import list. */
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
SORT(*)(.idata$4)
SORT(*)(.idata$5)
SORT(*)(.idata$6)
SORT(*)(.idata$7)
. = ALIGN(16);
__cygheap_start = ABSOLUTE(.);
}
.cygheap ALIGN(__section_alignment__):
{
__cygheap_mid = .;
*(.cygheap)
. = ALIGN(512 * 1024, 0x10000);
. += 8192; /* inexplicably needed for alignment on 64K boundary?!? */
}
__cygheap_end = ABSOLUTE(.);
__cygheap_end1 = __cygheap_mid + SIZEOF(.cygheap);
/DISCARD/ :
{
*(.debug$S)
@@ -122,4 +98,28 @@ SECTIONS
.debug_macinfo ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) }
.debug_macinfo ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) }
.debug_ranges ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_ranges) }
.idata ALIGN(__section_alignment__) :
{
/* This cannot currently be handled with grouped sections.
See pe.em:sort_sections. */
SORT(*)(.idata$2)
SORT(*)(.idata$3)
/* These zeroes mark the end of the import list. */
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
SORT(*)(.idata$4)
SORT(*)(.idata$5)
SORT(*)(.idata$6)
SORT(*)(.idata$7)
. = ALIGN(16);
__cygheap_start = ABSOLUTE(.);
. = ALIGN(0x10000);
}
.cygheap ALIGN(__section_alignment__) :
{
__cygheap_mid = .;
*(.cygheap)
. = ALIGN(512 * 1024, 0x10000);
}
__cygheap_end = ABSOLUTE(.);
__cygheap_end1 = __cygheap_mid + SIZEOF(.cygheap);
}