While compiling coda-server an assertion in vaargs.h forces coda-server to fail. include <vaargs.h> has been obseleted in place of stdlib.h (?) as per error message.
This bug report is inaccurate and incomplete. The error occurs when compiling 'vol-restore.cc', with both coda-server and coda-client. The actual error boils down to this: In file included from vol-restore.cc:56: /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/varargs.h:4:2: #error "GCC no longer implements <varargs.h>." /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/varargs.h:5:2: #error "Revise your code to use <stdarg.h>." make[2]: *** [vol-restore.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/coda-client-5.3.19/work/coda-5.3.19/coda-src/volutil' make[1]: *** [volutil] Error 2 make[1]: Leaving directory `/var/tmp/portage/coda-client-5.3.19/work/coda-5.3.19/coda-src' make: *** [coda-src] Error 2 Looking up the relevant file and changing line 56 from '#include <varargs.h>' to '#include <stdarg.h>' and then recompiling makes gcc happy again and the package emerges cleanly again. I've only looked at this very briefly and I'm not sure about the repercussions of making a patch to simply change the line to always include stdarg.h instead of varargs.h. Maybe there's a way to #ifdef around it depending on compiler version? For gcc-3 only the patch would be really trivial, I'm not sure about other compilers. Cheers, /P
This bug report is inaccurate and incomplete. The error occurs when compiling 'vol-restore.cc', with both coda-server and coda-client. The actual error boils down to this: In file included from vol-restore.cc:56: /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/varargs.h:4:2: #error "GCC no longer implements <varargs.h>." /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/varargs.h:5:2: #error "Revise your code to use <stdarg.h>." make[2]: *** [vol-restore.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/coda-client-5.3.19/work/coda-5.3.19/coda-src/volutil' make[1]: *** [volutil] Error 2 make[1]: Leaving directory `/var/tmp/portage/coda-client-5.3.19/work/coda-5.3.19/coda-src' make: *** [coda-src] Error 2 Looking up the relevant file and changing line 56 from '#include <varargs.h>' to '#include <stdarg.h>' and then recompiling makes gcc happy again and the package emerges cleanly again. I've only looked at this very briefly and I'm not sure about the repercussions of making a patch to simply change the line to always include stdarg.h instead of varargs.h. Maybe there's a way to #ifdef around it depending on compiler version? For gcc-3 only the patch would be really trivial, I'm not sure about other compilers. Cheers, /Pär
Thankyou for the added detail. Changeing #include <varargs.h> to #include <stdarg.h> would probably make gcc-2.95 fail however I see no other serious consequences. To be honest I'm ignoreing this bug (partially) and attempting to get a version bump working. Note to Seemant: Sorry I left this assigned to you. I'm still working on the all encompasing coda (bug #26132) ebuild.
patch added to coda-server and coda-client. Committed to cvs. Also note these are both going to be replace by net-fs/coda which is in portage now. Please give it a go a provide any feedback (especially to make install easier).