libtool-patches
[Top][All Lists]
Advanced

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

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


From: Ralf Wildenhues
Subject: Re: [PATCH 370] Implement lt_dlopening of only preloaded modules.
Date: Tue, 12 Aug 2008 21:16:10 +0200
User-agent: Mutt/1.5.18 (2008-05-17)

* Ralf Wildenhues wrote on Sat, Aug 02, 2008 at 12:51:36PM CEST:
> * 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.

As a step toward stabilization, I would like to propose to revert the
above patch.  Its acceptance should rely on its test passing on at least
more than one of Darwin, MinGW, GNU/Linux, and AIX.  (Does it currently
pass on any of them?)

OK to revert?  Or, rather: does anybody have problems with the reversal?

Thanks,
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 
> 2>&1
> ../../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 2>&1
> ../../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 2>&1
> ../../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 
> 2>&1
> ../../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 
> 2>&1
> ../../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/modpreload.o      -Wl,-soname 
> -Wl,libpreload.so -o .libs/libpreload.so
> libtool: link: ar cru .libs/libpreload.a  modpreload.o
> libtool: link: ranlib .libs/libpreload.a
> libtool: link: ( cd ".libs" && rm -f "libpreload.la" && ln -s 
> "../libpreload.la" "libpreload.la" )
> ../../libtool/tests/lt_dladvise.at:358: $LIBTOOL --mode=link $CC $CFLAGS 
> $LDFLAGS -o main main.$OBJEXT $preloaded $modules $LIBLTDL
> stderr:
> stdout:
> libtool: link: rm -f .libs/main.nm .libs/main.nmS .libs/main.nmT
> libtool: link: (cd .libs && gcc -g -O2 -c -fno-builtin "mainS.c")
> libtool: link: rm -f ".libs/mainS.c" ".libs/main.nm" ".libs/main.nmS" 
> ".libs/main.nmT"
> libtool: link: gcc -g -O2 -o .libs/main main.o .libs/mainS.o  
> ./.libs/libpreload.so /home/ralf/libtool/build/libltdl/.libs/dlopen.a 
> /home/ralf/libtool/build/tests/../libltdl/.libs/libltdlc.a -ldl -Wl,-rpath 
> -Wl,/foo
> libtool: clean: rm libpreload.la .libs/libpreload.so .libs/libpreload.so 
> .libs/libpreload.so .libs/libpreload.a .libs/libpreload.la 
> .libs/libpreload.lai
> rm: cannot remove `.libs/libpreload.so': No such file or directory
> rm: cannot remove `.libs/libpreload.so': No such file or directory
> libtool: clean: rmdir .libs >/dev/null 2>&1
> ../../libtool/tests/lt_dladvise.at:365: $LIBTOOL --mode=execute $modules 
> ./main; lt_status=$?;
>          if test $lt_status -eq 0; then :;
>          elif test "X$host" != "X$build" && \
>               { test -x "./main" || test -x "./main"$EXEEXT; }
>          then (exit 77); else (exit $lt_status); fi
> Not enabling shell tracing (command contains an embedded newline)
> --- /dev/null 2008-07-27 13:47:23.200041014 +0200
> +++ /home/ralf/libtool/build/tests/testsuite.dir/at-stderr    2008-08-02 
> 12:42:11.000000000 +0200
> @@ -0,0 +1 @@
> +gcc: ./.libs/libpreload.so: No such file or directory
> --- expout    2008-08-02 12:42:10.000000000 +0200
> +++ /home/ralf/libtool/build/tests/testsuite.dir/at-stdout    2008-08-02 
> 12:42:11.000000000 +0200
> @@ -1,5 +0,0 @@
> -resident: 2
> -local: 3
> -global: 4
> -depend: 5
> -preload: 6
> ../../libtool/tests/lt_dladvise.at:365: exit code was 1, expected 0
> 45. lt_dladvise.at:28: 45. lt_dlopenadvise library loading 
> (lt_dladvise.at:28): FAILED (lt_dladvise.at:365)




reply via email to

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