Mail Archives: djgpp/1995/01/30/12:18:22
I wrote:
> A number of users reported recently that gcc 2.6.3 with 1.12m3
> hangs when not running in VCPI or DPMI mode. Testing on my
> system reveals that this happens both in raw extended memory
> (plain vanilla DOS system) and XMS (plain vanilla system with
Here is some more info:
* GCC.EXE crashes at address 0xC207. The following code fragment
is found at that location (displayed by FSDB 0.91a):
push ebx
push edi
mov edi,edx
mov ax,768
mov bx,33
mov cx,0
int 49
This is apparently a fragment from access.c which calls DPMI
function 03 (AX = 0300h = 768) to invoke INT 21h (BX = 21h = 33).
By looking at the regs structure I was able to confirm that Int
21h is called with AX = 4300h (get file attribute bits).
* The call stack at this point is:
c207
4286
94fe
118e
* At this particular location the program calls access() with the
name of the temporary subdirectory of the main DJGPP directory,
like this:
access("c:/djgpp/tmp".....)
This isn't a simple access() bug, because a short program which just
calls access with the string it gets from the command line works OK in
both XMS and raw extended memory modes. (Of course, it can be that I
failed to correctly simulate the call environment, but that would also
mean that the bug isn't ``simple''.) Another possibility would be
that the bug is inside go32, where it simulates DPMI calls, but again
it doesn't pop up on any call to access().
Without GCC source I couldn't advance further, and I wasn't on the
warpath enough to download the entire GCC source distribution. Hope
somebody out there who already has the source will track this bug.
- Raw text -