Hi, Trying to install coreutils 8.4 on a x86_64 Linux/glibc system, I get a test failure. Relevant parts of test-suite.log:
============================================= GNU coreutils 8.4: tests/test-suite.log ============================================= 1 of 370 tests failed. (46 tests were not run). FAIL: ls/stat-free-symlinks (exit: 1) ===================================== ... + strace -qe stat ls -F --color=always x link-to-x ... + compare out exp + diff -u out exp --- out 2010-02-23 23:26:44.000000000 +0100 +++ exp 2010-02-23 23:26:44.000000000 +0100 @@ -1,3 +1,3 @@ [0m[01;35mlink-to-x[0m@ [01;32mx[0m* -[m[ Process PID=22612 runs in 32 bit mode. ] +[m \ No newline at end of file + fail=1 + Exit 1 + set +e + exit 1 + exit 1 + remove_tmp_ + __st=1 + cleanup_ + : + cd /home/bruno/data/build/coreutils-8.4/tests + chmod -R u+rwx /home/bruno/data/build/coreutils-8.4/tests/cu-stat-free-symlinks.vtWekPYmKd + rm -rf /home/bruno/data/build/coreutils-8.4/tests/cu-stat-free-symlinks.vtWekPYmKd + exit 1 I had configured coreutils like this (native 32-bit mode build on a 64-bit system): $ ./configure --host=i686-pc-linux-gnu --prefix=/arch/x86-linux/gnu \ CC="gcc -m32 -march=i586" CXX="g++ -m32 -march=i586" LDFLAGS="-m32" \ CPPFLAGS=-Wall $ which strace /usr/bin/strace The function in require_strace_ in tests/test-lib.sh does strace -qe stat echo and tests the return value. $ strace -qe stat src/echo [ Process PID=31238 runs in 32 bit mode. ] $ echo $? 0 But this 'strace' program does not fully work on 32-bit mode executables: 1) It always emits this "Process PID=xxxxx runs in 32 bit mode." message. 2) It does not support some system calls: 'write' and 'fstat64' appear supported, but 'stat' is not: $ strace -qe stat src/ls [ Process PID=31310 runs in 32 bit mode. ] ABOUT-NLS ChangeLog-2005 COPYING m4 po aclocal.m4 ChangeLog-2006 dist-check.mk maint.mk README AUTHORS ChangeLog-2007 doc Makefile src bootstrap ChangeLog-2008 gl Makefile.am tests bootstrap.conf config.log gnulib-tests Makefile.in THANKS build-aux config.status GNUmakefile man THANKS-to-translators cfg.mk configure INSTALL NEWS THANKStt.in ChangeLog configure.ac lib old TODO $ $ strace -qe write src/ls [ Process PID=31312 runs in 32 bit mode. ] write(1, "ABOUT-NLS\tChangeLog-2005\tCOPYING"..., 50ABOUT-NLS ChangeLog-2005 COPYING m4 po ) = 50 write(1, "aclocal.m4\tChangeLog-2006\tdist-c"..., 61aclocal.m4 ChangeLog-2006 dist-check.mk maint.mk README ) = 61 write(1, "AUTHORS\t\tChangeLog-2007\tdoc\t "..., 52AUTHORS ChangeLog-2007 doc Makefile src ) = 52 write(1, "bootstrap\tChangeLog-2008\tgl\t "..., 54bootstrap ChangeLog-2008 gl Makefile.am tests ) = 54 write(1, "bootstrap.conf\tconfig.log\tgnulib"..., 61bootstrap.conf config.log gnulib-tests Makefile.in THANKS ) = 61 write(1, "build-aux\tconfig.status\tGNUmakef"..., 69build-aux config.status GNUmakefile man THANKS-to-translators ) = 69 write(1, "cfg.mk\t\tconfigure\tINSTALL "..., 54cfg.mk configure INSTALL NEWS THANKStt.in ) = 54 write(1, "ChangeLog\tconfigure.ac\tlib\t "..., 47ChangeLog configure.ac lib old TODO ) = 47 $ strace -qe fstat64 src/ls [ Process PID=31320 runs in 32 bit mode. ] fstat64(0x3, 0xffed9b18) = 0 fstat64(0x3, 0xffed9b84) = 0 fstat64(0x3, 0xffed9b68) = 0 fstat64(0x3, 0xffed9ac0) = 0 fstat64(0x3, 0xffed9c60) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9e4c) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9f80) = 0 fstat64(0x3, 0xffed9dbc) = 0 fstat64(0x1, 0xffed790c) = 0 ABOUT-NLS ChangeLog-2005 COPYING m4 po aclocal.m4 ChangeLog-2006 dist-check.mk maint.mk README AUTHORS ChangeLog-2007 doc Makefile src bootstrap ChangeLog-2008 gl Makefile.am tests bootstrap.conf config.log gnulib-tests Makefile.in THANKS build-aux config.status GNUmakefile man THANKS-to-translators cfg.mk configure INSTALL NEWS THANKStt.in ChangeLog configure.ac lib old TODO Bruno
