bug-coreutils
[Top][All Lists]
Advanced

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

Re: coreutils-5.2.1: wmemchr() and wmemcpy() not necessarily in libc


From: Paul Eggert
Subject: Re: coreutils-5.2.1: wmemchr() and wmemcpy() not necessarily in libc
Date: Wed, 11 Aug 2004 11:08:02 -0700
User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux)

"Robert Dahlem" <address@hidden> writes:

> Under ReliantUnix 5.43 wmemchr() and wmemcpy() are not in libc but in libw.

Thanks for the bug report.  I'd rather not hassle with -lw if I can
avoid it.  We toyed with -lw last year (to get wcslen on Solaris
2.5.1) but if memory served it's not always installed, which meant
that programs built on one host wouldn't run on another.

wmenchr and wmemcpy are in the C99 standard, so eventually they should
be moved into the C Library on your platform.  In the meantime, the
following patch (which I installed) will let coreutils build, albeit
only with unibyte support for file-name-matching primitives.

2004-08-11  Paul Eggert  <address@hidden>

        * lib/fnmatch.c (WIDE_CHAR_SUPPORT): Don't set to 1 if missing
        wmemchr or wmemcpy.  Problem reported by Robert Dahlem
        for Reliant Unix 5.43.
        * m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for wmemchr and wmemcpy.

Index: lib/fnmatch.c
===================================================================
RCS file: /home/eggert/coreutils/cu/lib/fnmatch.c,v
retrieving revision 1.28
diff -p -u -r1.28 fnmatch.c
--- lib/fnmatch.c       2 Aug 2004 18:10:35 -0000       1.28
+++ lib/fnmatch.c       11 Aug 2004 17:48:12 -0000
@@ -39,7 +39,9 @@
 #include <stdlib.h>
 #include <string.h>
 
-#define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
+#define WIDE_CHAR_SUPPORT \
+  (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC \
+   && HAVE_WMEMCHR && (HAVE_WMEMCPY || HAVE_WMEMPCPY))
 
 /* For platform which support the ISO C amendement 1 functionality we
    support user defined character classes.  */
Index: m4/fnmatch.m4
===================================================================
RCS file: /home/eggert/coreutils/cu/m4/fnmatch.m4,v
retrieving revision 1.17
diff -p -u -r1.17 fnmatch.m4
--- m4/fnmatch.m4       10 Aug 2004 05:43:13 -0000      1.17
+++ m4/fnmatch.m4       11 Aug 2004 17:47:41 -0000
@@ -3,7 +3,7 @@
 # This is a modified version of autoconf's AC_FUNC_FNMATCH.
 # This file should be simplified after Autoconf 2.57 is required.
 
-# Copyright (C) 2000-2003 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004 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
@@ -70,7 +70,7 @@ AC_DEFUN([_AC_LIBOBJ_FNMATCH],
 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
 AC_REQUIRE([AC_TYPE_MBSTATE_T])dnl
 AC_CHECK_DECLS([getenv])
-AC_CHECK_FUNCS([btowc mbsrtowcs mempcpy wmempcpy])
+AC_CHECK_FUNCS([btowc mbsrtowcs mempcpy wmemchr wmemcpy wmempcpy])
 AC_CHECK_HEADERS([wchar.h wctype.h])
 AC_LIBOBJ([fnmatch])
 FNMATCH_H=fnmatch.h




reply via email to

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