bug-gnulib
[Top][All Lists]
Advanced

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

Re: [bug-gnulib] wcwidth on OSF/1


From: Gary V. Vaughan
Subject: Re: [bug-gnulib] wcwidth on OSF/1
Date: Mon, 07 Aug 2006 17:30:55 +0100
User-agent: Thunderbird 1.5.0.5 (Macintosh/20060719)

Hi Bruno,

Bruno Haible wrote:
> Gary V. Vaughan wrote:
> 
>> A gnulib bug on osf (4.0d and 5.1):
>>   alphaev67-dec-osf5.1$ make all check
>>   cc -DHAVE_CONFIG_H -I. -I../../lib -I..      -g -c ../../lib/mbchar.c
>>   cc: Warning: ../../lib/wcwidth.h, line 70: In this declaration,
>> parameter 1 has a different type than specified in an earlier
>> declaration of this function. (mismatparam)
>>   int wcwidth (int /* actually wchar_t */);
>>   ----^
>>   cc: Error: ../../lib/wcwidth.h, line 70: In this declaration, the type
>> of "wcwidth" is not compatible with the type of a previous declaration
>> of "wcwidth" at line number 280 in file /usr/include/wchar.h. (notcompat)
>>   int wcwidth (int /* actually wchar_t */);
>>   ----^
>>   *** Exit 1
>>   Stop.
> 
> What does "grep WCWIDTH config.h" show? Does it show
> #define HAVE_DECL_WCWIDTH 0 ?

Yes, but only with Digital's compiler:

alphaev67-dec-osf5.1$ ../configure --enable-changeword CC=gcc |
> fgrep wcwidth
  checking for wcwidth... yes
  checking whether wcwidth is declared... yes
alphaev67-dec-osf5.1$ fgrep WCWIDTH config.h
#define HAVE_DECL_WCWIDTH 1
#define HAVE_WCWIDTH 1
alphaev67-dec-osf5.1$ ../configure --enable-changeword CC=cc |
> fgrep wcwidth
  checking for wcwidth... yes
  checking whether wcwidth is declared... no
alphaev67-dec-osf5.1$ fgrep WCWIDTH config.h
#define HAVE_DECL_WCWIDTH 0
#define HAVE_WCWIDTH 1

> It should say
> #define HAVE_DECL_WCWIDTH 1
> because of the
>     extern int      wcwidth         __((const wchar_t));
> declaration in /usr/include/wchar.h.

ACK,

> Can you look in the config.log why it set HAVE_DECL_WCWIDTH to 0?

Here is the culprit:

configure:14791: checking whether wcwidth is declared
configure:14828: cc -c -g  conftest.c >&5
cc: Error: /usr/include.dtk/wchar.h, line 78: Ill-formed parameter type
list. (parmtyplist)
                __VA_LIST__ __arg);
----------------^
cc: Error: /usr/include.dtk/wchar.h, line 83: Ill-formed parameter type
list. (parmtyplist)
                __VA_LIST__ __arg);
----------------^
cc: Error: /usr/include.dtk/wchar.h, line 87: Ill-formed parameter type
list. (parmtyplist)
                __VA_LIST__ __arg);
