From: Clifford Wolf Date: Thu, 8 Oct 2009 13:32:41 +0000 (+0200) Subject: don't build --with-async-mode w/ libusb-compat-0.1 X-Git-Tag: v0.17~32 X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=commitdiff_plain;h=e59bc450ba1b263f549185e16a00c7ab57b6c247 don't build --with-async-mode w/ libusb-compat-0.1 Hello, attached is a little patch that prohibits libftdi from compiling against libusb-compat-0.1 (the wrapper that provides a libusb-0.1 compatible api for systems with libusb-1.0) when libftdi is configured with async mode. unfortunately fixing async mode for libusb-1.0+libusb-compat-0.1 is not trivial because libusb-1.0 comes with an os abstraction layer that hides the unix filedescriptor much deeper in internal structures. but failing to build is imo much better than segfaulting at runtime. yours, - clifford PS: The USB_CLASS_PTP define is not present in any libusb-0.1 release and has been added to libusb-compat-0.1 only afaics. --- diff --git a/src/ftdi.c b/src/ftdi.c index 5051059..5fce9a6 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -995,6 +995,9 @@ int ftdi_write_data(struct ftdi_context *ftdi, unsigned char *buf, int size) } #ifdef LIBFTDI_LINUX_ASYNC_MODE +#ifdef USB_CLASS_PTP +#error LIBFTDI_LINUX_ASYNC_MODE is not compatible with libusb-compat-0.1! +#endif /* this is strongly dependent on libusb using the same struct layout. If libusb changes in some later version this may break horribly (this is for libusb 0.1.12) */ struct usb_dev_handle