Hi again, Henning The first time I had posted the message to the wrong list (Video4Linux instead of sane-devel), but surprise I got this reply that solved the problem elegantly:
Ronald Bultje <rbul...@ronald.bitfreak.net> wrote: Use #define _LINUX_TIME_H 1 just before including videodev.h or videodev2.h. (I did that in v4l.c and all problems went away :-) John On Thu, 10 Apr 2003 10:51:34 +0200 Henning Meier-Geinitz <henn...@meier-geinitz.de> wrote: > Hi, > > On Thu, Apr 10, 2003 at 12:46:27AM -0300, John Coppens wrote: > > Get this error on compiling sane-backends 1.0.11: > > Please provide more details. This is which Linux version? Which > version of glibc? Which distribution? Which gcc? > > I haven't seen any bug reports about this ever. The include hasn't > changed since ... well ... since the beginning of the time :-) > > > gcc -c -g -O2 -W -Wall -DHAVE_CONFIG_H -I. -I. -I../include > > -I../include-DPATH_SANE_CONFIG_DIR=/usr/local/etc/sane.d > > -DPATH_SANE_DATA_DIR=/usr/local/share -DV_MAJOR=1 -DV_MINOR=0 > > -DBACKEND_NAME=v4l -DLIBDIR=/usr/local/lib/sane v4l.c -fPIC -DPIC -o > > v4l.lo > > In file included from /usr/include/linux/videodev2.h:16, > > from /usr/include/linux/videodev.h:14, > > from v4l.c:76: > > /usr/include/linux/time.h:9: redefinition of `struct timespec' > > /usr/include/linux/time.h:88: redefinition of `struct timeval' > > /usr/include/linux/time.h:93: redefinition of `struct timezone' > > /usr/include/linux/time.h:124: redefinition of `struct itimerval' > > > > In v4l.c, line 67, I changed: > > > > #include <sys/time.h> > > to > > #include <linux/time.h> > > That doesn't look right. We shouldn't include the low-level headers if > th at's not absolutely necessary. However, I think we don't need > sys/time.h anyway. At least for me it compiles without that include. > > > which eliminated two errors and left: > > > > In file included from v4l.c:67: > > /usr/include/linux/time.h:9: redefinition of `struct timespec' > > /usr/include/linux/time.h:88: redefinition of `struct timeval' > > > > > > Any idea which other include references timespec again? Or just what > > to do to get this working? > > Maybe one of the standard system headers includes sys/time.h? > > Are you sure that you have the headers that came with glibc in > /usr/include/linux? Sometimes /usr/include/linux is a link to > /usr/src/linux/include/linux, that causes all sorts of problems when > the kernel headers change and is strongly discouraged. > > Bye, > Henning > _______________________________________________ > Sane-devel mailing list > sane-de...@www.mostang.com > http://www.mostang.com/mailman/listinfo/sane-devel