From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.CeBiTec.Uni-Bielefeld.DE (smtp.CeBiTec.Uni-Bielefeld.DE [129.70.160.84]) by sourceware.org (Postfix) with ESMTPS id 75C36385783D; Wed, 13 Jan 2021 12:31:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 75C36385783D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=CeBiTec.Uni-Bielefeld.DE Authentication-Results: sourceware.org; spf=none smtp.mailfrom=ro@cebitec.uni-bielefeld.de Received: from localhost (localhost [127.0.0.1]) by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 42F9DB67; Wed, 13 Jan 2021 13:31:42 +0100 (CET) X-Virus-Scanned: amavisd-new at CeBiTec.Uni-Bielefeld.DE Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1]) by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mYZ2_g3Px0eG; Wed, 13 Jan 2021 13:31:41 +0100 (CET) Received: from manam.CeBiTec.Uni-Bielefeld.DE (p4fddb15f.dip0.t-ipconnect.de [79.221.177.95]) by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id 70F2DCDA; Wed, 13 Jan 2021 13:31:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=CeBiTec.Uni-Bielefeld.DE; s=20200306; t=1610541101; bh=LfQcIFJezzKy6G8Z3ulspi3jG1faWTmjgycJI3YeD4c=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=VuhAx0nlr6O0fmAjNDBZCpU4flst4m25EDO7uA+K3ldYOo7rB/cy4WoPI8WKwz3aP Nn5+NCF4WEkDsMs/XumgPWhcX4aH1vWpVth8SYH8z82DakYjrOH3nmr2/SAGqFXvms iCbkjRS9nL6uugLm3pRaJUBjgXY2QYPxyQa4VVDjz1ShKydwRqTaVbr4JsT0PfIJpp eBwD9aPS6krqbQRV+mlvxB5q8HgEE5qK3ObIgCyYpSkkCWKHSfpHkqpQjbj9iNjfrO +4TSnycZI1PLfRw1KE8HNvfPNFXuesW+Wf6UxPXYPk6DNkyUfRBc3m9vuP2HL3f2WE Z9j/KPwIHn8Hw== From: Rainer Orth To: "CHIGOT, CLEMENT" Cc: David Edelsohn , Jonathan Wakely , "libstdc++@gcc.gnu.org" , David Edelsohn via Gcc-patches Subject: Re: [PATCH] libstdc++: implement locale support for AIX References: <20210111154058.GB21410@redhat.com> <20210112152505.GE21410@redhat.com> Date: Wed, 13 Jan 2021 13:31:40 +0100 In-Reply-To: (CLEMENT CHIGOT's message of "Wed, 13 Jan 2021 12:23:39 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.90 (usg-unix-v) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-3789.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jan 2021 12:31:47 -0000 Hi Clement, >> This alone makes the patch inacceptable in its present form: breaking >> the libstdc++ ABI is a non-starter. However, I suspect this can be >> avoided somehow. > Thanks for having tried and I agree the patch isn't ready at all. I've just > wanted to see how behave on other systems and it seems that it might > not work as is. even if it did, this is certainly not stage3 material. However, submitting the patch early gives us enough time to work out the issues in time for GCC 12. > However, is the C++ ABI not standard ? I don't have this test failing on > AIX, AFAIK. Strange. Not really: the ABI tests rely on symbol versioning, which is only available on Solaris and GNU ELF targets. >> +FAIL: 22_locale/classification/isblank.cc execution test >> >> /vol/gcc/src/hg/master/solaris/libstdc++-v3/testsuite/22_locale/classification/isblank.cc:38: >> void test02(): Assertion 'std::isblank(L' ', std::locale::classic())' >> failed. >> >> It turns out that this is caused by ieee_1003.1-2008/ctype_members.cc >> using __bitmapsize = 11 in a couple of places, unlike the generic >> version which uses 15 to accomodate variations in character >> classifications. > 11 is the correct value on AIX and maybe also in Dragnofly/FreeBSD, > based on the value of Dragonfly model. However, big endian vs little > endian needs to be handled. I haven't fix that part on the current > patch I guess. (when bitmapsize = 15, there is no difference, endianness > doesn't matter). However, it might be simpler to set bitmapsize = 15 > for everyone, instead of having some defines for that. Maybe. I guess so, because this matches what the generic version does: obviously there are targets that need it depending in their constants, and Solaris may be just one of them. OTOH, I wondered if it wouldn't be better to start from the GNU code which is certainly known to work, rather than the DragonflyBSD one which may well have bitrotten since most of the BSDs moved to LLVM. Then again, it may not: Gerald tests on FreeBSD regularly. Perhaps a 3-way merge of gnu and *bsd -> ieee_1003.1-2008 is in order? >> However, there are many more which I haven't even started to >> investigate. I suspect there's one (or a few) reasons immediately >> obvious to someone familiar with the code. > Thanks for the list. I'll check if there is some common with AIX. But > wait until I push the new patch to start studying them. > It'll have the correct #ifdef based on configure and I'll try it on Linux. > Thus, it should be far better. That has been my plan: you're obviously way more familiar with this code than I am. Thanks for doing all this work. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University