X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f X-Authentication-Warning: smtp3.ihug.com.au: Host p585-apx1.syd.ihug.com.au [203.173.142.77] claimed to be acceleron Message-ID: <002b01c1808e$7f2fe080$0102a8c0@acceleron> From: "Andrew Cottrell" To: References: <10112090644 DOT AA19383 AT clio DOT rice DOT edu> Subject: Re: v2.03 refresh ready for review/testing Date: Sun, 9 Dec 2001 19:49:33 +1100 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 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Reply-To: djgpp-workers AT delorie DOT com I have not included the files as they are about 40K each, but I have sent them to Charles. > > I have built DJGPP 2.03 refresh on Win 98 box and copied the files onto my > > XP box to h:\djgpp. I have noticed a few quirks, like what was ocuring when > > we were trying to get the dosexec.c stuff sorted out for Win 2K. > > > > I have been able to re-build all of the packages, except GCC 2.9.5.3. I have > > so far seen the following problems:- > > 1) Build fail as it cannot pass the argument list to LD.EXE > > CVS versions of the spawn enhanced the command argument passing, so if > you have a newer item in the mix you might have problems? I still have some unzip & tex from the original 2.03. I have ensured that I don't haev any 2.04 code. This is why it has taken me so long to get it right. > > 2) Out of memory after the build fails > > That could be related to crashes. 100% agree. > > 3) CMD.EXE disappeared once after a build fail when I hit the enter key > > Never seen that, but I do see them loose their NT scroll bar and become > fixed DOS size windows, even under CMD.EXE ... It could have been after I tried to build GCC after it allready failed and therefore I realy screwed up the system. The strange thing is that I built all of the other exe files that I needed without a problem, except for the usual installation issues.. > > I spotted in src\libc\dos\process\dosexec.c that at about line 389 that the > > 2.04 has the following :- > > /* Work around the W2K NTVDM bug; see dpmiexcp.c for detailed > > explanations. */ > > __maybe_fix_w2k_ntvdm_bug(); > > > > The updated 2.03 file does not have this. The function is direct_exec_tail_1 > > (). Could this be the cause of the problems I haev seen? > > Maybe, but it shouldn't be if we really understand the problem. The nesting > problems are caused by the child exit setting the internal NTVDM psp to > zero in the process of exiting. This shouldn't be a problem until the parent > exits (if we exit with it zero that's when it crashes). We have code in our > exit to set it back. Now, there may be some other case where the right after > the exit set is needed. If required I can slap a bogus prototype in both > modules and we can duplicate the 2.04 behavior, but it does start to change > the external visible symbol list... I will give this a try. > When I saw these problems I could always track some non-fixed module down > in my tool chain, but you may have found a real problem (why we are testing). I have attached a listing of the exe files I have in the updated 2.03 djgpp directory tree. Files with a data of 01-Jan-2001 were touched before I started bulding on my XP PC. The files with the 01/01/01 date are either original 2.03 files or have been build on my W98 PC. I have also attached the exe list for the Win 98 PC. I just "reset" the build.djg directory back to the way it is when you install GCC 2.9.5.3 an did a build. The following was the last few dozen lines of stage1.log :- gcc -DIN_GCC -g -DHAVE_CONFIG_H -I. -I/djgpp/gnu/gcc-2.953/gcc -I/d jgpp/gnu/gcc-2.953/gcc/config -I/djgpp/gnu/gcc-2.953/gcc/../include -c insn-peep.c gcc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I/djgpp/gnu/gcc-2.953/gcc - I/djgpp/gnu/gcc-2.953/gcc/config -I/djgpp/gnu/gcc-2.953/gcc/../include /djgpp/gnu/gcc-2.953/gcc/reorg.c gcc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I/djgpp/gnu/gcc-2.953/gcc - I/djgpp/gnu/gcc-2.953/gcc/config -I/djgpp/gnu/gcc-2.953/gcc/../include /djgpp/gnu/gcc-2.953/gcc/sched.c gcc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I/djgpp/gnu/gcc-2.953/gcc - I/djgpp/gnu/gcc-2.953/gcc/config -I/djgpp/gnu/gcc-2.953/gcc/../include /djgpp/gnu/gcc-2.953/gcc/final.c gcc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I/djgpp/gnu/gcc-2.953/gcc - I/djgpp/gnu/gcc-2.953/gcc/config -I/djgpp/gnu/gcc-2.953/gcc/../include /djgpp/gnu/gcc-2.953/gcc/recog.c gcc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I/djgpp/gnu/gcc-2.953/gcc - I/djgpp/gnu/gcc-2.953/gcc/config -I/djgpp/gnu/gcc-2.953/gcc/../include /djgpp/gnu/gcc-2.953/gcc/reg-stack.c gcc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I/djgpp/gnu/gcc-2.953/gcc - I/djgpp/gnu/gcc-2.953/gcc/config -I/djgpp/gnu/gcc-2.953/gcc/../include /djgpp/gnu/gcc-2.953/gcc/genopinit.c gcc -DIN_GCC -g -DHAVE_CONFIG_H -o genopinit \ genopinit.o rtl.o bitmap.o print-rtl.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ./genopinit /djgpp/gnu/gcc-2.953/gcc/config/i386/i386.md > tmp-opinit.c /djgpp/gnu/gcc-2.953/gcc/move-if-change tmp-opinit.c insn-opinit.c touch s-opinit gcc -DIN_GCC -g -DHAVE_CONFIG_H -I. -I/djgpp/gnu/gcc-2.953/gcc -I/d jgpp/gnu/gcc-2.953/gcc/config -I/djgpp/gnu/gcc-2.953/gcc/../include -c insn-opinit.c gcc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I/djgpp/gnu/gcc-2.953/gcc - I/djgpp/gnu/gcc-2.953/gcc/config -I/djgpp/gnu/gcc-2.953/gcc/../include /djgpp/gnu/gcc-2.953/gcc/genrecog.c gcc -DIN_GCC -g -DHAVE_CONFIG_H -o genrecog \ genrecog.o rtl.o bitmap.o print-rtl.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` gcc.exe: installation problem, cannot exec `h:/djgpp/lib/gcc-lib/djgpp/2.953/collect2.exe': Not enough memory (ENOMEM) make.exe[1]: *** [genrecog] Error 1 make.exe[1]: Leaving directory `h:/djgpp/gnu/gcc-2.953/build.djg/gcc' make.exe: *** [all-gcc] Error 2 Andrew