Thank you all for your suggestions. However, none of the combinations of ./configure and make with various options or re-extracting the source has so far solved the problem. [Jiri Masik - thanks for going to the trouble of trying to reproduce my problem] > the warnings with cdefs.h and compiler.h should disappear with newer > kernel-header package. I have a recent version and it fixes this bug > (see the changelog). I upgraded my system, from testing, and the warnings have indeed disappeared. > I cannot reproduce the error in rootd.cxx even if I invoke configure > as you did. You can find several posts on the topic of missing > prototypes of setresuid/setresgid in the roottalk archive however this > should not happen with recent Root and Debian versions. I don't think they are missing (see below). > I suggest you > to try > > make distclean (produces some confusing messages, possibly errors, so I did make clean also) > ./configure linuxdeb2 ./configure linuxdeb (else make produces egcc: command not found) > check whether include/config.h defines #define HAS_SETRESUID It does: #define HAS_SETRESUID /**/ and this seems correct, since in /usr/include/unistd.h I find #ifdef __USE_GNU /* Fetch the effective user ID, real user ID, and saved-set user ID, of the calling process. */ extern int getresuid (__uid_t *__euid, __uid_t *__ruid, __uid_t *__suid); /* Fetch the effective group ID, real group ID, and saved-set group ID, of the calling process. */ extern int getresgid (__gid_t *__egid, __gid_t *__rgid, __gid_t *__sgid); /* Set the effective user ID, real user ID, and saved-set user ID, of the calling process to EUID, RUID, and SUID, respectively. */ extern int setresuid (__uid_t __euid, __uid_t __ruid, __uid_t __suid); /* Set the effective group ID, real group ID, and saved-set group ID, of the calling process to EGID, RGID, and SGID, respectively. */ extern int setresgid (__gid_t __egid, __gid_t __rgid, __gid_t __sgid); #endif > run make again The process starts with a series of messages about missing *.d files, like the following: Makefile:307: clib/src/mrealloc.d: No such file or directory but continues. It stops, always, at this point: ... rootd/src/rootd.cxx: In function `void RootdAuthCleanup(const char *, int)': rootd/src/rootd.cxx:460: implicit declaration of function `int setresgid(...)' rootd/src/rootd.cxx:463: implicit declaration of function `int setresuid(...)' make: *** [rootd/src/rootd.o] Error 1 If it's of any help, here is the version information about gcc and make after the upgrade. $ gcc -v Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.2/specs Configured with: ../src/configure -v --enable-languages=c,c+ +,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux Thread model: posix gcc version 3.3.2 (Debian) $make -v GNU Make 3.80 Boris -- Boris Barbour Laboratoire de Neurobiologie (CNRS UMR 8544) Ecole Normale Superieure 46 rue d'Ulm 75230 Paris Cedex 05 France tel: +33 1 44 32 37 36 fax: +33 1 44 32 38 87
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET