This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
glibc-2.3.2: cmov generated even for --target=i486-pc-linux-gnu
- From: Denis Vlasenko <vda at port dot imtp dot ilyichevsk dot odessa dot ua>
- To: libc-alpha at sources dot redhat dot com
- Date: Tue, 21 Sep 2004 12:34:28 +0300
- Subject: glibc-2.3.2: cmov generated even for --target=i486-pc-linux-gnu
Yay. I was SIGILLed on Pentium classic! 8(
I had saved entire configure and make logs when I built 2.3.2,
Today they will be very useful.
../configure \
--prefix=/usr \
--exec-prefix=$STATIC \
--bindir=$STATIC/bin \
--sbindir=$STATIC/sbin \
--libexecdir=$STATIC/libexec \
--datadir=$STATIC/share \
--sysconfdir=/etc \
--sharedstatedir=$PERBOX/com \
--localstatedir=$PERBOX \
--libdir=/usr/lib \
--includedir=$STATIC/include \
--oldincludedir=/usr/include \
--infodir=$STATIC/info \
--mandir=$STATIC/man \
\
--with-headers=/usr/src2/$NAME/.linux-2.4.25_include \
--enable-add-ons=linuxthreads \
--enable-kernel=2.4.25 \
\
--enable-shared \
--disable-static \
--disable-profile \
\
--target=i486-pc-linux-gnu \
\
2>&1 | tee !cfg.log
CFLAGS="-march=i486 -mcpu=i486" LANGUAGE=C LC_ALL=C make 2>&1 | tee !mk.log
!mk.log:
========
make -r PARALLELMFLAGS="" CVSOPTS="" -C .. objdir=`pwd` all
make[1]: Entering directory `/.share/usr/src2/glibc-2.3.2'
(echo 'sysd-rules-sysdirs := sysdeps/i386/elf linuxthreads/sysdeps
/unix/sysv/linux/i386 linuxthreads/sysdeps/unix/sysv/linux linuxth
reads/sysdeps/pthread sysdeps/pthread linuxthreads/sysdeps/unix/sy
sv linuxthreads/sysdeps/unix linuxthreads/sysdeps/i386/i686 linuxt
hreads/sysdeps/i386 sysdeps/unix/sysv/linux/i386 sysdeps/unix/sysv
/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/u
nix/inet sysdeps/unix/sysv/i386 sysdeps/unix/sysv sysdeps/unix/i38
6 sysdeps/unix sysdeps/posix sysdeps/i386/i686/fpu sysdeps/i386/i6
^^^^^^^^ ^^
86 sysdeps/i386/i486 sysdeps/i386/fpu sysdeps/i386 sysdeps/wordsiz
^^
e-32 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee75
4/flt-32 sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic';
for dir in '$(..)sysdeps/i386/elf' '$(..)linuxthreads/sysdeps/uni
x/sysv/linux/i386' '$(..)linuxthreads/sysdeps/unix/sysv/linux' '$(
..)linuxthreads/sysdeps/pthread' '$(..)sysdeps/pthread' '$(..)linu
xthreads/sysdeps/unix/sysv' '$(..)linuxthreads/sysdeps/unix' '$(..
)linuxthreads/sysdeps/i386/i686' '$(..)linuxthreads/sysdeps/i386'
'$(..)sysdeps/unix/sysv/linux/i386' '$(..)sysdeps/unix/sysv/linux'
'$(..)sysdeps/gnu' '$(..)sysdeps/unix/common' '$(..)sysdeps/unix/
mman' '$(..)sysdeps/unix/inet' '$(..)sysdeps/unix/sysv/i386' '$(..
)sysdeps/unix/sysv' '$(..)sysdeps/unix/i386' '$(..)sysdeps/unix' '
$(..)sysdeps/posix' '$(..)sysdeps/i386/i686/fpu' '$(..)sysdeps/i38
6/i686' '$(..)sysdeps/i386/i486' '$(..)sysdeps/i386/fpu' '$(..)sys
deps/i386' '$(..)sysdeps/wordsize-32' '$(..)sysdeps/ieee754/ldbl-9
6' '$(..)sysdeps/ieee754/dbl-64' '$(..)sysdeps/ieee754/flt-32' '$(
..)sysdeps/ieee754' '$(..)sysdeps/generic/elf' '$(..)sysdeps/gener
ic'; do \
...
hunt_cmov
=========
#!/bin/sh
find -name '*.o' \
| while read -r file; do
if objdump -d "$file" 2>/dev/null | grep -q -F cmov; then
echo "$file: "
objdump -d "$file" | grep -F cmov
fi
done
# ./hunt_cmov
./math/s_fdimf.o:
12: da c1 fcmovb %st(1),%st
18: db d9 fcmovnu %st(1),%st
./math/s_fdiml.o:
12: da c1 fcmovb %st(1),%st
18: db d9 fcmovnu %st(1),%st
./math/s_fmaxf.o:
a: da d9 fcmovu %st(1),%st
10: da c1 fcmovb %st(1),%st
./math/s_fmaxl.o:
a: da d9 fcmovu %st(1),%st
10: da c1 fcmovb %st(1),%st
./math/s_fminf.o:
a: da d9 fcmovu %st(1),%st
e: db c1 fcmovnb %st(1),%st
./math/s_fminl.o:
a: da d9 fcmovu %st(1),%st
e: db c1 fcmovnb %st(1),%st
./math/s_fdim.o:
12: da c1 fcmovb %st(1),%st
18: db d9 fcmovnu %st(1),%st
./math/s_fmax.o:
a: da d9 fcmovu %st(1),%st
10: da c1 fcmovb %st(1),%st
./math/s_fmin.o:
a: da d9 fcmovu %st(1),%st
e: db c1 fcmovnb %st(1),%st
./string/strtok_r.o:
29: 0f 44 d0 cmove %eax,%edx
c5: 0f 45 d1 cmovne %ecx,%edx
./string/ffs.o:
e: 0f 44 ca cmove %edx,%ecx
./string/strcmp.o:
21: 0f 42 c1 cmovb %ecx,%eax
./string/strtok.o:
25: 0f 44 d0 cmove %eax,%edx
c1: 0f 45 d1 cmovne %ecx,%edx
--
vda