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>