diff mbox

Add compat symbols for scalb* in i386 (Was Re: i?86 libc.so check-abi regression)

Message ID 20140624021456.GF4477@spoyarek.pnq.redhat.com
State Committed
Headers show

Commit Message

Siddhesh Poyarekar June 24, 2014, 2:14 a.m. UTC
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.

Comments

Roland McGrath June 24, 2014, 8:14 p.m. UTC | #1
> +#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_20)

You don't need "defined SHARED &&", so drop it.

Please put it in with that change.  

Getting back to the status quo is certainly fine for now, of course.  We
can hash out how best to clean up the situation and I hope we don't put
that off too long, but it's clearly not materially important that this get
done in the current cycle.

Thanks,
Roland
diff mbox

Patch

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 <shlib-compat.h>
+#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 <shlib-compat.h>
+#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 <shlib-compat.h>
+#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_20)
+compat_symbol (libc, __scalbnl, scalblnl, GLIBC_2_1);
+#endif