GNU bug report logs - #36342
accept4 detection on illumos needs -lsocket -lnsl

Previous Next

Package: guile;

Reported by: Michal Nowak <mnowak <at> startmail.com>

Date: Sun, 23 Jun 2019 15:19:01 UTC

Severity: normal

To reply to this bug, email your comments to 36342 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guile <at> gnu.org:
bug#36342; Package guile. (Sun, 23 Jun 2019 15:19:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Michal Nowak <mnowak <at> startmail.com>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Sun, 23 Jun 2019 15:19:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Michal Nowak <mnowak <at> startmail.com>
To: bug-guile <at> gnu.org
Subject: accept4 detection on illumos needs -lsocket -lnsl
Date: Sun, 23 Jun 2019 14:18:10 +0200
Hello,

GNU Guile 2.2.5 build fails because accept4 detection on OpenIndiana 
2019.04 (illumos distribution) [1] fails due to "-lsocket -lnsl" not 
being part of the linking process and the build system then tries to 
build it's vendored accept4:

   CC       accept4.lo
In file included from /usr/include/sys/time.h:462:0,
                  from ./sys/time.h:39,
                  from /usr/include/sys/select.h:53,
                  from ./sys/select.h:36,
                  from /usr/include/sys/types.h:640,
                  from ./sys/types.h:28,
                  from ./sys/socket.h:51,
                  from accept4.c:20:
