This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: i?86 libc.so check-abi regression
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: Roland McGrath <roland at hack dot frob dot com>
- Cc: "GNU C. Library" <libc-alpha at sourceware dot org>, Stefan Liebler <stli at linux dot vnet dot ibm dot com>, Siddhesh Poyarekar <siddhesh at redhat dot com>
- Date: Mon, 23 Jun 2014 23:24:00 +0000
- Subject: Re: i?86 libc.so check-abi regression
- Authentication-results: sourceware.org; auth=none
- References: <20140623225713 dot 6C7202C39AA at topped-with-meat dot com>
On Mon, 23 Jun 2014, Roland McGrath wrote:
> 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.
libgcc on powerpc32 soft-float / e500 requires copysignl in libc (since
GCC doesn't inline __builtin_copysignl expansion for this configuration so
it ends up as an out-of-line call to copysignl, and libgcc uses
__builtin_copysignl in complex arithmetic operations - see
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58797>). That is, a
non-compat symbol is needed in libc to link the shared libgcc at all or to
build programs using the relevant operations from static libgcc without
them needing to link with libm.
--
Joseph S. Myers
joseph@codesourcery.com