A bit more info
It seems that the build failure boils down to:
configure:22252: checking if dev/usb/usb.h uses new naming convention
configure:22277: i486-kfreebsd-gnu-g++ -c -g -O2 -D_FORTIFY_SOURCE=2 conftest.cpp >&5
conftest.cpp: In function 'int main()':
conftest.cpp:43:46: error: invalid use of incomplete type 'struct main()::usb_ctl_request'
conftest.cpp:43:25: error: forward declaration of 'struct main()::usb_ctl_request'
configure:22283: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "libusb"
| #define PACKAGE_TARNAME "libusb"
| #define PACKAGE_VERSION "0.1.12"
| #define PACKAGE_STRING "libusb 0.1.12"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "libusb"
| #define VERSION "0.1.12"
| #define LIBUSB_MAJOR_VERSION 0
| #define LIBUSB_MINOR_VERSION 1
| #define LIBUSB_MICRO_VERSION 12
| #define LIBUSB_INTERFACE_AGE 4
| #define LIBUSB_BINARY_AGE 8
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define BSD_API 1
| #define LINUX_API 0
| #define DARWIN_API 0
| #define STDC_HEADERS 1
| #define HAVE_VPRINTF 1
| #define HAVE_LIMITS_H 1
| #define HAVE_LIMITS_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_VALUES_H 1
| #define HAVE_VALUES_H 1
| #define HAVE_MEMMOVE 1
| /* end confdefs.h. */
| #include <dev/usb/usb.h>
| int
| main ()
| {
|
| int a = ((struct usb_ctl_request *)0L)->ucr_addr
|
| ;
| return 0;
| }
configure:22294: result: no
While the successful 2011 build of libusb 2:0.1.12-20 says:
checking if dev/usb/usb.h uses new naming convention... yes
I've verified that changing
#ifdef HAVE_OLD_DEV_USB_USB_H
to
#if 0
in bsd.c makes the package build OK on kfreebsd.
I think this means that usb_ctl_request used to be declared in dev/usb/usb.h
with a ucr_addr member, but is now removed altogether, which configure.in
(incorrectly) interprets as having "old naming convention".
Perhaps kfreebsd-kernel-headers maintainer(s) can provide some confirmation of
my theory and maybe an explanation on the reasons for removal.
--
Marcin Owsiany <porridge@debian.org> http://marcin.owsiany.pl/
GnuPG: 2048R/02F946FC 35E9 1344 9F77 5F43 13DD 6423 DBF4 80C6 02F9 46FC
Reply to: