Convert CHECK to SEARCH to avoid unnecessarily linking in new libs

Ton Voon ton.voon at opsera.com
Thu Oct 1 10:02:56 CEST 2009


Hi Allan,

On 30 Sep 2009, at 00:58, Allan Clark wrote:

> CVS delta 1.147 -> 1.148 includes un-dnl-ing some AC_CHECK_LIBS for  
> USL/SVR4 -derivative Unix environments.
>
> Note that the act of CHECK_LIBS (main) -- which is used to avoid  
> having to give an entry point/label -- is also replaced by the  
> actual name of an entry point.
>
> For details, see also:
>
> http://www.gnu.org/software/autoconf/manual/html_node/Libraries.html
>
>
> The following change converts this Solaris edit to a SEARCH rather  
> than a CHECK, which works on all platforms, and only adds additional  
> librarires if the mentioned linker entry points are not already  
> valid in the current list of libraries:
>
>
> --- configure.in.solaris	2009-09-30 00:48:17.000000000 +0100
> +++ configure.in	2009-09-30 00:51:37.000000000 +0100
> @@ -101,9 +101,8 @@
>
>
>  dnl Checks for library functions.
> -AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
> -AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
> -AC_SUBST(SOCKETLIBS)
> +AC_SEARCH_LIBS([getservbyname],[nsl])
> +AC_SEARCH_LIBS([connect],[socket])
>  AC_CHECK_FUNCS(initgroups setenv strdup strstr strtoul unsetenv)
>
>  AC_MSG_CHECKING(for type of socket size)
>
>
>
> Note: this also drops the need for "SOCKETLIBS" tracking.  Libs add  
> the nsl (NameServices lib) and socket (yeah, socket) libraries only  
> if the pre-existing libraries (libc, libC, et al) don't already  
> provde the lib.
>
> This check is really intended for the merge-point where sockets  
> moved from being environmental things to in-kernel things, and not  
> all executables wanted to link with sockets included by default.

Good point re: AC_SEARCH_LIBS rather than AC_CHECK_LIB, and good point  
re: checking for actual functions.

However, I would still want SOCKETLIBS to be set otherwise the  
libraries will get linked to other parts of Nagios that do not need  
it, like CGIs and nagiostats. So I propose:

  dnl Checks for library functions.
-AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
-AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
+AC_SEARCH_LIBS([getservbyname],[nsl],[SOCKETLIBS="$SOCKETLIBS -lnsl"])
+AC_SEARCH_LIBS([connect],[socket],[SOCKETLIBS="$SOCKETLIBS -lsocket"])
  AC_SUBST(SOCKETLIBS)
  AC_CHECK_FUNCS(initgroups setenv strdup strstr strtoul unsetenv)

Comments?

Ton

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.monitoring-lists.org/archive/developers/attachments/20091001/c8d42dc5/attachment.html>
-------------- next part --------------
------------------------------------------------------------------------------
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
-------------- next part --------------
_______________________________________________
Nagios-devel mailing list
Nagios-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-devel


More information about the Developers mailing list