Re: [PATCH 370] Implement lt_dlopening of only preloaded modules.

2008-08-02 Thread Ralf Wildenhues
Hi Gary,

* Gary V. Vaughan wrote on Tue, May 06, 2008 at 07:24:46PM CEST:
 * libltdl/m4/ltdl.m4 (LTDL_INIT): Check for a libltdl that
 provides lt_dladvise_preopen when deciding if installed libltdl
 is 'new enough'.
 * libltdl/libltdl/lt__private.h (lt__advise): Add a new
 is_preload flag.
 * libltdl/ltdl.c (lt_dladvise_preload): New api call to set it.
 (try_dlopen): If it is set, and the search of preloaded modules
 didn't return a match, don't bother searching the filesystem.
 * libltdl/ltdl.h (lt_dladvise_preload): Declare it.
 * doc/libtool.texi (Libltdl Interface): Document it.
 * tests/lt_dladvise.at: Test it (and incidentally add some test
 coverage for `libtool -dlpreopen').
 * NEWS: Announce it.

This patch causes a testsuite failure on GNU/Linux.
Also note the repeated file in the 'rm' call hints
to two nits: it should be 'rm -f', and there is some
uniquification needed in func_mode_clean.

I haven't had time to review this patch otherwise yet, sorry.

Cheers,
Ralf


# -*- compilation -*-
45. lt_dladvise.at:28: testing ...
../../libtool/tests/lt_dladvise.at:305: case $LIBLTDL in #(
 */_inst/lib/*) test -f $LIBLTDL || (exit 77) ;;
esac
Not enabling shell tracing (command contains an embedded newline)
stdout:
libtool: compile:  gcc -I/home/ralf/libtool/build/../libtool/libltdl 
-DHAVE_UNDEFINED_SYMBOLS=1 -g -O2 -c moddepend.c  -fPIC -DPIC -o 
.libs/moddepend.o
libtool: compile:  gcc -I/home/ralf/libtool/build/../libtool/libltdl 
-DHAVE_UNDEFINED_SYMBOLS=1 -g -O2 -c moddepend.c -o moddepend.o /dev/null 21
../../libtool/tests/lt_dladvise.at:330: $LIBTOOL --mode=link $CC -module 
$CFLAGS $LDFLAGS -o libdepend.la \
moddepend.lo -rpath /foo -avoid-version
Not enabling shell tracing (command contains an embedded newline)
stderr:
stdout:
libtool: link: gcc -shared  .libs/moddepend.o  -Wl,-soname -Wl,libdepend.so 
-o .libs/libdepend.so
libtool: link: ar cru .libs/libdepend.a  moddepend.o
libtool: link: ranlib .libs/libdepend.a
libtool: link: ( cd .libs  rm -f libdepend.la  ln -s ../libdepend.la 
libdepend.la )
libtool: compile:  gcc -I/home/ralf/libtool/build/../libtool/libltdl 
-DHAVE_UNDEFINED_SYMBOLS=1 -g -O2 -c modresident.c  -fPIC -DPIC -o 
.libs/modresident.o
libtool: compile:  gcc -I/home/ralf/libtool/build/../libtool/libltdl 
-DHAVE_UNDEFINED_SYMBOLS=1 -g -O2 -c modresident.c -o modresident.o /dev/null 
21
../../libtool/tests/lt_dladvise.at:344: $LIBTOOL --mode=link $CC -module 
$CFLAGS $LDFLAGS -o lib$name.la \
mod$name.lo -rpath /foo -avoid-version
Not enabling shell tracing (command contains an embedded newline)
stderr:
stdout:
libtool: link: gcc -shared  .libs/modresident.o  -Wl,-soname 
-Wl,libresident.so -o .libs/libresident.so
libtool: link: ar cru .libs/libresident.a  modresident.o
libtool: link: ranlib .libs/libresident.a
libtool: link: ( cd .libs  rm -f libresident.la  ln -s 
../libresident.la libresident.la )
libtool: compile:  gcc -I/home/ralf/libtool/build/../libtool/libltdl 
-DHAVE_UNDEFINED_SYMBOLS=1 -g -O2 -c modlocal.c  -fPIC -DPIC -o .libs/modlocal.o
libtool: compile:  gcc -I/home/ralf/libtool/build/../libtool/libltdl 
-DHAVE_UNDEFINED_SYMBOLS=1 -g -O2 -c modlocal.c -o modlocal.o /dev/null 21
../../libtool/tests/lt_dladvise.at:344: $LIBTOOL --mode=link $CC -module 
$CFLAGS $LDFLAGS -o lib$name.la \
mod$name.lo -rpath /foo -avoid-version
Not enabling shell tracing (command contains an embedded newline)
stderr:
stdout:
libtool: link: gcc -shared  .libs/modlocal.o  -Wl,-soname -Wl,liblocal.so 
-o .libs/liblocal.so
libtool: link: ar cru .libs/liblocal.a  modlocal.o
libtool: link: ranlib .libs/liblocal.a
libtool: link: ( cd .libs  rm -f liblocal.la  ln -s ../liblocal.la 
liblocal.la )
libtool: compile:  gcc -I/home/ralf/libtool/build/../libtool/libltdl 
-DHAVE_UNDEFINED_SYMBOLS=1 -g -O2 -c modglobal.c  -fPIC -DPIC -o 
.libs/modglobal.o
libtool: compile:  gcc -I/home/ralf/libtool/build/../libtool/libltdl 
-DHAVE_UNDEFINED_SYMBOLS=1 -g -O2 -c modglobal.c -o modglobal.o /dev/null 21
../../libtool/tests/lt_dladvise.at:344: $LIBTOOL --mode=link $CC -module 
$CFLAGS $LDFLAGS -o lib$name.la \
mod$name.lo -rpath /foo -avoid-version
Not enabling shell tracing (command contains an embedded newline)
stderr:
stdout:
libtool: link: gcc -shared  .libs/modglobal.o  -Wl,-soname -Wl,libglobal.so 
-o .libs/libglobal.so
libtool: link: ar cru .libs/libglobal.a  modglobal.o
libtool: link: ranlib .libs/libglobal.a
libtool: link: ( cd .libs  rm -f libglobal.la  ln -s ../libglobal.la 
libglobal.la )
libtool: compile:  gcc -I/home/ralf/libtool/build/../libtool/libltdl 
-DHAVE_UNDEFINED_SYMBOLS=1 -g -O2 -c modpreload.c  -fPIC -DPIC -o 
.libs/modpreload.o
libtool: compile:  gcc -I/home/ralf/libtool/build/../libtool/libltdl 
-DHAVE_UNDEFINED_SYMBOLS=1 -g -O2 -c modpreload.c -o modpreload.o /dev/null 
21
../../libtool/tests/lt_dladvise.at:344: $LIBTOOL --mode=link $CC -module 
$CFLAGS $LDFLAGS -o lib$name.la \
  

Re: [patch #6448] [MSVC 7/7] Add MSVC Support

2008-08-02 Thread Ralf Wildenhues
Hi Peter,

yeah, replying to a mail that's 5 months old:

* Peter Rosin wrote on Tue, Mar 04, 2008 at 11:23:48AM CET:
 
 I have no problems with this patch series on either mingw, nor
 cygwin.

Great.  I've rebased your patches against current git Libtool,
and put them in a git branch, named pr-msvc-support, which I
pushed to savannah's git repo.  You should be able to get it with

  git clone git://git.sv.gnu.org/libtool.git
  git branch pr-msvc-support origin/pr-msvc-support
  git checkout pr-msvc-support

NOTE!  This git branch may be rewound at times, rebased against
a newer master, or whatnot else.  I don't think that in practice
it will need rewinding a lot, and I hope we can get by with only
reworking patches incrementally in order to get patches cherry
picked into master.  But all bets are off, and I don't want anybody
to come back crying later.

That being said, of course I won't rewind the branch without
prior notification or asking, depending on who else wants to
work on the branch.

I've fixed a couple of trivial typos in the patches, a couple of
instances of test $foo == $bar  (needs to be = instead of ==).

+  if shopt | grep nocaseglob 21  /dev/null; then

I changed this to:

+  if ( shopt | grep nocaseglob ) /dev/null 21; then

to really drop stderr, and silence ash as well.

I've reformatted tests/nocase.at a bit, and sprinkled in more AT_CHECKs
because the test fails for me on a GNU/Linux - MinGW cross compile
(using i586-mingw32msvc-gcc):

libFOO is found but -lfoo is not rewritten to -lFoo.  I don't know if it
should be, but either the test or the implementation needs fixing.

 Annotated testsuite with these patches:
 
 On MSYS and MSVC 12.00.8804 (MSVC 6) with:
 ../configure CC=cl CFLAGS=-MD CXX=cl CXXFLAGS=-MD LD=link NM=dumpbin
 -symbols AR=lib STRIP=: RANLIB=: F77=no FC=no
 
 The problems with the exported variables can be solved with the
 right amount of declspecs. I will not work on the other problems
 until basic MSVC support is commited.

I think there have been various patches floating around for the exported
variables things.  You can probably search the list archives for them.
Maybe you've even written some of them.

What I'd ideally like to see here is a patch that
- isn't ugly (yeah ;-)
- keeps system-specifics abstracted away as much as possible,
- but still allows the intermediate (non-expert) user to understand
  that these annotations are needed for plain MSVC support only
  (i.e., for packages which are deeply rooted in unixy land, that
  may be ported to Cygwin but never to MinGW or MSVC, there is no
  need for these annotations).

 PASS: tests/demo-conf.test
 FAIL: tests/demo-make.test (exported variable, remove it fixes it)


 FAIL: tests/demo-deplibs.test (assumes oldlibs are named lib???.a)

Let's not worry about this for now; this is clearly a testsuite issue.
(Of course the corresponding real-world issue exists, but may be worked
around using libtool libraries everywhere).

Speaking of which, maybe a manual chapter for Windows specifics is in
order?

 FAIL: tests/pdemo-make.test (link can't create reloadable object files (-r))

That indicates a bug in libtool.m4: file_list_spec isn't working right.
With too many files on the command line, it should use an at file (@)
to specify them.  (Maybe the corresponding code in ltmain needs
adjustment, I don't know.)

This issue should be fixed before the patches go to master.

 SKIP: tests/demo-hardcode.test (...but fails here, using $CC w/o going
 through libtool)

Don't worry about this for now.

Could you run
  make check-local

(you may have to set TESTSUITEFLAGS=CC=cl ... accordingly)
and post tests/testsuite.log?

Cheers, and thanks a lot,
Ralf




Re: Update NEWS nits.

2008-08-02 Thread Gary V. Vaughan

Hallo Ralf,

On 2 Aug 2008, at 00:28, Ralf Wildenhues wrote:

Hi Gary,

I've pushed this to improve some of the statements.


Thankyou :)


(linux w/o GNU, ts ts... ;-)


/me hangs head in shame


Cheers,
Ralf



Cheers,
Gary
--
.  ())_.  Email me: [EMAIL PROTECTED]
.  ( '/   Read my blog: http://blog.azazil.net
.  / )= ...and my book: http://sources.redhat.com/autobook
.`(_~)_




PGP.sig
Description: This is a digitally signed message part