Gentoo Archives: gentoo-amd64

From: Simon Strandman <simon.strandman@×××××.com>
To: gentoo-amd64@l.g.o
Subject: Re: [gentoo-amd64] x86_64 optimization patches for glibc.
Date: Sun, 24 Jul 2005 14:37:26
Message-Id: 42E3A748.5010704@telia.com
In Reply to: Re: [gentoo-amd64] x86_64 optimization patches for glibc. by Jared Lindsay
Jared Lindsay skrev:

>Back on to a different subject...has anyone looked at the libm >section? I am curious as to how much of a performance increase that >would add if we can get it working. > > >
Getting it to work seems easier said than done. :( Has anyone else tried compiling it? For me it always fails to build. I've tried upgrading binutils to 2.16.91.0.1 (same version as mdk cooker), building without the gentoo patches, building without omitfp, enabling as-needed, building without various configure options, using the libm patch from suse instead of mandrake and with higher or lower optimizations. It didn't even work when I manually unpacked and compiled glibc with only the libm patches and configure options --prefix=/usr/ --enable-add-ons=nptl. Checking out the latest glibc from the 2.3 stable branch via cvs and adding the patches to that didn't work either. I'm running out of ideas now! Here is the error it fails with: x86_64-pc-linux-gnu-gcc -Wl,-O1 -nostdlib -nostartfiles -r -o /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.os \ -Wl,-d -Wl,--whole-archive /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.a x86_64-pc-linux-gnu-gcc -Wl,-O1 -shared -Wl,-O1 \ -nostdlib -nostartfiles \ -Wl,-dynamic-linker=/lib64/ld-linux-x86-64.so.2 -Wl,-z,relro \ -Wl,--verbose 2>&1 | \ sed > /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/shlib.ldsT \ -e '/^=========/,/^=========/!d;/^=========/d' \ -e 's/^.*\.hash[ ]*:.*$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \ -e 's/^.*\*(\.dynbss).*$/& \ PROVIDE(__start___libc_freeres_ptrs = .); \ *(__libc_freeres_ptrs) \ PROVIDE(__stop___libc_freeres_ptrs = .);/'\ -e 's/^.*\*(\.jcr).*$/& \ PROVIDE(__start___libc_subfreeres = .);\ __libc_subfreeres : { *(__libc_subfreeres) }\ PROVIDE(__stop___libc_subfreeres = .);\ PROVIDE(__start___libc_atexit = .);\ __libc_atexit : { *(__libc_atexit) }\ PROVIDE(__stop___libc_atexit = .);\ PROVIDE(__start___libc_thread_subfreeres = .);\ __libc_thread_subfreeres : { *(__libc_thread_subfreeres) }\ PROVIDE(__stop___libc_thread_subfreeres = .);/' mv -f /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/shlib.ldsT /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/shlib.lds x86_64-pc-linux-gnu-gcc -Wl,-O1 -shared -static-libgcc -Wl,-O1 -Wl,-z,defs -Wl,-dynamic-linker=/lib64/ld-linux-x86-64.so.2 -B/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/csu/ -Wl,--version-script=/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc.map -Wl,-soname=libc.so.6 -Wl,-z,relro -nostdlib -nostartfiles -e __libc_main -Wl,-z,now -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/math -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/elf -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/dlfcn -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/nss -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/nis -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/rt -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/resolv -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/crypt -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/nptl -Wl,-rpath-link=/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl:/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/math:/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/elf:/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/dlfcn:/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/nss:/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/nis:/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/rt:/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/resolv:/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/crypt:/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/nptl -o /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc.so -T /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/shlib.lds /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/csu/abi-note.o /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/elf/soinit.os /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.os /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/elf/sofini.os /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/elf/interp.os /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/elf/ld.so -lgcc /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.os: In function `scalbn': : undefined reference to `__copysign' /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.os: In function `__scalbnf': : undefined reference to `__copysignf' /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.os: In function `__scalbnf': : undefined reference to `__copysignf' collect2: ld returned 1 exit status make[1]: *** [/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc.so] Error 1 make[1]: Leaving directory `/var/tmp/portage/glibc-2.3.5/work/glibc-2.3.5' make: *** [all] Error 2 I've looked through some of the other mandrake and suse patches but the only patch mandrake has that contains the word "copysign" is the gcc4 patch. Using it makes the error slightly different but it still happens at the same place: /usr/portage/distfiles/glibc.build/libc_pic.os: In function `__scalbn': ../sysdeps/ieee754/dbl-64/s_scalbn.c:61: undefined reference to `__copysign' /usr/portage/distfiles/glibc.build/libc_pic.os: In function `__scalbnf': ../sysdeps/ieee754/flt-32/s_scalbnf.c:52: undefined reference to `__copysignf' ../sysdeps/ieee754/flt-32/s_scalbnf.c:58: undefined reference to `__copysignf' collect2: ld returned 1 exit status -- Simon Strandman <simon.strandman@×××××.com> -- gentoo-amd64@g.o mailing list

Replies

Subject Author
Re: [gentoo-amd64] x86_64 optimization patches for glibc. Jared Lindsay <cinder.sub@×××××.com>