From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by sourceware.org (Postfix) with ESMTPS id 8FFF73858D20; Fri, 11 Aug 2023 05:43:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8FFF73858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-31783d02093so1471704f8f.0; Thu, 10 Aug 2023 22:43:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691732615; x=1692337415; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=s2hmL+QHgbCTTMsJPO533+FNcSViE9ilsOvLu415dOI=; b=GORw+FlMLMQpqF7we8XULxJQ3rpvTfW5BVu6x+IGKIpgw9WhlT69zakcsCncxsWbDG FMpXxa13IEEOTKHNqq6tAmCjmIooPQz64S0sq19L3XsgoXsZb2Qwpe3S9ERZ20WZ2J21 r3cY8b5VMGMCbC1/7K73WUJ0Id0OQLbwt98A7yvwlZQzH9697ewUhHjyP7JpVGr5+zBV oGrt7rvLOc1TDz7yOPJFY0t6qcEBKgiFAJfClnzN9NztM+U5mykjTQ4qcBea2CKBON92 gZk1qi9D7T1OPHNH3tfUIHVBdGwqC2RaFnue1z1c6TWfulZYj6oxpCmJNjF9Nba/oCiu sxEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691732615; x=1692337415; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=s2hmL+QHgbCTTMsJPO533+FNcSViE9ilsOvLu415dOI=; b=X4i870lFSwYTRXVJI2TXRYNPvVO7HYXG9Y1xHPtoGUXHrgWsPaEinymdWJI9TtcsBC wr48UI0Mlbm/mzcF4ZTmpClmwyZ7C135ptbfiOds81mqwMwE5/Uy4LxsRJgRK9GrnvP/ V/Oj1KbwHhv3Ga30Fbhb/C5/is3cna6eT1F8w0Sv/GfXZEYDXGQh0R5aZjIsHAhfkquI MnKbhNteygi9D8hCerlAEWQUJXx10bg66wVXo7cxLrETn/M3CHi+nyITx+UOFSa2Gj85 PC4LkEM5FYaT7VUsp7nYCcX8JzJ0u67d8F81ZOlYQyT6v59dFABaKhd19VwD1lm3f8og GPJg== X-Gm-Message-State: AOJu0YxkKJo3qc00Iw+gKvEqQRFkfPjPZPz5bPeTwFouGK6Bxc1fo9lx BEJPp8sAp64Cl9h5bG3ZpNWaVZ4Vu+Q= X-Google-Smtp-Source: AGHT+IFoFkzts+HRCOwAGvD16SdLFxvDFYNv4gBoqBnu2BE9/jMlHEf1skPWztPEyuBiQhtd7SqYeg== X-Received: by 2002:a5d:69c8:0:b0:313:f676:8327 with SMTP id s8-20020a5d69c8000000b00313f6768327mr530726wrw.60.1691732614465; Thu, 10 Aug 2023 22:43:34 -0700 (PDT) Received: from ?IPV6:2a01:e0a:1dc:b1c0:89c5:57ae:5893:a466? ([2a01:e0a:1dc:b1c0:89c5:57ae:5893:a466]) by smtp.gmail.com with ESMTPSA id r7-20020a5d4987000000b00317731a6e07sm4253507wrq.62.2023.08.10.22.43.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 10 Aug 2023 22:43:33 -0700 (PDT) Message-ID: Date: Fri, 11 Aug 2023 07:43:33 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH] sso-string@gnu-versioned-namespace [PR83077] From: =?UTF-8?Q?Fran=c3=a7ois_Dumont?= To: libstdc++ Cc: gcc-patches References: <1dc681f4-41b7-d171-02ac-b0194617bdee@gmail.com> Content-Language: en-US In-Reply-To: <1dc681f4-41b7-d171-02ac-b0194617bdee@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: I hadn't tested the most basic default configuration and it is failing, I need some more time yet. François On 10/08/2023 07:13, François Dumont wrote: > Hi > > I've eventually completed this work. > > This evolution will allow to build libstdc++ without dual abi and > using cxx11 abi. For the moment such a config is only accessible > through the --enable-symvers=gnu-versioned-namespace configuration. > >     libstdc++: [_GLIBCXX_INLINE_VERSION] Use cxx11 abi [PR83077] > >     Use cxx11 abi when activating versioned namespace mode. > >     libstdcxx-v3/ChangeLog: > >             PR libstdc++/83077 >             * acinclude.m4 [GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI]: > Default to "new" libstdcxx abi. >             * config/locale/dragonfly/monetary_members.cc > [!_GLIBCXX_USE_DUAL_ABI]: Define money_base >             members. >             * config/locale/generic/monetary_members.cc > [!_GLIBCXX_USE_DUAL_ABI]: Likewise. >             * config/locale/gnu/monetary_members.cc > [!_GLIBCXX_USE_DUAL_ABI]: Likewise. >             * config/locale/gnu/numeric_members.cc >             [!_GLIBCXX_USE_DUAL_ABI](__narrow_multibyte_chars): Define. >             * configure: Regenerate. >             * include/bits/c++config >             [_GLIBCXX_INLINE_VERSION](_GLIBCXX_NAMESPACE_CXX11, > _GLIBCXX_BEGIN_NAMESPACE_CXX11): >             Define empty. > [_GLIBCXX_INLINE_VERSION](_GLIBCXX_END_NAMESPACE_CXX11, > _GLIBCXX_DEFAULT_ABI_TAG): >             Likewise. >             * include/bits/cow_string.h [!_GLIBCXX_USE_CXX11_ABI]: > Define a light version of COW >             basic_string as __std_cow_string for use in stdexcept. >             * include/std/stdexcept [_GLIBCXX_USE_CXX11_ABI]: Define > __cow_string. >             (__cow_string(const char*)): New. >             (__cow_string::c_str()): New. >             * python/libstdcxx/v6/printers.py > (StdStringPrinter::__init__): Set self.new_string to True >             when std::__8::basic_string type is found. >             * src/Makefile.am > [ENABLE_SYMVERS_GNU_NAMESPACE](ldbl_alt128_compat_sources): Define empty. >             * src/Makefile.in: Regenerate. >             * src/c++11/Makefile.am (cxx11_abi_sources): Rename into... >             (dual_abi_sources): ...this. Also move cow-local_init.cc, > cxx11-hash_tr1.cc, >             cxx11-ios_failure.cc entries to... >             (sources): ...this. >             (extra_string_inst_sources): Move cow-fstream-inst.cc, > cow-sstream-inst.cc, cow-string-inst.cc, >             cow-string-io-inst.cc, cow-wtring-inst.cc, > cow-wstring-io-inst.cc, cxx11-locale-inst.cc, >             cxx11-wlocale-inst.cc entries to... >             (inst_sources): ...this. >             * src/c++11/Makefile.in: Regenerate. >             * src/c++11/cow-fstream-inst.cc [_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cow-locale_init.cc [_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cow-sstream-inst.cc [_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cow-stdexcept.cc [_GLIBCXX_USE_CXX11_ABI]: > Include . >             [_GLIBCXX_USE_DUAL_ABI || > _GLIBCXX_USE_CXX11_ABI](__cow_string): Redefine before including >             . Define > _GLIBCXX_DEFINE_STDEXCEPT_INSTANTIATIONS so that __cow_string definition >             in is skipped. >             [_GLIBCXX_USE_CXX11_ABI]: Skip Transaction Memory TS > definitions. >             * src/c++11/cow-string-inst.cc [_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cow-string-io-inst.cc > [_GLIBCXX_USE_CXX11_ABI]: Skip definitions. >             * src/c++11/cow-wstring-inst.cc [_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cow-wstring-io-inst.cc > [_GLIBCXX_USE_CXX11_ABI]: Skip definitions. >             * src/c++11/cxx11-hash_tr1.cc [!_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cxx11-ios_failure.cc > [!_GLIBCXX_USE_CXX11_ABI]: Skip definitions. >             [!_GLIBCXX_USE_DUAL_ABI] (__ios_failure): Remove. >             * src/c++11/cxx11-locale-inst.cc: Cleanup, just include > locale-inst.cc. >             * src/c++11/cxx11-stdexcept.cc [!_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cxx11-wlocale-inst.cc > [!_GLIBCXX_USE_CXX11_ABI]: Skip definitions. >             * src/c++11/locale-inst-numeric.h > [!_GLIBCXX_USE_DUAL_ABI](std::use_facet>, > std::use_facet>): Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](std::has_facet>, > std::has_facet>): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](std::num_get istreambuf_iterator>): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](std::num_put ostreambuf_iterator>): Instantiate. >             * src/c++11/locale-inst.cc [!_GLIBCXX_USE_DUAL_ABI]: Build > only when configured >             _GLIBCXX_USE_CXX11_ABI is equal to currently built abi. >             [!_GLIBCXX_USE_DUAL_ABI](__moneypunct_cache): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__moneypunct_cache): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__numpunct_cache): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__timepunct): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__timepunct_cache): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](time_put ostreambuf_iterator>): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](time_put_byname ostreambuf_iterator>): Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](__ctype_abstract_base): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](ctype_byname): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__codecvt_abstract_base mbstate_t>): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](codecvt_byname mbstate_t>): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](codecvt_byname mbstate_t>): Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](use_facet>(const locale&)): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](use_facet mbstate_t>>(const locale&)): Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](use_facet<__timepunct>(const locale&)): > Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](use_facet>(const locale&)): > Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](has_facet>(const locale&)): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](has_facet mbstate_t>>(const locale&)): Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](has_facet<__timepunct>(const locale&)): > Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](has_facet>(const locale&)): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__add_grouping): Define. >             [!_GLIBCXX_USE_DUAL_ABI](__pad>): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__int_to_char(C*, unsigned long, > const C*, >             ios_base::fmtflags, bool)): Define. >             [!_GLIBCXX_USE_DUAL_ABI](__int_to_char(C*, unsigned long > long, const C*, >             ios_base::fmtflags, bool)): Define. >             * src/c++11/string-inst.cc > (_GLIBCXX_DEFINING_CXX11_ABI_INSTANTIATIONS): Define following >             _GLIBCXX_USE_CXX11_ABI value. >             [_GLIBCXX_USE_CXX11_ABI && > !_GLIBCXX_DEFINING_CXX11_ABI_INSTANTIATIONS]: >             Define _GLIBCXX_DEFINING_COW_STRING_INSTANTIATIONS. > Include . >             Define basic_string as __std_cow_string for the current > translation unit. >             * src/c++11/wlocale-inst.cc [!_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++98/Makefile.am (cxx11_abi_sources): Remove, > unique cow-istream-string.cc entry >             move to... >             (inst_sources): ...this. >             * src/c++98/Makefile.in: Regenerate. >             * src/c++98/cow-istream-string.cc: Include > . >             [_GLIBCXX_USE_CXX11_ABI]: Skip definitions. >             * src/c++98/hash_tr1.cc [_GLIBCXX_USE_CXX11_ABI]: Skip > definitions. >             * src/c++98/ios_failure.cc > [_GLIBCXX_USE_CXX11_ABI][_GLIBCXX_USE_DUAL_ABI]: Skip definitions. >             * src/c++98/istream-string.cc [!_GLIBCXX_USE_DUAL_ABI]: > Build only when configured >             _GLIBCXX_USE_CXX11_ABI is equal to currently built abi. >             * src/c++98/locale_facets.cc > [_GLIBCXX_USE_CXX11_ABI](__verify_grouping): Remove. >             * src/c++98/stdexcept.cc >             [_GLIBCXX_USE_CXX11_ABI](logic_error(const string&): Remove. >             [_GLIBCXX_USE_CXX11_ABI](domain_error(const string&): Remove. >             [_GLIBCXX_USE_CXX11_ABI](invalid_argument(const string&): > Remove. >             [_GLIBCXX_USE_CXX11_ABI](length_error(const string&): Remove. >             [_GLIBCXX_USE_CXX11_ABI](out_of_range(const string&): Remove. >             [_GLIBCXX_USE_CXX11_ABI](runtime_error(const string&): > Remove. >             [_GLIBCXX_USE_CXX11_ABI](range_error(const string&): Remove. >             [_GLIBCXX_USE_CXX11_ABI](overflow_error(const string&): > Remove. >             [_GLIBCXX_USE_CXX11_ABI](underflow_error(const string&): > Remove. > > Tested under linux x86_64 with following configs: > > --enable-symvers=gnu-versioned-namespace > > --disable-libstdcxx-dual-abi > > Ok to commit ? > > François > >