[argyllcms] Re: [FreeBSD, patch] spectro/usbio.c etc.

  • From: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Wed, 27 Feb 2013 11:52:42 +1100

Boris Samorodov wrote:

> while building argyllcms at FreeBSD some errors occur. Errors are
> the same at 9-i386 and 10-amd64. Compiles tested (clang is base
> compiler at 10.x):

> spectro/usbio.c:(.text+0x1a): undefined reference to `usb_argyll_patched'
> cc: error: linker command failed with exit code 1 (use -v to see invocation)

        that's a hint that you need to use the libusb that is provided
with ArgyllCMS in order to guarantee that all the instruments will work.
It has an implementation for usb_argyll_patched().

> spectro/usbio.c:742:17: error: use of undeclared identifier 'dev'; did
> you mean 'div'?
>                         descriptor = dev->descriptor;   /* Copy */
>                                      ^~~
>                                      div
> /usr/include/stdlib.h:91:8: note: 'div' declared here
> div_t    div(int, int) __pure2;
>          ^
> spectro/usbio.c:742:20: error: member reference base type 'div_t (int,
> int)' is not a structure or union
>                         descriptor = dev->descriptor;   /* Copy */

Hmm. The compiler seems to be automatically "correcting" dev to div. That
doesn't sound like a good thing for a compiler to do.

dev is an argument of the usb_check_and_add() function. I would
suspect a clash with some system library declaration or #define,
but the error message is poor. It should note the re-declaration if
this is the case. I don't think this code is present in V1.5 beta,
although there is a dev variable in usbio_lx.c.

> But the question is: should there be a file named
> <lagacy/dev/usb/usb.h>?

Sorry, out of my scope at the moment - I don't have a FreeBSD system to
check. I'm hoping to get a chance to install FreeBSD 9.1 on a partition
of my test machine at some stage.

Graeme Gill.

Other related posts: