[SH][PATCH] __fpscr_values broken
Kaz Kojima
kkojima@rr.iij4u.or.jp
Sat Jan 31 01:22:00 GMT 2009
Andrew Stubbs <ams@codesourcery.com> wrote:
> The SH4 needs to flip a mode bit in the FPSCR register each time it
> wants to do single precision FP, rather than double precision. These
> registers values are always stored in a symbol named __fpscr_values.
>
> Unfortunately, due to the special way that shared libraries work, the
> __fpscr_values symbol is not always visible.
>
>> [...]/math/libm_pic.a(e_lgamma_r.os): In function `__ieee754_lgamma_r':
>> [...]/math/../sysdeps/ieee754/dbl-64/e_lgamma_r.c:247: undefined reference to `__fpscr_values'
>> [...]/math/libm_pic.a(e_acosf.os): In function `__ieee754_acosf':
>> [...]/math/../sysdeps/ieee754/flt-32/e_acosf.c:55: undefined reference to `__fpscr_values'
>> [...]/math/../sysdeps/ieee754/flt-32/e_acosf.c:74: undefined reference to `__fpscr_values'
>> [...]/math/libm_pic.a(e_acoshf.os): In function `__ieee754_acoshf':
>> [...]/math/../sysdeps/ieee754/flt-32/e_acoshf.c:52: undefined reference to `__fpscr_values'
>> [...]/math/libm_pic.a(e_asinf.os): In function `__ieee754_asinf':
>> [...]/math/../sysdeps/ieee754/flt-32/e_asinf.c:109: undefined reference to `__fpscr_values'
>> [...]/math/libm_pic.a(e_atan2f.os):[...]/math/../sysdeps/ieee754/flt-32/e_atan2f.c:91: more undefined references to `__fpscr_values' follow
We always use no-z-defs=yes in configparms for this issue.
Does it work for you? See
http://sources.redhat.com/ml/libc-hacker/2003-01/msg00086.html
Although the patch is not wrong, I remember that putting
__fpscr_values in libc.so made compatibility problems.
Of course, rebuilding all with new libc will fix them, but
it'd be hard in some situation.
Regards,
kaz
More information about the Libc-alpha
mailing list