mbox series

[v2,0/3] selftests: fixes for undefined reference (LDFLAGS -> LDLIBS)

Message ID 20170629072459.30741-1-fathi.boudra@linaro.org
Headers show
Series selftests: fixes for undefined reference (LDFLAGS -> LDLIBS) | expand

Message

Fathi Boudra June 29, 2017, 7:24 a.m. UTC
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