[RFC][PATCH] check-localplt failure associated with IBM long double 128 and PowerPC
Ryan S. Arnold
rsa@us.ibm.com
Fri Feb 22 00:55:00 GMT 2008
The following patch is a first pass at fixing the check-localplt make
check errors associated with PowerPC and IBM long double.
Some of the IBM long double related check-localplt failures have
tendrils into libc/sysdeps/ieee754/ldb-128/ that required fixing.
The reason that this is an [RFC] is that I'm not sure what to do about
the requirements I added into libc/include/fenv.h in order to make libm
local calls invoke hidden symbols, namely:
libm_hidden_proto (fegetexcept)
libm_hidden_proto (fetestexcept)
libm_hidden_proto (__fe_nomask_env)
On non-PowerPC systems the libm_hidden_proto for fegetexcept and
fetestexcept are simply an added internal symbol that isn't used.
On PowerPC they're required because the PowerPC fe functions use these
functions inside of libm.
The real problem is with __fe_nomask_env(). This is a PowerPC only
function defined in sysdeps/powerpc/bits/fenv.h that is unfortunately
used within other PowerPC libm functions.
My experiments indicated that the libm_hidden_proto had to be in
libc/include/fenv.h so that the libm internal functions invoking
__fe_nomask_env (et al) pick up the hidden symbol prototype and not the
external PLT reference.
Perhaps there's an architecture specific way this can be resolved. Any
ideas?
Ryan S. Arnold
IBM Linux Technology Center
Linux Toolchain Development
-------------- next part --------------
A non-text attachment was scrubbed...
Name: check-localplt.patch
Type: text/x-patch
Size: 20214 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20080222/178fa096/attachment.bin>
More information about the Libc-alpha
mailing list