From owner-cvs-src@FreeBSD.ORG Sat Oct 27 08:30:34 2007 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C350F16A419 for ; Sat, 27 Oct 2007 08:30:34 +0000 (UTC) (envelope-from grafan@gmail.com) Received: from fk-out-0910.google.com (fk-out-0910.google.com [209.85.128.187]) by mx1.freebsd.org (Postfix) with ESMTP id 48FB513C4B9 for ; Sat, 27 Oct 2007 08:30:34 +0000 (UTC) (envelope-from grafan@gmail.com) Received: by fk-out-0910.google.com with SMTP id b27so1331919fka for ; Sat, 27 Oct 2007 01:30:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=upl4/dGz3oAiwq/5ykXLzuSv4LLrJivXB2UifXKBd1c=; b=i8ZgqlQzu8bj4IHToO0405pprFc34IeeSkVizH6q0HZXe2wbrHvX6bU+yQ5C+7s/QtvVAUhhbaw88szMoXiHKfxuowk0CJET3Sdd82c3pOnpRLGXeMNYMPnVVHiHvnvWhF1qh9+FOtav+5FYb5CDSs6f6pbyMWmheiyeHr+ei2Y= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=oG5reaPtp+0y1f1TzkrOFb0R/juihiOnWc4RT9KXFvqKgC/TWIAYhqt8QB8QTolnRZkhsPFqvH17DqEYrbQnPwQh7QPbLGqPPpj2vw/LKBW8DcEL8y7YI5aq60wRwUwkjYC7UxEL89+AF6cL9aXC2D1KC1IQoWPuOSK6uM/43F0= Received: by 10.82.182.1 with SMTP id e1mr7233795buf.1193473830648; Sat, 27 Oct 2007 01:30:30 -0700 (PDT) Received: by 10.82.113.14 with HTTP; Sat, 27 Oct 2007 01:30:30 -0700 (PDT) Message-ID: <6eb82e0710270130o5557efew95f62aef8035d209@mail.gmail.com> Date: Sat, 27 Oct 2007 16:30:30 +0800 From: "Rong-en Fan" To: "Scott Long" In-Reply-To: <6eb82e0710260954m73b3f17bq2c72a4cdb597640e@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline 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> Cc: src-committers@freebsd.org, d@delphij.net, John Baldwin , Andrey Chernov , Robert Watson , cvs-src@freebsd.org, imp@freebsd.org Subject: Re: cvs commit: src/lib/libc/locale utf8.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Oct 2007 08:30:34 -0000 On 10/27/07, Rong-en Fan 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