[Libreoffice-commits] .: configure.in "Ensure AC_CHECK_LIB/AC_SEARCH_LIBS do not poison LIBS"

Stephan Bergmann sbergman at redhat.com
Fri Feb 3 07:34:02 PST 2012


I hope the below does not cause any problems for cases that actually 
evaluated AC_CHECK_LIB/AC_SEARCH_LIBS for the side-effect of modifying LIBS.

There was one case of a sequence of AC_CHECK_LIB, which indeed looks 
like doing it just for the side-effect, so I left that alone (see "some 
systems need this. Like Ubuntu...." below).

I did not find any mention of @LIBS@ in our code base (outside of dmake, 
which has its own configure).

Stephan

On 02/03/2012 04:23 PM, Stephan Bergmann wrote:
>   configure.in |   49 +++++++++++++++++++++++++++++++++----------------
>   1 file changed, 33 insertions(+), 16 deletions(-)
>
> New commits:
> commit e612f026de6ca1153c57fb10f0fa75725425a301
> Author: Stephan Bergmann<sbergman at redhat.com>
> Date:   Fri Feb 3 16:12:00 2012 +0100
>
>      Ensure AC_CHECK_LIB/AC_SEARCH_LIBS do not poison LIBS
>
>      ... as that would interfere with subsequent such checks, esp. on Linunx versions
>      that do not yet incorporate
>      <https://fedoraproject.org/wiki/Features/ChangeInImplicitDSOLinking>  and would
>      e.g. not notice they need -lkrb5 in "AC_SEARCH_LIBS(krb5_sendauth,[krb5..." if
>      they earlied did "AC_CHECK_LIB([cups],..." (where libcups.so links against
>      libkrb5.so).
>
> diff --git a/configure.in b/configure.in
> index 6c255bb..4d89df0 100644
> --- a/configure.in
> +++ b/configure.in
> @@ -3169,7 +3169,7 @@ dnl check for cups support
>   dnl ===================================================================
>   if test "$test_cups" = "yes"; then
>       AC_MSG_CHECKING([whether cups support is present])
> -    AC_CHECK_LIB(cups, cupsPrintFiles)
> +    AC_CHECK_LIB([cups], [cupsPrintFiles], [:])
>       AC_CHECK_HEADER(cups/cups.h, AC_DEFINE(HAVE_CUPS_H))
>       if test "$ac_cv_lib_cups_cupsPrintFiles" != "yes" -a "$ac_cv_header_cups_cups_h" != "yes"; then
>           AC_MSG_ERROR([Could not find CUPS. Install libcupsys2-dev or cups???-devel.])
> @@ -4301,7 +4301,7 @@ if test "$with_alloc" = "tcmalloc"; then
>       if ! echo $host_cpu | grep -E 'i[[3456]]86' 2>/dev/null>/dev/null; then
>           AC_MSG_ERROR([tcmalloc only available/usable on ix86])
>       fi
> -    AC_CHECK_LIB(tcmalloc, malloc, [],
> +    AC_CHECK_LIB([tcmalloc], [malloc], [:],
>           [AC_MSG_ERROR(tcmalloc not found or functional. Install the Google Profiling Tools)], [])
>       ALLOC="TCMALLOC";
>   fi
> @@ -4310,7 +4310,7 @@ if test "$with_alloc" = "jemalloc"; then
>           AC_MSG_RESULT(jemalloc)
>           save_CFLAGS=$CFLAGS
>           CFLAGS="$CFLAGS -pthread"
> -        AC_CHECK_LIB(jemalloc, malloc, [],
> +        AC_CHECK_LIB([jemalloc], [malloc], [:],
>               [AC_MSG_ERROR(jemalloc not found or functional. Install the jemalloc allocator.)], [])
>           ALLOC="JEMALLOC";
>           CFLAGS=$save_CFLAGS
> @@ -5416,7 +5416,7 @@ if test "$with_system_expat" = "yes"; then
>       SYSTEM_EXPAT=YES
>       AC_CHECK_HEADER(expat.h, [],
>           [AC_MSG_ERROR(expat.h not found. install expat)], [])
> -    AC_CHECK_LIB(expat, XML_ParserCreate, [],
> +    AC_CHECK_LIB([expat], [XML_ParserCreate], [:],
>       [AC_MSG_RESULT(expat library not found or functional.)], [])
>       MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS libexpat-1.dll"
>   else
> @@ -6044,7 +6044,7 @@ if test "$ENABLE_MYSQLC" = "YES"; then
>           AC_LANG_PUSH([C++])
>           AC_CHECK_HEADER(mysql_driver.h, [],
>                       [AC_MSG_ERROR(mysql_driver.h not found. install MySQL C++ Connectivity)], [])
> -        AC_CHECK_LIB(mysqlcppconn, main, [],
> +        AC_CHECK_LIB([mysqlcppconn], [main], [:],
>                       [AC_MSG_ERROR(MySQL C++ Connectivity lib not found or functional)], [])
>           AC_MSG_CHECKING([version])
>           AC_RUN_IFELSE([AC_LANG_SOURCE([[
> @@ -6143,15 +6143,20 @@ if test "x$enable_postgresql_sdbc" != "xno"; then
>           # MacOS X has system MIT Kerberos 5 since 10.4
>           if test "$with_krb5" != "no"; then
>               WITH_KRB5=YES
> +            save_LIBS=$LIBS
>               AC_SEARCH_LIBS(com_err, [com_err 'com_err -lssl -lcrypto' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
>                   [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
> +            LIBS=$save_LIBS
>               AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
>                   [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
> +            LIBS=$save_LIBS
>           fi
>           if test "$with_gssapi" != "no"; then
>             WITH_GSSAPI=YES
> +          save_LIBS=$LIBS
>             AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [],
>                   [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
> +          LIBS=$save_LIBS
>           fi
>           ;;
>       WINNT)
> @@ -6162,29 +6167,39 @@ if test "x$enable_postgresql_sdbc" != "xno"; then
>       Linux|GNU|*BSD|DragonFly)
>           if test "$with_krb5" != "no"; then
>               WITH_KRB5=YES
> +            save_LIBS=$LIBS
>               AC_SEARCH_LIBS(com_err, [com_err 'com_err -lssl -lcrypto' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
>                   [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
> +            LIBS=$save_LIBS
>               AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
>                   [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
> +            LIBS=$save_LIBS
>           fi
>           if test "$with_gssapi" != "no"; then
>               WITH_GSSAPI=YES
> +            save_LIBS=$LIBS
>               AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [],
>                   [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
> +            LIBS=$save_LIBS
>           fi
>           ;;
>       *)
>           if test "$with_krb5" = "yes"; then
>               WITH_KRB5=YES
> +            save_LIBS=$LIBS
>               AC_SEARCH_LIBS(com_err, [com_err 'com_err -lssl -lcrypto' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
>                   [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
> +            LIBS=$save_LIBS
>               AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
>                   [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
> +            LIBS=$save_LIBS
>           fi
>           if test "$with_gssapi" = "yes"; then
>               WITH_GSSAPI=YES
> +            save_LIBS=$LIBS
>               AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [],
>                   [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
> +            LIBS=$save_LIBS
>           fi
>       esac
>
> @@ -6226,7 +6241,7 @@ if test "x$enable_postgresql_sdbc" != "xno"; then
>           CPPFLAGS="${CPPFLAGS} ${POSTGRESQL_INC}"
>           LIBS="${LIBS} ${POSTGRESQL_LIB}"
>           AC_CHECK_HEADER([libpq-fe.h], [], [AC_MSG_ERROR([libpq-fe.h is needed])], [])
> -        AC_CHECK_LIB(pq, PQconnectdbParams, [],
> +        AC_CHECK_LIB([pq], [PQconnectdbParams], [:],
>               [AC_MSG_ERROR(libpq not found or too old. Need>= 9.0)], [])
>           CFLAGS=$save_CFLAGS
>           CPPFLAGS=$save_CPPFLAGS
> @@ -6621,9 +6636,9 @@ if test "$enable_ldap" != "no"; then
>           WITH_OPENLDAP=YES
>           AC_CHECK_HEADERS(ldap.h, [],
>               [AC_MSG_ERROR(ldap.h not found. install openldap libs)], [])
> -	AC_CHECK_LIB(ldap, ldap_simple_bind_s, [],
> +	AC_CHECK_LIB([ldap], [ldap_simple_bind_s], [:],
>   	    [AC_MSG_ERROR(openldap lib not found or functional)], [])
> -	AC_CHECK_LIB(ldap, ldap_set_option, [],
> +	AC_CHECK_LIB([ldap], [ldap_set_option], [:],
>   	    [AC_MSG_ERROR(openldap lib not found or functional)], [])
>       elif test "$enable_mozilla" != "no"; then
>           AC_MSG_RESULT([Mozilla])
> @@ -7198,7 +7213,7 @@ dnl ===================================================================
>   AC_MSG_CHECKING([whether to use Xrender])
>   if test "$test_xrender" = "yes"; then
>       AC_MSG_RESULT([yes])
> -    AC_CHECK_LIB(Xrender, XRenderQueryVersion, [],
> +    AC_CHECK_LIB([Xrender], [XRenderQueryVersion], [:],
>         [AC_MSG_ERROR(libXrender not found or functional)], [])
>       AC_MSG_CHECKING([which Xrender headers to use])
>       if test "$with_system_xextensions_headers" != "no"; then
> @@ -7226,7 +7241,7 @@ if test "$test_randr" = "yes" -a \( "$enable_randr" = "yes" -o "$enable_randr" =
>               AC_CHECK_HEADER(X11/extensions/Xrandr.h, [],
>                           [AC_MSG_ERROR([X11/extensions/Xrandr.h could not be found. X11 dev missing?])], [])
>               XRANDR_CFLAGS=" "
> -            AC_CHECK_LIB(Xrandr, XRRQueryExtension, [],
> +            AC_CHECK_LIB([Xrandr], [XRRQueryExtension], [:],
>                 [ AC_MSG_ERROR(libXrandr not found or functional) ], [])
>               XRANDR_LIBS="-lXrandr "
>               ENABLE_RANDR="TRUE"
> @@ -7339,7 +7354,7 @@ if test "$with_system_hunspell" = "yes"; then
>               AC_CHECK_HEADER(hunspell/hunspell.hxx, [ HUNSPELL_CFLAGS=-I/usr/include/hunspell ],
>               [AC_MSG_ERROR(hunspell headers not found.)], [])
>               ], [])
> -        AC_CHECK_LIB(hunspell, main, [],
> +        AC_CHECK_LIB([hunspell], [main], [:],
>              [ AC_MSG_ERROR(hunspell library not found.) ], [])
>           HUNSPELL_LIBS=-lhunspell
>       fi
> @@ -7397,7 +7412,7 @@ if test "$with_system_mythes" = "yes"; then
>       if test "$MYTHES_PKGCONFIG" = "no"; then
>           AC_CHECK_HEADER(mythes.hxx, [],
>               [ AC_MSG_ERROR(mythes.hxx headers not found.)], [])
> -        AC_CHECK_LIB(mythes-1.2, main, [],
> +        AC_CHECK_LIB([mythes-1.2], [main], [:],
>               [ MYTHES_FOUND=no], [])
>       if test "$MYTHES_FOUND" = "no"; then
>           AC_CHECK_LIB(mythes, main, [MYTHES_FOUND=yes],
> @@ -7427,11 +7442,13 @@ if test "$with_system_lpsolve" = "yes"; then
>       SYSTEM_LPSOLVE=YES
>       AC_CHECK_HEADER(lpsolve/lp_lib.h, [],
>          [ AC_MSG_ERROR(lpsolve headers not found.)], [])
> +    save_LIBS=$LIBS
>       # some systems need this. Like Ubuntu....
>       AC_CHECK_LIB(m, floor)
>       AC_CHECK_LIB(dl, dlopen)
> -    AC_CHECK_LIB(lpsolve55, make_lp, ,
> +    AC_CHECK_LIB([lpsolve55], [make_lp], [:],
>           [ AC_MSG_ERROR(lpsolve library not found or too old.)], [])
> +    LIBS=$save_LIBS
>       MINGW_EXTERNAL_DLLS="$MINGW_EXTERNAL_DLLS lpsolve55.dll"
>   else
>       AC_MSG_RESULT([internal])
> @@ -8001,9 +8018,9 @@ else
>               save_LDFLAGS=$LDFLAGS
>               LDFLAGS="$LDFLAGS -lm"
>               AC_MSG_RESULT([yes])
> -            AC_CHECK_LIB(GL, main, [],
> +            AC_CHECK_LIB([GL], [main], [:],
>                         [AC_MSG_ERROR(libGL not installed or functional)], [])
> -            AC_CHECK_LIB(GLU, main, [],
> +            AC_CHECK_LIB([GLU], [main], [:],
>                         [AC_MSG_ERROR(libGLU not installed or functional)], [])
>               ENABLE_OPENGL=TRUE
>               LDFLAGS=$save_LDFLAGS
> @@ -9370,7 +9387,7 @@ elif test "$_os" = "Linux" -o "$_os" = "FreeBSD"; then
>           if test "$_os" = "Linux"; then
>               XINERAMA_EXTRA_LIBS="$XINERAMA_EXTRA_LIBS -ldl"
>           fi
> -        AC_CHECK_LIB(Xinerama, XineramaIsActive, [],
> +        AC_CHECK_LIB([Xinerama], [XineramaIsActive], [:],
>               [AC_MSG_ERROR(Xinerama not functional?)], [$XINERAMA_EXTRA_LIBS])
>       else
>           AC_MSG_RESULT([no, libXinerama not found or wrong architecture.])


More information about the LibreOffice mailing list