bug-coreutils
[Top][All Lists]
Advanced

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

Re: coreutils 6.6 fails to compile on IRIX 5.3


From: Paul Eggert
Subject: Re: coreutils 6.6 fails to compile on IRIX 5.3
Date: Sun, 03 Dec 2006 23:04:31 -0800
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux)

Georg Schwarz <address@hidden> writes:

> cfe: Warning 728: ./allocsa.h, line 113: Long double not supported; double 
> assumed.
> cfe: Warning 848: fsusage.c, line 102: Lshift with undefined behaviour.
> cfe: Warning 763: getndelim2.c, line 95: value is outside range representable 
> for type 'int'
> cfe: Warning 807: idcache.c, line 45: member cannot be of function or 
> incomplete type.
> cfe: Warning 608: quotearg.c: 52: Undefined the ANSI standard library defined 
> macro MB_CUR_MAX
> cfe: Warning 709: ./regex_internal.c, line 791: Incompatible pointer type 
> assignment

Thanks for letting us know of these problems.

In the above cases, the IRIX 5.3 compiler is warning about code that
conforms to the current C standard.  As far as I can tell, the
compiler is then going ahead and doing the right thing with the code
anyway.  If I'm right, you can safely ignore warnings like these.  (If
not, please let bug-coreutils know.)

> /usr/lib/ar: Warning:ignoring second definition of xmemcoll defined in archive

Jim Meyering just addressed that problem in
<http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00018.html>.

>         cc  -g   -o dir ls.o ls-dir.o ../lib/libcoreutils.a  ../lib/
> libcoreutils.a
> ld:
> Unresolved:
> _ctmp_
> _iswctype
> *** Error code 1 (bu21)

I installed the following gnulib patch, which I hope addresses these
problems.

The iswctype issue is obvious once you see it: the code shouldn't
attempt i18n if iswctype is absent.

The _ctmp_ problem is that IRIX 5.3 has stuff like this in wctype.h:

#define iswalnum(c)  ((_ctmp_=(c)) > 255 ? ...)

But _ctmp_ is newer declared!  See
<http://mail.gnome.org/archives/gtk-list/1998-January/msg00471.html>.

Anyway, as IRIX 5.3 doesn't have iswctype, perhaps the iswctype fix
alone is enough to work around IRIX 5.3's _ctmp_ bug, since it should
shut off uses of iswalnum etc. within regex.  If not, please let
bug-coreutils know.



2006-12-03  Paul Eggert  <address@hidden>

        Fix porting problem for iswctype reported by Georg Schwarz in:
        http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00017.html
        * lib/fnmatch.c (WIDE_CHAR_SUPPORT): Require HAVE_ISWCTYPE, too.
        * lib/regex_internal.h (RE_ENABLE_I18N): Likewise.
        * m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for iswctype, too.
        * m4/regex.m4 (gl_PREREQ_REGEX): Likewise.

Index: lib/fnmatch.c
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/fnmatch.c,v
retrieving revision 1.36
diff -p -u -r1.36 fnmatch.c
--- lib/fnmatch.c       13 Sep 2006 22:38:14 -0000      1.36
+++ lib/fnmatch.c       4 Dec 2006 06:39:29 -0000
@@ -40,7 +40,7 @@
 #include <string.h>
 
 #define WIDE_CHAR_SUPPORT \
-  (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC \
+  (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC && HAVE_ISWCTYPE \
    && HAVE_WMEMCHR && (HAVE_WMEMCPY || HAVE_WMEMPCPY))
 
 /* For platform which support the ISO C amendement 1 functionality we
Index: lib/regex_internal.h
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/regex_internal.h,v
retrieving revision 1.25
diff -p -u -r1.25 regex_internal.h
--- lib/regex_internal.h        27 Nov 2006 07:15:26 -0000      1.25
+++ lib/regex_internal.h        4 Dec 2006 06:39:29 -0000
@@ -89,7 +89,7 @@
 # define SIZE_MAX ((size_t) -1)
 #endif
 
-#if (defined MB_CUR_MAX && HAVE_LOCALE_H && HAVE_WCTYPE_H && HAVE_WCHAR_H && 
HAVE_WCRTOMB && HAVE_MBRTOWC && HAVE_WCSCOLL) || _LIBC
+#if (defined MB_CUR_MAX && HAVE_LOCALE_H && HAVE_WCTYPE_H && HAVE_WCHAR_H && 
HAVE_ISWCTYPE && HAVE_WCRTOMB && HAVE_MBRTOWC && HAVE_WCSCOLL) || _LIBC
 # define RE_ENABLE_I18N
 #endif
 
Index: m4/fnmatch.m4
===================================================================
RCS file: /cvsroot/gnulib/gnulib/m4/fnmatch.m4,v
retrieving revision 1.25
diff -p -u -r1.25 fnmatch.m4
--- m4/fnmatch.m4       22 Sep 2006 17:26:02 -0000      1.25
+++ m4/fnmatch.m4       4 Dec 2006 06:39:29 -0000
@@ -64,7 +64,7 @@ AC_DEFUN([_AC_LIBOBJ_FNMATCH],
 [AC_REQUIRE([AC_FUNC_ALLOCA])dnl
 AC_REQUIRE([AC_TYPE_MBSTATE_T])dnl
 AC_CHECK_DECLS([isblank], [], [], [#include <ctype.h>])
-AC_CHECK_FUNCS([btowc mbsrtowcs mempcpy wmemchr wmemcpy wmempcpy])
+AC_CHECK_FUNCS([btowc iswctype mbsrtowcs mempcpy wmemchr wmemcpy wmempcpy])
 AC_CHECK_HEADERS([wchar.h wctype.h])
 AC_LIBOBJ([fnmatch])
 FNMATCH_H=fnmatch.h
Index: m4/regex.m4
===================================================================
RCS file: /cvsroot/gnulib/gnulib/m4/regex.m4,v
retrieving revision 1.57
diff -p -u -r1.57 regex.m4
--- m4/regex.m4 21 Sep 2006 05:25:11 -0000      1.57
+++ m4/regex.m4 4 Dec 2006 06:39:29 -0000
@@ -1,4 +1,4 @@
-#serial 40
+#serial 41
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
 # 2006 Free Software Foundation, Inc.
@@ -194,6 +194,6 @@ AC_DEFUN([gl_PREREQ_REGEX],
   AC_REQUIRE([AC_C_RESTRICT])
   AC_REQUIRE([AM_LANGINFO_CODESET])
   AC_CHECK_HEADERS_ONCE([wchar.h wctype.h])
-  AC_CHECK_FUNCS_ONCE([mbrtowc mempcpy wcrtomb wcscoll])
+  AC_CHECK_FUNCS_ONCE([iswctype mbrtowc mempcpy wcrtomb wcscoll])
   AC_CHECK_DECLS([isblank], [], [], [#include <ctype.h>])
 ])




reply via email to

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