Hello Michael, * Michael Haubenwallner wrote on Fri, Apr 18, 2008 at 04:59:43PM CEST: > > when doing the libtool testsuite in some NFS mounted directory on AIX, > the output is full of lines looking like: > rm: cannot remove directory > `/nfsmount/libtool-2.2.2/tests/testsuite.dir/25/broken/lib': File exists > > Although it does not cause any additional test to fail, it's still ugly.
Yep. > This is because AIX keeps shared libraries in use for some time even if > there are no more programs using it. Yep, I knew that. > But this only applies to shared libraries having read (execute?) > permission for 'other'. Ha! I wasn't aware of that. Thank you! I've confirmed on AIX 5.3 that read permissions are what counts, but it shouldn't hurt removing the others as well. > So adding an 'umask 0007' (or 0077) early in testsuite.at can help here. I'd like to avoid giving more permissions if the user set, say, umask 077 before. Thus let's just remove those for others. I've applied the patch below and put you in THANKS. Cheers, Ralf Fix testsuite cleanup warnings on AIX with NFS. * tests/testsuite.at [ aix ]: Set file mode creation so that 'others' have no permissions. Shared libraries are kept in memory on AIX after use if they are world-readable, which means on NFS mounts cleanup of test group directories will fail later. * THANKS: Update. Report and analysis by Michael Haubenwallner. Signed-off-by: Ralf Wildenhues <[EMAIL PROTECTED]> diff --git a/tests/testsuite.at b/tests/testsuite.at index bec76df..beca766 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -49,6 +49,15 @@ else unset=false fi : ${mkdir_p="$abs_top_srcdir/libltdl/config/install-sh -d"} + +# On AIX, shared libraries remain loaded in memory after use if they +# are world-readable, until root issues slibclean. On NFS, this causes +# a testsuite rerun to fail to clean up test group directories. Avoid +# this with a suitable umask. Do not do this on other systems, for +# example HP-UX suffers unless shared libraries are mode 555. +case $host_os in +aix*) umask o-rwx ;; +esac m4_divert_pop([PREPARE_TESTS])dnl