This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 1/2] S390: Save and restore fprs/vrs while resolving symbols.
- From: Florian Weimer <fweimer at redhat dot com>
- To: Stefan Liebler <stli at linux dot vnet dot ibm dot com>
- Cc: libc-alpha at sourceware dot org
- Date: Wed, 6 Apr 2016 13:56:01 +0200
- Subject: Re: [PATCH 1/2] S390: Save and restore fprs/vrs while resolving symbols.
- Authentication-results: sourceware.org; auth=none
- References: <1458645925-28632-1-git-send-email-stli at linux dot vnet dot ibm dot com>
On 03/22/2016 12:25 PM, Stefan Liebler wrote:
> On s390, no fpr/vrs were saved while resolving a symbol
> via _dl_runtime_resolve/_dl_runtime_profile.
>
> According to the abi, the fpr-arguments are defined as call clobbered.
> In leaf-functions, gcc 4.9 and newer can use fprs for saving/restoring gprs
> instead of saving them to the stack.
> If gcc do this in one of the resolver-functions, then the floating point
> arguments of a library-function are invalid for the first library-function-call.
> Thus, this patch saves/restores the fprs around the resolving code.
I think this bug is end-user-visible because it is due to an incorrect
implementation of the original ABI. Can you file a bug to track this
and add the number to the ChangeLog retroactively?
(The other patch, “Extend structs La_s390_regs / La_s390_retval” seems
different in this regard; I believe applications would have to check
that glibc supports the new ABI before they use the new features.)
Thanks,
Florian