* 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:
parent
244f5a27a6
commit
82eaabf521
|
@ -1,3 +1,10 @@
|
||||||
|
2005-08-06 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2005-08-06 Christopher Faylor <cgf@timesys.com>
|
2005-08-06 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
* include/endian.h: Move everything into this file and define things
|
* include/endian.h: Move everything into this file and define things
|
||||||
|
|
|
@ -372,6 +372,12 @@ $(TEST_DLL_NAME): $(LDSCRIPT) $(DLL_OFILES) $(DLL_IMPORTS) $(LIBSERVER) $(LIBC)
|
||||||
-e $(DLL_ENTRY) $(DEF_FILE) $(DLL_OFILES) version.o winver.o \
|
-e $(DLL_ENTRY) $(DEF_FILE) $(DLL_OFILES) version.o winver.o \
|
||||||
$(MALLOC_OBJ) $(LIBSERVER) $(LIBM) $(LIBC) \
|
$(MALLOC_OBJ) $(LIBSERVER) $(LIBM) $(LIBC) \
|
||||||
-lgcc $(DLL_IMPORTS)
|
-lgcc $(DLL_IMPORTS)
|
||||||
|
@$(NM) $@ | perl -Minteger -n -e '/^(61[0-9a-f]+) A __cygheap_end/ and do {$$cygheap_end = $$1; exit;};\
|
||||||
|
END { \
|
||||||
|
die "ERROR: _cygheap_end not found in $@\n" unless defined($$cygheap_end); \
|
||||||
|
die "ERROR: _cygheap_end is not on a 64k boundary (0x$$cygheap_end)!\n" if (hex($$cygheap_end) & 0xffff);\
|
||||||
|
exit 0; \
|
||||||
|
}'
|
||||||
@ln -f $@ new-$(DLL_NAME)
|
@ln -f $@ new-$(DLL_NAME)
|
||||||
|
|
||||||
# Rule to build libcygwin.a
|
# Rule to build libcygwin.a
|
||||||
|
|
|
@ -70,30 +70,6 @@ SECTIONS
|
||||||
{
|
{
|
||||||
*(.cygwin_dll_common)
|
*(.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/ :
|
/DISCARD/ :
|
||||||
{
|
{
|
||||||
*(.debug$S)
|
*(.debug$S)
|
||||||
|
@ -122,4 +98,28 @@ SECTIONS
|
||||||
.debug_macinfo ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) }
|
.debug_macinfo ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) }
|
||||||
.debug_macinfo ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) }
|
.debug_macinfo ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) }
|
||||||
.debug_ranges ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_ranges) }
|
.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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -725,6 +725,9 @@ dll_crt0_1 (char *)
|
||||||
|
|
||||||
check_sanity_and_sync (user_data);
|
check_sanity_and_sync (user_data);
|
||||||
malloc_init ();
|
malloc_init ();
|
||||||
|
int i = 0;
|
||||||
|
while (i)
|
||||||
|
cmalloc (HEAP_STR, 2000000);
|
||||||
|
|
||||||
/* Initialize SIGSEGV handling, etc. */
|
/* Initialize SIGSEGV handling, etc. */
|
||||||
init_exceptions (&cygwin_except_entry);
|
init_exceptions (&cygwin_except_entry);
|
||||||
|
|
Loading…
Reference in New Issue