Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Oct 2007 16:30:30 +0800
From:      "Rong-en Fan" <grafan@gmail.com>
To:        "Scott Long" <scottl@samsco.org>
Cc:        src-committers@freebsd.org, d@delphij.net, John Baldwin <jhb@freebsd.org>, Andrey Chernov <ache@nagual.pp.ru>, Robert Watson <rwatson@freebsd.org>, cvs-src@freebsd.org, imp@freebsd.org
Subject:   Re: cvs commit: src/lib/libc/locale utf8.c
Message-ID:  <6eb82e0710270130o5557efew95f62aef8035d209@mail.gmail.com>
In-Reply-To: <6eb82e0710260954m73b3f17bq2c72a4cdb597640e@mail.gmail.com>
References:  <200710150951.l9F9pUm7026506@repoman.freebsd.org> <20071025233536.B99770@fledge.watson.org> <472120E8.90504@samsco.org> <200710261144.34645.jhb@freebsd.org> <472217C2.8020800@samsco.org> <6eb82e0710260954m73b3f17bq2c72a4cdb597640e@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 10/27/07, Rong-en Fan <grafan@gmail.com> 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

http://people.freebsd.org/~rafan/ctype-abi-fix-6.diff

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
libc.so, 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.

Regards,
Rong-En Fan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6eb82e0710270130o5557efew95f62aef8035d209>