Re: [RFT PATCH v3 0/9] Sysroot patches

2010-07-31 Thread Paolo Bonzini
On 07/30/2010 08:55 PM, Charles Wilson wrote:
> Since the bug is cross-platform, it should be easy(er) to fix for you
> non-cygwin types.  Any ideas, Paolo?

Not tested yet, but I am pretty sure this should do it:


diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index b0b0ebc..945248a 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -8066,12 +8066,12 @@ EOF
func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
;;
  -L*)
-   func_stripname -L '' "$i"
+   func_stripname -L '' "$deplib"
func_replace_sysroot "$func_stripname_result"
func_append newdependency_libs " -L$func_replace_sysroot_result"
;;
  -R*)
-   func_stripname -R '' "$i"
+   func_stripname -R '' "$deplib"
func_replace_sysroot "$func_stripname_result"
func_append newdependency_libs " -R$func_replace_sysroot_result"
;;



Re: [RFT PATCH v3 0/9] Sysroot patches

2010-07-31 Thread Charles Wilson
On 7/31/2010 7:52 AM, Paolo Bonzini wrote:
> On 07/30/2010 08:55 PM, Charles Wilson wrote:
>> Since the bug is cross-platform, it should be easy(er) to fix for you
>> non-cygwin types.  Any ideas, Paolo?
> 
> Not tested yet, but I am pretty sure this should do it:

Good news and bad news.

The good:

linux->mingw cross: tests 117-119 pass
cygwin->mingw cross: ditto

linux native: test new:41 now passes.
cygwin native: test new:41 now passes (as does new:101, and
old:tagdemo-conf+old:tagdemo-make).

So, all of the problems reported earlier are now solved.  However...

I then did a complete (native) test run on linux, using libtool from
before this series (*) and after.  In both cases all of the old tests
passed.  However, the new testsuite, not so much:

- 37: Link order test ok
- 38: Link order of deplibs   ok
+ 37: Link order test FAILED (link-order.at:87)
+ 38: Link order of deplibs   FAILED (link-order2.at:123)

I expect similar behavior on cygwin native (the "after" test run has not
yet completed, but it did fail #37 and #38).  I reply to this post
confirming those results when it gets finished.

(*) This series == all nine of Paolo's v3 patches, plus the attached.


>From the failing #37 testsuite.log:
rel/path/to/tests/link-order.at:87: $LIBTOOL --mode=install cp
src/liba.la $prefix/lib/liba.la
stderr:
libtool: install:
`/abs/path/to/libtool/_build/tests/testsuite.dir/037/src/liba.la' is not
a valid libtool archive


>From the failing #38 testsuite.log:
libtool: link: ( cd ".libs" && rm -f "liba1.la" && ln -s "../liba1.la"
"liba1.la" )
/abs/path/to/libtool/_build/libtool: line 1788: cd: -/: invalid option
cd: usage: cd [-L|-P] [dir]
libtool: link: cannot determine absolute directory name of
`-L/abs/path/to/libtool/_build/tests/testsuite.dir/038'
../../libtool-2.2.11a/tests/link-order2.at:123: $LIBTOOL --mode=link $CC
$CFLAGS $LDFLAGS $static -o main$EXEEXT main.$OBJEXT libb.la -la0
stderr:
libtool: link: cannot find the library
`/abs/path/to/libtool/_build/tests/testsuite.dir/038/libb.la' or
unhandled argument
`/abs/path/to/libtool/_build/tests/testsuite.dir/038/libb.la'
stdout:
../../libtool-2.2.11a/tests/link-order2.at:123: exit code was 1, expected 0
38. link-order2.at:46: 38. Link order of deplibs (link-order2.at:46):
FAILED (link-order2.at:123)


 1786 else
 1787   func_dirname_and_basename "$1" "" "."
 1788   absdir=`cd "$func_dirname_result" && pwd`
 1789   test -z "$absdir" && \
 1790 func_fatal_error "cannot determine absolute directory name
of \`$func_dirname_result'"
 1791   func_resolve_sysroot_result="$absdir/$func_basename_result"
 1792 fi
 1793 ;;

So apparentely "$func_dirname_result" in line 1788 has the value "-/". Odd.


--
Chuck
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index b0b0ebc..945248a 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -8066,12 +8066,12 @@ EOF
 		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
 		;;
 	  -L*)
-		func_stripname -L '' "$i"
+		func_stripname -L '' "$deplib"
 		func_replace_sysroot "$func_stripname_result"
 		func_append newdependency_libs " -L$func_replace_sysroot_result"
 		;;
 	  -R*)
-		func_stripname -R '' "$i"
+		func_stripname -R '' "$deplib"
 		func_replace_sysroot "$func_stripname_result"
 		func_append newdependency_libs " -R$func_replace_sysroot_result"
 		;;
diff --git a/tests/runpath-in-lalib.at b/tests/runpath-in-lalib.at
index f7667f2..5dc1332 100644
--- a/tests/runpath-in-lalib.at
+++ b/tests/runpath-in-lalib.at
@@ -48,9 +48,9 @@ for file in a.c b.c; do
   $LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c $file
 done
 $CC $CPPFLAGS $CFLAGS -c m.c
-AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la a.lo -rpath $libdir -R$addrunpath],
+AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la a.lo -no-undefined -rpath $libdir -R$addrunpath],
 	 [], [ignore], [ignore])
-AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o libb.la b.lo -rpath $libdir liba.la],
+AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o libb.la b.lo -no-undefined -rpath $libdir liba.la],
 	 [], [ignore], [ignore])
 AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o m$EXEEXT m.$OBJEXT libb.la],
 	 [], [ignore], [ignore])


Re: [RFT PATCH v3 0/9] Sysroot patches

2010-07-31 Thread Charles Wilson
On 7/31/2010 4:23 PM, Charles Wilson wrote:
> I then did a complete (native) test run on linux, using libtool from
> before this series (*) and after.  In both cases all of the old tests
> passed.  However, the new testsuite, not so much:
> 
> - 37: Link order test ok
> - 38: Link order of deplibs   ok
> + 37: Link order test FAILED (link-order.at:87)
> + 38: Link order of deplibs   FAILED (link-order2.at:123)
> 
> I expect similar behavior on cygwin native (the "after" test run has not
> yet completed, but it did fail #37 and #38).  I reply to this post
> confirming those results when it gets finished.

As expected, the cygwin test results are as follows:

old:
All 122 tests passed

new:
 37: Link order test   FAILED (link-order.at:87)
 38: Link order of deplibs FAILED (link-order2.at:123)
111: Run tests with low max_cmd_lenFAILED (cmdline_wrap.at:43)
112: override pic_flag at configure time   FAILED (pic_flag.at:48)

111 is a dup of 37/38; 112 has been discussed before and should be
skipped on non-ELF.  That leaves 37/38 which are apparently
cross-platform issues with Paolo's patch series.  I haven't tried to
bisect it to determine exactly which patch of the series to blame it on.

However, this doesn't get Ralf off the hook for his review.

--
Chuck