[comp.os.minix] something's broke -> 1.5 libc.a & ls.c

HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (05/03/91)

I think I saw this message earlier, it is a bug in the ACK compiler.

C.v.W.

paulc@polari.UUCP (Paul Cornett) (05/05/91)

In article <9943@plains.NoDak.edu>, enders@plains.NoDak.edu (Todd Enders - WD0BCI ) writes:
> 
>      Well, I finally completed my upgrade of Minix from v1.2 to v1.5.10!
> Everything compiles and seems to work OK, except for ls (the ls I had for
> v1.3 didn't compile either, but that's another story).  Everything goes fine
> until link time where it dies, saying:
> 
> perror.s 300: _21 multiple declared
> unresolved references:

I ran into the same problem.  There is nothing wrong with perror, it is a
bug in the Minix C compiler.  I got ls to compile by making the following
changes to ls.c:

*** ls.c~	Tue Feb  5 06:18:23 1991
--- ls.c	Thu Feb  7 14:08:49 1991
***************
*** 485,490 ****
--- 485,492 ----
  {
    unsigned short mode;
    char c, fchar( 	/* unsigned short mode */ );
+   static char *rwx[] = {"---", "--x", "-w-", "-wx",
+ 		        "r--", "r-x", "rw-", "rwx"};
  
    if (flags_i) printf("%5d ", entry->f_stat.st_ino);
  
***************
*** 493,500 ****
    mode = entry->f_stat.st_mode;
  
    if (flags_l) {
- 	static char *rwx[] = {"---", "--x", "-w-", "-wx",
- 			      "r--", "r-x", "rw-", "rwx"};
  	char bits[11];
  
  	switch (mode & S_IFMT) {
--- 495,500 ----


Paul Cornett
paulc@seattle.uucp  or  ...!uw-beaver!sumax!seattle!paulc


dls@genco.bungi.com (Dave L. Smith) (05/05/91)

I had the same problem, and I'm sure many others have too.  The problem
(I am told) is a bug in the C compiler.  When you have static variables
inside a function (they may have to be structs, I'm not sure), you will
get _XX multiply defined.  The easiest fix is to edit ls.c and move the
static declarations out of the functions.  I did this and got it to compile,
but now I have core dumps whenever I do a 'ls -l'.  If you get it to work,
I'd like to hear about it.  Anyone else got ls to work?

Thanks
Dave Smith

adamd@rhi.hi.is (Adam David) (05/08/91)

I'm not sure this is related, but it's the same subject line.
Recently I recompiled the library sources on a floppy disk
and in the process some of the directories suffered some minor
damage. All access to the directories (including fsck) worked
without error, but ls did 'memory fault - core dumped'.
Anyway I cleared it up by doing

mkdir newdir
mv olddir/* newdir
mv newdir olddir

or similar. How come ls failed when other commands had no trouble
with these directories? Might this be related to having large
numbers of files (500+) on the same floppy disk?

--
Adam David.
(adamd@rhi.hi.is)