• Dmitry Safonov's avatar
    selftests: use LDLIBS for libraries instead of LDFLAGS · 3e839363
    Dmitry Safonov authored
    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 870f193d ("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: default avatarShuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: default avatarDmitry Safonov <dima@arista.com>
    Tested-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    3e839363
Makefile 182 Bytes