[PATCH] Add compat symbols for scalb* in i386 (Was Re: i?86 libc.so check-abi regression)
Siddhesh Poyarekar
siddhesh@redhat.com
Tue Jun 24 02:14:00 GMT 2014
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 <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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20140624/acd68787/attachment.sig>
More information about the Libc-alpha
mailing list