From caee51552362732c46f16a7a50ee3d54e4d37eaa Mon Sep 17 00:00:00 2001 From: KO Myung-Hun Date: Thu, 14 Jan 2016 11:23:45 +0900 Subject: [PATCH] wchar: fix "conflicting types" error for __wcwidth on OS/2 kLIBC On OS/2 kLIBC, wcwidth is a macro that expands to the name of a static inline function. The implementation of wcwidth in wcwidth.c causes a "conflicting types" error. * lib/wchar.in.h: Undefine wcwidth on OS/2 kLIBC. --- lib/wchar.in.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/wchar.in.h b/lib/wchar.in.h index 3ff9b6c01c..8e9fb89ccc 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,11 @@ _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 that expands to the name of a + static inline function. The implementation of wcwidth in wcwidth.c + causes a "conflicting types" error. */ +# undef wcwidth # endif _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); # endif -- 2.39.5