bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: coreutils 6.3 on Tru64 - just plain broken, or...?


From: Paul Eggert
Subject: Re: coreutils 6.3 on Tru64 - just plain broken, or...?
Date: Sun, 08 Oct 2006 00:31:12 -0700
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux)

mwoehlke <address@hidden> writes:

> source='xstrtoimax.c' object='xstrtoimax.o' libtool=no \
>         DEPDIR=.deps depmode=tru64 /usr/bin/posix/sh ../build-aux/depcomp \
>         cc -std  -I. -I. -I.   -I/home/install/gnu/alpha_osf/include -g -c 
> xstrtoimax.c
> cc: Warning: ./config.h, line 1741: The redefinition of the macro
> "intmax_t" conflicts with a current definition because the replacement
> lists differ.  The redefinition is now in effect. (macroredef)
> #define intmax_t long long
> -----------------^

I think I see the problem now; you can't include <config.h>, then
<inttypes.h>, then <config.h>, due to <config.h> having some
semi-obsolescent definitions of intmax_t (due to gettext not yet
upgrading to assume inttypes.h).

I installed this into gnulib to fix things:

2006-10-08  Paul Eggert  <address@hidden>

        Don't include <config.h> twice; this doesn't work in some cases,
        e.g., when config.h has "#define intmax_t long long int" and
        we include <config.h>, <inttypes.h>, <config.h> in that order.
        Problem reported by Matthew Woehlke in:
        http://lists.gnu.org/archive/html/bug-coreutils/2006-10/msg00073.html
        * fprintftime.c: Don't include config.h or fprintftime.h.
        * fts-cycle.c: Don't include config.h.
        * strftime.c: Include fprintftime.h if FPRINTFTIME is defined.
        * xstrtoimax.c: Remove copyright notice since it's short tnow.
        Don't include config.h or xstrtol.h.  Define STRTOL_T_MINIMUM
        and STRTOL_T_MAXIMUM unconditionally, since we now assume gnulib
        inttypes.h.
        * xstrtoumax.c: Likewise.
        * xstrtol.c: Include config.h and xstrtol.h after defining
        __strtol and the like, so that this module is more like its siblings.
        (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM) [! defined STRTOL_T_MINIMUM]:
        Remove; no longer needed now that we assume gnulib inttypes.h.

Index: lib/fprintftime.c
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/fprintftime.c,v
retrieving revision 1.2
diff -p -u -r1.2 fprintftime.c
--- lib/fprintftime.c   13 Sep 2006 22:38:14 -0000      1.2
+++ lib/fprintftime.c   8 Oct 2006 07:16:11 -0000
@@ -1,5 +1,2 @@
-#include <config.h>
-
-#include "fprintftime.h"
 #define FPRINTFTIME 1
 #include "strftime.c"
Index: lib/fts-cycle.c
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/fts-cycle.c,v
retrieving revision 1.6
diff -p -u -r1.6 fts-cycle.c
--- lib/fts-cycle.c     13 Sep 2006 22:38:14 -0000      1.6
+++ lib/fts-cycle.c     8 Oct 2006 07:16:11 -0000
@@ -18,8 +18,6 @@
    along with this program; if not, write to the Free Software Foundation,
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
-#include <config.h>
-
 #include "cycle-check.h"
 #include "hash.h"
 
Index: lib/strftime.c
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/strftime.c,v
retrieving revision 1.90
diff -p -u -r1.90 strftime.c
--- lib/strftime.c      13 Sep 2006 22:38:14 -0000      1.90
+++ lib/strftime.c      8 Oct 2006 07:16:11 -0000
@@ -30,6 +30,9 @@
 # include "../locale/localeinfo.h"
 #else
 # include <config.h>
+# if FPRINTFTIME
+#  include "fprintftime.h"
+# endif
 #endif
 
 #include <ctype.h>
Index: lib/xstrtoimax.c
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/xstrtoimax.c,v
retrieving revision 1.8
diff -p -u -r1.8 xstrtoimax.c
--- lib/xstrtoimax.c    13 Sep 2006 22:38:14 -0000      1.8
+++ lib/xstrtoimax.c    8 Oct 2006 07:16:11 -0000
@@ -1,32 +1,6 @@
-/* xstrtoimax.c -- A more useful interface to strtoimax.
-
-   Copyright (C) 2001, 2003, 2004, 2006 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Cloned by Jim Meyering. */
-
-#include <config.h>
-
-#include "xstrtol.h"
-
 #define __strtol strtoimax
 #define __strtol_t intmax_t
 #define __xstrtol xstrtoimax
-#ifdef INTMAX_MAX
-# define STRTOL_T_MINIMUM INTMAX_MIN
-# define STRTOL_T_MAXIMUM INTMAX_MAX
-#endif
+#define STRTOL_T_MINIMUM INTMAX_MIN
+#define STRTOL_T_MAXIMUM INTMAX_MAX
 #include "xstrtol.c"
Index: lib/xstrtol.c
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/xstrtol.c,v
retrieving revision 1.40
diff -p -u -r1.40 xstrtol.c
--- lib/xstrtol.c       13 Sep 2006 22:38:14 -0000      1.40
+++ lib/xstrtol.c       8 Oct 2006 07:16:11 -0000
@@ -19,10 +19,6 @@
 
 /* Written by Jim Meyering. */
 
-#include <config.h>
-
-#include "xstrtol.h"
-
 #ifndef __strtol
 # define __strtol strtol
 # define __strtol_t long int
@@ -31,6 +27,10 @@
 # define STRTOL_T_MAXIMUM LONG_MAX
 #endif
 
+#include <config.h>
+
+#include "xstrtol.h"
+
 /* Some pre-ANSI implementations (e.g. SunOS 4)
    need stderr defined if assertion checking is enabled.  */
 #include <stdio.h>
@@ -44,19 +44,6 @@
 
 #include "intprops.h"
 
-#ifndef STRTOL_T_MINIMUM
-# define STRTOL_T_MINIMUM TYPE_MINIMUM (__strtol_t)
-# define STRTOL_T_MAXIMUM TYPE_MAXIMUM (__strtol_t)
-#endif
-
-#if !HAVE_DECL_STRTOIMAX && !defined strtoimax
-intmax_t strtoimax ();
-#endif
-
-#if !HAVE_DECL_STRTOUMAX && !defined strtoumax
-uintmax_t strtoumax ();
-#endif
-
 static strtol_error
 bkm_scale (__strtol_t *x, int scale_factor)
 {
Index: lib/xstrtoumax.c
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/xstrtoumax.c,v
retrieving revision 1.12
diff -p -u -r1.12 xstrtoumax.c
--- lib/xstrtoumax.c    13 Sep 2006 22:38:14 -0000      1.12
+++ lib/xstrtoumax.c    8 Oct 2006 07:16:11 -0000
@@ -1,32 +1,6 @@
-/* xstrtoumax.c -- A more useful interface to strtoumax.
-
-   Copyright (C) 1999, 2003, 2004, 2006 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Written by Paul Eggert. */
-
-#include <config.h>
-
-#include "xstrtol.h"
-
 #define __strtol strtoumax
 #define __strtol_t uintmax_t
 #define __xstrtol xstrtoumax
-#ifdef UINTMAX_MAX
-# define STRTOL_T_MINIMUM 0
-# define STRTOL_T_MAXIMUM UINTMAX_MAX
-#endif
+#define STRTOL_T_MINIMUM 0
+#define STRTOL_T_MAXIMUM UINTMAX_MAX
 #include "xstrtol.c"




reply via email to

[Prev in Thread] Current Thread [Next in Thread]