From: Thomas Tanner Date: Sat, 27 Mar 1999 16:52:00 +0000 (+0000) Subject: * NEWS: updated X-Git-Tag: release-1-3~96 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3b338ce92dceba12f751c1a5ec714509fdad2681;p=thirdparty%2Flibtool.git * NEWS: updated * README: updated (BeOS support, no longer shared libraries support for AmigaOS), cleanups, we have now two mailing lists * REAMDE-alpha: autogen -> bootstrap, we have now two mailing lists * THANKS: added Xavier Pianet * doc/PLATFORMS: BeOS works * doc/libtool.texi: we have now to two mailing lists, updated -dlopen self documentation, documented libltdl's license, put each author in a separate line, cleanups and minor corrections * libltdl/COPYING.LIB: new file * libltdl/ltdl.[ch]: added special exception to the LGPL license * libtool.spec: removed, it was outdated * Makefile.am: removed libtool.spec * ltmain.in: use TMPDIR when possible, create a subdirectory in the temporary directory, added -export-symbols-regex to the help, don't regenerate the .lai file if it was removed - it should not happen --- diff --git a/ChangeLog b/ChangeLog index 1f5fc94c2..ed70d8a66 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +1999-03-27 Thomas Tanner + + * NEWS: updated + * README: updated (BeOS support, no longer shared libraries + support for AmigaOS), cleanups, we have now two mailing lists + * REAMDE-alpha: autogen -> bootstrap, we have now two mailing lists + * THANKS: added Xavier Pianet + * doc/PLATFORMS: BeOS works + * doc/libtool.texi: we have now to two mailing lists, + updated -dlopen self documentation, documented libltdl's license, + put each author in a separate line, cleanups and minor corrections + * libltdl/COPYING.LIB: new file + * libltdl/ltdl.[ch]: added special exception to the LGPL license + * libtool.spec: removed, it was outdated + * Makefile.am: removed libtool.spec + * ltmain.in: use TMPDIR when possible, create a subdirectory + in the temporary directory, added -export-symbols-regex to the help, + don't regenerate the .lai file if it was removed - it should not + happen + 1999-03-25 Alexandre Oliva * demo/Makefile.am: create a static library, link two libtool diff --git a/Makefile.am b/Makefile.am index a43a37cfe..45cb47f25 100644 --- a/Makefile.am +++ b/Makefile.am @@ -13,7 +13,7 @@ CPPLAGS = @CPPFLAGS@ aclocal_macros = libtool.m4 EXTRA_DIST = $(aclocal_macros) libtoolize.in ltconfig.in ltmain.in \ - libtool.spec mkstamp ChangeLog.0 + mkstamp ChangeLog.0 CLEANFILES = libtool libtoolize ltconfig.T ltmain.shT # These are required by libtoolize. diff --git a/NEWS b/NEWS index 0f4f669e4..0ca214b9d 100644 --- a/NEWS +++ b/NEWS @@ -1,10 +1,12 @@ NEWS - list of user-visible changes between releases of GNU Libtool -New in 1.2g: CVS version, Libtool team: +New in 1.3: 1999-03-??; CVS version 1.2g, Libtool team: * dlopen support for BeOS * Improved support for BeOS and Cygwin +* Documentation updates +* Bugfixes -New in 1.2e: CVS version; 1.2f: 1999-03-15, Libtool team: +New in 1.2f: 1999-03-15; CVS version 1.2e, Libtool team: * libtool will correctly link uninstalled libraries into programs and prefer uninstalled libraries to installed ones * Library paths that are in the system default run-time search path @@ -46,7 +48,7 @@ New in 1.2e: CVS version; 1.2f: 1999-03-15, Libtool team: * New demos and tests * Various bugfixes -New in 1.2c: CVS version; 1.2d: 1998-12-16, Libtool team: +New in 1.2d: 1998-12-16; CVS version 1.2c, Libtool team: * libtool will correctly link already-installed libraries into programs. * New -module flag, to create loadable modules. * New libltdl, a small library for portable dlopening of modules. diff --git a/README b/README index 02754c1f1..975405a4d 100644 --- a/README +++ b/README @@ -9,13 +9,12 @@ details. Libtool supports building static libraries on all platforms. Shared library support has been implemented for these platforms: - AIX 3.x (*-*-aix3*) - AIX 4.x (*-*-aix4*) - AmigaOS (*-*-amigaos*) - BSD/OS 4.x (*-*-bsdi4*) + AIX 3.x, 4.x (*-*-aix3*, *-*-aix4*) + BeOS (*-*-beos*) + BSD/OS 2.1, 3.x, 4.x (*-*-bsdi2.1, *-*-bsdi3*, *-*-bsdi4*) Digital/UNIX 3.x, 4.x, a.k.a. OSF/1 (*-*-osf3*, *-*-osf4*) DG/UX R4.11, R4.12, R4.20 (*-*-dguxR411*, *-*-dguxR412*, *-*-dguxR420*) - FreeBSD 2.x, 3.x (*-*-freebsd2*, *-*-freebsd3*) + FreeBSD 2.x, 3.x, 4.x (*-*-freebsd2*, *-*-freebsd3*, *-*-freebsd4*) GNU/Linux ELF (*-*-linux-gnu*, except aout, coff, and oldld) HP-UX 9.x, 10.x, 11.x (*-*-hpux9*, *-*-hpux10*, *-*-hpux11*) [see note] IRIX 5.x, 6.x (*-*-irix5*, *-*-irix6*) @@ -58,6 +57,6 @@ support was tested on. If you have any suggestions or bug reports, or you wish to port libtool to a new platform, please send electronic mail to the libtool -mailing list . Don't forget to mention the -version of libtool that you are currently using (by typing `ltconfig ---version'). +mailing list or bug reports to . +Don't forget to mention the version of libtool that you are currently +using (by typing `ltconfig --version'). diff --git a/README-alpha b/README-alpha index d42355598..ea4e8b84e 100644 --- a/README-alpha +++ b/README-alpha @@ -5,15 +5,17 @@ CVS version of this package, do: [Hit return when prompted for the password] cvs -d :pserver:anoncvs@anoncvs.gnu.org:/gd/gnu/anoncvsroot checkout libtool cd libtool - ./autogen + ./bootstrap -The `autogen' script sets up the source directory for you to hack. To +The `bootstrap' script sets up the source directory for you to hack. To use it, you need a recent (maybe yet to be released) version of both Autoconf and Automake. -Please do not send any bug reports or questions about this snapshot to -public forums (such as GNU newsgroups), send them directly to the -libtool mailing list, . +If you have any suggestions or bug reports, or you wish to port +libtool to a new platform, please send electronic mail to the libtool +mailing list or bug reports to . +Don't forget to mention the version of libtool that you are currently +using (by typing `ltconfig --version'). ================================================================ = Administrivia diff --git a/THANKS b/THANKS index 242b00961..742d4cdf1 100644 --- a/THANKS +++ b/THANKS @@ -34,3 +34,4 @@ Steven M. Schultz Todd Vierling Tom Tromey Ulrich Drepper +Xavier Pianet diff --git a/doc/PLATFORMS b/doc/PLATFORMS index 9fe5cf5bc..eca4aa52a 100644 --- a/doc/PLATFORMS +++ b/doc/PLATFORMS @@ -18,6 +18,7 @@ hppa1.1-hp-hpux9.07 gcc 1.2f ok hppa1.1-hp-hpux9.07 cc 1.0f ok hppa1.1-hp-hpux9.05 gcc 1.2f ok hppa1.1-hp-hpux9.01 gcc 1.2f ok +i*86-*-beos gcc 1.2f ok i*86-*-bsdi4.0 gcc 1.2f ok i*86-*-bsdi4.0.1 gcc 1.2f ok i*86-*-bsdi3.1 gcc 1.2e NS diff --git a/doc/libtool.texi b/doc/libtool.texi index d4a72bdb9..7d0d3cded 100644 --- a/doc/libtool.texi +++ b/doc/libtool.texi @@ -7,7 +7,8 @@ @c %**end of header @include version.texi -@set BUGADDR the libtool mailing list @email{bug-libtool@@gnu.org} +@set BUGADDR the libtool bug reporting address @email{bug-libtool@@gnu.org} +@set MAILLIST the libtool mailing list @email{libtool@@gnu.org} @set objdir .libs @dircategory GNU programming tools @@ -51,7 +52,10 @@ approved by the Foundation. @titlepage @title GNU Libtool @subtitle For version @value{VERSION}, @value{UPDATED} -@author Gordon Matzigkeit, Alexandre Oliva, Thomas Tanner, Gary V. Vaughan +@author Gordon Matzigkeit +@author Alexandre Oliva +@author Thomas Tanner +@author Gary V. Vaughan @page @vskip 0pt plus 1filll @@ -1172,12 +1176,11 @@ If the platform requires versioning, this option has no effect. @item -dlopen @var{file} Same as @samp{-dlpreopen @var{file}}, if native dlopening is not -supported on the host platform (@pxref{Dlopened modules}) or, if -@var{file} is @code{self} and @var{dlopen_self} is set to @samp{no}. -Otherwise, no effect. If the program is linked with @samp{-static} or -@samp{-all-static}, the variable tested is @var{dlopen_self_static}, not -@var{dlopen_self}, as long as the @samp{-dlopen self} switch appears -@emph{after} the static-linking switch. +supported on the host platform (@pxref{Dlopened modules}) or if +the program is linked with @samp{-static} or @samp{-all-static}. +Otherwise, no effect. If @var{file} is @code{self} libtool will make +sure that the program can @code{dlopen} itself, either by enabling +@code{-export-dynamic} or by falling back to @samp{-dlpreopen self}. @item -dlpreopen @var{file} Link @var{file} into the output program, and add its symbols to @@ -1696,8 +1699,8 @@ on @file{libtool}. @defmac AC_LIBTOOL_DLOPEN Enable checking for dlopen support. This macro should be used if -the package makes use of the -dlopen and -dlpreopen flags, otherwise -libtool will assume that the system does not support dlopening. +the package makes use of the @samp{-dlopen} and @samp{-dlpreopen} flags, +otherwise libtool will assume that the system does not support dlopening. The macro must be called *before* @code{AM_PROG_LIBTOOL}. @end defmac @@ -2589,23 +2592,34 @@ implementation of @file{libltdl} services, it requires GNU DLD, or it will only emulate dynamic linking with libtool's dlpreopening mechanism. @noindent -Libltdl supports currently the following dynamic linking mechanims: +libltdl supports currently the following dynamic linking mechanims: @itemize @bullet @item -dlopen (Solaris, Linux and various BSD flavors) +@code{dlopen} (Solaris, Linux and various BSD flavors) @item -shl_load (HP-UX) +@code{shl_load} (HP-UX) @item -LoadLibrary (Win16 and Win32) +@code{LoadLibrary} (Win16 and Win32) @item -load_add_on (BeOS) +@code{load_add_on} (BeOS) @item GNU DLD (emulates dynamic linking for static libraries) @item libtool's dlpreopen (see @pxref{Dlpreopening}) @end itemize +@noindent +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 +distribution terms that you use for the rest of that program. +@end quotation + @menu * Libltdl interface:: How to use libltdl in your programs. * Modules for libltdl:: Creating modules that can be @code{dlopen}ed. @@ -2620,7 +2634,7 @@ The libltdl API is similar to the dlopen interface of Solaris and Linux, which is very simple but powerful. @noindent -To use libltdl in your program you have include the header file @file{ltdl.h}: +To use libltdl in your program you have to include the header file @file{ltdl.h}: @example #include @@ -2652,8 +2666,9 @@ Every dlopened module has a handle associated with it. This structure is described in @pxref{Dlpreopening}. @end table +@page @noindent -Libltdl provides the following functions: +libltdl provides the following functions: @deftypefun int lt_dlinit (void) Initialize libltdl. @@ -2682,7 +2697,7 @@ flag, then the global symbols in the executable will also be used to resolve references in the module. If @var{filename} is NULL and the program was linked with -@code{-export-dynamic} and @code{-dlopen self}, @code{lt_dlopen} will +@code{-export-dynamic} or @code{-dlopen self}, @code{lt_dlopen} will return a handle for the program itself, which can be used to access its symbols. @@ -2790,7 +2805,8 @@ search path. Return 0 on success. @deftypefun int lt_dlsetsearchpath (const char *@var{search_path}) Replace the current user-defined library search path with -@var{search_path}. Return 0 on success. +@var{search_path}, which must be a colon-separated list of absolute +directories. Return 0 on success. @end deftypefun @deftypefun const char *lt_dlgetsearchpath (void) @@ -2823,7 +2839,7 @@ Note that libtool modules don't need to have a "lib" prefix. However, automake 1.4 or higher is required to build such modules. Usually a set of modules provide the same interface, i.e, exports the same -symbols, so that a program can dlopen them without having to know more +symbols, so that a program can dlopen them without having to know more about their internals. In order to avoid symbol conflicts all exported symbols must be prefixed with "modulename_LTX_" (@samp{modulename} is the name of the module). @@ -3301,7 +3317,7 @@ porting libtool to new systems, or writing your own libtool. @section Porting libtool to new systems Before you embark on porting libtool to an unsupported system, it is -worthwhile to send e-mail to @value{BUGADDR}, to make sure that you are +worthwhile to send e-mail to @value{MAILLIST}, to make sure that you are not duplicating existing work. If you find that any porting documentation is missing, please complain! @@ -3379,10 +3395,9 @@ Kuratomi @email{badger@@prtr-13.ucsc.edu}. Here's a shortened version of the message that contained his patch: The basic architecture is this: in @file{ltconfig.in}, the person who -writes libtool makes sure @samp{$deplibs}, or @samp{$compile_dependencylibs} -are included in @samp{$archive_cmds} somewhere and also sets the -@samp{$deplibs_check_method}, and maybe @samp{$file_magic_cmd} when -@samp{deplibs_check_method} is file_magic. +writes libtool makes sure @samp{$deplibs} is included in @samp{$archive_cmds} +somewhere and also sets the @samp{$deplibs_check_method}, and maybe +@samp{$file_magic_cmd} when @samp{deplibs_check_method} is file_magic. @samp{deplibs_check_method} can be one of five things: @table @samp @@ -3458,7 +3473,7 @@ when run @code{configure} with @kbd{CC='cc -Hnocopyr'}. @node Platform quirks @section Platform quirks -This section is dedicated to the sanity of the libtool maintainer. It +This section is dedicated to the sanity of the libtool maintainers. It describes the programs that libtool uses, how they vary from system to system, and how to test for them. diff --git a/libltdl/ltdl.c b/libltdl/ltdl.c index df93ce077..734476206 100644 --- a/libltdl/ltdl.c +++ b/libltdl/ltdl.c @@ -8,6 +8,11 @@ modify it under the terms of the GNU Library 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 +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 diff --git a/libltdl/ltdl.h b/libltdl/ltdl.h index 2f58da355..035e1adbd 100644 --- a/libltdl/ltdl.h +++ b/libltdl/ltdl.h @@ -8,6 +8,11 @@ modify it under the terms of the GNU Library 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 +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 diff --git a/libtool.m4 b/libtool.m4 index 7b3dd4615..68ac62403 100644 --- a/libtool.m4 +++ b/libtool.m4 @@ -1,6 +1,6 @@ ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*- ## Copyright (C) 1996-1999 Free Software Foundation, Inc. -## Gordon Matzigkeit , 1996 +## Originally by Gordon Matzigkeit , 1996 ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by diff --git a/libtoolize.in b/libtoolize.in index 83876d8f6..342ba6988 100644 --- a/libtoolize.in +++ b/libtoolize.in @@ -2,7 +2,7 @@ # libtoolize - Prepare a package to use libtool. # @configure_input@ # Copyright (C) 1996-1999 Free Software Foundation, Inc. -# Gordon Matzigkeit , 1996 +# Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/ltconfig.in b/ltconfig.in index 81f4473c6..822410e45 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -2,7 +2,7 @@ # ltconfig - Create a system-specific libtool. # Copyright (C) 1996-1999 Free Software Foundation, Inc. -# Gordon Matzigkeit , 1996 +# Originally by Gordon Matzigkeit , 1996 # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by diff --git a/ltmain.in b/ltmain.in index 84d9f6d06..3e44e8487 100644 --- a/ltmain.in +++ b/ltmain.in @@ -2,7 +2,7 @@ # NOTE: Changing this file will not affect anything until you rerun ltconfig. # # Copyright (C) 1996-1999 Free Software Foundation, Inc. -# Gordon Matzigkeit , 1996 +# Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -3172,12 +3172,6 @@ libdir='$install_libdir'\ # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i - if test ! -f "$instname"; then - # Just in case it was removed... - $show "Creating $instname" - $rm "$instname" - sed 's/^installed=no$/installed=yes/' "$file" > "$instname" - fi $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? @@ -3275,8 +3269,16 @@ libdir='$install_libdir'\ outputname= if test "$fast_install" = no && test -n "$relink_command"; then - if test "$finalize" = yes; then - outputname="/tmp/$$-$file" + if test "$finalize" = yes && test -z "$run"; then + tmpdir="/tmp" + test -n "$TMPDIR" && tmpdir="$TMPDIR" + tmpdir="$tmpdir/libtool-$$" + if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : + else + $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 + continue + fi + outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` @@ -3284,11 +3286,12 @@ libdir='$install_libdir'\ if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + ${rm}r "$tmpdir" continue fi file="$outputname" else - $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 + $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. @@ -3298,7 +3301,7 @@ libdir='$install_libdir'\ $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? - test -n "$outputname" && $rm $outputname + test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done @@ -3766,6 +3769,8 @@ The following components of LINK-COMMAND are treated specially: -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened