bug-automake
[Top][All Lists]
Advanced

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

Re: automake (GNU automake) 1.10.1 9 of 538 tests failed


From: Ralf Wildenhues
Subject: Re: automake (GNU automake) 1.10.1 9 of 538 tests failed
Date: Sun, 7 Sep 2008 09:22:37 +0200
User-agent: Mutt/1.5.18 (2008-05-17)

Hello John,

* Trudeau, John F wrote on Fri, Aug 15, 2008 at 01:23:53AM CEST:
> The bash version that was used in the original report was:
> 
> /home/trudeajo$ /bin/bash --version
> GNU bash, version 2.05b.0(1)-release (powerpc-ibm-aix5.1)
> Copyright (C) 2002 Free Software Foundation, Inc.

> After bootstrapping the latest bash (3.2.39).  I reran automake build
> and got only 1 failure.
> 
> Transcript and log attached.

Thanks.  The heart of the test failure is issues like this one:

|  ../install-sh -c -m 644 'sub/libbase.a' 
'/mtg/arc/automake-1.10.1/tests/testSubDir/sub1/       -prefix/foo/libbase.a'
|  ranlib '/mtg/arc/automake-1.10.1/tests/testSubDir/sub1/        
-prefix/foo/libbase.a'
| ar: Is a directory
| ar: 0707-113 The fopen system call failed on file 
/mtg/arc/automake-1.10.1/tests/testSubDir/sub1/.
| ranlib: 0654-601 Execution of ar failed
| ar: illegal option -- e
| ranlib: 0654-601 Execution of ar failed
| Usage: ranlib [-t] [-X {32|64|32_64}] [--] file ...
| make[1]: *** [install-fooexecLIBRARIES] Error 2
| make[1]: Leaving directory `/mtg/arc/automake-1.10.1/tests/testSubDir/  '

AIX ranlib is simply a Korn shell script with lack of quoting
(and a trivial one, too, BTW).  Oh well.  If you happen to have
a support contract with IBM, would you be so nice and file an
error report with them about this?  This patch would fix it:

--- /bin/ranlib 2007-07-31 01:21:53.000000000 +0000
+++ /bin/ranlib 2008-09-07 07:08:52.000000000 +0000
@@ -83,7 +83,7 @@
 #
 for OPT in "$@"
 do
-       $AR_CMD -X $OBJ_FLAG $1
+       $AR_CMD -X $OBJ_FLAG "$1"
        if [ $? -ne 0 ] ; then
                dspmsg ranlib.cat 2 "ranlib: 0654-601 Execution of ar failed\n"
                RET_CODE=`expr $RET_CODE + 1`


Anyway, I installed the patch below to work around the issue,
and put you in THANKS.

FWIW, a note to the patch: the subshell for the execution of ranlib is
really needed: in the loop, we test for existence of file $p, which is
the relative path to the _uninstalled_ library.  So if we'd use `cd'
in the current shell, then the second round of the for loop would be
testing for the library in the _installed_ path.  Not a huge issue,
but I really would like such code to be consistently exercising its
arguments.

Cheers,
Ralf

        AIX ranlib dislikes spaces in the argument.

        * lib/am/libs.am (install-%DIR%LIBRARIES): Fix instsh.test
        failure on AIX due to ranlib and whitespace in the directory.
        * THANKS: Update.
        Report by John F Trudeau.

diff --git a/lib/am/libs.am b/lib/am/libs.am
index 6cd0988..450a105 100644
--- a/lib/am/libs.am
+++ b/lib/am/libs.am
@@ -66,8 +66,10 @@ endif !%?BASE%
          if test -f $$p; then \
            %BASE?$(am__strip_dir):f=$$p;% \
 ## Must ranlib after installing because mod time changes.
-           echo " $(RANLIB) '$(DESTDIR)$(%NDIR%dir)/$$f'"; \
-           $(RANLIB) "$(DESTDIR)$(%NDIR%dir)/$$f" || exit $$?; \
+## cd to target directory because AIX ranlib messes up with whitespace
+## in the argument.
+           echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && $(RANLIB) $$f )"; \
+           ( cd "$(DESTDIR)$(%NDIR%dir)" && $(RANLIB) $$f ) || exit $$?; \
          else :; fi; \
        done
 endif %?INSTALL%




reply via email to

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