Compiling coreutils-6.0 on BeOS leads to a compilation error: source='strstr.c' object='strstr.o' libtool=no \ DEPDIR=.deps depmode=gcc /bin/sh ../build-aux/depcomp \ gcc -DHAVE_CONFIG_H -DLIBDIR=\"/boot/home/config/lib\" -I. -I. -I.. -I.. -I. -Wall -I/boot/home/config/include -g -O2 -c strstr.c In file included from /boot/home/gnubuild/coreutils-6.0/lib/mbuiter.h:101, from /boot/home/gnubuild/coreutils-6.0/lib/strstr.c:29: /boot/home/gnubuild/coreutils-6.0/lib/mbchar.h:159: wctype.h: No such file or directory make[3]: *** [strstr.o] Error 1 make[3]: Leaving directory `/boot/home/gnubuild/coreutils-6.0/lib'
and, if that is fixed locally in mbchar.h, a link error: gcc -g -O2 -o cp cp.o copy.o cp-hash.o ../lib/libcoreutils.a /boot/home/config/lib/libintl.so -L/boot/home/config/lib /boot/home/config/lib/libiconv.so -Wl,-rpath -Wl,/boot/home/config/lib ../lib/libcoreutils.a ../lib/libcoreutils.a(strcasecmp.o): In function `rpl_strcasecmp': /boot/home/gnubuild/coreutils-6.0/lib/mbchar.h:437: undefined reference to `is_basic_table' /boot/home/gnubuild/coreutils-6.0/lib/mbchar.h:437: undefined reference to `is_basic_table' /boot/home/gnubuild/coreutils-6.0/lib/mbchar.h:437: undefined reference to `is_basic_table' /boot/home/gnubuild/coreutils-6.0/lib/mbchar.h:437: undefined reference to `is_basic_table' collect2: ld returned 1 exit status make[3]: *** [cp] Error 1 make[3]: Leaving directory `/boot/home/gnubuild/coreutils-6.0/src' The reason is that BeOS has mbrtowc() but no <wctype.h>, and hence mbchar.c has not been compiled. I'm committing this fix to gnulib. 2006-08-19 Bruno Haible <[EMAIL PROTECTED]> BeOS portability. * modules/mbchar (Include): Don't test HAVE_WCTYPE_H any more, since BeOS has mbrtowc() but no <wctype.h>. * lib/mbchar.h: Include <wctype.h> only if it exists. * m4/mbchar.m4 (gl_MBCHAR): Compile mbchar.c also if <wctype.h> doesn't exist. *** gnulib-20060816/modules/mbchar 2006-06-28 18:13:49.000000000 +0200 --- gnulib-20060816-modified/modules/mbchar 2006-08-19 14:33:50.000000000 +0200 *************** *** 17,23 **** lib_SOURCES += mbchar.h Include: ! #if HAVE_WCHAR_H && HAVE_WCTYPE_H #include "mbchar.h" #endif --- 17,23 ---- lib_SOURCES += mbchar.h Include: ! #if HAVE_WCHAR_H #include "mbchar.h" #endif *** gnulib-20060816/lib/mbchar.h 2006-07-28 19:29:31.000000000 +0200 --- gnulib-20060816-modified/lib/mbchar.h 2006-08-19 14:36:11.000000000 +0200 *************** *** 156,162 **** #include <time.h> #include <wchar.h> ! #include <wctype.h> /* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions. Assume all 12 functions are implemented the same way, or not at all. */ #if !defined iswalnum && !HAVE_ISWCNTRL --- 156,165 ---- #include <time.h> #include <wchar.h> ! /* BeOS 5 has the functions but no <wctype.h>. */ ! #if HAVE_WCTYPE_H ! # include <wctype.h> ! #endif /* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions. Assume all 12 functions are implemented the same way, or not at all. */ #if !defined iswalnum && !HAVE_ISWCNTRL *** gnulib-20060816/m4/mbchar.m4 2006-07-28 16:35:19.000000000 +0200 --- gnulib-20060816-modified/m4/mbchar.m4 2006-08-19 14:35:38.000000000 +0200 *************** *** 1,4 **** ! # mbchar.m4 serial 3 dnl Copyright (C) 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # mbchar.m4 serial 4 dnl Copyright (C) 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 10,22 **** AC_DEFUN([gl_MBCHAR], [ AC_REQUIRE([AC_GNU_SOURCE]) ! dnl The following line is that so the user can test ! dnl HAVE_WCHAR_H && HAVE_WCTYPE_H before #include "mbchar.h". ! AC_CHECK_HEADERS_ONCE(wchar.h wctype.h) ! dnl Compile mbchar.c only if HAVE_WCHAR_H && HAVE_WCTYPE_H. ! if test $ac_cv_header_wchar_h = yes && test $ac_cv_header_wctype_h = yes; then AC_LIBOBJ([mbchar]) dnl Prerequisites of mbchar.h and mbchar.c. AC_CHECK_FUNCS([iswcntrl]) fi ]) --- 10,23 ---- AC_DEFUN([gl_MBCHAR], [ AC_REQUIRE([AC_GNU_SOURCE]) ! dnl The following line is that so the user can test HAVE_WCHAR_H ! dnl before #include "mbchar.h". ! AC_CHECK_HEADERS_ONCE([wchar.h]) ! dnl Compile mbchar.c only if HAVE_WCHAR_H. ! if test $ac_cv_header_wchar_h = yes; then AC_LIBOBJ([mbchar]) dnl Prerequisites of mbchar.h and mbchar.c. + AC_CHECK_HEADERS_ONCE([wctype.h]) AC_CHECK_FUNCS([iswcntrl]) fi ])