From owner-freebsd-usb@FreeBSD.ORG Wed Feb 20 09:11:13 2013 Return-Path: Delivered-To: freebsd-usb@FreeBSD.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 72B5CDDD for ; Wed, 20 Feb 2013 09:11:13 +0000 (UTC) (envelope-from bsam@passap.ru) Received: from forward14.mail.yandex.net (forward14.mail.yandex.net [IPv6:2a02:6b8:0:801::4]) by mx1.freebsd.org (Postfix) with ESMTP id 259E4DD6 for ; Wed, 20 Feb 2013 09:11:13 +0000 (UTC) Received: from smtp14.mail.yandex.net (smtp14.mail.yandex.net [95.108.131.192]) by forward14.mail.yandex.net (Yandex) with ESMTP id 1393419816A3 for ; Wed, 20 Feb 2013 13:11:11 +0400 (MSK) Received: from smtp14.mail.yandex.net (localhost [127.0.0.1]) by smtp14.mail.yandex.net (Yandex) with ESMTP id E28E51B607AA for ; Wed, 20 Feb 2013 13:11:10 +0400 (MSK) Received: from 87.249.28.58.tel.ru (87.249.28.58.tel.ru [87.249.28.58]) by smtp14.mail.yandex.net (nwsmtp/Yandex) with ESMTP id BA5S6fcI-BA5SYoZ4; Wed, 20 Feb 2013 13:11:10 +0400 Message-ID: <5124932E.5080205@passap.ru> Date: Wed, 20 Feb 2013 13:11:10 +0400 From: Boris Samorodov User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130113 Thunderbird/17.0.2 MIME-Version: 1.0 To: freebsd-usb@FreeBSD.org Subject: argyllcms and usb (0.1 and 1.0) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Feb 2013 09:11:13 -0000 Hello, All! I try to build argyllcms (http://www.argyllcms.com/) at FreeBSD: ----- % uname -a FreeBSD bsam.wart.ru 10.0-CURRENT FreeBSD 10.0-CURRENT #8 r246714: Tue Feb 12 22:26:27 SAMT 2013 bsam@bsam.wart.ru:/usr/obj/usr/src/sys/BB64X amd64 ----- The program uses USB-0.1 and USB-1.0. There is a remark at sources that since libusb1 does not support FreeBSD, usb-0.1 is used. When compiling I get the following error: ----- spectro/usbio.c:741: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:741:20: error: member reference base type 'div_t (int, int)' is not a structure or union descriptor = dev->descriptor; /* Copy */ ~~~^ ~~~~~~~~~~ 5 warnings and 2 errors generated. cc -c -o spectro/usbio.o -DUNIX -D_THREAD_SAFE -pipe -O2 -DARGYLLCMS -Ispectro -Ih -Inumlib -Iicc -Icgats -Irspl -Ixicc -Igamut -Ispectro -Iplot -Ilibusb -Iucmm -I/usr/local/include spectro/usbio.c ----- Relevant (imho) parts from the source file: ----- [...] #ifdef USE_LIBUSB1 # include "libusb.h" #else # include "usb.h" #endif [...] /* Get a copy of the device descriptor so we can see device params */ #ifdef USE_LIBUSB1 if (libusb_get_device_descriptor(p->ppath->dev, &descriptor) != LIBUSB_SUCCESS) error("Get device descriptor on USB port '%s' failed with %d (%s)",p->ppath->path,rv,libusb_strerror(rv)); #else descriptor = dev->descriptor; /* Copy */ #endif ----- GCC version of the error message: ----- spectro/usbio.c: In function 'usb_open_port': spectro/usbio.c:741: error: 'dev' undeclared (first use in this function) spectro/usbio.c:741: error: (Each undeclared identifier is reported only once spectro/usbio.c:741: error: for each function it appears in.) ----- Seems (from my very inexperienced in USB POV) that the program wants libusb-0.1 but gets libusb-2.0... So I'm stuck here. Questons. 1. Should I use some additional flags to build sources using libusb-0.1? 2. Is a note about FreeBSD about libusb1 is stale and lubusb1 is supported? Sould I use some flags to use libusb1? Any help is appreciated. Thanks! -- WBR, Boris Samorodov (bsam) FreeBSD Committer, http://www.FreeBSD.org The Power To Serve