浏览代码

usb: tools: fix a regression issue that gcc can't link to pthread

Reproduce:
ray@hr-bak:~/usb$ make -C tools/usb/
make: Entering directory `/home/ray/usb/tools/usb'
gcc -Wall -Wextra -g -lpthread -I../include -o testusb testusb.c
/tmp/cc0EMxfy.o: In function `main':
/home/ray/usb/tools/usb/testusb.c:508: undefined reference to `pthread_create'
/home/ray/usb/tools/usb/testusb.c:531: undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
make: *** [testusb] Error 1
make: Leaving directory `/home/ray/usb/tools/usb'

Comments:
In the latest version (4.7.3) of gcc compiler, it requres that
libraries must follow the object or source files like below:

"gcc hello.c -lpthread" instead of "gcc -lpthread hello.c"

And it isn't encountered at gcc version 4.7.2.
So this patch fix to move the pthread option after testusb.c.

Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Huang Rui 11 年之前
父节点
当前提交
cb292ce222
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      tools/usb/Makefile

+ 3 - 2
tools/usb/Makefile

@@ -3,11 +3,12 @@
 CC = $(CROSS_COMPILE)gcc
 CC = $(CROSS_COMPILE)gcc
 PTHREAD_LIBS = -lpthread
 PTHREAD_LIBS = -lpthread
 WARNINGS = -Wall -Wextra
 WARNINGS = -Wall -Wextra
-CFLAGS = $(WARNINGS) -g $(PTHREAD_LIBS) -I../include
+CFLAGS = $(WARNINGS) -g -I../include
+LDFLAGS = $(PTHREAD_LIBS)
 
 
 all: testusb ffs-test
 all: testusb ffs-test
 %: %.c
 %: %.c
-	$(CC) $(CFLAGS) -o $@ $^
+	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
 
 
 clean:
 clean:
 	$(RM) testusb ffs-test
 	$(RM) testusb ffs-test