usb-device: Check that we are not using broken libusb-1.0 library
This commit is contained in:
1 parent
5e79d651ca
commit
9a5f940046
2 files changed
+10
-1
No files matched your search
+1
-1
@@ -11,7 +11,7 @@ HOST_CC = $(HOST_COMPILE)$(CC)
|
|||||||
|
|
||||||
CPPFLAGS += -DVERSION=\"$(VERSION)\" -DBUILD_DATE="\"$(BUILD_DATE)\"" -D_POSIX_C_SOURCE=200809L
|
CPPFLAGS += -DVERSION=\"$(VERSION)\" -DBUILD_DATE="\"$(BUILD_DATE)\"" -D_POSIX_C_SOURCE=200809L
|
||||||
CFLAGS += -W -Wall -O2 -pedantic -std=c99
|
CFLAGS += -W -Wall -O2 -pedantic -std=c99
|
||||||
LIBS += -lusb
|
LIBS += -lusb -ldl
|
||||||
|
|
||||||
DEPENDS = Makefile ../config.mk
|
DEPENDS = Makefile ../config.mk
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,11 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Enable RTLD_DEFAULT for glibc */
|
||||||
|
#ifndef _GNU_SOURCE
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
@@ -24,6 +29,7 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include <dlfcn.h>
|
||||||
|
|
||||||
#include <usb.h>
|
#include <usb.h>
|
||||||
|
|
||||||
@@ -316,6 +322,9 @@ struct usb_device_info * usb_open_and_wait_for_device(void) {
|
|||||||
void (*prev)(int);
|
void (*prev)(int);
|
||||||
static char progress[] = {'/','-','\\', '|'};
|
static char progress[] = {'/','-','\\', '|'};
|
||||||
|
|
||||||
|
if ( dlsym(RTLD_DEFAULT, "libusb_init") )
|
||||||
|
ERROR_RETURN("You are trying to use broken libusb-1.0 library (either directly or via wrapper) which has slow listing of usb devices. It cannot be used for flashing or cold-flashing. Please use libusb 0.1.", NULL);
|
||||||
|
|
||||||
usb_init();
|
usb_init();
|
||||||
usb_find_busses();
|
usb_find_busses();
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user