Hi Alessandro, Alessandro Zummo writes:
> Shouldn't include/sane/sanei_thread.h > have an > > #include <pthread.h> > > just before > > typedef pthread_t SANE_Pid; > > ? If there is a practice of requiring that sanei_* API users include extra system headers in their *.c files, then, no. Personally, I believe that header files should take care of dependencies themselves rather than putting the onus on the user. If sanei_thread.h (conditionally) depends on the pthread_t type, then it had better make sure to (conditionally) include a file that provides this type. So, I'd say yes. By the way, you should also check on HAVE_PTHREAD_H, like so #ifdef USE_PTHREAD #ifdef HAVE_PTHREAD_H #include <pthread.h> typedef pthread_t SANE_Pid; #endif #else typedef int SANE_Pid; #endif Of course, the above makes no sense but it's what the implementation of SANE_CHECK_PTHREAD in acinclude.m4 requires. I fixed SANE_CHECK_PTHREAD and moved the include statement from sanei_thread.c to its header file. Actually, the Single Unix Specification, version 2, puts the definition of pthread_t in <sys/types.h>. I've checked the backends that use the sanei_thread API and all typically include a bunch of system headers *before* the SANE project's headers. Most list <sys/types.h> and, on my system, that provides pthread_t as well. # The definition is in /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h # which is included by both <pthread.h> and <sys/types.h>. FWIW, the LSB puts the definition in pthread.h ... which seems more sensible to me as just about all pthread API needs it anyway. Hope this helps, -- Olaf Meeuwissen, LPIC-2 FSF Associate Member since 2004-01-27 GnuPG key: F84A2DD9/B3C0 2F47 EA19 64F4 9F13 F43E B8A4 A88A F84A 2DD9 Support Free Software https://my.fsf.org/donate Join the Free Software Foundation https://my.fsf.org/join -- sane-devel mailing list: [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel Unsubscribe: Send mail with subject "unsubscribe your_password" to [email protected]
