www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2001/07/28/11:16:08

From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
Message-Id: <10107281511.AA18279@clio.rice.edu>
Subject: Re: Make 3.791 on Windows 2000 test
To: eliz AT is DOT elta DOT co DOT il
Date: Sat, 28 Jul 2001 10:11:44 -0500 (CDT)
Cc: acottrel AT ihug DOT com DOT au, djgpp-workers AT delorie DOT com
In-Reply-To: <200107281027.GAA03194@delorie.com> from "Eli Zaretskii" at Jul 28, 2001 06:27:54 AM
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

> Note that now it's cc1 which crashes, not Make.  So maybe Charles is
> right, and Unixy sbrk is the solution.  Hmm...  Maybe try building GCC
> with Unixy sbrk and se if that helps (you will have to do that for
> both gcc.exe and cc1.exe).
> 
> Still, I'd like to try to find the problem in `sbrk' with the default
> algorithm.  It's possible we don't handle address wrap-around
> correctly.

If you get a lower address, we try to address wrap.  On NT the limit set
silently gets truncated from a 4Gb limit to a 2Gb limit (so it can't 
include NT's OS address space).  So, if we try to access the lower memory
block it kills us on the selector limits.

1) I think we need to make sbrk() aware of the wrap issues.
2) I think we should ignore (keep allocated but not touch) any blocks which
 are returned to us lower than the base, and try again.
3) We may need some way to toggle the default for testing to prevent having
 to rebuild everything.  In the past I had an exe which binary patched all
 the EXEs to toggle the default meaning.

- Raw text -


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