[torquedev] torquedev Digest, Vol 71, Issue 7

Michael Jennings mej at lbl.gov
Mon Oct 31 12:35:45 MDT 2011


On Monday, 31 October 2011, at 08:38:41 (-0500),
Alan Wild wrote:

> Disappoointed to see that TORQUE 2.5.9 is still behaving like 2.5.8...
> aparantley my (totally trivial) patch hasn't been looked at yet.
> 
> Here's an updated one against torque-2.5.9-snap.201110240923
> 
> --- configure.ac.old    2011-10-31 07:43:38.868344000 -0500
> +++ configure.ac        2011-10-31 07:44:03.099929000 -0500
> @@ -1069,6 +1069,7 @@
>    #include <sys/ucred.h>
>    #endif
>    #ifdef HAVE_SYS_SOCKET_H
> +  #define _GNU_SOURCE 1
>    #include <sys/socket.h>
>    #endif
>    #ifdef HAVE_SYS_UN_H
> 
> Since this is patching configure.ac.... someone would also need to re-run
> autoconf  before building a release.
> 
> Not clear if this is the "right" fix or not.  The problem I'm trying to
> solve is the configure script tests for CMSG_SPACE which, in turn, affects
> whether UNIX Domain Socket support is turned on by default.  On older
> versions of Glibc this test works just fine... howevert, because of changes
> in glibc, the current tests fails with a compile error... which
> disables Unix Domain Socket support by default. (whereas previously it was
> enabled by default).
> 
> The "-D_GNU_SOURCE" fix that went into 2.5.8 allows Torque to build cleanly
> when you explicitly request Unix Domain Socket support, but the patch
> failed to take into account the test that is performed by configure.  The
> itself isn't using the flag so the test always fails.  I'll include an
> excerpt from an unpactched config.log below.  You'll clearly see where the
> test is failing on a build error... and it's because the ucred struct is
> #ifdef'd out before a _GNU_SOURCE flag.
> 
> Passing -D_GNU_SOURCE also must be used by the configure tests.  My patch
> does this for the one place where I know this is relevant.

Use of _GNU_SOURCE is the correct solution and is required since glibc
2.8 according to the unix(7) man page under "Ancillary Messages:"

http://linux.die.net/man/7/unix

So _GNU_SOURCE must be defined *any* time sys/socket.h is expected to
yield the definition for "struct ucred," including during configure.

Michael

-- 
Michael Jennings <mej at lbl.gov>
Linux Systems and Cluster Engineer
High-Performance Computing Services
Bldg 50B-3209E      W: 510-495-2687
MS 050C-3396        F: 510-486-8615


More information about the torquedev mailing list