curses header conflict

Till Plewe till at plewe.is.tsukuba.ac.jp
Tue May 27 23:54:29 PDT 2003


When trying to install python2.3 on either stable or current the 
curses module doesn't build. I get the following compiler complaints:

STABLE (line numbers in brackets are from CURRENT)
 
/usr/include/ncurses.h:236(289): conflicting types for `wchar_t'
/usr/include/stdlib.h:58(57): previous declaration of `wchar_t'
/usr/include/ncurses.h:239(292): conflicting types for `wint_t'
/usr/include/wchar.h:89(96): previous declaration of `wint_t'

Can somebody explain what the differrence between_WCHAR_T and _BSD_WCHAR_T
 is? I appended relevant parts of these header files from STABLE.

Simply deleting lines 234-240 of /usr/include/ncurses.h works 
(The curses module builds without problems.) However I would much 
rather learn the reason for the various definitions of wchar_t


stlib.h l.56-61:
===============

#ifndef __cplusplus
#ifdef  _BSD_WCHAR_T_
typedef _BSD_WCHAR_T_   wchar_t;
#undef  _BSD_WCHAR_T_
#endif
#endif

wchar.h l.77-91:
===============

#ifdef  _BSD_WCHAR_T_
typedef _BSD_WCHAR_T_   wchar_t;
#undef  _BSD_WCHAR_T_
#endif
#endif

#ifdef  _BSD_MBSTATE_T_
typedef _BSD_MBSTATE_T_ mbstate_t;
#undef  _BSD_MBSTATE_T_
#endif

#ifdef  _BSD_WINT_T_
typedef _BSD_WINT_T_    wint_t;
#undef  _BSD_WINT_T_
#endif

ncurses.h l.234-240:
===================

#ifdef _XOPEN_SOURCE_EXTENDED
#ifndef _WCHAR_T
typedef unsigned long wchar_t;
#endif /* _WCHAR_T */
#ifndef _WINT_T
typedef long int wint_t;
#endif /* _WINT_T */


More information about the freebsd-questions mailing list