./sys/socket.h:1034:1: error: conflicting types for 'accept4'
  _GL_FUNCDECL_SYS (accept4, int,
  ^
In file included from ./sys/socket.h:58:0,
                  from accept4.c:20:
/usr/include/sys/socket.h:540:12: note: previous declaration of
'accept4' was here
  extern int accept4(int, struct sockaddr *_RESTRICT_KYWD, Psocklen_t, 
int);
             ^~~~~~~
accept4.c:32:1: error: conflicting types for 'accept4'
  accept4 (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int 
flags)
  ^~~~~~~
In file included from ./sys/socket.h:58:0,
                  from accept4.c:20:
/usr/include/sys/socket.h:540:12: note: previous declaration of
'accept4' was here
  extern int accept4(int, struct sockaddr *_RESTRICT_KYWD, Psocklen_t, 
int);
             ^~~~~~~

This is fixed by LIBS="-lsocket -lnsl" in the build environment.

This was in the past reported both on the guile-user [2] and 
openindiana-discuss [3] mailing lists, where you also can see the build 
error in full.

Thanks,
Michal

[1] https://illumos.org/man/3socket/accept4
[2] https://lists.gnu.org/archive/html/guile-user/2018-03/msg00006.html
[3] 
https://openindiana.org/pipermail/openindiana-discuss/2018-March/021931.html




Information forwarded to bug-guile <at> gnu.org:
bug#36342; Package guile. (Fri, 28 Jun 2019 22:36:02 GMT) Full text and rfc822 format available.

Message #8 received at 36342 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Michal Nowak <mnowak <at> startmail.com>
Cc: bug-gnulib <at> gnu.org, 36342 <at> debbugs.gnu.org
Subject: Re: bug#36342: accept4 detection on illumos needs -lsocket -lnsl
Date: Fri, 28 Jun 2019 18:35:06 -0400
Hi Michal,

Michal Nowak <mnowak <at> startmail.com> writes:

> GNU Guile 2.2.5 build fails because accept4 detection on OpenIndiana
> 2019.04 (illumos distribution) [1] fails due to "-lsocket -lnsl" not
> being part of the linking process and the build system then tries to
> build it's vendored accept4:

I believe this is an issue in gnulib, because the relevant autoconf
detection code, as well as the replacement implementation that fails to
compile on OpenIndiana, are imported from gnulib.

I've CC'd the bug-gnulib <at> gnu.org mailing list, for input from the gnulib
developers.

Thanks for this report,

      Mark


>    CC       accept4.lo
> In file included from /usr/include/sys/time.h:462:0,
>                   from ./sys/time.h:39,
>                   from /usr/include/sys/select.h:53,
>                   from ./sys/select.h:36,
>                   from /usr/include/sys/types.h:640,
>                   from ./sys/types.h:28,
>                   from ./sys/socket.h:51,
>                   from accept4.c:20:
> ./sys/socket.h:1034:1: error: conflicting types for 'accept4'
>   _GL_FUNCDECL_SYS (accept4, int,
>   ^
> In file included from ./sys/socket.h:58:0,
>                   from accept4.c:20:
> /usr/include/sys/socket.h:540:12: note: previous declaration of
> 'accept4' was here
>   extern int accept4(int, struct sockaddr *_RESTRICT_KYWD, Psocklen_t,
> int);
>              ^~~~~~~
> accept4.c:32:1: error: conflicting types for 'accept4'
>   accept4 (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int
> flags)
>   ^~~~~~~
> In file included from ./sys/socket.h:58:0,
>                   from accept4.c:20:
> /usr/include/sys/socket.h:540:12: note: previous declaration of
> 'accept4' was here
>   extern int accept4(int, struct sockaddr *_RESTRICT_KYWD, Psocklen_t,
> int);
>              ^~~~~~~
>
> This is fixed by LIBS="-lsocket -lnsl" in the build environment.
>
> This was in the past reported both on the guile-user [2] and
> openindiana-discuss [3] mailing lists, where you also can see the
> build error in full.
>
> Thanks,
> Michal
>
> [1] https://illumos.org/man/3socket/accept4
> [2] https://lists.gnu.org/archive/html/guile-user/2018-03/msg00006.html
> [3]
> https://openindiana.org/pipermail/openindiana-discuss/2018-March/021931.html




Information forwarded to bug-guile <at> gnu.org:
bug#36342; Package guile. (Sat, 29 Jun 2019 00:07:02 GMT) Full text and rfc822 format available.

Message #11 received at 36342 <at> debbugs.gnu.org (full text, mbox):

From: Bruno Haible <bruno <at> clisp.org>
To: bug-gnulib <at> gnu.org
Cc: Mark H Weaver <mhw <at> netris.org>, 36342 <at> debbugs.gnu.org,
 Michal Nowak <mnowak <at> startmail.com>
Subject: Re: bug#36342: accept4 detection on illumos needs -lsocket -lnsl
Date: Sat, 29 Jun 2019 02:06:05 +0200
Hi Michal and Mark,

> > GNU Guile 2.2.5 build fails because accept4 detection on OpenIndiana
> > 2019.04 (illumos distribution) [1] fails due to "-lsocket -lnsl" not
> > being part of the linking process and the build system then tries to
> > build it's vendored accept4:
> 
> I believe this is an issue in gnulib, because the relevant autoconf
> detection code, as well as the replacement implementation that fails to
> compile on OpenIndiana, are imported from gnulib.
> 
> I've CC'd the bug-gnulib <at> gnu.org mailing list, for input from the gnulib
> developers.
> 
> Thanks for this report,
> 
>       Mark
> 
> 
> >    CC       accept4.lo
> > In file included from /usr/include/sys/time.h:462:0,
> >                   from ./sys/time.h:39,
> >                   from /usr/include/sys/select.h:53,
> >                   from ./sys/select.h:36,
> >                   from /usr/include/sys/types.h:640,
> >                   from ./sys/types.h:28,
> >                   from ./sys/socket.h:51,
> >                   from accept4.c:20:
> > ./sys/socket.h:1034:1: error: conflicting types for 'accept4'
> >   _GL_FUNCDECL_SYS (accept4, int,
> >   ^
> > In file included from ./sys/socket.h:58:0,
> >                   from accept4.c:20:
> > /usr/include/sys/socket.h:540:12: note: previous declaration of
> > 'accept4' was here
> >   extern int accept4(int, struct sockaddr *_RESTRICT_KYWD, Psocklen_t,
> > int);
> >              ^~~~~~~
> > accept4.c:32:1: error: conflicting types for 'accept4'
> >   accept4 (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int
> > flags)
> >   ^~~~~~~
> > In file included from ./sys/socket.h:58:0,
> >                   from accept4.c:20:
> > /usr/include/sys/socket.h:540:12: note: previous declaration of
> > 'accept4' was here
> >   extern int accept4(int, struct sockaddr *_RESTRICT_KYWD, Psocklen_t,
> > int);
> >              ^~~~~~~
> >
> > This is fixed by LIBS="-lsocket -lnsl" in the build environment.
> >
> > This was in the past reported both on the guile-user [2] and
> > openindiana-discuss [3] mailing lists, where you also can see the
> > build error in full.
> >
> > Thanks,
> > Michal
> >
> > [1] https://illumos.org/man/3socket/accept4
> > [2] https://lists.gnu.org/archive/html/guile-user/2018-03/msg00006.html
> > [3]
> > https://openindiana.org/pipermail/openindiana-discuss/2018-March/021931.html

Thanks for the report. This patch fixes it. Pushed. Now, guile needs to pick it
up.


2019-06-28  Bruno Haible  <bruno <at> clisp.org>

	accept4: Fix compilation error on OpenIndiana.
	Reported by Michal Nowak <mnowak <at> startmail.com>
	via Mark H Weaver <mhw <at> netris.org>.
	* m4/accept.m4 (gl_FUNC_ACCEPT4): Test whether accept4 is declared, not
	whether it exists as a function.

diff --git a/m4/accept4.m4 b/m4/accept4.m4
index b38ce30..9b976fb 100644
--- a/m4/accept4.m4
+++ b/m4/accept4.m4
@@ -1,4 +1,4 @@
-# accept4.m4 serial 2
+# accept4.m4 serial 3
 dnl Copyright (C) 2009-2019 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -11,8 +11,11 @@ AC_DEFUN([gl_FUNC_ACCEPT4],
   dnl Persuade glibc <sys/socket.h> to declare accept4().
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
 
-  AC_CHECK_FUNCS_ONCE([accept4])
-  if test $ac_cv_func_accept4 != yes; then
+  AC_CHECK_DECLS([accept4], , , [[
+#include <sys/types.h>
+#include <sys/socket.h>
+]])
+  if test $ac_cv_have_decl_accept4 != yes; then
     HAVE_ACCEPT4=0
   fi
 ])





This bug report was last modified 6 years and 53 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.