From patchwork Tue Jun 24 02:14:56 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siddhesh Poyarekar X-Patchwork-Id: 1682 Received: (qmail 18765 invoked by alias); 24 Jun 2014 02:14:05 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 17598 invoked by uid 89); 24 Jun 2014 02:13:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.6 required=5.0 tests=AWL, BAYES_00, SPF_HELO_PASS, SPF_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Date: Tue, 24 Jun 2014 07:44:56 +0530 From: Siddhesh Poyarekar To: Roland McGrath Cc: "GNU C. Library" , Stefan Liebler , Joseph Myers Subject: [PATCH] Add compat symbols for scalb* in i386 (Was Re: i?86 libc.so check-abi regression) Message-ID: <20140624021456.GF4477@spoyarek.pnq.redhat.com> References: <20140623225713.6C7202C39AA@topped-with-meat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20140623225713.6C7202C39AA@topped-with-meat.com> User-Agent: Mutt/1.5.22.1-rc1 (2013-10-16) On Mon, Jun 23, 2014 at 03:57:13PM -0700, Roland McGrath wrote: > I haven't found anywhere where Stefan or anyone else claimed to have done > proper testing. It may have been reasonable for JJoseph to approve what he > saw based on the assumption that complete testing would be done before > commit. Siddhesh certainly should not have committed a change for someone > else without either testing it himself or citing the author's clear claim > that he had tested it. Sorry, I should have been more careful. > See math/Makefile lines 77-87 for why these changes became relevant to the > libc.so ABI (not just libm.so, which wasn't broken). > > It would be good to get some additional clean-up there. It looks to me > like printf_fp today does not actually use all those things, so we should > drop from libc whatever we don't need for printf_fp. Furthermore, we > should make sure that libc's copies are used only internally and not > exported at all. It's an unintended (very old) snafu that these things got > into any libc.so ABI; we never wanted them there. But ABIs is ABIs, so we > need runtime-only exports (i.e. no @@ symbols) of the things that > previously-baked ABIs require. The following patch fixes the immediate problem, which is the broken ABI for i?86. Tested on i386 to verify that check-abi runs clean. Siddhesh * sysdeps/i386/fpu/s_scalbn.S: Add compat symbol for libc.so. * sysdeps/i386/fpu/s_scalbnf.S: Likewise. * sysdeps/i386/fpu/s_scalbnl.S: Likewise. diff --git a/sysdeps/i386/fpu/s_scalbn.S b/sysdeps/i386/fpu/s_scalbn.S index 548f19f..21cb98b 100644 --- a/sysdeps/i386/fpu/s_scalbn.S +++ b/sysdeps/i386/fpu/s_scalbn.S @@ -16,3 +16,8 @@ ENTRY(__scalbn) END (__scalbn) weak_alias (__scalbn, scalbn) strong_alias (__scalbn, __scalbln) + +#include +#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_20) +compat_symbol (libc, __scalbn, scalbln, GLIBC_2_1); +#endif diff --git a/sysdeps/i386/fpu/s_scalbnf.S b/sysdeps/i386/fpu/s_scalbnf.S index fe6516e..fe504c0 100644 --- a/sysdeps/i386/fpu/s_scalbnf.S +++ b/sysdeps/i386/fpu/s_scalbnf.S @@ -16,3 +16,8 @@ ENTRY(__scalbnf) END (__scalbnf) weak_alias (__scalbnf, scalbnf) strong_alias (__scalbnf, __scalblnf) + +#include +#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_20) +compat_symbol (libc, __scalbnf, scalblnf, GLIBC_2_1); +#endif diff --git a/sysdeps/i386/fpu/s_scalbnl.S b/sysdeps/i386/fpu/s_scalbnl.S index 8f65de4..f1ca7ad 100644 --- a/sysdeps/i386/fpu/s_scalbnl.S +++ b/sysdeps/i386/fpu/s_scalbnl.S @@ -17,3 +17,8 @@ ENTRY(__scalbnl) END (__scalbnl) weak_alias (__scalbnl, scalbnl) strong_alias (__scalbnl, __scalblnl) + +#include +#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_20) +compat_symbol (libc, __scalbnl, scalblnl, GLIBC_2_1); +#endif