----------------^
configure:14834: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "GNU M4"
| #define PACKAGE_TARNAME "m4"
| #define PACKAGE_VERSION "1.4.5a"
| #define PACKAGE_STRING "GNU M4 1.4.5a"
| #define PACKAGE_BUGREPORT "address@hidden"
| #define PACKAGE "m4"
| #define VERSION "1.4.5a"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define HAVE_LIMITS_H 1
| #define HAVE_SIGINFO_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_LOCALE_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SIGINFO_T 1
| #define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1
| #define RETSIGTYPE void
| #define HAVE_SIGACTION 1
| #define HAVE_SIGALTSTACK 1
| #define HAVE_SIGSTACK 1
| #define HAVE_SIGVEC 1
| #define HAVE_STRERROR 1
| #define HAVE_MBRTOWC 1
| #define HAVE_WCRTOMB 1
| #define HAVE_WCSCOLL 1
| #define HAVE_LSTAT 1
| #define HAVE_PIPE 1
| #define HAVE_ISWPRINT 1
| #define HAVE_WCWIDTH 1
| #define HAVE_ALLOCA_H 1
| #define HAVE_ALLOCA 1
| #define HAVE_DECL_STRERROR_R 0
| #define HAVE_STRERROR_R 1
| #define HAVE_GETOPT_H 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_MBSTATE_T 1
| #define HAVE_INTTYPES_H_WITH_UINTMAX 1
| #define HAVE_STDINT_H_WITH_UINTMAX 1
| #define HAVE_UNSIGNED_LONG_LONG_INT 1
| #define HAVE_UNSIGNED_LONG_LONG 1
| #define HAVE_UINTMAX_T 1
| #define HAVE_LANGINFO_CODESET 1
| #define HAVE__BOOL 1
| #define HAVE_DECL_CLEARERR_UNLOCKED 0
| #define HAVE_DECL_FEOF_UNLOCKED 0
| #define HAVE_DECL_FERROR_UNLOCKED 0
| #define HAVE_DECL_FFLUSH_UNLOCKED 0
| #define HAVE_DECL_FGETS_UNLOCKED 0
| #define HAVE_DECL_FPUTC_UNLOCKED 0
| #define HAVE_DECL_FPUTS_UNLOCKED 0
| #define HAVE_DECL_FREAD_UNLOCKED 0
| #define HAVE_DECL_FWRITE_UNLOCKED 0
| #define HAVE_DECL_GETC_UNLOCKED 0
| #define HAVE_DECL_GETCHAR_UNLOCKED 0
| #define HAVE_DECL_PUTC_UNLOCKED 0
| #define HAVE_DECL_PUTCHAR_UNLOCKED 0
| #define EOVERFLOW 103
| #define HAVE_LONG_LONG_INT 1
| #define HAVE_LONG_LONG 1
| #define HAVE_LONG_DOUBLE 1
| #define HAVE_WCHAR_T 1
| #define HAVE_INTMAX_T 1
| #define HAVE_ALLOCA_H 1
| #define HAVE_DECL___FPENDING 0
| #define PENDING_OUTPUT_N_BYTES fp->_ptr - fp->_base
| #define __GETOPT_PREFIX rpl_
| #define HAVE_STDLIB_H 1
| #define HAVE_MALLOC 0
| #define malloc rpl_malloc
| #define HAVE_ISWCNTRL 1
| #define HAVE_MEMCHR 1
| #define HAVE_MKSTEMP 1
| #define _REGEX_LARGE_OFFSETS 1
| #define re_syntax_options rpl_re_syntax_options
| #define re_set_syntax rpl_re_set_syntax
| #define re_compile_pattern rpl_re_compile_pattern
| #define re_compile_fastmap rpl_re_compile_fastmap
| #define re_search rpl_re_search
| #define re_search_2 rpl_re_search_2
| #define re_match rpl_re_match
| #define re_match_2 rpl_re_match_2
| #define re_set_registers rpl_re_set_registers
| #define re_comp rpl_re_comp
| #define re_exec rpl_re_exec
| #define regcomp rpl_regcomp
| #define regexec rpl_regexec
| #define regerror rpl_regerror
| #define regfree rpl_regfree
| #define HAVE_DECL_ISBLANK 1
| #define HAVE_STDINT_H 1
| #define va_copy gl_va_copy
| #define strcasecmp rpl_strcasecmp
| #define HAVE_STRNCASECMP 1
| #define HAVE_STRTOL 1
| #define HAVE_DECL_MKDIR 1
| #define HAVE_UNISTD_H 1
| #define USE_UNLOCKED_IO 1
| #define HAVE_PTRDIFF_T 1
| #define HAVE_SNPRINTF 1
| #define HAVE_WCSLEN 1
| /* end confdefs.h.  */
|
| /* AIX 3.2.5 declares wcwidth in <string.h>. */
| #include <string.h>
| #if HAVE_WCHAR_H
| # include <wchar.h>
| #endif
|
|
| int
| main ()
| {
| #ifndef wcwidth
|   char *p = (char *) wcwidth;
|   return !p;
| #endif
|
|   ;
|   return 0;
| }
configure:14866: result: no

> On a different OSF/1 5.1 machine, also with cc, I get
> $ grep WCWIDTH config.h
> #define HAVE_DECL_WCWIDTH 1
> #define HAVE_WCWIDTH 1
> and all goes fine.

Seems like our machine might have a different include search path?
Not sure what to make of that error :-(  It's worth noting that this
machine is used to build several hundred open source projects without
too much difficulty (including large projects like gnome and kde)
using the same compiler:

alphaev67-dec-osf5.1$ cc -V
Compaq C V6.5-303 (dtk) on Compaq Tru64 UNIX V5.1 (Rev. 732)
Compiler Driver V6.5-302 (dtk) cc Driver

HTH,
        Gary.
-- 
Gary V. Vaughan      ())_.  address@hidden,gnu.org}
Research Scientist   ( '/   http://blog.azazil.net
GNU Hacker           / )=   http://trac.azazil.net/projects/libtool
Technical Author   `(_~)_   http://sources.redhat.com/autobook

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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