Re: libtool-2.2.11a on AIX 5.3 current git master / followup on the old test suite and failures in the new testsuit

2010-08-25 Thread Rainer Tammer
 Hello Ralf,

On 21.08.2010 10:17, Ralf Wildenhues wrote:
 * Rainer Tammer wrote on Sat, Aug 07, 2010 at 09:35:56AM CEST:
 I have added one additional patch (as I did for the last run):

 # diff /daten/source/libtool-2.2.11a/tests/defs.in defs.in
 [...]
  # 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
 I have pushed your patch now, as below.

OK,
this is working.
 Now I get some new errors from the old test suite:

 # grep FAIL check.log
 FAIL: tests/f77demo-exec.test
 FAIL: tests/f77demo-exec.test
 FAIL: tests/fcdemo-exec.test
 FAIL: tests/fcdemo-exec.test
 ...

 This is because the LIBPATH is not OK:
 This has been fixed since in git Libtool.

Sorry,
this is still not working with the current git.

...
FAIL: tests/f77demo-exec.test
PASS: tests/f77demo-shared.test
PASS: tests/f77demo-make.test
FAIL: tests/f77demo-exec.test
PASS: tests/fcdemo-static.test
PASS: tests/fcdemo-make.test
PASS: tests/fcdemo-exec.test
PASS: tests/fcdemo-conf.test
PASS: tests/fcdemo-make.test
FAIL: tests/fcdemo-exec.test
PASS: tests/fcdemo-shared.test
PASS: tests/fcdemo-make.test
FAIL: tests/fcdemo-exec.test

4 of 124 tests failed
Please report to bug-libt...@gnu.org


Which commit should fix the problem.
 Cheers, and thanks again,
 Ralf

Bye
  Rainer Tammer
 2010-08-21  Rainer Tammer tam...@...  (tiny change)

   Avoid issues with AIX resident shared libraries in old testsuite.
   * tests/defs.m4sh [aix]: Remove file mode permission for others,
   so shared libraries are not kept in memory after execution.
   Fixes failures of repeated mdemo-inst.test with on AIX 5.3.

 diff --git a/tests/defs.m4sh b/tests/defs.m4sh
 index 1230555..183783e 100644
 --- a/tests/defs.m4sh
 +++ b/tests/defs.m4sh
 @@ -130,6 +130,7 @@ func_get_config objext
  objdir
  CC
  host
 +host_os
  host_alias
  build
  build_alias $LIBTOOL --config : fatal
 @@ -351,6 +352,15 @@ m4dir=$srcdir/libltdl/m4
  auxdir=$srcdir/libltdl/config
  scripts=$auxdir/ltmain.m4sh $srcdir/libtoolize.m4sh
  
 +# 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
 +
  func_msg Running $progname
  
  # Local Variables:






Re: libtool-2.2.11a on AIX 5.3 current git master / followup on the old test suite and failures in the new testsuit

2010-08-21 Thread Ralf Wildenhues
* Rainer Tammer wrote on Sat, Aug 07, 2010 at 09:35:56AM CEST:
 I have added one additional patch (as I did for the last run):
 
 # diff /daten/source/libtool-2.2.11a/tests/defs.in defs.in
[...]
  # 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

I have pushed your patch now, as below.

 Now I get some new errors from the old test suite:
 
 # grep FAIL check.log
 FAIL: tests/f77demo-exec.test
 FAIL: tests/f77demo-exec.test
 FAIL: tests/fcdemo-exec.test
 FAIL: tests/fcdemo-exec.test
 ...
 
 This is because the LIBPATH is not OK:

This has been fixed since in git Libtool.

Cheers, and thanks again,
Ralf

2010-08-21  Rainer Tammer tam...@...  (tiny change)

Avoid issues with AIX resident shared libraries in old testsuite.
* tests/defs.m4sh [aix]: Remove file mode permission for others,
so shared libraries are not kept in memory after execution.
Fixes failures of repeated mdemo-inst.test with on AIX 5.3.

diff --git a/tests/defs.m4sh b/tests/defs.m4sh
index 1230555..183783e 100644
--- a/tests/defs.m4sh
+++ b/tests/defs.m4sh
@@ -130,6 +130,7 @@ func_get_config objext
 objdir
 CC
 host
+host_os
 host_alias
 build
 build_alias $LIBTOOL --config : fatal
@@ -351,6 +352,15 @@ m4dir=$srcdir/libltdl/m4
 auxdir=$srcdir/libltdl/config
 scripts=$auxdir/ltmain.m4sh $srcdir/libtoolize.m4sh
 
