+1999-03-27 Thomas Tanner <tanner@gmx.de>
+
+ * 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 <oliva@dcc.unicamp.br>
* demo/Makefile.am: create a static library, link two libtool
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.
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
\f
-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
* New demos and tests
* Various bugfixes
\f
-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.
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*)
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 <bug-libtool@gnu.org>. Don't forget to mention the
-version of libtool that you are currently using (by typing `ltconfig
---version').
+mailing list <libtool@gnu.org> or bug reports to <bug-libtool@gnu.org>.
+Don't forget to mention the version of libtool that you are currently
+using (by typing `ltconfig --version').
[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, <bug-libtool@gnu.org>.
+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 <libtool@gnu.org> or bug reports to <bug-libtool@gnu.org>.
+Don't forget to mention the version of libtool that you are currently
+using (by typing `ltconfig --version').
================================================================
= Administrivia
Todd Vierling <tv@pobox.com>
Tom Tromey <tromey@cygnus.com>
Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
+Xavier Pianet <xavier@xingo.com>
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
@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
@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
@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
@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
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.
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 <ltdl.h>
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.
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.
@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)
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).
@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!
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
@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.
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
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
## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
## Copyright (C) 1996-1999 Free Software Foundation, Inc.
-## Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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
# libtoolize - Prepare a package to use libtool.
# @configure_input@
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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
# ltconfig - Create a system-specific libtool.
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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
# NOTE: Changing this file will not affect anything until you rerun ltconfig.
#
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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
# 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 $?
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'`
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.
$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
-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