Gentoo Logo
Gentoo Spaceship




Note: Due to technical difficulties, the Archives are currently not up to date. GMANE provides an alternative service for most mailing lists.
c.f. bug 424647
List Archive: gentoo-amd64
Navigation:
Lists: gentoo-amd64: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-amd64@g.o
From: Simon Strandman <simon.strandman@...>
Subject: Re: x86_64 optimization patches for glibc.
Date: Sun, 24 Jul 2005 16:35:52 +0200
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@...>

-- 
gentoo-amd64@g.o mailing list


Replies:
Re: x86_64 optimization patches for glibc.
-- Jared Lindsay
References:
x86_64 optimization patches for glibc.
-- Simon Strandman
Re: x86_64 optimization patches for glibc.
-- Matt Randolph
Re: x86_64 optimization patches for glibc.
-- Matt Randolph
Re: x86_64 optimization patches for glibc.
-- Sean Johnson
Re: x86_64 optimization patches for glibc.
-- Matt Randolph
Re: x86_64 optimization patches for glibc.
-- Ian McCulloch
Re: x86_64 optimization patches for glibc.
-- Jared Lindsay
Navigation:
Lists: gentoo-amd64: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Re: x86_64 optimization patches for glibc.
Next by thread:
Re: x86_64 optimization patches for glibc.
Previous by date:
Re: x86_64 optimization patches for glibc.
Next by date:
problem after emerge --update world


Updated Jun 17, 2009

Summary: Archive of the gentoo-amd64 mailing list.

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.