From patchwork Sun Jun 8 00:04:35 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Carlini X-Patchwork-Id: 357170 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 1A11214008B for ; Sun, 8 Jun 2014 10:08:01 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type; q=dns; s=default; b=LIu+co0yXa2yG8sQz dmp8xK7NGMJEOYoEEr9zl0ghMXCL9UINemMY83yySn9C80gPrTG00HSlB3o15+i/ NugF6Jv73o92LKdy/JuH/LwlpT0XxA69Uf98CUwwVEYk2TAG75GhoJQppGRPXd45 S75rVz5F48Im5HPntxshBzPmYY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type; s=default; bh=mEqFRiebNZT/SOl6NrhgaK1 h0ho=; b=X6ukf9wMa5y5gQhb+NXvgXLnCDXGorrtKtXjxYKOnRbJnf1LMllaOtw DT+xE2WCLYR07CT/4AfFUyKPB3XwRGITAHWOE3QPBb5+ldT5OaIE2WoopJiSmOuv 7hsv4vX3Kne4nGHNpzBP9WZeCH6AQQjHsZvRT7+cbvCMT4Y/JCbg= Received: (qmail 13985 invoked by alias); 8 Jun 2014 00:07:43 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 13965 invoked by uid 89); 8 Jun 2014 00:07:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL, BAYES_50, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: aserp1040.oracle.com Received: from aserp1040.oracle.com (HELO aserp1040.oracle.com) (141.146.126.69) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Sun, 08 Jun 2014 00:07:40 +0000 Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s5807an1010265 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 8 Jun 2014 00:07:37 GMT Received: from aserz7022.oracle.com (aserz7022.oracle.com [141.146.126.231]) by ucsinet22.oracle.com (8.14.5+Sun/8.14.5) with ESMTP id s5807Xu3018067 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 8 Jun 2014 00:07:35 GMT Received: from abhmp0002.oracle.com (abhmp0002.oracle.com [141.146.116.8]) by aserz7022.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s5807W2r027914; Sun, 8 Jun 2014 00:07:33 GMT Received: from [192.168.1.4] (/79.21.175.156) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sat, 07 Jun 2014 17:07:32 -0700 Message-ID: <5393A893.5060905@oracle.com> Date: Sun, 08 Jun 2014 02:04:35 +0200 From: Paolo Carlini User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Marc Glisse CC: gcc-patches@gcc.gnu.org, jason@redhat.com, libstdc++@gcc.gnu.org, meissner@linux.vnet.ibm.com, ramana.gcc@googlemail.com Subject: Re: __float128 typeinfo References: <5391CF10.2000608@oracle.com> In-Reply-To: X-IsSubscribed: yes Hi again, On 06/07/2014 11:42 AM, Marc Glisse wrote: > On Fri, 6 Jun 2014, Paolo Carlini wrote: > >> On 06/06/2014 04:16 PM, Marc Glisse wrote: >>> abi_check is broken before my patch (134 incompatible symbols). >> Isn't broken for me, though. Likewise, AFAICS, on gcc-testresults. I >> would recommend investigating in some detail what's going on at your >> end... > > Ah, no, abi_check actually passed in the regular bootstrap, it is in > the debug builds (-O0) that it fails because more than a hundred > non-inlined inline functions find their way into the library. False > alarm. I'm finishing testing the attached... So far, it works fine for me at -O0. Paolo. //////////////// Index: config/abi/pre/gnu.ver =================================================================== --- config/abi/pre/gnu.ver (revision 211346) +++ config/abi/pre/gnu.ver (working copy) @@ -24,11 +24,9 @@ # Names inside the 'extern' block are demangled names. extern "C++" { - std::[A-Z]*; - std::a[a-c]*; - std::ad[a-n]*; - std::ad[p-z]*; - std::a[e-z]*; +# std::[A-Z]*; +# std::a[e-z]*; + std::ad[a-np-z]*; # std::ba[a-r]*; std::basic_[a-e]*; std::basic_f[a-h]*; @@ -45,12 +43,10 @@ std::basic_istr[f-z]*; std::basic_i[t-z]*; std::basic_[j-n]*; - std::basic_o[a-e]*; # std::basic_ofstream; # std::basic_o[g-z]*; - std::basic_o[g-r]*; - std::basic_ostr[a-d]*; - std::basic_ostr[f-z]*; + std::basic_o[a-eg-r]*; + std::basic_ostr[a-df-z]*; std::basic_[p-r]*; # std::basic_streambuf # std::basic_string @@ -64,20 +60,20 @@ # std::c[i-z]*; std::c[i-n]*; # std::condition_variable; - std::co[^n]*; - std::c[p-s]*; +# std::co[^n]*; + std::cout; +# std::codecvt*; + std::collate*; + std::c[p-sv-z]*; std::cu[^r]*; # std::current_exception - std::c[v-z]*; # std::[d-g]*; - std::d[a-d]*; - std::d[f-n]*; + std::d[a-df-np-z]*; std::domain_error::d*; # std::domain_error::~d*; - std::d[p-z]*; - std::e[a-q]*; + std::e[a-m]*; std::error[^_]*; - std::e[s-z]*; +# std::e[s-z]; std::gslice*; std::h[^a]*; std::i[a-m]*; @@ -84,9 +80,24 @@ std::invalid_argument::i*; # std::invalid_argument::~i*; # std::ios_base::[A-Ha-z]*; - std::ios_base::[A-Ha-f]*; + std::ios_base::[A-Ha-e]*; + std::ios_base::fixed; + std::ios_base::float; + std::ios_base::failbit; + std::ios_base::failure*; + std::ios_base::floatfield; std::ios_base::goodbit; - std::ios_base::[h-z]*; +# std::ios_base::[h-z]*; + std::ios_base::[h-otu]*; + std::ios_base::right; + std::ios_base::showpos; + std::ios_base::scientific; + std::ios_base::showbase; + std::ios_base::showpoint; + std::ios_base::skipws; + std::ios_base::sync_with_stdio*; + std::ios_base::register_callback*; + std::ios_base::xalloc*; std::ios_base::_M_grow_words*; std::ios_base::_M_init*; std::ios_base::Init::[A-Za-z]*; @@ -96,19 +107,19 @@ # std::istreambuf_iterator std::istringstream*; std::istrstream*; - std::i[t-z]*; +# std::i[t-z]*; std::[A-Zj-k]*; std::length_error::l*; # std::length_error::~l*; std::logic_error*; std::locale::[A-Za-e]*; - std::locale::facet::[A-Za-z]*; + std::locale::facet::[A-Zg-z]*; std::locale::facet::_S_get_c_locale*; std::locale::facet::_S_clone_c_locale*; std::locale::facet::_S_create_c_locale*; std::locale::facet::_S_destroy_c_locale*; std::locale::[A-Zg-h]*; - std::locale::id::[A-Za-z]*; +# std::locale::id::[A-Za-z]*; std::locale::id::_M_id*; std::locale::[A-Zj-z]*; std::locale::_[A-Ha-z]*; @@ -117,15 +128,14 @@ std::locale::_[J-Ra-z]*; std::locale::_S_normalize_category*; std::locale::_[T-Za-z]*; -# std::[A-Zm-r]*; -# std::[A-Zm]*; - std::[A-Z]*; - std::messages*; - std::money*; +# std::messages*; +# std::money*; # std::n[^u]*; - std::n[^aue]*; - std::nu[^m]*; - std::num[^e]*; +# std::n[^aue]*; + std::nothrow; +# std::nu[^m]*; +# std::num[^e]*; + std::numpunct*; std::ostrstream*; std::out_of_range::o*; # std::out_of_range::~o*; @@ -145,18 +155,16 @@ std::strstreambuf*; # std::t[a-q]*; std::t[a-g]*; - std::th[a-h]*; - std::th[j-q]*; - std::th[s-z]*; + std::th[a-hj-qs-z]*; # std::t[i-n]*; std::tr1::h[^a]*; - std::t[s-z]*; +# std::t[s-z]*; # std::[A-Zu-z]*; std::underflow_error::u*; # std::underflow_error::~u*; std::uncaught_exception*; std::unexpected*; - std::[A-Zv-z]*; + std::[A-Zw-z]*; std::_List_node_base::hook*; std::_List_node_base::swap*; std::_List_node_base::unhook*; @@ -179,6 +187,11 @@ # among the standard integer types and sizes on different platforms and # under different modes of 64-bit architecture (ILP64, LLP64, etc.) + # std::allocator + _ZNSaI[cw]EC[12]Ev; + _ZNSaI[cw]ED*; + _ZNSaI[cw]EC[12]ERKS_; + # std::string # 'y' here and below represents 'unsigned long long' # where it is used for size_type on LLP64 platforms. @@ -196,7 +209,7 @@ _ZNSs[67][j-z]*E[PRcjmvy]*; _ZNSs7[a-z]*EES2_[NPRjmy]*; _ZNSs7[a-z]*EES2_S[12]*; - _ZNSs12_Alloc_hiderC*; + _ZNSs12_Alloc_hiderC[12]EP*; _ZNSs12_M_leak_hardEv; _ZNSs12_S_constructE[jmy]cRKSaIcE; _ZNSs12_S_empty_repEv; @@ -236,7 +249,10 @@ _ZNKSs8_M_check*; _ZNKSs8_M_limit*; _ZNKSs9_M_ibeginEv; - _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_E*; +# _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_E*; + _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES*; + _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS*; + _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_; _ZNKSs7compare*; _ZNKSs5c_strEv; _ZNKSs8capacityEv; @@ -257,7 +273,8 @@ _ZNSbIwSt11char_traitsIwESaIwEE[67][j-z]*E[PRwjmvy]*; _ZNSbIwSt11char_traitsIwESaIwEE7[a-z]*EES6_[NPRjmy]*; _ZNSbIwSt11char_traitsIwESaIwEE7[a-z]*EES6_S[56]*; - _ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC*; +# _ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC*; + _ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC[12]EP*; _ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv; _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructE[jmy]wRKS1_; _ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv; @@ -452,31 +469,52 @@ # std::use_facet _ZSt9use_facetIS*; + # std::codecvt + _ZNSt14codecvt_byname*; + _ZNKSt7codecvtI[cw]c11*; + _ZNSt7codecvtI[cw]c11*; + + # std::ctype_base + _ZNSt10ctype_base5*; + _ZNSt10ctype_base6*; + # std::ctype - _ZNKSt5ctypeIcE8*; + _ZNKSt5ctypeIcE8do_widen*; _ZNKSt5ctypeIcE9*; _ZNKSt5ctypeIcE10*; _ZNKSt5ctypeIw*; _ZNSt5ctypeI[cw]*; - # std::ctype_base - _ZNSt10ctype_base*; - # std::ctype_byname _ZNSt12ctype_bynameI[cw]*; # std::num_get - _ZNKSt7num_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*; + _ZNKSt7num_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE1[46]*; + _ZNKSt7num_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE[236CD]*; + _ZNSt7num_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*; # std::num_put _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*; + _ZNSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*; + # std::money_base + _ZNSt10money_base8*; + _ZNSt10money_base18*; + _ZNSt10money_base20*; + # std::money_get + _ZNSt9money_get*; _ZNKSt9money_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*; # std::money_put + _ZNSt9money_put*; _ZNKSt9money_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*; + # std::moneypunct + _ZNKSt10moneypunct*; + _ZNSt10moneypunct*; + _ZNSt17moneypunct*; + # std::time_get _ZNSt8time_get*; _ZNKSt8time_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE1*; @@ -493,6 +531,11 @@ # std::time_put_byname _ZNSt15time_put_byname*; + # std::messages + _ZNKSt8messages*; + _ZNSt8messages*; + _ZNSt15messages_byname*; + # std::numeric_limits _ZNSt21__numeric_limits_base[5-9]*; _ZNSt21__numeric_limits_base1[0-7][hirt]*; @@ -499,7 +542,8 @@ _ZNSt21__numeric_limits_base1[0-7]mi*; _ZNSt21__numeric_limits_base1[0-7]max_e*; - _ZNSt14numeric_limitsI[a-m]E[5-9]*; + _ZNSt14numeric_limitsI[a-m]E[5-9][a-hj-z]*; + _ZNSt14numeric_limitsI[a-m]E[5-9]is_*; _ZNSt14numeric_limitsI[p-z]E[5-9]*; _ZNSt14numeric_limitsI[a-m]E1[0-7][hirt]*; _ZNSt14numeric_limitsI[p-z]E1[0-7][hirt]*; @@ -508,6 +552,12 @@ _ZNSt14numeric_limitsI[a-m]E1[0-7]max_e*; _ZNSt14numeric_limitsI[p-z]E1[0-7]max_e*; + # std::valarray + _ZNSt8valarrayI[jmy]ED*; + _ZNSt8valarrayI[jmy]EC*; + _ZNSt8valarrayI[jmy]EixE[jmy]; + _ZNKSt8valarrayI[jmy]E4sizeEv; + # std::_Rb_tree _ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base; _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base; @@ -563,7 +613,7 @@ _ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_; # __gnu_debug::_Error_formatter - _ZNK11__gnu_debug16_Error_formatter10_M_message*; + _ZNK11__gnu_debug16_Error_formatter10_M_messageENS*; _ZNK11__gnu_debug16_Error_formatter10_Parameter*; _ZNK11__gnu_debug16_Error_formatter13_M_print_word*; _ZNK11__gnu_debug16_Error_formatter15_M_print_string*; @@ -667,9 +717,9 @@ _ZTISt10__num_base; _ZTISt21__ctype_abstract_baseI[cw]E; _ZTISt23__codecvt_abstract_baseI[cw]c11__mbstate_tE; -# _ZTISt16__numpunct_cacheI[cw]E; -# _ZTISt17__timepunct_cacheI[cw]E; -# _ZTISt18__moneypunct_cacheI[cw]Lb?EE; +# _ZTISt16__numpunct_cacheI[cw]E; +# _ZTISt17__timepunct_cacheI[cw]E; +# _ZTISt18__moneypunct_cacheI[cw]Lb?EE; _ZTINSt8ios_base7failureE; _ZTINSt6locale5facetE; _ZTIN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EEE; @@ -708,6 +758,14 @@ _ZTSN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EEE; _ZTSN9__gnu_cxx13stdio_filebufI[cw]St11char_traitsI[cw]EEE; + # std::type_info + _ZNKSt9type_info1*; + _ZNSt9type_infoD*; + + # std::exception + _ZNKSt9exception4whatEv; + _ZNSt9exceptionD*; + # std::bad_alloc::~bad_alloc, std::bad_cast::~bad_cast, # std::bad_typeid::~bad_typeid, std::bad_exception::~bad_exception _ZNSt9bad_allocD*; @@ -989,7 +1047,10 @@ _ZNSt15basic_streambufI[cw]St11char_traitsI[cw]EE6stosscEv; _ZN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EE4syncEv; - _ZN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EE[5-9C]*; + _ZN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EE[5679]*; + _ZN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EE8overflow*; + _ZN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EEC[12]*; + _ZN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EED[^2]*; } GLIBCXX_3.4.9; @@ -1150,8 +1211,14 @@ _ZNKSbIwSt11char_traitsIwESaIwEE5crendEv; # string|wstring ::_S_construct<> and ::_S_construct_aux_2 helpers - _ZNSs12_S_constructI*; - _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructI*; + # _ZNSs12_S_constructI*; + _ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag; + _ZNSs12_S_constructIPKcEEPcT_S3_RKSaIcESt20forward_iterator_tag; + _ZNSs12_S_constructIN9__gnu_cxx17__normal_iteratorIPcSsEEEES2_T_S4_RKSaIcESt20forward_iterator_tag; + # _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructI*; + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPKwEEPwT_S7_RKS1_St20forward_iterator_tag; + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPwEES4_T_S5_RKS1_St20forward_iterator_tag; + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIN9__gnu_cxx17__normal_iteratorIPwS2_EEEES6_T_S8_RKS1_St20forward_iterator_tag; _ZNSs18_S_construct_aux_2*; _ZNSbIwSt11char_traitsIwESaIwEE18_S_construct_aux_2*; @@ -1416,7 +1483,7 @@ # *_type_info classes, ctor and dtor _ZN10__cxxabiv117__array_type_info*; - _ZN10__cxxabiv117__class_type_info*; + _ZN10__cxxabiv117__class_type_infoD*; _ZN10__cxxabiv116__enum_type_info*; _ZN10__cxxabiv120__function_type_info*; _ZN10__cxxabiv123__fundamental_type_info*; @@ -1427,7 +1494,8 @@ _ZN10__cxxabiv121__vmi_class_type_info*; # *_type_info classes, member functions - _ZNK10__cxxabiv117__class_type_info*; + _ZNK10__cxxabiv117__class_type_info1[012]*; + _ZNK10__cxxabiv117__class_type_info2*; _ZNK10__cxxabiv120__function_type_info*; _ZNK10__cxxabiv117__pbase_type_info*; _ZNK10__cxxabiv129__pointer_to_member_type_info*; @@ -1576,10 +1644,14 @@ CXXABI_1.3.8 { __cxa_throw_bad_array_new_length; - _Z*St20bad_array_new_length*; + _ZT[VSI]St20bad_array_new_length; + _ZNSt20bad_array_new_lengthD*; + _ZNKSt20bad_array_new_length4whatEv; __cxa_throw_bad_array_length; - _Z*St16bad_array_length*; + _ZT[VSI]St16bad_array_length; + _ZNSt16bad_array_lengthD*; + _ZNKSt16bad_array_length4whatEv; # Virtual table verification stub functions. _Z17__VLTRegisterPair*;