bug-coreutils
[Top][All Lists]
Advanced

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

Re: make check "failure" on Itanium HPUX


From: mwoehlke
Subject: Re: make check "failure" on Itanium HPUX
Date: Wed, 04 Oct 2006 13:47:15 -0500
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20060909 Thunderbird/1.5.0.7 Mnenhy/0.7.4.0

Paul Eggert wrote:
mwoehlke <address@hidden> writes:
Jim Meyering wrote:
mwoehlke <address@hidden> wrote:
mwoehlke wrote:
This is a little odd... 'make' exits non-zero when doing 'make
check' (help-version) on Itanium Linux, but the tests all seem to
pass. Here is the relevant verbose output:
[snip]
...and similarly on HPUX, although the tests pass, 'make check' just
*fails*, and in this case I'm not seeing why. I'm attaching the log in
case anyone spots something I didn't. (Maybe it's the same problem?)
This bit looks like the cause:
        t=ls-files.$$;                                          \
        (cd . && ls -1 *.x) | sed 's/\.x$//' | LC_ALL=C sort > $t;\
        echo base64.1 basename.1 cat.1 chgrp.1 chmod.1 chown.1 chroot.1 cksum.1 
comm.1 cp.1 csplit.1 cut.1 date.1 dd.1 df.1 dir.1 dircolors.1 dirname.1 du.1 
echo.1 env.1 expand.1 expr.1 factor.1 false.1 fmt.1 fold.1 groups.1 head.1 
hostid.1 hostname.1 id.1 install.1 join.1 kill.1 link.1 ln.1 logname.1 ls.1 
md5sum.1 mkdir.1 mkfifo.1 mknod.1 mv.1 nice.1 nl.1 nohup.1 od.1 paste.1 
pathchk.1 pinky.1 pr.1 printenv.1 printf.1 ptx.1 pwd.1 readlink.1 rm.1 rmdir.1 
seq.1 sha1sum.1 sha224sum.1 sha256sum.1 sha384sum.1 sha512sum.1 shred.1 shuf.1 
sleep.1 sort.1 split.1 stat.1 stty.1 su.1 sum.1 sync.1 tac.1 tail.1 tee.1 
test.1 touch.1 tr.1 true.1 tsort.1 tty.1 uname.1 unexpand.1 uniq.1 unlink.1 
uptime.1 users.1 vdir.1 wc.1 who.1 whoami.1 yes.1 | tr -s ' ' '\n' | sed 
's/\.1$//'     \
          | LC_ALL=C sort | diff - $t || { rm $t; exit 1; };            \
        rm $t
/usr/bin/posix/sh[5]: 12357 Memory fault(coredump)
make[2]: *** [check-x-vs-1] Error 1
Yup, it does; didn't spot that. But...

