[rt.cpan.org #80217] Build failure under Cygwin on Windows

[email protected] ("Daniel Dragan via RT")
Newsgroups perl.libwin32
Message-ID <[email protected]>
Wed Oct 17 16:16:19 2012: Request 80217 was acted upon.
Transaction: Correspondence added by BULKDD
       Queue: Win32-API
     Subject: Build failure under Cygwin on Windows
   Broken in: 0.72
    Severity: Critical
       Owner: Nobody
  Requestors: [email protected]
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80217 >


The culprit from cygwin.asm
_______________________________________________________
#ifdef L_chkstk

/* Function prologue calls _alloca to probe the stack when allocating more
   than CHECK_STACK_LIMIT bytes in one go.  Touching the stack at 4K
   increments is necessary to ensure that the guard pages used
   by the OS virtual memory manger are allocated in correct sequence.  */

	.global ___chkstk
	.global	__alloca
#ifndef _WIN64
___chkstk:
__alloca:
	pushl	%ecx		/* save temp */
	leal	8(%esp), %ecx	/* point past return addr */
	cmpl	$0x1000, %eax	/* > 4k ?*/
	jb	Ldone

Lprobe:
	subl	$0x1000, %ecx  		/* yes, move pointer down 4k*/
	orl	$0x0, (%ecx)   		/* probe there */
	subl	$0x1000, %eax  	 	/* decrement count */
	cmpl	$0x1000, %eax
	ja	Lprobe         	 	/* and do it again */

Ldone:
	subl	%eax, %ecx	   
	orl	$0x0, (%ecx)	/* less than 4k, just peek here */

	movl	%esp, %eax	/* save old stack pointer */
	movl	%ecx, %esp	/* decrement stack */
	movl	(%eax), %ecx	/* recover saved temp */
	movl	4(%eax), %eax	/* recover return address */

	/* Push the return value back.  Doing this instead of just
	   jumping to %eax preserves the cached call-return stack
	   used by most modern processors.  */
	pushl	%eax
	ret
#else
___________CUT______________________
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.