bug-automake
[Top][All Lists]
Advanced

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

Re: automake 1.11: Lots of failed tests on Solaris 10 x86 w/Sun Studio c


From: Ralf Wildenhues
Subject: Re: automake 1.11: Lots of failed tests on Solaris 10 x86 w/Sun Studio compiler
Date: Sun, 24 May 2009 14:52:21 +0200
User-agent: Mutt/1.5.18 (2008-05-17)

Hello Dagobert,

* Dagobert Michelsen wrote on Tue, May 19, 2009 at 01:44:04PM CEST:
> Am 18.05.2009 um 23:10 schrieb Ralf Wildenhues:
>>> FAIL: insthook.test
>>
>> The insthook.test failure looks like you have some variables like
>> $bindir or $exec_prefix or $prefix set in your environment.  Is that
>> the case?  Maybe you can look over your environment for other possibly
>> problematic settings.  We should clear them in tests/defs, I guess.
>
> Yes, the environment has been customized extensively:
*snip*

Wow.

> Some settings are redundant due to artifacts of the build system.

OK.

>>> FAIL: vala4.test
>>
>> This is a genuine bug in one of Automake, Autoconf, or your system  
>> shell (which we'd then need to work around).  I'm seeing it on a
>> Solaris system myself; will analyze.

Haven't done this one yet.

>> These all end with something like this, a successful command and
>> supposedly an error in the cleanup trap:
>>
>> | + :
>> | exit_status=0
>> | + cd
>> | 
>> /export/home/dam/mgar/pkg/automake/trunk/work/build-isa-i386/automake-1.11/tests
>> | + chmod -R a+rwx libtoo11.dir
>>
>> Now, I bet the chmod throws an error, but since the code in
>> tests/defs.in diverts stdout and stderr to /dev/null, we don't get to
>> see it.  Can you do two tests for me, in order to analyze this issue?

> You will find the annotated log at
>   <http://buildfarm.opencsw.org/automake/test-suite.log-20090519>

Thanks.  This confirms my assumption:

| + chmod -R a+rwx libtool5.dir 
| chmod: WARNING: can't change libtool5.dir/ltmain.sh

Ugly.  Solaris `chmod -R' tries to change the mode of symlinked-to
files.  I didn't know that, and GNU coreutils chmod doesn't do it,
but POSIX seems to even require it.  Sigh.

>> Then, after that, please revert the first patch, and instead apply the
>> second attached patch, then run
[...]
>> to verify that most of the failures are gone now?
>
> Some yes, some no:
[...]

>> If my hypothesis is true, I will then apply the second patch to
>> Automake, and add you to THANKS if you don't mind.
>
> Sure :-) However, it looks like some more fixing is needed.

Well, it seems all remaining failures in the newer log look like this

| checking for gcc... no
| checking for cc... no
| checking for cl.exe... no
| configure: error: in 
`/export/home/dam/mgar/pkg/automake/trunk/work/build-isa-i386/automake-1.11/tests/vala4.dir':
| configure: error: no acceptable C compiler found in $PATH
| See `config.log' for more details.
| exit_status=1

which implies that your setting of $CC doesn't seem to work as expected.
Can you look into that again, and maybe inspect one of the log files
(such as tests/depcomp7.dir/config.log) for the reason?


Anyway, I am fixing the currently-known issues reported in this thread
with the following three patches, and adding you to THANKS.

Thanks again,
Ralf

    testsuite: do not fail in cleanup code.
    
    * tests/defs.in: Turn off errexit in the cleanup trap, to avoid
    a test failure due to a nonzero command.
    * THANKS: Update.
    Report by Dagobert Michelsen.

diff --git a/tests/defs.in b/tests/defs.in
index 6e26202..7d74dd2 100644
--- a/tests/defs.in
+++ b/tests/defs.in
@@ -254,6 +254,7 @@ mkdir $testSubDir
 address@hidden@
 if test "$sh_errexit_works" = yes; then
   trap 'exit_status=$?
+    set +e
     cd "$curdir"
     case $exit_status,$keep_testdirs in
     0,)



    testsuite: do not change the mode of installed Libtool files.
    
    * tests/defs.in: Do not use `chmod -R' on the test directory, as
    that may change or try to change the mode of installed files:
    the test directory may contain symlinks to ltmain.sh files from
    a Libtool installation, and Solaris `chmod -R' touches symlink
    targets.  Instead, use the cleanup strategy used in distdir.am.
    * NEWS: Update.
    Report by Dagobert Michelsen.

diff --git a/NEWS b/NEWS
index 20d5080..48873d0 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,9 @@ Bugs fixed in 1.11.0a:
     `get_python_lib' function if it points outside the configured prefix,
     unless the `--prefix' argument was either `/usr' or below `/System'.
 
+  - The testsuite does not try to change the mode of `ltmain.sh' files from
+    a Libtool installation (symlinked to test directories) any more.
+
 
 New in 1.11:
 
diff --git a/tests/defs.in b/tests/defs.in
index 7d74dd2..0254d3a 100644
--- a/tests/defs.in
+++ b/tests/defs.in
@@ -247,8 +247,10 @@ Exit ()
 
 curdir=`pwd`
 testSubDir=$me.dir
-chmod -R u+rwx $testSubDir > /dev/null 2>&1
-rm -rf $testSubDir > /dev/null 2>&1
+test ! -d $testSubDir || {
+  find $testSubDir -type d ! -perm -200 -exec chmod u+w {} ";"
+  rm -rf $testSubDir
+}
 mkdir $testSubDir
 
 address@hidden@
@@ -258,8 +260,9 @@ if test "$sh_errexit_works" = yes; then
     cd "$curdir"
     case $exit_status,$keep_testdirs in
     0,)
-      chmod -R a+rwx $testSubDir > /dev/null 2>&1
-      rm -rf "$testSubDir" ;;
+      find $testSubDir -type d ! -perm -200 -exec chmod u+w {} ";"
+      rm -rf $testSubDir
+      ;;
     esac
     test "$signal" != 0 &&
       echo "$as_me: caught signal $signal"


    testsuite: unset installation directory variables.
    
    * tests/defs.in: Before test execution, be sure to unset all
    installation directory variables, so they cannot have an effect
    on a `make -e install' command within a test.
    Report by Dagobert Michelsen.

diff --git a/tests/defs.in b/tests/defs.in
index ef1008a..61ca796 100644
--- a/tests/defs.in
+++ b/tests/defs.in
@@ -298,9 +298,14 @@ END
 unset MFLAGS
 unset MAKEFLAGS
 unset MAKELEVEL
-unset DESTDIR
 # Unset verbosity flag.
 unset V
+# Also unset variables that will let `make -e install' divert
+# files into unwanted directories.
+unset DESTDIR
+unset prefix exec_prefix bindir datarootdir datadir docdir dvidir
+unset htmldir includedir infodir libdir libexecdir localedir mandir
+unset oldincludedir pdfdir psdir sbindir sharedstatedir sysconfdir
 # Also unset variables that control our test driver.  While not
 # conceptually independent, they cause some changed semantics we
 # need to control (and test for) in some of the tests to ensure




reply via email to

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