+# 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
+
 func_msg Running $progname
 
 # Local Variables:



another func_append inlining regression (was: libtool-2.2.11a on AIX 5.3 current git master / followup on the old test suite and failures in the new testsuit)

2010-08-09 Thread Ralf Wildenhues
* Rainer Tammer wrote on Thu, Aug 05, 2010 at 09:25:14AM CEST:
 The new test suite still yields many failures in comparison to 2.2.8.

I assume most if not all of the regressions are due to a single issue:

 # grep FAILED check.log
  38: Link order of deplibs   FAILED
 (link-order2.at:138)

That fails more or less like this (taken from a test run of mine) in git
master:

../../libtool/tests/link-order2.at:123: $LIBTOOL --mode=link $CC $CFLAGS 
$LDFLAGS $static -o main$EXEEXT main.$OBJEXT libb.la -la0
+ /home/rwild/lt/build-powerpc-ibm-aix5.3.0.0/libtool --mode=link cc 
-qlanglvl=extc89 -g -no-undefined 
-L/home/rwild/lt/build-powerpc-ibm-aix5.3.0.0/tests/t
estsuite.dir/039/lib -o main main.o libb.la -la0
stderr:
stdout:
libtool: link: cc -qlanglvl=extc89 -g -o .libs/main main.o  
-L/home/rwild/lt/build-powerpc-ibm-aix5.3.0.0/tests/testsuite.dir/039/.libs 
-L/home/rwild/lt/bui
ld-powerpc-ibm-aix5.3.0.0/tests/testsuite.dir/039/lib -L./.libs -lb -la1 -la0 
-Wl,-blibpath::/home/rwild/lt/build-powerpc-ibm-aix5.3.0.0/tests/testsuite.dir
/039/lib:/usr/vac/lib:/usr/lib:/lib

Note the double colon after -blibpath, which is due to a regression in
v2.2.10-40-g0da7d80 fixed with the patch below.  I wish I'd never
approved that patch, this one took me so long to find ...

Thanks,
Ralf

Fix another typo on Add func_append_quoted and do...

* libltdl/config/ltmain.m4sh (func_mode_link): Fix regression in
computation of finalize_rpath introduced in v2.2.10-40-g0da7d80,
fixing several testsuite failures on AIX.
Report by Rainer Tammer.

diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index fad2e64..e5065fb 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -7568,7 +7568,7 @@ EOF
  *$hardcode_libdir_separator$libdir$hardcode_libdir_separator*)
;;
  *)
-   func_append hardcode_libdirs 
_libdirs$hardcode_libdir_separator$libdir
+   func_append hardcode_libdirs $hardcode_libdir_separator$libdir
;;
  esac
fi



revert unwanted enabling of libtool tracing (was: libtool-2.2.11a on AIX 5.3 current git master / followup on the old test suite and failures in the new testsuit)

2010-08-06 Thread Ralf Wildenhues
Rainer, I'm going through things in some random order, and it will take
me at least a little while to get through them all.

* Rainer Tammer wrote on Thu, Aug 05, 2010 at 09:25:14AM CEST:
 38. link-order2.at:46: testing Link order of deplibs ...
 libtool: compile:  cc_r -qlanglvl=extc89 -g -c a0.c  -DPIC -o .libs/a0.o
 libtool: compile:  cc_r -qlanglvl=extc89 -g -c a1.c  -DPIC -o .libs/a1.o
 libtool: compile:  cc_r -qlanglvl=extc89 -g -c b.c  -DPIC -o .libs/b.o
 libtool: link: /usr/bin/nm -B -BCpg  .libs/a0.o   | awk '{ if ((($ 2 == T) 
 || ($ 2 == D) || ($ 2 == B))  (substr($ 3,1,1) != .)) { print $ 3 } 
 }' | sort -u  .libs/liba0.exp
 libtool: link: cc_r -qlanglvl=extc89 -Wl,-bM:SRE -o .libs/liba0.so.0  
 .libs/a0.o   -L/daten/source/libtool-2.2.11a/tests/testsuite.dir/038/lib -lc 
 -Wl,-bnoentry  -qlanglvl=extc89   -Wl,-bE:.libs/li
 libtool: link: ar cru .libs/liba0.a .libs/liba0.so.0
 libtool: link: ( cd .libs  rm -f liba0.la  ln -s ../liba0.la 
 liba0.la )
 libtool: install: cp .libs/liba0.a 
 /daten/source/libtool-2.2.11a/tests/testsuite.dir/038/lib/liba0.a
 libtool: install: cp .libs/liba0.lai 
 /daten/source/libtool-2.2.11a/tests/testsuite.dir/038/lib/liba0.la
 libtool: enabling shell trace mode
 + test 2 -gt 0
 + opt=--finish
 + shift
 + opt_finish=:
 + set dummy --mode finish 
 /daten/source/libtool-2.2.11a/tests/testsuite.dir/038/lib

