I would like to repost my previously deleted bug by (lazy IMHO)
<email address hidden>. The math sin function is at least 1000x slower on 64bit
distributions for special numbers (and carlos dosn't care about it).
I can't try it with CVS head, because I cannot connect to cvs through our firewall.
But even when I tried the latest snapshot, I couldn't build it (maybe another bug):
a - elf/dl-vdso.os
: /home/inova/projects/glibc/build/libc_pic.a
gcc -nostdlib -nostartfiles -r -o
/home/inova/projects/glibc/build/elf/librtld.map.o '-Wl,-('
/home/inova/projects/glibc/build/elf/dl-allobjs.os
/home/inova/projects/glibc/build/libc_pic.a -lgcc '-Wl,-)'
-Wl,-Map,/home/inova/projects/glibc/build/elf/librtld.mapT
/home/inova/projects/glibc/build/libc_pic.a(init-first.os):(.data+0x0): multiple
definition of `__libc_multiple_libcs'
/home/inova/projects/glibc/build/elf/dl-allobjs.os:/home/inova/projects/glibc/src/glibc-20080218/elf/rtld.c:641:
first defined here
/home/inova/projects/glibc/build/libc_pic.a(dl-addr.os): In function
`_dl_addr_inside_object':
/home/inova/projects/glibc/src/glibc-20080218/elf/dl-addr.c:158: multiple
definition of `_dl_addr_inside_object'
/home/inova/projects/glibc/build/elf/dl-allobjs.os:/home/inova/projects/glibc/src/glibc-20080218/elf/dl-open.c:700:
first defined here
collect2: ld returned 1 exit status
make[2]: *** [/home/inova/projects/glibc/build/elf/librtld.map] Error 1
make[2]: Leaving directory `/home/inova/projects/glibc/src/glibc-20080218/elf'
make[1]: *** [elf/subdir_lib] Error 2
make[1]: Leaving directory `/home/inova/projects/glibc/src/glibc-20080218'
make: *** [all] Error 2
Please, anyone with 64bit distribution and glibc CVS head, could you try the
attached example and post the time results of it? (or help me to build the
snapshot...)
Thank you
====== Original bug report ======================================
The math sin(double) function is in 64bit distribution (Kubuntu 7.10 AMD64 and
Fedora - unknown version) unreasonable slow (~400 microseconds on Atlon64 X2
4800+!!!) for some special values. In 32bit distribution is everything fine.
I captured some of those values:
0.93340582292648832662962377071381 0x3fedde75e36bb000
2.3328432680770916363144351635128 0x4002a9a9bb38add0
3.7439477503636453548097051680088 0x400df39ae0cdf500
3.9225160069792437411706487182528 0x400f615012801950
4.0711651639931289992091478779912 0x401048df854fdc20
4.7858438478542097982426639646292 0x401324b43fe92fc0
5.9840767662578002727968851104379 0x4017efb1d1df52a0
Example:
#include <math.h>
int main(int argc, char** argv) {
volatile double value = 0.93340582292648832662962377071381;
volatile double out;
int i;
for (i=0; i < 20000; i++)
out = sin(value);
return 0;
}
I would like to repost my previously deleted bug by (lazy IMHO) projects/ glibc/build/ libc_pic. a projects/ glibc/build/ elf/librtld. map.o '-Wl,-(' projects/ glibc/build/ elf/dl- allobjs. os projects/ glibc/build/ libc_pic. a -lgcc '-Wl,-)' /home/inova/ projects/ glibc/build/ elf/librtld. mapT projects/ glibc/build/ libc_pic. a(init- first.os) :(.data+ 0x0): multiple multiple_ libcs' projects/ glibc/build/ elf/dl- allobjs. os:/home/ inova/projects/ glibc/src/ glibc-20080218/ elf/rtld. c:641: projects/ glibc/build/ libc_pic. a(dl-addr. os): In function inside_ object' : projects/ glibc/src/ glibc-20080218/ elf/dl- addr.c: 158: multiple inside_ object' projects/ glibc/build/ elf/dl- allobjs. os:/home/ inova/projects/ glibc/src/ glibc-20080218/ elf/dl- open.c: 700: inova/projects/ glibc/build/ elf/librtld. map] Error 1 inova/projects/ glibc/src/ glibc-20080218/ elf' inova/projects/ glibc/src/ glibc-20080218'
<email address hidden>. The math sin function is at least 1000x slower on 64bit
distributions for special numbers (and carlos dosn't care about it).
I can't try it with CVS head, because I cannot connect to cvs through our firewall.
But even when I tried the latest snapshot, I couldn't build it (maybe another bug):
a - elf/dl-vdso.os
: /home/inova/
gcc -nostdlib -nostartfiles -r -o
/home/inova/
/home/inova/
/home/inova/
-Wl,-Map,
/home/inova/
definition of `__libc_
/home/inova/
first defined here
/home/inova/
`_dl_addr_
/home/inova/
definition of `_dl_addr_
/home/inova/
first defined here
collect2: ld returned 1 exit status
make[2]: *** [/home/
make[2]: Leaving directory `/home/
make[1]: *** [elf/subdir_lib] Error 2
make[1]: Leaving directory `/home/
make: *** [all] Error 2
Please, anyone with 64bit distribution and glibc CVS head, could you try the
attached example and post the time results of it? (or help me to build the
snapshot...)
Thank you
====== Original bug report ======= ======= ======= ======= ======= === 883266296237707 1381 0x3fedde75e36bb000 916363144351635 128 0x4002a9a9bb38add0 453548097051680 088 0x400df39ae0cdf500 437411706487182 528 0x400f615012801950 289992091478779 912 0x401048df854fdc20 097982426639646 292 0x401324b43fe92fc0 002727968851104 379 0x4017efb1d1df52a0
The math sin(double) function is in 64bit distribution (Kubuntu 7.10 AMD64 and
Fedora - unknown version) unreasonable slow (~400 microseconds on Atlon64 X2
4800+!!!) for some special values. In 32bit distribution is everything fine.
I captured some of those values:
0.9334058229264
2.3328432680770
3.7439477503636
3.9225160069792
4.0711651639931
4.7858438478542
5.9840767662578
Example: 883266296237707 1381;
#include <math.h>
int main(int argc, char** argv) {
volatile double value = 0.9334058229264
volatile double out;
int i;
for (i=0; i < 20000; i++)
out = sin(value);
return 0;
}