Subject: Re: CVS commit: src/usr.bin/mklocale
To: Takuya SHIOZAKI <tshiozak@netbsd.org>
From: Valeriy E. Ushakov <uwe@ptc.spbu.ru>
List: source-changes
Date: 03/10/2003 19:05:20
On Mon, Mar 10, 2003 at 11:37:05 +0200, Takuya SHIOZAKI wrote:

> Module Name:	src
> Committed By:	tshiozak
> Date:		Mon Mar 10 09:37:04 UTC 2003
> 
> Modified Files:
> 	src/usr.bin/mklocale: yacc.y
> 
> Log Message:
> revoke using PRIu32 macro and add fallback for UINT32_C macro,
> because these do not exist on rather older systems.

UINT32_C is still used by lex.l (via _CTYPE_* macros).  Building on
FreeBSD 4.x fails with:

lex.lo: In function `yylex':
lex.lo(.text+0x96f): undefined reference to `UINT32_C'
*** Error code 1


There's also a consistency problem - when mklocale is compiled as a
host tool it pulls in host's <ctype.h> but our <runetype.h>.  On
FreeBSD 4.x it results in a clash between _CTYPE_* macros they define
in ctype.h and _CTYPE_* macros we define in runetype.h.

In file included from /nb/src/tools/mklocale/../../usr.bin/mklocale/yacc.y:66:
/usr/include/ctype.h:54: warning: `_CTYPE_A' redefined
/nb/src/lib/libc/locale/runetype.h:66: warning: this is the location of the previous definition

I think that while other host tools should be using host's ctype.h,
mklocale should make sure to use the in-tree ctype.h.

SY, Uwe
-- 
uwe@ptc.spbu.ru                         |       Zu Grunde kommen
http://www.ptc.spbu.ru/~uwe/            |       Ist zu Grunde gehen