bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

"make check" failure


From: Bruno Haible
Subject: "make check" failure
Date: Sat, 9 Feb 2008 01:34:07 +0100
User-agent: KMail/1.5.4

Hi Jim,

Building coreutils-6.10 on a Linux/x86 machine fails like this for me:

$ ./configure --prefix=/packages/gnu CPPFLAGS=-Wall
$ make 2>&1 | tee log1
$ make check 2>&1 | tee log2
...
Making check in misc
make[2]: Entering directory `/build/coreutils-6.10/tests/misc'
make  check-TESTS
make[3]: Entering directory `/build/coreutils-6.10/tests/misc'
make[4]: Entering directory `/build/coreutils-6.10/tests/misc'
/packages/gnu/bin/mkdir: cannot create directory `': No such file or directory
make[4]: *** [help-version.log] Error 1
make[4]: Leaving directory `/build/coreutils-6.10/tests/misc'
make[3]: *** [check-TESTS] Error 2
make[3]: Leaving directory `/build/coreutils-6.10/tests/misc'
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `/build/coreutils-6.10/tests/misc'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/build/coreutils-6.10/tests'
make: *** [check-recursive] Fehler 1

The command that the tests/misc/Makefile tries to execute is (with
manually inserted breaks):

src='help-version'; \
case $- in *e*) set +e;; esac; \
tst=`echo "$src" | sed 's|^.*/||'`; \
rm -f help-version.log-t; \
/packages/gnu/bin/mkdir -p "$(dirname help-version.log)" || exit; \
if test -f "./$src"; then dir=./; elif test -f "$src"; then dir=; else 
dir="./"; fi; \
abs_top_builddir='/build/coreutils-6.10' \
abs_top_srcdir='/build/coreutils-6.10' \
built_programs="`(cd ../../src && MAKEFLAGS= make -s built_programs.list)`" \
host_os=linux-gnu host_triplet='i686-pc-linux-gnu' \
srcdir='.' \
top_srcdir='../..' \
CONFIG_HEADER='../../lib/config.h' \
CU_TEST_NAME=`basename '/build/coreutils-6.10/tests/misc'`,$tst \
EGREP='/packages/gnu/bin/grep -E' \
EXEEXT='' \
MAKE=make \
PACKAGE_BUGREPORT='address@hidden' \
PACKAGE_VERSION=6.10 \
PERL='perl' \
REPLACE_GETCWD=0 \
PATH='/build/coreutils-6.10/src:'"$PATH" \
/bin/sh "$dir$src" >help-version.log-t 2>&1; \
estatus=$?; \
if test $estatus -eq 177; then : || estatus=1; fi; \
red=; grn=; lgn=; blu=; std=; \
test "X$TERM" != Xdumb && test -t 1 2>/dev/null && tput bold 1 >/dev/null 2>&1 
&& tput setaf 1 >/dev/null 2>&1 && tput sgr0 >/dev/null 2>&1 && { red=$(tput 
setaf 1); grn=$(tput setaf 2); lgn=$(tput bold)$(tput setaf 2); blu=$(tput 
setaf 4); std=$(tput sgr0); }; \
xfailed=PASS; \
for xfail in : ; do \
  case $src in $xfail | */$xfail) xfailed=XFAIL; break; esac; \
done; \
case $estatus:$xfailed in \
  0:XFAIL) col=$red; res=XPASS;; \
  0:*)     col=$grn; res=PASS ;; \
  77:*)    col=$blu; res=SKIP ;; \
  177:*)   col=$red; res=FAIL ;; \
  *:XFAIL) col=$lgn; res=XFAIL;; \
  *:*)     col=$red; res=FAIL ;; \
esac; \
echo "${col}$res${std}: help-version.log"; \
echo "$res: help-version.log (exit: $estatus)" | sed 'p;s/./=/g;p;g' 
>help-version.log; \
cat help-version.log-t >>help-version.log; \
rm help-version.log-t

What is the fifth part of this command meant to be? "$(dirname ...)" ??
It comes from build-aux/check.mk. It's certainly not meant as a GNU make
expression, since you don't normally assume GNU make. So it's a shell
expression.

There are two problems:
1) Backquotes should be used instead of bash-specific syntax.
2) 'dirname' refers to the program in PATH. My $PATH starts with ".". "." is
   the tests/misc directory. tests/misc/dirname is a test which prints nothing
   to stdout, hence `./dirname help-version.log` is empty.

$ make --version
GNU Make 3.81
$ /bin/sh --version
GNU bash, version 2.05b.0(1)-release (i586-suse-linux)

Bruno





reply via email to

[Prev in Thread] Current Thread [Next in Thread]