From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 7255A3858D35; Thu, 29 Jun 2023 13:33:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7255A3858D35 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1688045608; bh=13YB3Xw7W+3KE9HXywRRS3IibBT74PW3DDWSpBjMTqs=; h=From:To:Subject:Date:In-Reply-To:References:From; b=dFJvzqwkN0wouTL5+S8BXMHEzZwc6uPSj40vyZ5QytSRVk4pxuM2CsoAHU7hHgn7K kFBWdS90X8yseDHsFS5437yR8RJDmEI163GTlWyUNHsobncSrTQxz8Lr2Seda0CCR3 Ed8jVjzxcYjjW6b3Vr387LrKWtq46Il7HM/7wzOM= From: "redi at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug libstdc++/110077] [14 regression] libstdc++-abi/abi_check FAILs on Solaris Date: Thu, 29 Jun 2023 13:33:28 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libstdc++ X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: ABI X-Bugzilla-Severity: normal X-Bugzilla-Who: redi at gcc dot gnu.org X-Bugzilla-Status: REOPENED X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: redi at gcc dot gnu.org X-Bugzilla-Target-Milestone: 14.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D110077 --- Comment #9 from Jonathan Wakely --- Thanks for the quick response! For x86 both these conditions are false: #if defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128) ... #elif defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_HAVE_FLOAT128_MATH) ... #endif and that means we the header doesn't declare from_chars for _Float128. With my changes for PR 109921 (r14-1431) that from_chars overload gets defi= ned in the library, causing the abi-check error. But if it's not present in the header, it's useless to define it in the library, it can't be called. One solution would be to just add the declaration to the header, and adjust= the exports so this new symbol is exported at GLIBCXX_3.4.32 not GLIBCXX_3.4.31 Alternatively, I need to find the right set of conditions to suppress the definition in the library.=