This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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

Attachment: pgp8NeR6wJKFr.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]