[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: