From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.CeBiTec.Uni-Bielefeld.DE (smtp.CeBiTec.Uni-Bielefeld.DE [129.70.160.84]) by sourceware.org (Postfix) with ESMTPS id 335153858D3C; Fri, 18 Mar 2022 12:47:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 335153858D3C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=CeBiTec.Uni-Bielefeld.DE Authentication-Results: sourceware.org; spf=none smtp.mailfrom=cebitec.uni-bielefeld.de Received: from localhost (localhost [127.0.0.1]) by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 3D172B12F0; Fri, 18 Mar 2022 13:47:38 +0100 (CET) X-Virus-Scanned: amavisd-new at CeBiTec.Uni-Bielefeld.DE Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1]) by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GhQgnNCE_IF5; Fri, 18 Mar 2022 13:47:37 +0100 (CET) Received: from fuego.CeBiTec.Uni-Bielefeld.DE (p508554ce.dip0.t-ipconnect.de [80.133.84.206]) (Authenticated sender: ro) by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id CBD47B11EB; Fri, 18 Mar 2022 13:47:37 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=CeBiTec.Uni-Bielefeld.DE; s=20200306; t=1647607657; bh=zhZSWoSlETuhyM1UopJoZIQc84Ikv2RlQAw9ltBcSJg=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=GxIV/z2W7pcgiAMEGK5fftK1GjPDiVyFu5wptsGcDG9JpIyD11r1cLHdPXgCKvBGS rrbKVSRnIxH3dI90bA5Rm6UoGyV2u+vXOHyVpJDJQhHpr6CdovM4z2sIamyf9dsvJx 7RAzM8IFhcuCfOz/VfopWKRoZOwqAopJImAGXthZxLeOAgA9M/1GCOtiewB/eTJj4Y XIrKwzaLn3SNN17z77fZcf/DeonAzkgFGfWiUgQD3YgURX9Y/VIXQtR49gP141eUFI 5CmPedJEiLtvyYY9JbdtsM5gm7TxqKV1GDk0vSU6+SC3Z6Zf5xPLhcxUFIVrs3V2u/ UGQReNYS5vRZw== From: Rainer Orth To: Jonathan Wakely Cc: "libstdc++" , gcc Patches Subject: Re: [committed] libstdc++: Fix symbol versioning for Solaris 11.3 [PR103407] References: <20220316212453.243636-1-jwakely@redhat.com> Date: Fri, 18 Mar 2022 13:47:37 +0100 In-Reply-To: (Jonathan Wakely's message of "Fri, 18 Mar 2022 12:21:11 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (usg-unix-v) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-3637.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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, 18 Mar 2022 12:47:40 -0000 Hi Jonathan, > I did some very brief testing and it seemed like a program linked to > the Solaris 11.3 libstdc++.so.6.0.30 (with from_chars@GLIBCXX_3.4.30) > can still run against libstdc++.so.6.0.30 with > from_chars@GLIBCXX_3.4.29 (which should match what you get on Solaris > 11.4 if I correctly fiddled with the versioning). So I don't indeed. You can observe the symbols provided and consumed by shared objects and executables with pvs. E.g. on 11.4: $ pvs -dsvo libstdc++.so|grep _ZSt10from_charsPKcS0_R libstdc++.so - GLIBCXX_3.4.29: _ZSt10from_charsPKcS0_RfSt12chars_format; libstdc++.so - GLIBCXX_3.4.29: _ZSt10from_charsPKcS0_ReSt12chars_format; libstdc++.so - GLIBCXX_3.4.29: _ZSt10from_charsPKcS0_RdSt12chars_format; for the provider side vs. 11.3: $ pvs -dsvo libstdc++.so|grep _ZSt10from_charsPKcS0_R libstdc++.so - GLIBCXX_3.4.30: _ZSt10from_charsPKcS0_ReSt12chars_format; libstdc++.so - GLIBCXX_3.4.30: _ZSt10from_charsPKcS0_RdSt12chars_format; libstdc++.so - GLIBCXX_3.4.30: _ZSt10from_charsPKcS0_RfSt12chars_format; pvs -r shows symbols and versions required by an executable. > understand how the Solaris runtime linker handles symbol versions, but > it seems like there's no backwards compatibility problem for the > Solaris 11.4 build of libstdc++.so.6.0.30. You can observe this at runtime with LD_DEBUG=versions or versions,detail. LD_DEBUG=help gives the full info. IIRC Solaris ld.so.1 just checks if the versions required by an executable are provided by a shared object, but doesn't look into individual symbols in advance. It may well be that some checks have been relaxed in the 11.4 timeframe, though. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University