From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id E279D3988828 for ; Fri, 6 Nov 2020 20:15:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org E279D3988828 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-589-AMohqkAyN5-wLOACnEZzQA-1; Fri, 06 Nov 2020 15:15:44 -0500 X-MC-Unique: AMohqkAyN5-wLOACnEZzQA-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4B8121084C91; Fri, 6 Nov 2020 20:15:42 +0000 (UTC) Received: from localhost (unknown [10.33.36.7]) by smtp.corp.redhat.com (Postfix) with ESMTP id D60576E70D; Fri, 6 Nov 2020 20:15:41 +0000 (UTC) Date: Fri, 6 Nov 2020 20:15:40 +0000 From: Jonathan Wakely To: Rainer Orth Cc: Jonathan Wakely via Gcc-patches , libstdc++@gcc.gnu.org Subject: Re: [committed 1/2] libstdc++: Export basic_stringbuf constructor [PR 97729] Message-ID: <20201106201540.GK503596@redhat.com> References: <20201105180152.GA3511218@redhat.com> MIME-Version: 1.0 In-Reply-To: X-Clacks-Overhead: GNU Terry Pratchett X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="TRkqPRiqIDKgfg/F" Content-Disposition: inline X-Spam-Status: No, score=-14.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, 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: Fri, 06 Nov 2020 20:15:48 -0000 --TRkqPRiqIDKgfg/F Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline On 06/11/20 11:56 +0100, Rainer Orth wrote: >Hi Jonathan, > >> libstdc++-v3/ChangeLog: >> >> PR libstdc++/97729 >> * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Add exports. >> * src/c++20/sstream-inst.cc (basic_stringbuf): Instantiate >> private constructor taking __xfer_bufptrs. >> >> Tested powerpc64le-linux. Committed to trunk. > >unfortunately, this broke Solaris bootstrap again: > >ld: fatal: libstdc++-symbols.ver-sun: 7314: symbol '_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_RKS3_ONS4_14__xfer_bufptrsE': symbol version conflict >ld: fatal: libstdc++-symbols.ver-sun: 7315: symbol '_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_RKS3_ONS4_14__xfer_bufptrsE': symbol version conflict >ld: fatal: libstdc++-symbols.ver-sun: 7316: symbol '_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_RKS3_ONS4_14__xfer_bufptrsE': symbol version conflict >ld: fatal: libstdc++-symbols.ver-sun: 7317: symbol '_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_RKS3_ONS4_14__xfer_bufptrsE': symbol version conflict > >Those are matched by both > > ##_ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]EOS4_RKS3_ONS4_14__xfer_bufptrsE (glob) > >but also by the previous > > ##_ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]*__xfer_bufptrs* (glob) > >I do have a hacky patch to avoid this, but I guess I best leave it to >you how to best tighten the previous pattern. It should be fixed at 887515acd27e49c176395ab76d5826959d89cb9b which is the attached patch. Only tested on x86_64-linux, but my script no longer shows the conflicts. I'll try to incorporate that script into the testsuite for gcc-11, or rewrite it as aprt of testsuite/util/testsuite_abi.cc --TRkqPRiqIDKgfg/F Content-Type: text/x-patch; charset=us-ascii Content-Disposition: attachment; filename="patch.txt" commit 887515acd27e49c176395ab76d5826959d89cb9b Author: Jonathan Wakely Date: Fri Nov 6 19:53:36 2020 libstdc++: Fix symbol version conflict in linker script The change in r11-4748-50b840ac5e1d6534e345c3fee9a97ae45ced6bc7 causes a build error on Solaris, due to the new explicit instantiation matching patterns for two different symbol versions. libstdc++-v3/ChangeLog: * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten up patterns for basic_stringbuf that refer to __xfer_bufptrs. diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index ed68ffa28723..2d0f87aa7cc7 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -1774,7 +1774,8 @@ GLIBCXX_3.4.21 { _ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ERKNS_12basic_stringI[cw]S2_S3_EESt13_Ios_Openmode; _ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ESt13_Ios_Openmode; _ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EED[012]Ev; - _ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]*__xfer_bufptrs*; + _ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]EOS4_ONS4_14__xfer_bufptrsE; + _ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]14__xfer_bufptrs[CD][12]*; _ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE[a1346789]*; # _ZNSt7__cxx1118basic_stringstreamI[cw]St11char_traitsI[cw]*; _ZNSt7__cxx1118basic_stringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]EOS4_; --TRkqPRiqIDKgfg/F--