Waitaminute.  Why is libtool enabling trace mode here?  That wasn't
requested anywhere; and it leads to huge log files.

*time passes*

git bisect converges at v2.2.10-34-gb8dd17a, the introduction of
getopt.m4sh.  I'm pushing the patch below to undo that.

Thanks,
Ralf

Ensure not to reverse preserving of --debug for relinking/finish.

* libltdl/config/ltmain.m4sh (func_check_version_match): Only
preserve '--debug' switch if $opt_debug is not equal to ':'.
* tests/help.at (debug tracing): New test group.
Report by Rainer Tammer.

diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 32a41c7..fad2e64 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -393,7 +393,7 @@ M4SH_GETOPTS(
   fi
 
   # preserve --debug
-  $opt_debug  func_append preserve_args  --debug
+  test $opt_debug = : || func_append preserve_args  --debug
 
   case $host in
 *cygwin* | *mingw* | *pw32* | *cegcc*)
diff --git a/tests/help.at b/tests/help.at
index e1bcbf5..c4eaa87 100644
--- a/tests/help.at
+++ b/tests/help.at
@@ -92,3 +92,100 @@ AT_CHECK([$LIBTOOL cl liba.la],
 [], [ignore], [ignore])
 
 AT_CLEANUP
+
+
+AT_SETUP([debug tracing])
+
+AT_DATA([a.c],
+[[int a () { return 0; }
+]])
+
+AT_DATA([b.c],
+[[extern int a ();
+int b () { return a (); }
+]])
+
+AT_DATA([main.c],
+[[extern int b ();
+int main () { return b (); }
+]])
+
+inst=`pwd`/inst
+libdir=$inst/lib
+bindir=$inst/bin
+mkdir $inst $libdir $bindir
+
+# This test will not work correctly if --debug is passed.
+AT_CHECK([case $LIBTOOL $CC $CPPFLAGS $CFLAGS $LDFLAGS  in ]dnl
+[  *\ --debug\ *) exit 77;; *) :;; esac])
+
+check_trace ()
+{
+  if test X$trace = X--debug; then
+AT_CHECK([grep 'enabling shell trace mode' stdout stderr], [0], [ignore])
+AT_CHECK([grep ' --mode' stderr], [0], [ignore])
+  else
+AT_CHECK([grep 'enabling shell trace mode' stdout stderr], [1])
+AT_CHECK([grep ' --mode' stderr], [1])
+  fi
+}
+
+orig_LIBTOOL=$LIBTOOL
+for trace in '' --debug; do
+  LIBTOOL=$orig_LIBTOOL $trace
+
+  # Hypothesis: debug output should happen if (and only if) --debug is
+  # passed, for compile, link, install, uninstall, and clean modes.
+  AT_CHECK([$LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c a.c],
+  [], [stdout], [stderr])
+  check_trace
+  AT_CHECK([$LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c b.c],
+  [], [stdout], [stderr])
+  check_trace
+  AT_CHECK([$CC $CPPFLAGS $CFLAGS -c main.c], [], [ignore], [ignore])
+  AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la a.lo ]dnl
+  [ -no-undefined -rpath $libdir], [], [stdout], [stderr])
+  check_trace
+  AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o libb.la b.lo ]dnl
+  [ -no-undefined -rpath $libdir liba.la], [], [stdout], [stderr])
+  check_trace
+  AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o main$EXEEXT 
main.$OBJEXT ]dnl
+  [libb.la], [], [stdout], [stderr])
+  check_trace
+  LT_AT_NOINST_EXEC_CHECK([./main], [], [], [stdout], [stderr])
+  check_trace
+
+  AT_CHECK([$LIBTOOL --mode=install cp liba.la libb.la $libdir],
+  [], [stdout], [stderr])
+  check_trace
+
+  # Hypothesis: --debug should be passed to relink mode if (and only if)
+  # it was passed at link mode.
+  AT_CHECK([$orig_LIBTOOL --mode=install cp liba.la libb.la $libdir],
+  [], [stdout], [stderr])
+  if grep ': relinking ' stdout stderr; then
+if test X$trace = X--debug; then
+  AT_CHECK([grep ' --mode=relink' stdout stderr | grep ' --debug '],
+  [0], [ignore])
+else
+  AT_CHECK([grep '