From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21610 invoked by alias); 24 Jun 2013 21:57:06 -0000 Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org Received: (qmail 21599 invoked by uid 89); 24 Jun 2013 21:57:06 -0000 X-Spam-SWARE-Status: No, score=-3.1 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED autolearn=ham version=3.3.1 Received: from toast.topped-with-meat.com (HELO topped-with-meat.com) (204.197.218.159) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Mon, 24 Jun 2013 21:57:05 +0000 Received: by topped-with-meat.com (Postfix, from userid 5281) id 546782C09B; Mon, 24 Jun 2013 14:57:04 -0700 (PDT) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit From: Roland McGrath To: Richard Henderson Cc: libc-ports@sourceware.org, joseph@codesourcery.com Subject: Re: [RFC] BZ 15666: alpha: Add __sqrt*_finite definitions In-Reply-To: Richard Henderson's message of Monday, 24 June 2013 10:07:07 -0700 <1372093627-26874-1-git-send-email-rth@twiddle.net> References: <1372093627-26874-1-git-send-email-rth@twiddle.net> Message-Id: <20130624215704.546782C09B@topped-with-meat.com> Date: Mon, 24 Jun 2013 21:57:00 -0000 X-CMAE-Score: 0 X-CMAE-Analysis: v=2.1 cv=LYSvtFvi c=1 sm=1 tr=0 a=WkljmVdYkabdwxfqvArNOQ==:117 a=14OXPxybAAAA:8 a=e6hLwQj8jKwA:10 a=Z6MIti7PxpgA:10 a=kj9zAlcOel0A:10 a=hOe2yjtxAAAA:8 a=go8CNGojjpEA:10 a=NgXVs7AwbSRdwtkJ_ecA:9 a=CjuIK1q_8ugA:10 X-SW-Source: 2013-06/txt/msg00047.txt.bz2 > This doesn't quite work. The __sqrtl_finite version gets emitted to > the wrong version. I had thought that adding symbols to the Versions > file at a later version would override earlier symbols in the more > generic Versions file, but it appears that isn't so? Nope. Our machinery just pastes them together, so libm.map lists both. The linker chooses the earliest one. > Must I solve this with an explicit versioned_symbol macro, or is there > a better way? Without touching non-alpha files, you must. Without affecting any other configuration, you could add something like '%ifdef __alpha__' to math/Versions (but you'd be shot). Without touching infrastructure, you could move __sqrtl_finite out of the shared math/Versions and put it into machine-specific sysdeps/.../Versions files so that it appears only once in libm.map and always in the right set for each machine. But that is a bit of a nightmare of duplication and a recipe for maintenance hell if we try to make everybody do everything this way from the start (at least as everything else stands today). Finally, we could rethink our whole infrastructure for producing the version maps and rejigger things to make these cases easier to handle. Thoughtful suggestions welcome. This is probably what we should be doing, but obviously not this week. Thanks, Roland