libm functions for x86-64

Mike Frysinger vapier@gentoo.org
Fri Mar 17 14:35:00 GMT 2006


On Thursday 16 March 2006 19:39, H. J. Lu wrote:
> On Thu, Mar 16, 2006 at 06:41:28PM -0500, Mike Frysinger wrote:
> > On Tuesday 14 March 2006 11:42, Michael Matz wrote:
> > > I would like to know the best way to move forward with this.
> >
> > unless i did something wrong, this patch causes build failures when
> > applied to glibc-2.4 / trunk ...
> >
> > so in a clean cvs checkout of the libc dir on an amd64 host:
> > gzcat libm-x86-64.diff.gz | patch -p0
>
> You need "patch -E ...".

indeed ... i was left with empty copysign.S files which caused the undefined 
references to the __copysign funcs as the glibc build preferred the old 
empty .S files over the new custom .c files ...

that leaves me with the undef references to sin/cos though ... this appears to 
be because the libm patch overrides the default sysdeps/ieee754/*/s_sin.c 
file with a new empty sysdeps/x86_64/fpu/s_sin.c ... which would normally be 
fine as the patch also adds a new sysdeps/x86_64/fpu/s_sincos.c file to 
provide sincos(), sin(), and cos(), except that the patch doesnt delete the 
existing sysdeps/x86_64/fpu/s_sincos.S file ... if i delete 
sysdeps/x86_64/fpu/s_sincos.S myself and rebuild, libm.so is just peachy

this isnt an issue for glibc-2.3.6 as s_sincos.S was introduced in trunk and 
not the glibc-2.3 branch ...

so to recap:
patch fails on trunk/glibc-2.4 as the new sysdeps/x86_64/fpu/s_sincos.c 
conflicts with the existing sysdeps/x86_64/fpu/s_sincos.S file
-mike



More information about the Libc-alpha mailing list