delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2002/08/29/02:38:57

Message-ID: <001f01c24f26$b636c730$0100a8c0@p4>
From: "Andrew Cottrell" <acottrel AT ihug DOT com DOT au>
To: "Richard Dawe" <rich AT phekda DOT freeserve DOT co DOT uk>,
"Charles Sandmann" <sandmann AT clio DOT rice DOT edu>
Cc: <djgpp-workers AT delorie DOT com>
Subject: Two rm.exe issues on XP
Date: Thu, 29 Aug 2002 16:38:08 +1000
MIME-Version: 1.0
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

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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019