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" To: "Eli Zaretskii" Cc: , References: Subject: Re: Make 3.791 on Windows 2000 test Date: Mon, 30 Jul 2001 22:14:21 +1000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit 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" > > > > 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