Messages in this thread | | | From | Fathi Boudra <> | Subject | [PATCH v2 0/3] selftests: fixes for undefined reference (LDFLAGS -> LDLIBS) | Date | Thu, 29 Jun 2017 10:24:56 +0300 |
| |
This serie fixes undefined reference errors caused by the usage of LDFLAGS instead of LDLIBS.
The issue is GNU Make and linker specific.
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.
https://lkml.org/lkml/2010/2/10/362
tools/perf: libraries must come after objects
Link order matters.
Changes in v2: * address SeongJae Park comment: instead of replacing LDFLAGS, append LDLIBS in the right order.
Fathi Boudra (3): selftests: net: use LDLIBS instead of LDFLAGS selftests: seccomp: use LDLIBS instead of LDFLAGS selftests: timers: use LDLIBS instead of LDFLAGS
tools/testing/selftests/net/Makefile | 2 +- tools/testing/selftests/seccomp/Makefile | 4 ++-- tools/testing/selftests/timers/Makefile | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-)
-- 2.13.0
| |