Re: CVS build failure with gcc 3.4

Chris Webb <[email protected]> Wed, 15 Dec 2004 13:50:00 +0000
Newsgroups gmane.comp.file-systems.sfs.general
Message-ID <[email protected]>
Maxwell Krohn <[email protected]> writes:

> I had the same problem; I believe gcc's implementation of "offsetof"
> changed in 3.4.  the workaround i implemented was to make a
> "my_offsetof" function in dnsparse.C, defined as the SFS-provided 
> offsetof in internal.h, and then to call "my_offsetof" instead of
> "offsetof" in dnsparse.C.  I've included a patch.  Obviously, this is
> just a temporary solution.  After the offsetof hiccup, though, everything 
> seemed to compile fine for me.

Great, thanks for the pointer!

I've gone for the even hackier:

#undef offsetof
#define offsetof(p_type,field) ((size_t)&(((p_type *)0)->field))

at the beginning of dnsparse.C, which seems to fix this one with minimal
intervention.

Unfortunately, it also seems to break here:

exchan.C: In member function `virtual void unixfd::data(svccb*)':
rexchan.C:254: error: no matching function for call to `wrap(unixfd* const, void (unixfd::*)(int, int), <anonymous enum>)'
make[2]: *** [rexchan.lo] Error 1
make[2]: Leaving directory `/miranda/home/chris/sfs-20041214/sfsmisc'

Do you see this on your build at all?

Cheers,

Chris.