Message ID | 20200212140040.126747-1-dima@arista.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 3e8393630e928767aeb23f4744518de4ea5cc35a |
Headers | show |
Series | selftests: use LDLIBS for libraries instead of LDFLAGS | expand |
On 2/12/20 7:00 AM, Dmitry Safonov wrote: > While building selftests, the following errors were observed: >> tools/testing/selftests/timens' >> gcc -Wall -Werror -pthread -lrt -ldl timens.c -o tools/testing/selftests/timens/timens >> /usr/bin/ld: /tmp/ccGy5CST.o: in function `check_config_posix_timers': >> timens.c:(.text+0x65a): undefined reference to `timer_create' >> collect2: error: ld returned 1 exit status > > Quoting commit 870f193d48c2 ("selftests: net: use LDLIBS instead of > LDFLAGS"): > > The default Makefile rule looks like: > > $(CC) $(CFLAGS) $(LDFLAGS) $@ $^ $(LDLIBS) > > When linking is done by gcc itself, no issue, but when it needs to be passed > to proper ld, only LDLIBS follows and then ld cannot know what libs to link > with. > > More detail: > https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html > > LDFLAGS > Extra flags to give to compilers when they are supposed to invoke the linker, > ‘ld’, such as -L. Libraries (-lfoo) should be added to the LDLIBS variable > instead. > > LDLIBS > Library flags or names given to compilers when they are supposed to invoke the > linker, ‘ld’. LOADLIBES is a deprecated (but still supported) alternative to > LDLIBS. Non-library linker flags, such as -L, should go in the LDFLAGS > variable. > > While at here, correct other selftests, not only timens ones. > > Reported-by: Shuah Khan <skhan@kernel.org> > Signed-off-by: Dmitry Safonov <dima@arista.com> > --- > tools/testing/selftests/futex/functional/Makefile | 2 +- > tools/testing/selftests/net/Makefile | 4 ++-- > tools/testing/selftests/rtc/Makefile | 2 +- > tools/testing/selftests/timens/Makefile | 2 +- > 4 files changed, 5 insertions(+), 5 deletions(-) > Looks good. Thanks for fixing it quickly. Please split these into 4 patches and send one for each test. For timens: Tested-by: Shuah Khan <skhan@linuxfoundation.org> thanks, -- Shuah
On 2/12/20 11:15 AM, shuah wrote: > On 2/12/20 7:00 AM, Dmitry Safonov wrote: >> While building selftests, the following errors were observed: >>> tools/testing/selftests/timens' >>> gcc -Wall -Werror -pthread -lrt -ldl timens.c -o >>> tools/testing/selftests/timens/timens >>> /usr/bin/ld: /tmp/ccGy5CST.o: in function `check_config_posix_timers': >>> timens.c:(.text+0x65a): undefined reference to `timer_create' >>> collect2: error: ld returned 1 exit status >> >> Quoting commit 870f193d48c2 ("selftests: net: use LDLIBS instead of >> LDFLAGS"): >> >> The default Makefile rule looks like: >> >> $(CC) $(CFLAGS) $(LDFLAGS) $@ $^ $(LDLIBS) >> >> When linking is done by gcc itself, no issue, but when it needs to be >> passed >> to proper ld, only LDLIBS follows and then ld cannot know what libs to >> link >> with. >> >> More detail: >> https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html >> >> >> LDFLAGS >> Extra flags to give to compilers when they are supposed to invoke the >> linker, >> ‘ld’, such as -L. Libraries (-lfoo) should be added to the LDLIBS >> variable >> instead. >> >> LDLIBS >> Library flags or names given to compilers when they are supposed to >> invoke the >> linker, ‘ld’. LOADLIBES is a deprecated (but still supported) >> alternative to >> LDLIBS. Non-library linker flags, such as -L, should go in the LDFLAGS >> variable. >> >> While at here, correct other selftests, not only timens ones. >> >> Reported-by: Shuah Khan <skhan@kernel.org> >> Signed-off-by: Dmitry Safonov <dima@arista.com> >> --- >> tools/testing/selftests/futex/functional/Makefile | 2 +- >> tools/testing/selftests/net/Makefile | 4 ++-- >> tools/testing/selftests/rtc/Makefile | 2 +- >> tools/testing/selftests/timens/Makefile | 2 +- >> 4 files changed, 5 insertions(+), 5 deletions(-) >> > > > Looks good. Thanks for fixing it quickly. > > Please split these into 4 patches and send one for each test. > > For timens: > > Tested-by: Shuah Khan <skhan@linuxfoundation.org> > In the interest of getting this fix in, I applied it to git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git fixes branch. No need to do anything. thanks, -- Shuah
On 2/13/20 8:24 PM, shuah wrote: > In the interest of getting this fix in, I applied it to > > git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git > fixes branch. > > No need to do anything. Ah, thank you! I was on other issues - sorry for the delay. Thanks, Dmitry
diff --git a/tools/testing/selftests/futex/functional/Makefile b/tools/testing/selftests/futex/functional/Makefile index 30996306cabc..23207829ec75 100644 --- a/tools/testing/selftests/futex/functional/Makefile +++ b/tools/testing/selftests/futex/functional/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 INCLUDES := -I../include -I../../ CFLAGS := $(CFLAGS) -g -O2 -Wall -D_GNU_SOURCE -pthread $(INCLUDES) -LDFLAGS := $(LDFLAGS) -pthread -lrt +LDLIBS := -lpthread -lrt HEADERS := \ ../include/futextest.h \ diff --git a/tools/testing/selftests/net/Makefile b/tools/testing/selftests/net/Makefile index b5694196430a..287ae916ec0b 100644 --- a/tools/testing/selftests/net/Makefile +++ b/tools/testing/selftests/net/Makefile @@ -27,5 +27,5 @@ KSFT_KHDR_INSTALL := 1 include ../lib.mk $(OUTPUT)/reuseport_bpf_numa: LDLIBS += -lnuma -$(OUTPUT)/tcp_mmap: LDFLAGS += -lpthread -$(OUTPUT)/tcp_inq: LDFLAGS += -lpthread +$(OUTPUT)/tcp_mmap: LDLIBS += -lpthread +$(OUTPUT)/tcp_inq: LDLIBS += -lpthread diff --git a/tools/testing/selftests/rtc/Makefile b/tools/testing/selftests/rtc/Makefile index de9c8566672a..2d93d65723c9 100644 --- a/tools/testing/selftests/rtc/Makefile +++ b/tools/testing/selftests/rtc/Makefile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 CFLAGS += -O3 -Wl,-no-as-needed -Wall -LDFLAGS += -lrt -lpthread -lm +LDLIBS += -lrt -lpthread -lm TEST_GEN_PROGS = rtctest diff --git a/tools/testing/selftests/timens/Makefile b/tools/testing/selftests/timens/Makefile index e9fb30bd8aeb..b4fd9a934654 100644 --- a/tools/testing/selftests/timens/Makefile +++ b/tools/testing/selftests/timens/Makefile @@ -2,6 +2,6 @@ TEST_GEN_PROGS := timens timerfd timer clock_nanosleep procfs exec TEST_GEN_PROGS_EXTENDED := gettime_perf CFLAGS := -Wall -Werror -pthread -LDFLAGS := -lrt -ldl +LDLIBS := -lrt -ldl include ../lib.mk