don't build --with-async-mode w/ libusb-compat-0.1
authorClifford Wolf <clifford@clifford.at>
Thu, 8 Oct 2009 13:32:41 +0000 (15:32 +0200)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Tue, 3 Nov 2009 16:11:07 +0000 (17:11 +0100)
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.

src/ftdi.c

index 5051059..5fce9a6 100644 (file)
@@ -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