autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: autoconf/176: AC_CHECK_LIB fails to add OTHER-LIBRARIES to LIBS


From: Akim Demaille
Subject: Re: autoconf/176: AC_CHECK_LIB fails to add OTHER-LIBRARIES to LIBS
Date: 19 May 2001 19:35:17 +0200
User-agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (Cuyahoga Valley)

| I've just discovered that AC_SEARCH_LIBS suffers from the same problem.
| This patch attempts to fix both of them.  The change to AC_CHECK_LIB is a
| straightforward port of Erez' AC_CHECK_LIB2 macro in am-utils 6.0.6
| (aux/macros/check_lib2.m4) to the current CVS autoconf.

Hi,

I don't think this patch is right.  Nonetheless, I'd like to hear from
the other maintainers.

| With those changes, make check still passes on sparc-sun-solaris2.8, and
| the patches perform as expected for my testcase in the PR and a similar one
| for AC_SEARCH_LIBS.
| 
|         Rainer
| 
| -----------------------------------------------------------------------------
| Rainer Orth, Faculty of Technology, Bielefeld University
| 
| Email: address@hidden
| 
| 
| Mon May 14 20:14:05 2001  Rainer Orth  <address@hidden>
| 
|         * acgeneral.m4 (AC_SEARCH_LIBS): Try linking without
|         OTHER-LIBRARIES first, retry if that fails.
|         (LIBS): Likewise.

AC_CHECK_LIB

| Index: acgeneral.m4
| ===================================================================
| RCS file: /cvs/autoconf/acgeneral.m4,v
| retrieving revision 1.722
| diff -u -p -r1.722 acgeneral.m4
| --- acgeneral.m4      2001/04/27 10:35:22     1.722
| +++ acgeneral.m4      2001/05/14 20:19:01
| @@ -2624,10 +2624,14 @@ AC_DEFUN([AC_SEARCH_LIBS],
|  ac_cv_search_$1=no
|  AC_TRY_LINK_FUNC([$1], [ac_cv_search_$1="none required"])
|  test "$ac_cv_search_$1" = no && for ac_lib in $2; do
| -LIBS="-l$ac_lib $5 $ac_func_search_save_LIBS"
| +LIBS="-l$ac_lib $ac_func_search_save_LIBS"

I don't understand this.  It looks like a duplicate with the 

        |  AC_TRY_LINK_FUNC([$1], [ac_cv_search_$1="none required"])

part to me.


|  AC_TRY_LINK_FUNC([$1],
|  [ac_cv_search_$1="-l$ac_lib"
|  break])
| +LIBS="-l$ac_lib $5 $ac_func_search_save_LIBS"
| +AC_TRY_LINK_FUNC([$1],
| +[ac_cv_search_$1="-l$ac_lib $5"
| +break])
|  done
|  LIBS=$ac_func_search_save_LIBS])
|  AS_IF([test "$ac_cv_search_$1" != no],




| @@ -2662,14 +2666,20 @@ AC_DEFUN([AC_CHECK_LIB],
|  AC_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$1_$2])dnl
|  AC_CACHE_CHECK([for $2 in -l$1], ac_Lib,
|  [ac_check_lib_save_LIBS=$LIBS
| -LIBS="-l$1 $5 $LIBS"
| +LIBS="-l$1 $LIBS"

You are changing the semantics of the macro.  Nowhere is it written to
do that.  You're supposed to handle this with successive AC_CHECK_LIBs
I guess.

|  AC_TRY_LINK_FUNC([$2],
| -                 [AC_VAR_SET(ac_Lib, yes)],
| +                 [AC_VAR_SET(ac_Lib, "$1")],
|                   [AC_VAR_SET(ac_Lib, no)])
| -LIBS=$ac_check_lib_save_LIBS])
| -AS_IF([test AC_VAR_GET(ac_Lib) = yes],
| +AS_IF([test AC_VAR_GET(ac_Lib) = no],
| +LIBS="-l$1 $5 $LIBS"
| +AC_TRY_LINK_FUNC([$2],
| +                 [AC_VAR_SET(ac_Lib, "$1 $5")],
| +                 [AC_VAR_SET(ac_Lib, no)]))

Likewise.  You are changing the semantics.

| +LIBS=$ac_check_lib2_save_LIBS])
| +ac_Tmp="AC_VAR_GET(ac_Lib)"
| +AS_IF([test "$ac_Tmp" != no],
|        [m4_default([$3], [AC_DEFINE_UNQUOTED(AC_TR_CPP(HAVE_LIB$1))
| -  LIBS="-l$1 $LIBS"
| +  LIBS="-l$ac_Tmp $LIBS"
|  ])],
|        [$4])dnl
|  AC_VAR_POPDEF([ac_Lib])dnl


IMHO, you don't like AC_CHECK_LIB, you need another macro.  But
AC_CHECK_LIB is conform with its specs.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]