[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avrdude-dev] [bug #36713] config assumes obsolete libusb API
From: |
anonymous |
Subject: |
[avrdude-dev] [bug #36713] config assumes obsolete libusb API |
Date: |
Sat, 23 Jun 2012 22:02:56 +0000 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2 |
URL:
<http://savannah.nongnu.org/bugs/?36713>
Summary: config assumes obsolete libusb API
Project: AVR Downloader/UploaDEr
Submitted by: None
Submitted on: Sat 23 Jun 2012 10:02:55 PM UTC
Category: None
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: None
Status: None
Privacy: Public
Assigned to: None
Originator Name: Jeff Inman
Originator Email: address@hidden
Open/Closed: Open
Discussion Lock: Any
_______________________________________________________
Details:
If you build libusb 1.0.9, and then using that to build avrdude, you might
have a config something like this (with tcsh):
(setenv CPPFLAGS -I.../libusb-1.0.9/installed/include/libusb-1.0; setenv
LDFLAGS -L.../libusb-1.0.9/installed/lib; setenv LIBS -lusb-1.0; ./configure
--prefix=`pwd`/installed )
The last line in the build process would look something like this:
gcc -Wall -Wno-pointer-sign -g -O2 -L.../libusb-1.0.9/installed/lib -o
avrdude avrdude-main.o avrdude-term.o ./libavrdude.a -lusb-1.0 -lm
-lreadline -lncurses -ltermcap -lusb-1.0
clearly, we're linking with libusb, but running avrdude with a usb programmer
then spits out this message:
avrdude: error: no usb support. Please compile again with libusb
installed.
avrdude: programmer operation not supported
avrdude done. Thank you.
Turns out the problem is this part of the configure file [line 4499]:
LIBS="-lusb $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char usb_get_string_simple ();
int
main ()
{
return usb_get_string_simple ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_usb_usb_get_string_simple=yes
else
ac_cv_lib_usb_usb_get_string_simple=no
fi
The problem is that get_string_simple() is obsolete
libusb-1.0.(http://libusb.org/wiki/APIs says the 0.1 API is "deprecated and
unmaintained since many years") There is apparently a libusb-compat-0.1
version that provides 0.1 API via the 1.0 substrate.
You probably have lots of other things to worry about, before updating your
USB interaction. But I find lots of evidence on the web of folks running into
this and being frustrated. I suppose a temporary improvement would be to
produce a better warning, maybe something like this:
avrdude: error: no usb support via libusb-0.1. Please compile again with
libusb-0.1 installed.
avrdude: programmer operation not supported
avrdude done. Thank you.
Thanks for the tool, though.
Jeff
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?36713>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [avrdude-dev] [bug #36713] config assumes obsolete libusb API,
anonymous <=