www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2001/08/03/10:32:50

From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
Message-Id: <10108031428.AA17255@clio.rice.edu>
Subject: Re: Make 3.791 on Windows 2000 test
To: eliz AT is DOT elta DOT co DOT il
Date: Fri, 3 Aug 2001 09:28:52 -0500 (CDT)
Cc: acottrel AT ihug DOT com DOT au (Andrew Cottrell), djgpp-workers AT delorie DOT com
In-Reply-To: <2561-Fri03Aug2001122000+0300-eliz@is.elta.co.il> from "Eli Zaretskii" at Aug 03, 2001 12:20:01 PM
X-Mailer: ELM [version 2.5 PL2]
Mime-Version: 1.0
Reply-To: djgpp-workers AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> > Should I still go ahead with this or just try Charles's Windows 2000/sbrk
> > source patch and see what occurs?
> 
> I'd say try Charles's patch, it's easier.

It's also what's going to eventually go into the release, so we might as 
well start testing now.  All that's really needed is the new label 14: and
the "js 14b".

> > The patch only appears to work on the standard DJ203 binaries from Simtel,
> > not the ones I have built using the CVS tarball.

Foo. I feared that might be the case - something in the build environement
changes an offset.  It's a 10 minute fix, but I want to finish the real
sbrk patch first.  The binary patch was actually the easiest way for me
to "test" the algorithm on a wide range of nested images.  I didn't have
time to download GCC source and do a build.

By the way, via private email someone from the newsgroup has been desparate
to work on Win2K and tested both the binary patches for NTVDM and sbrk
and reports a mostly functional system (with workarounds).

> Charles, could you please publish the patch against the CVS version of
> crt0.S?

I originally had planned to finish and send it out yesterday, but my
wife had other plans ...  This weekend I'll finish.  Hopefully...

I put two patches in the zip file - one was the "quick hack" for testing:

*** crt0.203	Wed Aug  1 20:28:48 2001
--- crt0p.S	Wed Aug  1 21:57:18 2001
***************
*** 500,504 ****
  /* Current allocation not large enough, get another block */
  10:	movl	%ecx, %eax					/* Add amt */
! 	pushl	%eax						/* Save orig */
  	addl	$0x0000ffff, %eax				/* round up to 64K block */
  	andl	$0xffff0000, %eax
--- 500,504 ----
  /* Current allocation not large enough, get another block */
  10:	movl	%ecx, %eax					/* Add amt */
! 14:	pushl	%eax						/* Save orig */
  	addl	$0x0000ffff, %eax				/* round up to 64K block */
  	andl	$0xffff0000, %eax
***************
*** 519,522 ****
--- 519,523 ----
  	popl	%ecx						/* Linear address */
  	subl	___djgpp_base_address, %ecx			/* New dpmi size */
+ 	js	14b
  	cmpl	%ecx, __what_size_dpmi_thinks_we_are		/* Back to back ? */
  	je	4f


The one listed below is closer to the final - but it's incomplete since
the new "flag" I defined isn't automatically set anyplace.  So patching
based on below wouldn't change anything yet unless you futzed with crt0
flags.


*** crt0.203	Wed Aug  1 20:28:48 2001
--- crt0.S	Wed Aug  1 21:05:00 2001
***************
*** 500,504 ****
  /* Current allocation not large enough, get another block */
  10:	movl	%ecx, %eax					/* Add amt */
! 	pushl	%eax						/* Save orig */
  	addl	$0x0000ffff, %eax				/* round up to 64K block */
  	andl	$0xffff0000, %eax
--- 500,504 ----
  /* Current allocation not large enough, get another block */
  10:	movl	%ecx, %eax					/* Add amt */
! 14:	pushl	%eax						/* Save orig */
  	addl	$0x0000ffff, %eax				/* round up to 64K block */
  	andl	$0xffff0000, %eax
***************
*** 512,521 ****
  	jc	brk_error
  
- 	pushl	%edx						/* Size */
- 	call	lock_memory
- 
  	pushw	%bx
  	pushw	%cx
  	popl	%ecx						/* Linear address */
  	subl	___djgpp_base_address, %ecx			/* New dpmi size */
  	cmpl	%ecx, __what_size_dpmi_thinks_we_are		/* Back to back ? */
--- 512,526 ----
  	jc	brk_error
  
  	pushw	%bx
  	pushw	%cx
  	popl	%ecx						/* Linear address */
+ 	cmpl	___djgpp_base_address, %ecx			/* New dpmi size */
+ 	jns	15f						/* Ignore this block */
+ 	testb	$0x80, __crt0_startup_flags+1		/* include/crt0.h */
+ 	jnz	14b
+ 15:
+ 	pushl	%edx						/* Size */
+ 	call	lock_memory
+ 
  	subl	___djgpp_base_address, %ecx			/* New dpmi size */
  	cmpl	%ecx, __what_size_dpmi_thinks_we_are		/* Back to back ? */

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019