Commit 16a8281f authored by Yang Tse's avatar Yang Tse
Browse files

build: avoid linkage of directly unused libraries

parent 534d2ca1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2103,6 +2103,7 @@ AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC], [
    #
    curl_cv_save_LIBS="$LIBS"
    curl_cv_gclk_LIBS="unknown"
    curl_cv_save_CURL_LIBS="$CURL_LIBS"
    #
    for x_xlibs in '' '-lrt' '-lposix4' ; do
      if test "$curl_cv_gclk_LIBS" = "unknown"; then
@@ -2196,6 +2197,7 @@ AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC], [
        AC_MSG_WARN([HAVE_CLOCK_GETTIME_MONOTONIC will not be defined])
        ac_cv_func_clock_gettime="no"
        LIBS="$curl_cv_save_LIBS"
        CURL_LIBS="$curl_cv_save_CURL_LIBS"
      ])
    fi
    #
+7 −8
Original line number Diff line number Diff line
@@ -753,7 +753,7 @@ then
    fi
    if test ! -z "$winsock_LIB"; then
      my_ac_save_LIBS=$LIBS
      LIBS="$winsock_LIB $LIBS"
      LIBS="$LIBS $winsock_LIB"
      AC_MSG_CHECKING([for gethostbyname in $winsock_LIB])
      AC_LINK_IFELSE([
        AC_LANG_PROGRAM([[
@@ -869,10 +869,11 @@ CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC

dnl **********************************************************************
dnl The preceding library checks are all potentially useful for test
dnl servers (for providing networking support).  Save the list of required
dnl libraries at this point for use while linking those test servers.
dnl servers and libtest cases which require networking and clock_gettime
dnl support.  Save the list of required libraries at this point for use
dnl while linking those test servers and programs.
dnl **********************************************************************
TEST_SERVER_LIBS=$LIBS
CURL_NETWORK_AND_TIME_LIBS=$LIBS

dnl **********************************************************************
AC_MSG_CHECKING([whether to use libgcc])
@@ -3322,22 +3323,20 @@ if test ! -z "$winsock_LIB"; then
  dnl end.

  LIBS="$LIBS $winsock_LIB"
  TEST_SERVER_LIBS="$TEST_SERVER_LIBS $winsock_LIB"

fi

dnl
dnl All the library dependencies put into $LIB apply to libcurl only.
dnl Those in $CURL_LIBS apply to the curl command-line client only.
dnl Those in $TEST_SERVER_LIBS apply to test servers only.
dnl Those in $ALL_LIBS apply to all targets, including test targets.
dnl
LIBCURL_LIBS=$LIBS

AC_SUBST(LIBCURL_LIBS)
AC_SUBST(CURL_LIBS)
AC_SUBST(TEST_SERVER_LIBS)
AC_SUBST(CURL_NETWORK_LIBS)
AC_SUBST(CURL_NETWORK_AND_TIME_LIBS)
LIBS=$ALL_LIBS  dnl LIBS is a magic variable that's used for every link

AM_CONDITIONAL(CROSSCOMPILING, test x$cross_compiling = xyes)
@@ -3473,8 +3472,8 @@ squeeze LIBS

squeeze CURL_LIBS
squeeze LIBCURL_LIBS
squeeze TEST_SERVER_LIBS
squeeze CURL_NETWORK_LIBS
squeeze CURL_NETWORK_AND_TIME_LIBS

squeeze SUPPORT_FEATURES
squeeze SUPPORT_PROTOCOLS
+1 −1
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ test1022.pl Makefile.inc notexists.pl
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@

# Dependencies (may need to be overriden)
LDADD = $(top_builddir)/lib/libcurl.la @CURL_LIBS@
LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_LIBS@
DEPENDENCIES = $(top_builddir)/lib/libcurl.la

# Mostly for Windows build targets, when using static libcurl
+26 −0
Original line number Diff line number Diff line
@@ -28,20 +28,25 @@ chkhostname_DEPENDENCIES =
chkhostname_CFLAGS = $(AM_CFLAGS)

lib500_SOURCES = lib500.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE)
lib500_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib501_SOURCES = lib501.c $(SUPPORTFILES)

lib502_SOURCES = lib502.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib502_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib503_SOURCES = lib503.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib503_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib504_SOURCES = lib504.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib504_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib505_SOURCES = lib505.c $(SUPPORTFILES)

lib506_SOURCES = lib506.c $(SUPPORTFILES)

lib507_SOURCES = lib507.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib507_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib508_SOURCES = lib508.c $(SUPPORTFILES)

@@ -74,31 +79,40 @@ lib523_SOURCES = lib523.c $(SUPPORTFILES)
lib524_SOURCES = lib524.c $(SUPPORTFILES)

lib525_SOURCES = lib525.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib525_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib526_SOURCES = lib526.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib526_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@
lib526_CPPFLAGS = $(AM_CPPFLAGS) -DLIB526

lib527_SOURCES = lib526.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib527_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@
lib527_CPPFLAGS = $(AM_CPPFLAGS) -DLIB527

lib529_SOURCES = lib525.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib529_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@
lib529_CPPFLAGS = $(AM_CPPFLAGS) -DLIB529

lib530_SOURCES = lib530.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib530_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@
lib530_CPPFLAGS = $(AM_CPPFLAGS) -DLIB530

lib532_SOURCES = lib526.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib532_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@
lib532_CPPFLAGS = $(AM_CPPFLAGS) -DLIB532

lib533_SOURCES = lib533.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib533_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib536_SOURCES = lib536.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib536_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib537_SOURCES = lib537.c $(SUPPORTFILES) $(WARNLESS)

lib539_SOURCES = lib539.c $(SUPPORTFILES)

lib540_SOURCES = lib540.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib540_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib541_SOURCES = lib541.c $(SUPPORTFILES)

@@ -119,6 +133,7 @@ lib548_CPPFLAGS = $(AM_CPPFLAGS) -DLIB548
lib549_SOURCES = lib549.c $(SUPPORTFILES)

lib555_SOURCES = lib555.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib555_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib552_SOURCES = lib552.c $(SUPPORTFILES) $(WARNLESS)

@@ -131,16 +146,19 @@ lib556_SOURCES = lib556.c $(SUPPORTFILES)
lib557_SOURCES = lib557.c $(SUPPORTFILES)

lib560_SOURCES = lib560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib560_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib574_SOURCES = lib574.c $(SUPPORTFILES)

lib575_SOURCES = lib575.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib575_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib576_SOURCES = lib576.c $(SUPPORTFILES)

lib562_SOURCES = lib562.c $(SUPPORTFILES)

lib564_SOURCES = lib564.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib564_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib565_SOURCES = lib510.c $(SUPPORTFILES)
lib565_CPPFLAGS = $(AM_CPPFLAGS) -DLIB565
@@ -160,16 +178,19 @@ lib571_SOURCES = lib571.c $(SUPPORTFILES) $(WARNLESS)
lib572_SOURCES = lib572.c $(SUPPORTFILES)

lib573_SOURCES = lib573.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) $(TSTTRACE)
lib573_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib578_SOURCES = lib578.c $(SUPPORTFILES)

lib579_SOURCES = lib579.c $(SUPPORTFILES)

lib582_SOURCES = lib582.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib582_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib583_SOURCES = lib583.c $(SUPPORTFILES)

lib585_SOURCES = lib500.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE)
lib585_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@
lib585_CPPFLAGS = $(AM_CPPFLAGS) -DLIB585

lib586_SOURCES = lib586.c $(SUPPORTFILES)
@@ -180,19 +201,24 @@ lib587_CPPFLAGS = $(AM_CPPFLAGS) -DLIB587
lib590_SOURCES = lib590.c $(SUPPORTFILES)

lib591_SOURCES = lib591.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib591_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib597_SOURCES = lib597.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib597_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib598_SOURCES = lib598.c $(SUPPORTFILES)

lib599_SOURCES = lib599.c $(SUPPORTFILES)

lib1500_SOURCES = lib1500.c $(SUPPORTFILES) $(TESTUTIL)
lib1500_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib1501_SOURCES = lib1501.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1501_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@

lib1502_SOURCES = lib1502.c $(SUPPORTFILES)

libauthretry_SOURCES = libauthretry.c $(SUPPORTFILES)

libntlmconnect_SOURCES = libntlmconnect.c $(SUPPORTFILES) $(TESTUTIL)
libntlmconnect_LDADD = $(top_builddir)/lib/libcurl.la @CURL_NETWORK_AND_TIME_LIBS@
+7 −7
Original line number Diff line number Diff line
@@ -31,42 +31,42 @@ UTIL = \

getpart_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) \
 testpart.c
getpart_LDADD = @TEST_SERVER_LIBS@
getpart_LDADD = @CURL_NETWORK_AND_TIME_LIBS@
getpart_CFLAGS = $(AM_CFLAGS)

resolve_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
 resolve.c
resolve_LDADD = @TEST_SERVER_LIBS@
resolve_LDADD = @CURL_NETWORK_AND_TIME_LIBS@
resolve_CFLAGS = $(AM_CFLAGS)

rtspd_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
 server_sockaddr.h \
 rtspd.c
rtspd_LDADD = @TEST_SERVER_LIBS@
rtspd_LDADD = @CURL_NETWORK_AND_TIME_LIBS@
rtspd_CFLAGS = $(AM_CFLAGS)

sockfilt_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
 server_sockaddr.h \
 sockfilt.c \
 $(top_srcdir)/lib/inet_pton.c
sockfilt_LDADD = @TEST_SERVER_LIBS@
sockfilt_LDADD = @CURL_NETWORK_AND_TIME_LIBS@
sockfilt_CFLAGS = $(AM_CFLAGS)

sws_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
 server_sockaddr.h \
 sws.c \
 $(top_srcdir)/lib/inet_pton.c
sws_LDADD = @TEST_SERVER_LIBS@
sws_LDADD = @CURL_NETWORK_AND_TIME_LIBS@
sws_CFLAGS = $(AM_CFLAGS)

tftpd_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
 server_sockaddr.h \
 tftpd.c \
 tftp.h
tftpd_LDADD = @TEST_SERVER_LIBS@
tftpd_LDADD = @CURL_NETWORK_AND_TIME_LIBS@
tftpd_CFLAGS = $(AM_CFLAGS)

fake_ntlm_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
 fake_ntlm.c
fake_ntlm_LDADD = @TEST_SERVER_LIBS@
fake_ntlm_LDADD = @CURL_NETWORK_AND_TIME_LIBS@
fake_ntlm_CFLAGS = $(AM_CFLAGS)