On OS/2 kLIBC, wcwidth is a macro to static inline function. Implementation of wcwidth in wcwidth.c causes 'conflicting types' error.
* lib/wchar.in.h: Undefine wcwidth on OS/2 kLIBC. --- ChangeLog | 9 +++++++++ lib/wchar.in.h | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f3f5503..602ce34 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2015-11-07 KO Myung-Hun <k...@chollian.net> + wchar: fix 'conflicting types' error for `__wcwidth' on OS/2 kLIBC + On OS/2 kLIBC, wcwidth is a macro to static inline function. + Implementation of wcwidth in wcwidth.c causes 'conflicting types' + error. + + * lib/wchar.in.h: Undefine wcwidth on OS/2 kLIBC. + +2015-11-07 KO Myung-Hun <k...@chollian.net> + w32spawn: clear SHELL_SPECIAL_CHARS and SHELL_SPACE_CHAR on OS/2 kLIBC spawn() on OS/2 kLIBC is not silly like one on Windows diff --git a/lib/wchar.in.h b/lib/wchar.in.h index 70305d5..7f7fd07 100644 --- a/lib/wchar.in.h +++ b/lib/wchar.in.h @@ -31,7 +31,7 @@ @PRAGMA_COLUMNS@ #if (((defined __need_mbstate_t || defined __need_wint_t) \ - && !defined __MINGW32__) \ + && !defined __MINGW32__ && !defined __KLIBC__) \ || (defined __hpux \ && ((defined _INTTYPES_INCLUDED && !defined strtoimax) \ || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) \ @@ -445,6 +445,10 @@ _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); # if !@HAVE_DECL_WCWIDTH@ /* wcwidth exists but is not declared. */ _GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); +# elif defined __KLIBC__ +/* On OS/2 kLIBC, wcwidth is a macro to static inline function. Implementation + of wcwidth in wcwidth.c causes 'conflicting types' error. */ +# undef wcwidth # endif _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); # endif -- 2.6.0