--- /dev/null
+--- a/dfu.h
++++ b/dfu.h
+@@ -25,6 +25,7 @@
+
+ #ifdef HAVE_LIBUSB
+ #if defined(HAVE_USB_H)
++# include <sys/types.h>
+ # include <usb.h>
+ #elif defined(HAVE_LUSB0_USB_H)
+ # include <lusb0_usb.h>
+--- a/pickit2.c
++++ b/pickit2.c
+@@ -50,6 +50,7 @@
+ #include <string.h>
+ #include <inttypes.h>
+ #include <unistd.h>
++#include <sys/types.h>
+
+ #include "avrdude.h"
+ #include "avr.h"
+--- a/ser_avrdoper.c
++++ b/ser_avrdoper.c
+@@ -248,6 +248,7 @@ static int usbGetReport(union filedescri
+ /* ------------------------------------------------------------------------ */
+
+ #if defined(HAVE_USB_H)
++# include <sys/types.h>
+ # include <usb.h>
+ #elif defined(HAVE_LUSB0_USB_H)
+ # include <lusb0_usb.h>
+--- a/usbtiny.c
++++ b/usbtiny.c
+@@ -41,6 +41,7 @@
+
+ #if defined(HAVE_LIBUSB) // we use LIBUSB to talk to the board
+ #if defined(HAVE_USB_H)
++# include <sys/types.h>
+ # include <usb.h>
+ #elif defined(HAVE_LUSB0_USB_H)
+ # include <lusb0_usb.h>
+--- a/usbasp.c
++++ b/usbasp.c
+@@ -54,6 +54,7 @@
+ # endif
+ #else
+ # if defined(HAVE_USB_H)
++# include <sys/types.h>
+ # include <usb.h>
+ # elif defined(HAVE_LUSB0_USB_H)
+ # include <lusb0_usb.h>
+--- a/usb_libusb.c
++++ b/usb_libusb.c
+@@ -36,6 +36,7 @@
+ #include <sys/time.h>
+
+ #if defined(HAVE_USB_H)
++# include <sys/types.h>
+ # include <usb.h>
+ #elif defined(HAVE_LUSB0_USB_H)
+ # include <lusb0_usb.h>