Mail Archives: djgpp-workers/2002/08/29/02:38:57
Richard & Charles,
I may have stumbled onto some issues with the file utilities 4.1 rm.exe
(don't know if 4.0 also fails) on XP which have come to light when I have
been trying to build GCC 3.2 or trying to rebuild it. I will not have time
to to look at these two issues for a few days and as such I thought I should
let you know about them in case you have ideas or have seen these before.
I am in the process of upgrading to GCC 3.2 and the latest LIBC. The file
utils is 4.1 from 11-June-2002. I suspect that both issues are 2K/XP
specific until someone else lets me know otherwise.
PROBLEM 1 - RM.EXE SIGABRT
--------------------------------------
While re-building GCC 3.2 I noticed that I was not rebuilding some of the
exe files as the build date of a few of the exe files had not been updated.
On further investigation I found that the rm.exe caused a SIGABRT when
rm.exe -rf was called four times, the other times it worked okay when "make
clean" was executed.
I have been able to reproduce the problem on XP (I have not tested this with
any other OS's) if I setup the following directory structure and try to do
delete the directory and all of it's contents with a rm -rf ( i am assuming
this is what is the combo does).
Test directory setup:
-Created a test directory C:\dj204\test
-Created a sub directory C:\dj204\test\test
-Created one file in the subdirectory C:\dj204\test\test\test.c
DJGPP_204 C:\dj204>rm -rf test
Assertion failed at remove.c line 727: fs->have_device
Exiting due to signal SIGABRT
Raised at eip=0000d316
eax=000a1a00 ebx=00000120 ecx=0009dad0 edx=00000012 esi=000a1c20
edi=000a1fb8
ebp=000a1ac8 esp=000a19f0 program=C:\DJ204\BIN\RM.EXE
cs: sel=01a7 base=029f0000 limit=000affff
ds: sel=01af base=029f0000 limit=000affff
es: sel=01af base=029f0000 limit=000affff
fs: sel=017f base=00007f80 limit=0000ffff
gs: sel=01bf base=00000000 limit=0010ffff
ss: sel=01af base=029f0000 limit=000affff
App stack: [000a2028..00022028] Exceptn stack: [00021e68..0001ff28]
Call frame traceback EIPs:
0x0000d226
0x0000d316
0x0000969e
0x0000311b
0x00003215
0x0000247e
0x00002e65
0x00003215
0x00001e88
0x00008e57
GCC 3.2 error:-
make.exe[2]: Leaving directory `c:/dj204/gnu/build.gcc/gcc/intl'
rm -f g77spec.o g77version.o
rm -rf objc-headers
rm -f libgcc.a libgcc_eh.a libgcc_s libgcc_s.1
rm -f config.h tconfig.h hconfig.h tm_p.h
rm -f cs-*
rm -rf libgcc
rm -f *.dvi
rm -f */*.dvi
rm -rf include
Assertion failed at remove.c line 727: fs->have_device
Exiting due to signal SIGABRT
Raised at eip=0000d316
eax=03ccf9e0 ebx=00000120 ecx=03ccbab0 edx=00000012 esi=03ccfc00
edi=03ccff90
ebp=03ccfaa8 esp=03ccf9d0 program=c:\dj204\bin\rm.exe
cs: sel=04bf base=03400000 limit=03ccffff
ds: sel=04c7 base=03400000 limit=03ccffff
es: sel=04c7 base=03400000 limit=03ccffff
fs: sel=0497 base=0001c720 limit=0000ffff
gs: sel=04d7 base=00000000 limit=0010ffff
ss: sel=04c7 base=03400000 limit=03ccffff
App stack: [03cd0000..03c50000] Exceptn stack: [00021e68..0001ff28]
Call frame traceback EIPs:
0x0000d226
0x0000d316
0x0000969e
0x0000311b
0x00003215
0x0000247e
0x00002e65
0x00003215
0x00001e88
0x00008e57
make.exe[1]: [clean] Error -1 (ignored)
PROBLEM 2 - RM.EXE Operation not permitted (EPERM)
-------------------------------------------------------------
The following occurs in the GCC 3.2 "sh djmake.sh bootstrap" process
(simplified):
DJGPP_204 C:\dj204\gnu\build.gcc\gcc>rm -rf include
rm: cannot remove directory `include': Operation not permitted (EPERM)
DJGPP_204 C:\dj204\gnu\build.gcc\gcc>dir include
Volume in drive C has no label.
Volume Serial Number is 7058-8AB0
Directory of C:\dj204\gnu\build.gcc\gcc\include
29/08/2002 04:07 PM <DIR> .
29/08/2002 04:07 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 20,100,411,392 bytes free
DJGPP_204 C:\dj204\gnu\build.gcc\gcc>attrib include
C:\dj204\gnu\build.gcc\gcc\include
- Raw text -