[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Coda on Alpha? (bug in glibc and make?)



Brederlow <goswin.brederlow@student.uni-tuebingen.de> writes:

> Wai-Sun Chia <waisun.chia@msa.dec.com> writes:
> > resforce.cc: In function `int RuntExists(struct ViceVersionVector **,
> > int, int *, int *)':
> > resforce.cc:718: call of overloaded `IsRunt (ViceVersionVector *&)' is
> > ambiguous
> > resforce.cc:707: candidates are: IsRunt(ViceVersionVector *)
> > /usr/src/coda-5.2.0/include/inconsist.h:83:                 IsRunt(vv_t
> > *)

That might be a compiler bug. The "extern ..." in line 707 should not
make any difference, since vv_t is a typedef of
ViceVersionVector. Just kill it and maybe add and #include
"inconsist.h" at the top (for good style).

So after I fixed that, it compiled a bit further and stoped again.

The error was (from my memory) about

struct timeval tv;
...
ctime(tv->tv_secs);

and that gave an error because ctime wants a long and timeval has an
int. That looks like a bug in the glibc and kernel and in all programs
that use gettimeofday. None of them will work past 2036 if I'm right.

>From "man gettimeofday"
       struct timeval {
               long tv_sec;        /* seconds */
               long tv_usec;  /* microseconds */
       };

But in "/usr/include/timebits.h"
       struct timeval {
               int tv_sec;        /* seconds */
               int tv_usec;  /* microseconds */
       };

The manpage is right and the includes are wrong. Just bad luck that
the endianness makes int and long be the same (except leading zeros)
on alpha.

I also compared that to my i386 linux and there timebits.h is
gone. Its still in the locate database, so it must have been one of
those last updates. The problem seems to be fixed there and hopefully
on potato/binary-alpha too.

Well I changed the ints to longs are compiled again.
Then it stoped again:

ftp://mirjam.informatik.uni-tuebingen.de/pub/coda/coda-5.2.0.log
------------------------------------------------------------------
<---- Leaving coda-src.
make[1]: Leaving directory `/mnt/fast1/coda-5.2.0/debian/builddir'
touch build
 fakeroot debian/rules binary
test -f debian/rules
test -d coda-src
test root = "`whoami`"
test -f debian/rules
test -d coda-src
test -f debian/rules
test -d coda-src
rm -rf /mnt/fast1/coda-5.2.0/debian/tmp-client
install -d /mnt/fast1/coda-5.2.0/debian/tmp-client
make -C /mnt/fast1/coda-5.2.0/debian/builddir client-install GFLAG= \
        prefix=/mnt/fast1/coda-5.2.0/debian/tmp-client/usr
make[1]: Entering directory `/mnt/fast1/coda-5.2.0/debian/builddir'
make[1]: *** [client-install] Segmentation fault
make[1]: Leaving directory `/mnt/fast1/coda-5.2.0/debian/builddir'
make: *** [binary-venus] Error 2
-----------------------------------------------------------------------

So whats wrong now? A bug in make again? Looks like it.
Well, lets get some sleep and try again tomorrow. :)

May the Source be with you.
			Goswin


Reply to: