cvs commit: src/lib/libc/locale utf8.c

Rong-en Fan grafan at
Sat Oct 27 01:30:34 PDT 2007

On 10/27/07, Rong-en Fan <grafan at> wrote:
> I admit that I really did a very bad abi damage on libc. I have been
> working on it and
> removing those inline __* functions in _ctype.h help. It can be upgraded and
> also downgraded without problems. Without those inline stuffs,
> buildworld+installworld
> time difference is less than 60 seconds, which looks good. I will post the
> patch after some more tests.
> As for RELENG_7 and HEAD, I'm not 100% sure whether we should restore
> the compatibility as 1) 7.0 is not released yet, 2) we don't promise
> anything in
> HEAD branch. However, if most people think get rid of inline stuffs and
> have libc compatibility are nice, then we do the same for those two branches.

After some tests, the patch is at

Let me describe this patch in more details. Fist, we actually
compile those inline functions as real functions in
lib/libc/locale/nomacro.c if _EXTERNAL_CTYPE_INLINES_ is defined.
I make 4 inline functions that use the __mb_sb_limit symbol,
which break the compatibility, always compiled as real functions.
I also considered that moving those inlined function in another
C file, but I think it would make the source codes diverse
among 6 and 7/8.

Now, as it may affect performance for text processing
programs. I would like to make this in RELENG_6 only and
leave RELENG_7 and HEAD alone. Also ache@ expressed
his objection.

I have tested this patch. As it still exports __mb_sb_limit from, users can safely upgrade and downgrade their system
without problems (I did few times, actually).

The second and third hunks of the patch is nop because we
include runetype.h in _ctype.h (but only we use inline stuffs).
These two will be fixed in HEAD and following a normal MFC.

Rong-En Fan

More information about the cvs-src mailing list