On Mon, 2011-05-23 at 16:10 +0200, Sumit Bose wrote:
On Sun, May 22, 2011 at 05:21:23PM -0400, Stephen Gallagher wrote:
>
>
> On May 22, 2011, at 12:37 PM, Jakub Hrozek <jhrozek(a)redhat.com> wrote:
>
> > On 05/20/2011 09:44 AM, Sumit Bose wrote:
> >> On Fri, May 20, 2011 at 09:34:06AM +0200, Jakub Hrozek wrote:
> >>> On 05/19/2011 05:12 PM, Sumit Bose wrote:
> >>>> Hi,
> >>>>
> >>>> there are a couple of places where we set _GNU_SOURCE in the
source
> >>>> files to enable glibc specific extensions. If by chance
> >>>> '-D_GNU_SOURCE=1' is set on the gcc command line, e.g. by
using the
> >>>> CFLAGS from a pkg-config output (yes, there are examples :-), we
get
> >>>> '"_GNU_SOURCE" redefined' message during
compilation. With the attached
> >>>> patch _GNU_SOURCE is only defined in the sources if not already
set.
> >>>>
> >>>> An alternative fix would be to remove all defines of _GNU_SOURCE
from
> >>>> the source code and add AC_USE_SYSTEM_EXTENSIONS/AC_GNU_SOURCE to
> >>>> configure.ac . I'm not sure if there is a recommended way how
to handle
> >>>> _GNU_SOURCE and friends.
> >>>>
> >>>> bye,
> >>>> Sumit
> >>>>
> >>>>
> >>>
> >>> This patch works fine.
> >>>
> >>> I think I would prefer to use something like
> >>> AC_USE_SYSTEM_EXTENSIONS/AC_GNU_SOURCE simply because it would rule
out
> >>> the possibility of forgetting to ifdef _GNU_SOURCE.
> >>>
> >>> But the problem seems to be that AC_GNU_SOURCE is obsolete in newer
> >>> versions of autoconf (and also throws an error on F14). At the same
> >>> time, AC_USE_SYSTEM_EXTENSIONS requires autoconf>= 2.60 while RHEL5
is
> >>> still on 2.59
> >>>
> >>
> >> To solve this I have found the following:
> >>
> >> m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
> >> [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
> >> [AC_REQUIRE([AC_GNU_SOURCE])])
> >>
> >> Shall I prepare a patch with this in configure.ac?
> >>
> >
> > To me this seems like a more systematic solution. So unless anyone
> > objects, I vote for this little autoconf trickery.
> >
>
> I concur
ok, this new version set _GNU_SOURCE safely in config.h. I had to add or
move some #include "config.h" and came across a 'shadows global'
warning
I hadn't see before.
Additionally I added a patch to remove some AC_DEFUN from configure.ac
which were not used anywhere in our code.
Ack to both