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
1 Jared Lindsay skrev:
2
3 >Back on to a different subject...has anyone looked at the libm
4 >section? I am curious as to how much of a performance increase that
5 >would add if we can get it working.
6 >
7 >
8 >
9
10 Getting it to work seems easier said than done. :( Has anyone else tried
11 compiling it? For me it always fails to build. I've tried upgrading
12 binutils to 2.16.91.0.1 (same version as mdk cooker), building without
13 the gentoo patches, building without omitfp, enabling as-needed,
14 building without various configure options, using the libm patch from
15 suse instead of mandrake and with higher or lower optimizations. It
16 didn't even work when I manually unpacked and compiled glibc with only
17 the libm patches and configure options --prefix=/usr/
18 --enable-add-ons=nptl. Checking out the latest glibc from the 2.3 stable
19 branch via cvs and adding the patches to that didn't work either. I'm
20 running out of ideas now!
21
22 Here is the error it fails with:
23
24 x86_64-pc-linux-gnu-gcc -Wl,-O1 -nostdlib -nostartfiles -r -o
25 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.os
26 \
27 -Wl,-d -Wl,--whole-archive
28 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.a
29 x86_64-pc-linux-gnu-gcc -Wl,-O1 -shared -Wl,-O1 \
30 -nostdlib -nostartfiles \
31 -Wl,-dynamic-linker=/lib64/ld-linux-x86-64.so.2 -Wl,-z,relro \
32 -Wl,--verbose 2>&1 | \
33 sed >
34 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/shlib.ldsT
35 \
36 -e '/^=========/,/^=========/!d;/^=========/d' \
37 -e 's/^.*\.hash[ ]*:.*$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
38 -e 's/^.*\*(\.dynbss).*$/& \
39 PROVIDE(__start___libc_freeres_ptrs = .); \
40 *(__libc_freeres_ptrs) \
41 PROVIDE(__stop___libc_freeres_ptrs = .);/'\
42 -e 's/^.*\*(\.jcr).*$/& \
43 PROVIDE(__start___libc_subfreeres = .);\
44 __libc_subfreeres : { *(__libc_subfreeres) }\
45 PROVIDE(__stop___libc_subfreeres = .);\
46 PROVIDE(__start___libc_atexit = .);\
47 __libc_atexit : { *(__libc_atexit) }\
48 PROVIDE(__stop___libc_atexit = .);\
49 PROVIDE(__start___libc_thread_subfreeres = .);\
50 __libc_thread_subfreeres : { *(__libc_thread_subfreeres) }\
51 PROVIDE(__stop___libc_thread_subfreeres = .);/'
52 mv -f
53 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/shlib.ldsT
54 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/shlib.lds
55 x86_64-pc-linux-gnu-gcc -Wl,-O1 -shared -static-libgcc -Wl,-O1
56 -Wl,-z,defs -Wl,-dynamic-linker=/lib64/ld-linux-x86-64.so.2
57 -B/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/csu/
58
59 -Wl,--version-script=/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc.map
60 -Wl,-soname=libc.so.6 -Wl,-z,relro -nostdlib -nostartfiles -e
61 __libc_main -Wl,-z,now
62 -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl
63 -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/math
64
65 -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/elf
66 -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/dlfcn
67
68 -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/nss
69 -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/nis
70
71 -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/rt
72 -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/resolv
73
74 -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/crypt
75 -L/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/nptl
76
77 -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
78
79 -o
80 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc.so
81 -T
82 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/shlib.lds
83
84 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/csu/abi-note.o
85 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/elf/soinit.os
86
87 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.os
88 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/elf/sofini.os
89
90 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/elf/interp.os
91 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/elf/ld.so
92 -lgcc
93 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.os:
94 In function `scalbn':
95 : undefined reference to `__copysign'
96 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.os:
97 In function `__scalbnf':
98 : undefined reference to `__copysignf'
99 /var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc_pic.os:
100 In function `__scalbnf':
101 : undefined reference to `__copysignf'
102 collect2: ld returned 1 exit status
103 make[1]: ***
104 [/var/tmp/portage/glibc-2.3.5/work/build-amd64-x86_64-pc-linux-gnu-nptl/libc.so]
105 Error 1
106 make[1]: Leaving directory `/var/tmp/portage/glibc-2.3.5/work/glibc-2.3.5'
107 make: *** [all] Error 2
108
109 I've looked through some of the other mandrake and suse patches but the
110 only patch mandrake has that contains the word "copysign" is the gcc4
111 patch. Using it makes the error slightly different but it still happens
112 at the same place:
113
114 /usr/portage/distfiles/glibc.build/libc_pic.os: In function `__scalbn':
115 ../sysdeps/ieee754/dbl-64/s_scalbn.c:61: undefined reference to `__copysign'
116 /usr/portage/distfiles/glibc.build/libc_pic.os: In function `__scalbnf':
117 ../sysdeps/ieee754/flt-32/s_scalbnf.c:52: undefined reference to
118 `__copysignf'
119 ../sysdeps/ieee754/flt-32/s_scalbnf.c:58: undefined reference to
120 `__copysignf'
121 collect2: ld returned 1 exit status
122
123
124 --
125 Simon Strandman <simon.strandman@×××××.com>
126
127 --
128 gentoo-amd64@g.o mailing list

Replies

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