Hi Jim, Building a coreutils snapshot (2007-02-21) from http//meyering.net/cu/ on IRIX 6.5 with the native cc shows one problem: After the c99 patch has been applied, man/Makefile attempts to rebuild the 'rm.1' manual page. This fails like this:
Updating man page rm.1 Perl 5.005 required--this is only version 5.00404, stopped at ./help2man line 24. because the 'perl' in my path is version 5.004_04, but help2man wants version 5.005 at least. Two things are wrong here: 1) The perl.m4 test should not allow perl version 5.003 and 5.004 if they are not useful for all of coreutils. 2) Blindly running $(PERL) will always lead to a failure in such a case. After fixing the version in perl.m4, autoconf sets the variable PERL to ${SHELL} /build/coreutils-6.7-irix/build-aux/missing --run perl and when the Makefile attempts to create rm.1 the 'missing' script still runs "perl help2man ...", leading to the same failure: Updating man page rm.1 Perl 5.005 required--this is only version 5.00404, stopped at ./help2man line 24. Removing the --run flag doesn't help, it just leads to a different failure: Updating man page rm.1 WARNING: `perl' is needed, and is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the `README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing `perl' program. *** Error code 1 (bu21) The 'missing' script is determined to report a failure when it cannot run the command. Other failures need to be reported as errors. But when 'perl' is missing or not the right version, it's better to install an (at most slightly out-of-date) manual page than no manual page at all. Here is a proposed patch. You can add an echo "WARNING: cannot update man page $@ since perl is missing" to the no-op case in man/Makefile.am if you prefer that to a completely silent no-op case. 2007-02-23 Bruno Haible <[EMAIL PROTECTED]> * m4/perl.m4 (gl_PERL): Require version 5.005, not 5.003. Needed for help2man. * man/Makefile.am (.x.1): If the autoconf test has determined that perl is missing or not a sufficient version, do nothing. --- coreutils-6.7-solaris/m4/perl.m4 Sun Jan 23 09:50:06 2005 +++ coreutils-6.7-irix/m4/perl.m4 Sat Feb 24 00:47:21 2007 @@ -4,7 +4,7 @@ dnl Find a new-enough version of Perl. dnl -# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004 Free Software +# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2007 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation @@ -13,9 +13,9 @@ AC_DEFUN([gl_PERL], [ - dnl FIXME: don't hard-code 5.003 + dnl FIXME: don't hard-code 5.005 dnl FIXME: should we cache the result? - AC_MSG_CHECKING([for perl5.003 or newer]) + AC_MSG_CHECKING([for perl5.005 or newer]) if test "${PERL+set}" = set; then # `PERL' is set in the user's environment. candidate_perl_names="$PERL" @@ -31,7 +31,7 @@ for perl in $candidate_perl_names; do # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. - if ( $perl -e 'require 5.003; use File::Compare' ) > /dev/null 2>&1; then + if ( $perl -e 'require 5.005; use File::Compare' ) > /dev/null 2>&1; then PERL=$perl found=yes break @@ -40,7 +40,7 @@ AC_MSG_RESULT($found) test $found = no && AC_MSG_WARN([ -WARNING: You don't seem to have perl5.003 or newer installed, or you lack +WARNING: You don't seem to have perl5.005 or newer installed, or you lack a usable version of the Perl File::Compare module. As a result, you may be unable to run a few tests or to regenerate certain files if you modify the sources from which they are derived. --- coreutils-6.7-solaris/man/Makefile.am Tue Jan 30 08:19:49 2007 +++ coreutils-6.7-irix/man/Makefile.am Sat Feb 24 00:54:17 2007 @@ -1,6 +1,6 @@ # Make coreutils man pages. -*-Makefile-*- -# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software +# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software # Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -154,18 +154,23 @@ # That is necessary to avoid failures for programs that are also shell built-in # functions like echo, false, printf, pwd. .x.1: - @rm -f $@ - @echo "Updating man page $@"; \ - rm -rf $t; \ - mkdir $t; \ - (cd $t && $(LN_S) ../../src/$(mapped_name) $*); \ - $(PERL) -- $(srcdir)/help2man \ - --source='$(PACKAGE_STRING)' \ - --include=$(srcdir)/$*.x \ - --output=$t/$@ $t/$* - @sed 's|$*\.td/||g' $t/$@ > $@ - @chmod a-w $@ - @rm -rf $t + @case $(PERL) in \ + *"/missing "*) ;; \ + *) \ + rm -f $@ \ + && { echo "Updating man page $@"; \ + rm -rf $t; \ + mkdir $t; \ + (cd $t && $(LN_S) ../../src/$(mapped_name) $*); \ + $(PERL) -- $(srcdir)/help2man \ + --source='$(PACKAGE_STRING)' \ + --include=$(srcdir)/$*.x \ + --output=$t/$@ $t/$*; \ + } \ + && sed 's|$*\.td/||g' $t/$@ > $@ \ + && chmod a-w $@ \ + && rm -rf $t ;; \ + esac check-local: check-x-vs-1 check-programs-vs-x