delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2001/07/30/09:36:56

X-Authentication-Warning: smtp3.ihug.com.au: Host p343-tnt3.syd.ihug.com.au [203.173.133.89] claimed to be acceleron
Message-ID: <003501c118f1$2b6467f0$0a02a8c0@acceleron>
From: "Andrew Cottrell" <acottrel AT ihug DOT com DOT au>
To: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>
Cc: <sandmann AT clio DOT rice DOT edu>, <djgpp-workers AT delorie DOT com>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 1010729161449 DOT 3717B-100000 AT is>
Subject: Re: Make 3.791 on Windows 2000 test
Date: Mon, 30 Jul 2001 22:14:21 +1000
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4522.1200
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200
Reply-To: djgpp-workers AT delorie DOT com

From: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>

> > > > My question is where is _CRT0_FLAG_UNIX_SBRK used in the startup
code?
> > >
> > > It's in crt1.c.
> >
> > I modified crt1.c and re-built LIBC from today's CVS tarball (29th
> > July-2001) which includes all the patches needed so far. The mod to
crt1.c
> > is src\libc\crt0\crt1.c:int _crt0_startup_flags = _CRT0_FLAG_UNIX_SBRK;
> >
> > This did not make any difference in repect that make still crashed in
the
> > same place with the same call stack and info.
>
> Sorry, I don't understand.  You already succeeded to produce a version of
> Make which used Unixy sbrk, without hacking crt1.c, and you then reported
> that Make didn't crash, but cc1.exe did.  So why did you need at all to
> build Make with the hacked crt1?  I thought you needed to modify crt1 to
> build cc1.exe and gcc.exe, because you couldn't find an easy way to do
> that; but with Make this wasn't the problem, right?
My fault. You are correct. I didn't need to rebuild make, but I did so I
could check that the latest CVS tarball worked the same as the old tarball I
was using with the patches for Win2000 that I manually applied.

I thought I would update to the latest DJGPP CVS tarball because of the
following:
    1) The one I was using did not have the known patches for Win2000. I
checked the tarball and it included all of the changes.
    2) I could remove the patches I manually applied to LIBC source. No need
to apply any patches as they were included in the tarball.
    3) Incorporate other changes that could affect things. Only other
changes I could see would not affect Win2000 (I hope)
    4) Check that the CVS LIBC works on Windows 2000 and works the same as I
had with the patches I manually applied. Before and after testing confirmed
that there were no adverse problems in upgrading, same issues still exist
and no new ones introduced.

Instead of modifying allot of the GCC files to include the crt0 startup flag
I hacked crt1.c so that what ever I built GCC (except redir) it would
include the unixy sbrk. After building GCC I thought I would re-build make
from the ground up for regression testing with the latest LIBC and the
regression testing did not find any changes compared to the previous build
that I had not allready seen.

The crash still occured in gcc1.exe, even with the re-built GCC and make.

What next?  Any other tests or suggestions? Should I now try to get RHIDE to
rebuild and then test it on Win2000 and wait to see if RHIDE shows different
symptoms or different issues?

 > > I am still confused with the usage of UNIX Sbrk as I cannot find any
> > reference to it in the code.
>
> Look in crt0.S (that's where sbrk is implemented), for lines like this:
>
> testb   $0x8, __crt0_startup_flags+1
>
> 8 is the value of _CRT0_FLAG_UNIX_SBRK (actually, it's 0x0800, but you
> get the picture).
Thanks. I did not see the +1 when I first looked at the code and looked at
my Programming the 386 book. It's been a few years (4+) since I last wrote
386 assembly code.

Regards,
Andrew


- Raw text -


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