(do you have "/usr/bin/posix" in your shell's search path?)
...no I don't.

I'd guess it's pulled in because 'configure' tries /usr/posix/bin/sh.

You mean /usr/bin/posix, right?

Anyway, to me that looks like a fluke
since 'make check' shouldn't be doing anything in 'man', yes?

'make check' does the equivalent of 'make', so it does things
in 'man'.  And so it's not a fluke; it's a real problem of
some sort with your /usr/posix/bin/sh implementation.

Ok, but actually this is something that 'make check' does that 'make' doesn't (looks like it verifies that all manpages are there?); 'make' in just man/ reports 'nothing to do', whereas 'make check' produces this error.

Can you reproduce the problem by hand?  For example, does the
following shell script dump core for you, when you execute it in your
man directory?

#! /bin/sh
/usr/posix/bin/sh -c 'PATH=../src:$PATH; export PATH;           \
        t=ls-files.$$;                                          \
        (cd . && ls -1 *.x) | sed '\''s/\.x$//'\'' | LC_ALL=C sort > $t;\
        echo base64.1 basename.1 cat.1 chgrp.1 chmod.1 chown.1 chroot.1 cksum.1 
comm.1 cp.1 csplit.1 cut.1 date.1 dd.1 df.1 dir.1 dircolors.1 dirname.1 du.1 
echo.1 env.1 expand.1 expr.1 factor.1 false.1 fmt.1 fold.1 groups.1 head.1 
hostid.1 hostname.1 id.1 install.1 join.1 kill.1 link.1 ln.1 logname.1 ls.1 
md5sum.1 mkdir.1 mkfifo.1 mknod.1 mv.1 nice.1 nl.1 nohup.1 od.1 paste.1 
pathchk.1 pinky.1 pr.1 printenv.1 printf.1 ptx.1 pwd.1 readlink.1 rm.1 rmdir.1 
seq.1 sha1sum.1 sha224sum.1 sha256sum.1 sha384sum.1 sha512sum.1 shred.1 shuf.1 
sleep.1 sort.1 split.1 stat.1 stty.1 su.1 sum.1 sync.1 tac.1 tail.1 tee.1 
test.1 touch.1 tr.1 true.1 tsort.1 tty.1 uname.1 unexpand.1 uniq.1 unlink.1 
uptime.1 users.1 vdir.1 wc.1 who.1 whoami.1 yes.1 | tr -s '\'' '\'' '\''\n'\'' 
| sed '\''s/\.1$//'\''   \
          | LC_ALL=C sort | diff - $t || { rm $t; exit 1; };            \
        rm $t'

Hmm... actually it does (you meant '/usr/bin/posix/sh', not '/usr/posix/bin/sh')... Also, if I re-run with bash, I get:

bash: line 5: 14384 Done echo base64.1 basename.1 cat.1 chgrp.1 chmod.1 chown.1 chroot.1 cksum.1 comm.1 cp.1 csplit.1 cut.1 date.1 dd.1 df.1 dir.1 dircolors.1 dirname.1 du.1 echo.1 env.1 expand.1 expr.1 factor.1 false.1 fmt.1 fold.1 groups.1 head.1 hostid.1 hostname.1 id.1 install.1 join.1 kill.1 link.1 ln.1 logname.1 ls.1 md5sum.1 mkdir.1 mkfifo.1 mknod.1 mv.1 nice.1 nl.1 nohup.1 od.1 paste.1 pathchk.1 pinky.1 pr.1 printenv.1 printf.1 ptx.1 pwd.1 readlink.1 rm.1 rmdir.1 seq.1 sha1sum.1 sha224sum.1 sha256sum.1 sha384sum.1 sha512sum.1 shred.1 shuf.1 sleep.1 sort.1 split.1 stat.1 stty.1 su.1 sum.1 sync.1 tac.1 tail.1 tee.1 test.1 touch.1 tr.1 true.1 tsort.1 tty.1 uname.1 unexpand.1 uniq.1 unlink.1 uptime.1 users.1 vdir.1 wc.1 who.1 whoami.1 yes.1
     14385                       | tr -s ' ' '\n'
     14386                       | sed 's/\.1$//'
     14387                       | LC_ALL=C sort
     14388 Segmentation fault      (core dumped) | diff - $t

So it looks like 'diff' is broken?

$ diff --version
diff (GNU diffutils) 2.8.1
Copyright (C) 2002 Free Software Foundation, Inc.

This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of this program
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

Written by Paul Eggert, Mike Haertel, David Hayes,
Richard Stallman, and Len Tower.

(The above is built from clean sources.)

Interestingly, when I re-ran 'make check' I am also seeing 'diff: memory exhausted':

Making check in src
make[1]: Entering directory `/home/install/gnu/src/coreutils-6.3/src'
rm -rf progs-readme progs-makefile
echo [ chgrp chown chmod cp dd dircolors du ginstall link ln dir vdir ls mkdir mkfifo mknod mv nohup readlink rm rmdir shred stat sync touch unlink cat cksum comm csplit cut expand fmt fold head join md5sum nl od paste pr ptx sha1sum sha224sum sha256sum sha384sum sha512sum shuf sort split sum tac tail tr tsort unexpand uniq wc basename date dirname echo env expr factor false hostname id kill logname pathchk printenv printf pwd seq sleep tee test true tty whoami yes base64 uname chroot hostid nice pinky users who uptime stty df groups chroot df hostid nice pinky stty su uname uptime users who \
         | tr -s ' ' '\n' | sed -e 's,$,,' \
         | LC_ALL=C sort -u > progs-makefile && \
        sed -n '/^The programs .* are:/,/^[a-zA-Z]/p' ../README \
          | sed -n '/^   */s///p' | tr -s ' ' '\n' > progs-readme
diff progs-makefile progs-readme && rm -rf progs-readme progs-makefile
diff: memory exhausted
make[1]: *** [check-README] Error 2
cd .; grep '^# *define *S_IS' lbracket.c base64.c basename.c cat.c chgrp.c chown-core.c chmod.c chown.c chown-core.c chroot.c cksum.c comm.c cp.c copy.c cp-hash.c csplit.c cut.c date.c dd.c df.c ls.c ls-dir.c dircolors.c dirname.c du.c echo.c env.c expand.c expr.c factor.c false.c fmt.c fold.c install.c copy.c cp-hash.c head.c hostid.c hostname.c id.c join.c kill.c link.c ln.c logname.c ls.c ls-ls.c md5sum.c mkdir.c mkfifo.c mknod.c mv.c copy.c cp-hash.c remove.c nice.c nl.c nohup.c od.c paste.c pathchk.c pinky.c pr.c printenv.c printf.c ptx.c pwd.c readlink.c rm.c remove.c rmdir.c seq.c setuidgid.c md5sum.c md5sum.c md5sum.c md5sum.c md5sum.c shred.c shuf.c sleep.c sort.c split.c stat.c stty.c su.c sum.c sync.c tac.c tail.c tee.c test.c touch.c tr.c true.c tsort.c tty.c uname.c unexpand.c uniq.c unlink.c uptime.c users.c ls.c ls-vdir.c wc.c who.c whoami.c yes.c && exit 1 || : cd .; grep st_blocks lbracket.c base64.c basename.c cat.c chgrp.c chown-core.c chmod.c chown.c chown-core.c chroot.c cksum.c comm.c cp.c copy.c cp-hash.c csplit.c cut.c date.c dd.c df.c ls.c ls-dir.c dircolors.c dirname.c du.c echo.c env.c expand.c expr.c factor.c false.c fmt.c fold.c install.c copy.c cp-hash.c head.c hostid.c hostname.c id.c join.c kill.c link.c ln.c logname.c ls.c ls-ls.c md5sum.c mkdir.c mkfifo.c mknod.c mv.c copy.c cp-hash.c remove.c nice.c nl.c nohup.c od.c paste.c pathchk.c pinky.c pr.c printenv.c printf.c ptx.c pwd.c readlink.c rm.c remove.c rmdir.c seq.c setuidgid.c md5sum.c md5sum.c md5sum.c md5sum.c md5sum.c shred.c shuf.c sleep.c sort.c split.c stat.c stty.c su.c sum.c sync.c tac.c tail.c tee.c test.c touch.c tr.c true.c tsort.c tty.c uname.c unexpand.c uniq.c unlink.c uptime.c users.c ls.c ls-vdir.c wc.c who.c whoami.c yes.c && exit 1 || : cd .; grep '^# *define .*defined' lbracket.c base64.c basename.c cat.c chgrp.c chown-core.c chmod.c chown.c chown-core.c chroot.c cksum.c comm.c cp.c copy.c cp-hash.c csplit.c cut.c date.c dd.c df.c ls.c ls-dir.c dircolors.c dirname.c du.c echo.c env.c expand.c expr.c factor.c false.c fmt.c fold.c install.c copy.c cp-hash.c head.c hostid.c hostname.c id.c join.c kill.c link.c ln.c logname.c ls.c ls-ls.c md5sum.c mkdir.c mkfifo.c mknod.c mv.c copy.c cp-hash.c remove.c nice.c nl.c nohup.c od.c paste.c pathchk.c pinky.c pr.c printenv.c printf.c ptx.c pwd.c readlink.c rm.c remove.c rmdir.c seq.c setuidgid.c md5sum.c md5sum.c md5sum.c md5sum.c md5sum.c shred.c shuf.c sleep.c sort.c split.c stat.c stty.c su.c sum.c sync.c tac.c tail.c tee.c test.c touch.c tr.c true.c tsort.c tty.c uname.c unexpand.c uniq.c unlink.c uptime.c users.c ls.c ls-vdir.c wc.c who.c whoami.c yes.c && exit 1 || :
make[1]: Target `check' not remade because of errors.
make[1]: Leaving directory `/home/install/gnu/src/coreutils-6.3/src'

Um, and I have a guess about this... I ran into a problem (with sed, I think) where malloc(0) on some platforms returns NULL, and a valid pointer on others. I wonder if this might have anything to do with it?

--
Matthew
This message will self destruct in five millennia.





reply via email to

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