From: Thomas Tanner Date: Sun, 26 Mar 2000 23:01:20 +0000 (+0000) Subject: * NEWS: reformatting X-Git-Tag: release-1-3d~189 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=508df1487ba59680094ceb8f6da07cf7c818bd9e;p=thirdparty%2Flibtool.git * NEWS: reformatting * ltmain.in (ILD): add extra convenience library scanning pass * ltmain.in (ILD): accept -R flags for libraries, too * ltmain.in (ILD): correclty merge the dlpreopened libraries with deplibs * ltmain.in (install mode): remove directories from filenames before relinking (reported by Elrond ) * doc/libtool.texi (libltdl): rename Library -> Lesser, clarify exception clause * libltdl/ltdl.c, libltdl.h (License): ditto --- diff --git a/ChangeLog b/ChangeLog index a1d11a3d4..823975899 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2000-03-27 Thomas Tanner + + * NEWS: reformatting + + * ltmain.in (ILD): add extra convenience library scanning pass + + * ltmain.in (ILD): accept -R flags for libraries, too + + * ltmain.in (ILD): correclty merge the dlpreopened libraries + with deplibs + + * ltmain.in (install mode): remove directories from filenames + before relinking (reported by Elrond ) + + * doc/libtool.texi (libltdl): rename Library -> Lesser, + clarify exception clause + * libltdl/ltdl.c, libltdl.h (License): ditto + 2000-03-21 Alexandre Oliva * ltconfig.in (variables_saved_for_relink): Set to `PATH diff --git a/NEWS b/NEWS index 41859c5f5..b2f8c70cc 100644 --- a/NEWS +++ b/NEWS @@ -1,20 +1,18 @@ NEWS - list of user-visible changes between releases of GNU Libtool New in 1.3d: 2000-??-??; CVS version 1.3c, Libtool team: -* New "-no-install" flag to avoid the use of executable wrapper scripts. +* New -no-install flag to avoid the use of executable wrapper scripts. * New --with-pic flag to control the generation of PIC/non-PIC code. * New --build flag to ltconfig to help with build cross compilation environments is inherited from --build flag passed to configure. * Support for hardcoding run-time paths (-R) into libraries. * Support -dlopen and -dlpreopen for libraries. * Libtool now allows you to link shared libraries against static code. -* New functions lt_dlgetinfo, lt_dlforeach in libltdl can be used to - access module specific data in handles. -* New functions lt_next_dlloader, lt_dlloader_name, lt_find_dlloader, - lt_add_dlloader in libltdl can be used for adding new types of module - loader to libltdl.. -* New functions lt_dladderror, lt_dlseterror in libltdl can be used to - integrate user module loaders with lt_dlerror. +* New functions in libltdl: + lt_dlgetinfo, lt_dlforeach provide access to module specific data in handles. + lt_next_dlloader, lt_dlloader_name, lt_find_dlloader and + lt_add_dlloader can be used for adding new types of module loaders. + lt_dladderror, lt_dlseterror integrate user module loaders with lt_dlerror. * "-Xcompiler" and "-Wc," does now work in compile mode, too. * Start of support code for cross-compiling to win32. * libltdl can now be built as a dll with win32. diff --git a/doc/libtool.texi b/doc/libtool.texi index f58b8fdc7..d819f6e74 100644 --- a/doc/libtool.texi +++ b/doc/libtool.texi @@ -2776,9 +2776,9 @@ libltdl is licensed under the terms of the GNU Library General Public License, with the following exception: @quotation -As a special exception to the GNU Library General Public License, -if you distribute this file as part of a program that uses GNU libtool -to create libraries and programs, you may include it under the same +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU libtool, you may include it under the same distribution terms that you use for the rest of that program. @end quotation diff --git a/libltdl/ltdl.c b/libltdl/ltdl.c index 84c9e7293..7964d44cc 100644 --- a/libltdl/ltdl.c +++ b/libltdl/ltdl.c @@ -4,24 +4,25 @@ This file is part of GNU Libtool. This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public +modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. -As a special exception to the GNU Library General Public License, -if you distribute this file as part of a program that uses GNU libtool -to create libraries and programs, you may include it under the same +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU libtool, you may include it under the same distribution terms that you use for the rest of that program. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. +Lesser General Public License for more details. -You should have received a copy of the GNU Library General Public +You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ #define _LTDL_COMPILE_ diff --git a/libltdl/ltdl.h b/libltdl/ltdl.h index 2a2a75b86..fdb7626a0 100644 --- a/libltdl/ltdl.h +++ b/libltdl/ltdl.h @@ -4,21 +4,21 @@ This file is part of GNU Libtool. This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public +modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. -As a special exception to the GNU Library General Public License, -if you distribute this file as part of a program that uses GNU libtool -to create libraries and programs, you may include it under the same +As a special exception to the GNU Lesser General Public License, +if you distribute this file as part of a program or library that +is built using GNU libtool, you may include it under the same distribution terms that you use for the rest of that program. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. +Lesser General Public License for more details. -You should have received a copy of the GNU Library General Public +You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA diff --git a/ltmain.in b/ltmain.in index 4cc6f7b17..1916f5a37 100644 --- a/ltmain.in +++ b/ltmain.in @@ -1303,7 +1303,7 @@ compiler." need_relink=no # whether we're linking any uninstalled libtool libraries case $linkmode in lib) - passes="link" + passes="conv link" for file in $dlfiles $dlprefiles; do case "$file" in *.la) ;; @@ -1321,9 +1321,9 @@ compiler." newdlfiles= newdlprefiles= link_against_libtool_libs= - passes="scan dlopen dlpreopen link" + passes="conv scan dlopen dlpreopen link" ;; - *) passes="link" + *) passes="conv" ;; esac for pass in $passes; do @@ -1348,6 +1348,7 @@ compiler." $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi + test $pass = conv && continue name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $lib_search_path; do # Search the libtool library @@ -1371,11 +1372,13 @@ compiler." -L*) case $linkmode in lib) + test $pass = conv && continue deplibs="$deplib $deplibs" newdependency_libs="$deplib $newdependency_libs" new_lib_search_path="$new_lib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) + test $pass = conv && continue if test $pass = scan; then deplibs="$deplib $deplibs" new_lib_search_path="$new_lib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` @@ -1391,7 +1394,7 @@ compiler." continue ;; -R*) - if test "$linkmode,$pass" = "prog,link"; then + if test $pass = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in @@ -1403,6 +1406,7 @@ compiler." ;; *.la) lib="$deplib" ;; *.$libext) + test $pass = conv && continue case $linkmode in lib) if test "$deplibs_check_method" != pass_all; then @@ -1431,7 +1435,7 @@ compiler." esac ;; *.lo | *.$objext) - if test $linkmode = prog; then + if test $pass != conv && test $linkmode = prog; then if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. @@ -1481,24 +1485,28 @@ compiler." *) . ./$lib ;; esac - if test $linkmode = lib || test "$linkmode,$pass" = "prog,scan"; then + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test $linkmode != prog && test $linkmode != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi - if test $linkmode != lib && test $linkmode != prog; then + if test $pass = conv; then # only check for convenience libraries - if test -z "$old_library"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 - fi - if test -n "$libdir"; then + if test -z "$libdir"; then + if test -z "$old_library"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit 1 + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + deplibs="$deplibs $dependency_libs" + elif test $linkmode != prog && test $linkmode != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit 1 fi - # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" continue fi @@ -1601,8 +1609,6 @@ compiler." if test -z "$libdir"; then # It is a libtool convenience library, so add in its objects. - convenience="$convenience $dir/$old_library" - old_convenience="$old_convenience $dir/$old_library" if test $linkmode = lib; then deplibs="$dir/$old_library $deplibs" tmp_libs= @@ -1949,8 +1955,11 @@ compiler." dependency_libs="$newdependency_libs" if test $pass = dlpreopen; then # Link the dlpreopened libraries before other libraries - deplibs="$deplibs $save_deplibs" - elif test $pass != dlopen; then + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test $pass != dlopen; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $new_lib_search_path; do @@ -3327,7 +3336,7 @@ static const void *lt_preloaded_setup() { # Quote the relink command for shipping. if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior + # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do eval var_value=\$$var var_value=`\$echo \"X$var_value\" | $Xsed -e "$sed_quote_subst"` @@ -4108,6 +4117,7 @@ relink_command=\"$relink_command\"" $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 continue fi + file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`