Re: _GNU_SOURCE redundant define
Hi, [EMAIL PROTECTED] (Ludovic Courtès) writes: The current Autoconf way is to use `AC_USE_SYSTEM_EXTENSIONS' (also available in 2.61) in lieu of these macros (see http://www.gnu.org/software/autoconf/manual/html_node/Obsolete-Macros.html) and to never explicitly define the `_*_SOURCE' CPP macros. I'll change that and test it ASAP. In the meantime, the easiest way is to use 2.61, or to remove the offending macro invocations. Done (patch attached). Greg: can you confirm that you can now happily use 2.62? Thanks, Ludovic. From e210266510fb7dc7362a7ca7fb46d3039436c758 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Ludovic=20Court=C3=A8s?= [EMAIL PROTECTED] Date: Wed, 20 Aug 2008 19:02:41 +0200 Subject: [PATCH] Use `AC_USE_SYSTEM_EXTENSIONS' instead of the obsolete `AC_AIX', etc. --- ChangeLog |8 configure.in |4 +--- libguile/ChangeLog |7 +++ libguile/eval.c|2 -- libguile/filesys.c |1 - libguile/gc.c |2 -- libguile/numbers.c |3 --- libguile/posix.c |5 + libguile/srfi-14.c |5 + libguile/stime.c |3 +-- libguile/threads.c |4 +--- 11 files changed, 20 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index e80be78..3d8b7e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-08-20 Ludovic Courtès [EMAIL PROTECTED] + + * configure.in: Use `AC_USE_SYSTEM_EXTENSIONS' instead of the + obsolete `AC_AIX', `AC_ISC_POSIX' and `AC_MINIX'. As a side + effect, this will define `_POSIX_PTHREAD_SEMANTICS' on Solaris, + which provides a standard-conforming version of `readdir_r ()' + for instance; it also allows the use of Autoconf 2.62. + 2008-08-14 Ludovic Courtès [EMAIL PROTECTED] * configure.in: Remove incorrect and pointless diff --git a/configure.in b/configure.in index ee3d527..e1656c8 100644 --- a/configure.in +++ b/configure.in @@ -73,9 +73,7 @@ AC_PROG_CC AC_PROG_CPP AC_PROG_AWK -AC_AIX -AC_ISC_POSIX -AC_MINIX +AC_USE_SYSTEM_EXTENSIONS AC_PROG_CC_C89 diff --git a/libguile/ChangeLog b/libguile/ChangeLog index bfdb798..1b3f5d3 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,10 @@ +2008-08-20 Ludovic Courtès [EMAIL PROTECTED] + + * eval.c, filesys.c, gc.c, numbers.c, posix.c, srfi-14.c, + stime.c, threads.c: Don't define `_GNU_SOURCE' explicitly as + it's now defined in config.h thanks to + `AC_USE_SYSTEM_EXTENSIONS'. + 2008-08-19 Han-Wen Nienhuys [EMAIL PROTECTED] Ludovic Courtès [EMAIL PROTECTED] diff --git a/libguile/eval.c b/libguile/eval.c index 021640d..8fa29c8 100644 --- a/libguile/eval.c +++ b/libguile/eval.c @@ -18,8 +18,6 @@ -#define _GNU_SOURCE - /* This file is read twice in order to produce debugging versions of ceval and * scm_apply. These functions, deval and scm_dapply, are produced when we * define the preprocessor macro DEVAL. The file is divided into sections diff --git a/libguile/filesys.c b/libguile/filesys.c index c3cc70c..ca50e21 100644 --- a/libguile/filesys.c +++ b/libguile/filesys.c @@ -19,7 +19,6 @@ /* See stime.c for comments on why _POSIX_C_SOURCE is not always defined. */ -#define _GNU_SOURCE /* ask glibc for everything */ #define _LARGEFILE64_SOURCE /* ask for stat64 etc */ #ifdef __hpux #define _POSIX_C_SOURCE 199506L /* for readdir_r */ diff --git a/libguile/gc.c b/libguile/gc.c index 0b6e8b4..dde740f 100644 --- a/libguile/gc.c +++ b/libguile/gc.c @@ -15,8 +15,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#define _GNU_SOURCE - /* #define DEBUGINFO */ #if HAVE_CONFIG_H diff --git a/libguile/numbers.c b/libguile/numbers.c index fc57bf5..20eb16a 100644 --- a/libguile/numbers.c +++ b/libguile/numbers.c @@ -40,9 +40,6 @@ */ -/* tell glibc (2.3) to give prototype for C99 trunc(), csqrt(), etc */ -#define _GNU_SOURCE - #if HAVE_CONFIG_H # include config.h #endif diff --git a/libguile/posix.c b/libguile/posix.c index e803f9f..7d53448 100644 --- a/libguile/posix.c +++ b/libguile/posix.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -21,9 +21,6 @@ # include config.h #endif -/* Make GNU/Linux libc declare everything it has. */ -#define _GNU_SOURCE - #include stdio.h #include errno.h diff --git a/libguile/srfi-14.c b/libguile/srfi-14.c index f61db7d..3596fbf 100644 --- a/libguile/srfi-14.c +++ b/libguile/srfi-14.c @@ -1,6 +1,6 @@ /* srfi-14.c --- SRFI-14 procedures for Guile * - * Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc. + * Copyright (C) 2001, 2004, 2006, 2008 Free Software Foundation, Inc. * * This library is free software;
Re: _GNU_SOURCE redundant define
() [EMAIL PROTECTED] (Ludovic Courtès) () Sun, 17 Aug 2008 23:47:26 +0200 The current Autoconf way is to use `AC_USE_SYSTEM_EXTENSIONS' Note that you should also reposition: #include libguile/_scm.h as the first #include (before stdio.h et al) in, for example, libguile/stime.c, so that the system extension macros can DTRT. thi
Re: _GNU_SOURCE redundant define
Hi Greg, Greg Troxel [EMAIL PROTECTED] writes: Greg Troxel [EMAIL PROTECTED] writes: On NetBSD-current/amd64, the branch_release-1-8 branch fails to build. _GNU_SOURCE is defined in config.h, and also in two files. With the following change, it builds and 'gmake check' succeeds. I have figured this out. With autoconf 2.62 on NetBSD, several macros end up defining _GNU_SOURCE. The following diff makes guile build for me (plus enables autobuild). I'm not sure what the right fix is; it seems broken for AC_AIX to define _GNU_SOURCE at all, especially on NetBSD. I'd be somewhat inclined to drop the three macros, and have adherents of AIX, ISC_POSIX, and MINIX find another way around if needed. The current Autoconf way is to use `AC_USE_SYSTEM_EXTENSIONS' (also available in 2.61) in lieu of these macros (see http://www.gnu.org/software/autoconf/manual/html_node/Obsolete-Macros.html) and to never explicitly define the `_*_SOURCE' CPP macros. I'll change that and test it ASAP. In the meantime, the easiest way is to use 2.61, or to remove the offending macro invocations. Thanks, Ludo'.
Re: _GNU_SOURCE redundant define
Greg Troxel [EMAIL PROTECTED] writes: On NetBSD-current/amd64, the branch_release-1-8 branch fails to build. _GNU_SOURCE is defined in config.h, and also in two files. With the following change, it builds and 'gmake check' succeeds. I have figured this out. With autoconf 2.62 on NetBSD, several macros end up defining _GNU_SOURCE. The following diff makes guile build for me (plus enables autobuild). I'm not sure what the right fix is; it seems broken for AC_AIX to define _GNU_SOURCE at all, especially on NetBSD. I'd be somewhat inclined to drop the three macros, and have adherents of AIX, ISC_POSIX, and MINIX find another way around if needed. Alternatively, the two _GNU_SOURCE defines could be wrapped in ifndef _GNU_SOURCE. Also, I noticed a forced define of _GNU_SOURCE inside the strptime test. The NetBSD man page says: STANDARDS The strptime() function conforms to X/Open Portability Guide Issue 4 (``XPG4''). so it would seem that shouldn't be necessary. diff --git a/configure.in b/configure.in index ee3d527..101de10 100644 --- a/configure.in +++ b/configure.in @@ -49,6 +49,9 @@ AC_CONFIG_SRCDIR([GUILE-VERSION]) AM_MAINTAINER_MODE AC_CONFIG_HEADERS([config.h]) + +AB_INIT + AH_TOP(/*GUILE_CONFIGURE_COPYRIGHT*/) # @@ -73,10 +76,14 @@ AC_PROG_CC AC_PROG_CPP AC_PROG_AWK -AC_AIX -AC_ISC_POSIX -AC_MINIX +# AC_AIX +dnl AC_AIX +# AC_ISC_POSIX +dnl AC_ISC_POSIX +# AC_MINIX +dnl AC_MINIX +# c89 AC_PROG_CC_C89 # for per-target cflags in the libguile subdir
_GNU_SOURCE redundant define
On NetBSD-current/amd64, the branch_release-1-8 branch fails to build. _GNU_SOURCE is defined in config.h, and also in two files. With the following change, it builds and 'gmake check' succeeds. I'm not sure why _GNU_SOURCE is there; it seems guile should be mostly relying on POSIX-specified things. Clearly it at least mostly is, or it wouldn't build on NetBSD, which doesn't use GNU libc. diff --git a/libguile/posix.c b/libguile/posix.c index e803f9f..c4570af 100644 --- a/libguile/posix.c +++ b/libguile/posix.c @@ -21,9 +21,6 @@ # include config.h #endif -/* Make GNU/Linux libc declare everything it has. */ -#define _GNU_SOURCE - #include stdio.h #include errno.h diff --git a/libguile/srfi-14.c b/libguile/srfi-14.c index f61db7d..69e7798 100644 --- a/libguile/srfi-14.c +++ b/libguile/srfi-14.c @@ -21,9 +21,6 @@ # include config.h #endif - -#define _GNU_SOURCE /* Ask for `isblank ()'. */ - #include string.h #include ctype.h failing log at: http://autobuild.josefsson.org/guile/log-200808131846090405000.txt (thanks to ludo for help setting up for autobuilding)
Re: _GNU_SOURCE redundant define
Hi, Greg Troxel [EMAIL PROTECTED] writes: On NetBSD-current/amd64, the branch_release-1-8 branch fails to build. _GNU_SOURCE is defined in config.h, and also in two files. With the following change, it builds and 'gmake check' succeeds. Correct me if I'm wrong, but I suspect that is because you had autoreconf'd and configured `master', which created a `config.h{,.in}' that defines `_GNU_SOURCE', and then switched to `branch_release-1-8', which did not recreate `config.h.in'. The fix is to make sure to run make distclean before running autoreconf configure make. And thanks for the NetBSD autobuild! Hope this helps, Ludo'.