# [PATCH 2/6] Only define NEEDS_SOCKET if libsocket is usable

3 messages from 2008-08-17 to 2008-08-17. Participants: Andreas Färber, Junio C Hamano.
Thread: https://gitlist.dev/t/15048

## Andreas Färber, 2008-08-17 08:57

Subject: [PATCH 2/6] Only define NEEDS_SOCKET if libsocket is usable
Message-ID: <2EA0EACE-D8FE-476A-BAE2-7E12EE961C46@web.de>
URL: https://gitlist.dev/e/2EA0EACE-D8FE-476A-BAE2-7E12EE961C46%40web.de

```
Signed-off-by: Andreas Faerber <andreas.faerber@web.de>
---
BeOS R5 had socket functions in libnet, Haiku has them in libnetwork,
OpenSolaris has them in libxnet. Hence checking libc is not enough.

  configure.ac |    8 ++++----
  1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 7c2856e..75ec83a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -223,11 +223,11 @@ AC_LINK_IFELSE(ZLIBTEST_SRC,
  LIBS="$old_LIBS"
  AC_SUBST(NO_DEFLATE_BOUND)
  #
-# Define NEEDS_SOCKET if linking with libc is not enough (SunOS,
+# Define NEEDS_SOCKET if linking with libc is required (SunOS,
  # Patrick Mauritz).
-AC_CHECK_LIB([c], [socket],
-[NEEDS_SOCKET=],
-[NEEDS_SOCKET=YesPlease])
+AC_CHECK_LIB([socket], [socket],
+[NEEDS_SOCKET=YesPlease],
+[NEEDS_SOCKET=])
  AC_SUBST(NEEDS_SOCKET)
  test -n "$NEEDS_SOCKET" && LIBS="$LIBS -lsocket"

-- 
1.6.0.rc3.32.g8aaa

```

## Junio C Hamano, 2008-08-17 09:16

Subject: Re: [PATCH 2/6] Only define NEEDS_SOCKET if libsocket is usable
Message-ID: <7v63q080io.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v63q080io.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <2EA0EACE-D8FE-476A-BAE2-7E12EE961C46@web.de>

```
Andreas Färber <andreas.faerber@web.de> writes:

> diff --git a/configure.ac b/configure.ac
> index 7c2856e..75ec83a 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -223,11 +223,11 @@ AC_LINK_IFELSE(ZLIBTEST_SRC,
>  LIBS="$old_LIBS"
>  AC_SUBST(NO_DEFLATE_BOUND)
>  #
> -# Define NEEDS_SOCKET if linking with libc is not enough (SunOS,
> +# Define NEEDS_SOCKET if linking with libc is required (SunOS,
>  # Patrick Mauritz).
> -AC_CHECK_LIB([c], [socket],
> -[NEEDS_SOCKET=],
> -[NEEDS_SOCKET=YesPlease])
> +AC_CHECK_LIB([socket], [socket],
> +[NEEDS_SOCKET=YesPlease],
> +[NEEDS_SOCKET=])
>  AC_SUBST(NEEDS_SOCKET)
>  test -n "$NEEDS_SOCKET" && LIBS="$LIBS -lsocket"

Doesn't this force linkage with -lsocket even if -lc is enough to use
socket(2) calls?

In other words, "checking libc is not enough" is only half correct.  The
right thing to do is "check libc and if it is sufficient be happy, but
otherwise do not automatically assume -lsocket is Ok."  Something like:

AC_CHECK_LIB([c], [socket],
[NEEDS_SOCKET=],
[AC_CHECK_LIB([socket], [socket],
        	[NEEDS_SOCKET=YesPlease],
                [NEEDS_SOCKET=])])

Other patches seemed Ok from my cursory look; I do not know the
people whose Ack's were on your patch submission, though...

Thanks.

```

## Andreas Färber, 2008-08-17 11:40

Subject: Re: [PATCH 2/6] Only define NEEDS_SOCKET if libsocket is usable
Message-ID: <0380BBDB-ABC4-49D2-AF89-A30256397CFB@web.de>
URL: https://gitlist.dev/e/0380BBDB-ABC4-49D2-AF89-A30256397CFB%40web.de
In-Reply-To: <7v63q080io.fsf@gitster.siamese.dyndns.org>

```

Am 17.08.2008 um 11:16 schrieb Junio C Hamano:

> Andreas Färber <andreas.faerber@web.de> writes:
>
>> diff --git a/configure.ac b/configure.ac
>> index 7c2856e..75ec83a 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -223,11 +223,11 @@ AC_LINK_IFELSE(ZLIBTEST_SRC,
>> LIBS="$old_LIBS"
>> AC_SUBST(NO_DEFLATE_BOUND)
>> #
>> -# Define NEEDS_SOCKET if linking with libc is not enough (SunOS,
>> +# Define NEEDS_SOCKET if linking with libc is required (SunOS,
>> # Patrick Mauritz).
>> -AC_CHECK_LIB([c], [socket],
>> -[NEEDS_SOCKET=],
>> -[NEEDS_SOCKET=YesPlease])
>> +AC_CHECK_LIB([socket], [socket],
>> +[NEEDS_SOCKET=YesPlease],
>> +[NEEDS_SOCKET=])
>> AC_SUBST(NEEDS_SOCKET)
>> test -n "$NEEDS_SOCKET" && LIBS="$LIBS -lsocket"
>
> Doesn't this force linkage with -lsocket even if -lc is enough to use
> socket(2) calls?

If both libc and libsocket provide it, yes.

> In other words, "checking libc is not enough" is only half correct.   
> The
> right thing to do is "check libc and if it is sufficient be happy, but
> otherwise do not automatically assume -lsocket is Ok."  Something  
> like:
>
> AC_CHECK_LIB([c], [socket],
> [NEEDS_SOCKET=],
> [AC_CHECK_LIB([socket], [socket],
>        	[NEEDS_SOCKET=YesPlease],
>                [NEEDS_SOCKET=])])

Looks okay to me that way.

> Other patches seemed Ok from my cursory look; I do not know the
> people whose Ack's were on your patch submission, though...

Sorry for not explaining: Ingo is one of the core Haiku developers,  
and Scott is from HaikuPorts. This is the initial submission to this  
list, trying to adhere to the SubmittingPatches document.

Andreas

```
