From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 96370 invoked by alias); 15 Jun 2015 12:31:23 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 96344 invoked by uid 89); 15 Jun 2015 12:31:22 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=no version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Mon, 15 Jun 2015 12:31:21 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (Postfix) with ESMTPS id A00F558; Mon, 15 Jun 2015 12:31:20 +0000 (UTC) Received: from localhost (ovpn-116-28.ams2.redhat.com [10.36.116.28]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t5FCVJla005044; Mon, 15 Jun 2015 08:31:20 -0400 Date: Mon, 15 Jun 2015 12:53:00 -0000 From: Jonathan Wakely To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: Re: [patch] libstdc++/66030 fix codecvt exports for mingw32 Message-ID: <20150615123119.GB21485@redhat.com> References: <20150608151218.GY12728@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <20150608151218.GY12728@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SW-Source: 2015-06/txt/msg01007.txt.bz2 On 08/06/15 16:12 +0100, Jonathan Wakely wrote: >The linker script assumes that std::mbstate_t has the name __mbstate_t >for linkage purposes, but that's not necessarily true. For mingw32 >it's just a typedef for int, so the patterns don't match. > >This adds a new mingw32-specific pattern for codecvt_byname's >constructors and destructors, and relaxes the patterns for >codecvt so they match __mbstate_t or int. > >Tested x86_64-linux and powerpc64le-linux, committed to trunk. > >I plan to commit this to trunk and gcc-5-branch soon. I've fully tested this on x86_64-linux and powerpc64le-linux, and also manually verified there is no changed to the exported symbols on Fedora 22 for i686, s390, s390x, ppc64, ppc64le, armv7hl and aarch64, so am committing to the gcc-5-branch (approved by Jakub on IRC). >commit dffce5e2b48ff19c4ec4de5d7ca934c15225b940 >Author: Jonathan Wakely >Date: Mon Jun 1 17:31:46 2015 +0100 > > PR libstdc++/66030 > * config/abi/pre/gnu.ver: Export codecvt_byname and codecvt symbols > for mingw32. > >diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver >index 2da04e4..d42cd37 100644 >--- a/libstdc++-v3/config/abi/pre/gnu.ver >+++ b/libstdc++-v3/config/abi/pre/gnu.ver >@@ -542,6 +542,9 @@ GLIBCXX_3.4 { > # std::codecvt_byname > _ZNSt14codecvt_bynameI[cw]c11__mbstate_tEC[12]EPKc[jmy]; > _ZNSt14codecvt_bynameI[cw]c11__mbstate_tED*; >+#if defined (_WIN32) && !defined (__CYGWIN__) >+ _ZNSt14codecvt_bynameI[cw]ciE[CD]*; >+#endif > > # std::collate > _ZNSt7collateI[cw]*; >@@ -1821,9 +1824,9 @@ GLIBCXX_3.4.21 { > _ZNKSt8time_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc; > > # codecvt, codecvt >- _ZNKSt7codecvtID[is]c11__mbstate_t*; >- _ZNSt7codecvtID[is]c11__mbstate_t*; >- _ZT[ISV]St7codecvtID[is]c11__mbstate_tE; >+ _ZNKSt7codecvtID[is]c*; >+ _ZNSt7codecvtID[is]c*; >+ _ZT[ISV]St7codecvtID[is]c*E; > > extern "C++" > {