Mail Archives: djgpp-workers/2001/07/23/07:07:05
Eli,
Sun, 22 Jul 2001, Andrew Cottrell wrote:
>
> > 1) Does this look like the same problem as before the NTVDM patch?
>
> No. The message "Load error: can't switch mode" means that the PM entry
> point called by the startup code (to switch to protected mode) fails.
> This is known to happen after many nested DPMI programs were run in the
> same DOS box, and the usual procedure is either restart Make or close and
> open the DOS box.
>
> If restarting doesn't help (you seem to tell it did), we have a new
> problem on our hands ;-)
>
> > make.exe[1]: Entering directory `d:/dj204/gnu/make-3.791'
> > Extended Error 183
>
> This error message comes from somewhere outside Make and DJGPP in
> general. It probably comes from cmd.exe or some such. It is important
> to understand what exactly causes it.
>
> Was the version of make.exe that you run here built with the NTVDM patch
> or not? Was it built with CVS or stock v2.03 libc?
I re-built make on Sunday with the CVS tarball from the 15th July and added
the NTVDM patch that I looked up in the email archive that you sent a few
weeks ago.
> > Call frame traceback EIPs:
> > 0x00020818 _malloc+620
>
> Looks like some problem with memory corruption (that's what crashes
> inside malloc usually mean). Did you try to do the same with the same
> executables on another version of Windows? I don't recall any Make
> crashes inside malloc.
I used the same version of make and DJGPP on my Win98 box and it worked
fine. The only difference is that on the NT box I have DJ204 on D: and on
the WIn98 box I have it on C:.
I copied all of the DJGPP directory from the Win98 box to the NT box for
this test, that way I know that the two exes and setups are almost the same
except for the drive that they are on.
> > Packages not re-built, but they are installed.
> > amake-1.4 autocnf2.13 bash-2.03 bash-2.04
bash-2.05
>
> I'd suggest to rebuild at least Bash (the version you use normally),
> because building other packages frequently involves Bash called from
> Make, or running configure scripts.
I used 2.04 for the test and I just tried to re-build it and I could not
build it because of _dos_exec defined twice. The problem was that both bash
2.04 (not 2.05) and LIBC both had dosexec.c, but they were different.
I have just downloaded Bash 2.05 source from Mark's site (dated 21st July
2001) and have re-built it using the CVS tarball from tthe 15th and the the
NTVDM patch without any problems. I replaced Bash 2.03 with the 2.05 on both
the Win98 and Win2K boxes and re-run the tests for building Allegro and
Make, the results are:
1) Allegro build on Win98 & Win2K both built and demo works okay (no sound
due to no DOS sound driver loaded).
Win2K required make to be run twice to complete due to expected "Load
error: can't switch mode" error.
2) Make build results (both with the same Make & Bash, both built with CVS
LIBC & NTVDM patch):
WIN 98 - re-built okay
WIN 2K - same error
I deleted all of the files in the bin directory that I did not re-build
yesterday, but this did not help.
Any other suggestions? I have download YAMD to see if this can find anything
tomorrow night.
Regards,
Andrew
- Raw text -