libtool/NEWS

1252 lines
56 KiB
Plaintext
Raw Normal View History

1997-11-15 02:04:44 +08:00
NEWS - list of user-visible changes between releases of GNU Libtool
1997-04-02 03:19:30 +08:00
* Noteworthy changes in release 2.4.7 (2022-03-16) [stable]
** New features:
- Libtool script now supports (configure-time and runtime) ARFLAGS
variable, which obsoletes AR_FLAGS. This is due to naming conventions
among other *FLAGS and to be consistent with Automake's ARFLAGS.
- Gnulib testsuite is enabled and run during 'make check'.
- Support the Windows version of the Intel C Compiler (icl) in
libtool script.
- Pass '-fsanitize=*' flags for GCC and LLVM, and '-specs=*' for GCC
to linker.
- Pass '-Xassembler=*' and '-Wa,*' flag to compilers and linkers.
- The variable 'FILECMD' with default value of '/usr/bin/file' was used to
replace existing hard coded references to '/usr/bin/file'.
- Add MidnightBSD support.
** Important incompatible changes:
- Libtool changed ARFLAGS/AR_FLAGS default from 'cru' to 'cr'.
- Do not pass '-pthread' to Solaris linker.
- 'libtool' and 'libtoolize' scripts now use '#! /usr/bin/env sh' shebang.
Previously '#! /bin/sh' was used, which presents challenges for
containerized environments.
** Bug fixes:
- Fix significant slowdown of libtoolize for certain projects (regression
introduced in 2.4.3 release) caused by infinite m4 macro recursion.
- Mitigate the slowdown of libtool script (introduced in v2.4.3) caused by
increased number of calls to '$SED $sed_quote_subst' (bug#20006).
- Properly parse and export TLS symbols on AIX.
- Various bug fixes surrounding use of 'sed'.
- Darwin systems set proper "allow undefined" flag on OSX 11, and
PowerPC 10.5.
- Removed some deprecated tests related to 'Makefile.inc' files.
* Noteworthy changes in release 2.4.6 (2015-02-15) [stable]
** New features:
- LT_SYS_LIBRARY_PATH can be set in config.site, or at configure time
and persists correctly in the generated libtool script.
** Bug fixes:
- Fix a race condition in ltdl dryrun test that would cause spurious
random failures of that test.
- LT_SYS_DLSEARCH_PATH is munged correctly.
* Noteworthy changes in release 2.4.5 (2015-01-19) [stable]
** New features:
- Libtoolize searches for the best available M4 on the user PATH at
runtime, rather than settling for the first one found.
libtool: support LT_SYS_LIBRARY_PATH for adjusting bad guesses. Revert 8728e07 and 440fee6. Some GNU/Linux distributions install libraries into /lib64 (or /usr/lib64) on 64-bit machines, while /lib (/usr/lib respectively) stays for multilib variant. Other distributions keep /usr/lib for 64-bit variant and reserve other directory for multilib. Detection of what approach a given system uses is difficult, however, especially because Glibc's ldconfig does not report the full and correct list of search paths. Allow the user to adjust Libtools heuristically determined search paths with the new LT_SYS_LIBRARY_PATH environment variable at both compile-time, when libtool is called, and at configure time. * m4/libtool.m4 (_LT_PREPARE_MUNGE_PATH_LIST): Define a new function to munge a libtool path list according to a user supplied colon-delimited path. (_LT_SYS_DYNAMIC_LINKER): Require _LT_PREPARE_MUNGE_PATH_LIST. Mark LT_SYS_LIBRARY_PATH as precious to autoconf (to survive automatic "autoreconf"). Call the new func_munge_path_list function on sys_lib_dlsearch_path_spec - this propagates results to generated libtool script. (_LT_CONFIG): Expand _LT_PREPARE_MUNGE_PATH_LIST into generated libtool script. * build-aux/ltmain.in (func_mode_link): Call it to adjust sys_lib_dlsearch_path according to LT_SYS_LIBRARY_PATH. * doc/libtool.texi: Document new LT_SYS_LIBRARY_PATH. * doc/notes.texi: Likewise. * NEWS: Update. References: http://thread.gmane.org/gmane.comp.gnu.libtool.general/8339/focus=8345 Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-12 05:49:19 +08:00
- Support munging sys_lib_dlsearch_path_spec with LT_SYS_LIBRARY_PATH
environment variable.
** Bug fixes:
- Bail out at configure time if the installed M4 is not sufficient
for the purposes of libtoolize.
- freebsd-elf library versioning was upgraded incorrectly in 2.4.4,
but now works properly again.
- Fix a 2.4.4 regression so that libltdl subprojects do not warn
about missing libltdl/libltdl directory as in prior releases.
- When using Sun C++ on Solaris or GNU/Linux we used to set libtool's
postdeps permanently, based on the contents of $CXX and $CXXFLAGS at
configure time, which was brittle and error-prone. Now, we no
longer check for a SunCC ABI at configure time, but augment the
postdeps at libtool time based on the current invocation flags on
each call.
** Changes in supported systems or compilers:
- /usr/local prefixed rpaths are now added to the link-line on
ia64-hp-hpux*, because the default system runtime loader path does
not contain them.
- Previously, when using Sun C++ on Solaris or GNU/Linux, `-Cstd -Crun`
flags were added to $postdeps unless CXX or CXXFLAGS contained
`-library=stlport4`. Newer releases have added other compiler flags
that are also incompatible with `-Cstd -Crun`, so now we don't add
them if any of `-std=c++[0-9][0-9]`, `-library=stdcxx4` or
`-compat=g` were found in CXX or CXXFLAGS when the Sun C++ compiler
is detected.
* Noteworthy changes in release 2.4.4 (2014-11-29) [stable]
** New features:
- Libltdl maintains its own fork of argz, with macros and files in
the LT_ and lt__ namespaces (resp.) where they cannot clash with
client projects' use of gnulib argz.
** Bug fixes:
- Installation of 'libtoolize' once again obeys '--program-prefix',
'--program-suffix' and '--program-transform-name' configure options.
- `libtoolize` doesn't remove any files that it can't reinstall,
including old versions of the snippet directory, and gnulib's
version of the argz module and supporting files.
- LT_FUNC_DLYSM_USCORE now works correctly on systems that don't
support self dlopen()ing.
** Important incompatible changes:
- LT_LIB_DLLOAD no longer prepends -ldl or -ldld to LIBS, causing
duplicate occurrences in libltdl link lines. If you need to
add a library for dlopen() or shl_load() in your Makefile, then
use $(LIBADD_DLOPEN) or $(LIBADD_SHL_LOAD) respectively. If you
are using libltdl, this all happens automatically, and the only
difference you'll see is no more duplicated library names in the
verbose link line.
** Changes in supported systems or compilers:
- Preliminary support for tcc on linux*. Although it already worked
sometimes in previous releases, making sure to set LD correctly now
avoids mis-matching GNU ld with tcc:
./configure CC=tcc LD=tcc
- Added -os2dllname option to work around 8 character base name
limit on OS/2. The option has no effect on other systems.
- Support for DLL versioning, -export-symbols and -export-symbols-regex
on OS/2.
libtool: optional filename-based shlib versioning on aix. Support filename-based shared library versioning on AIX with the lib.so library filename extension, which is used with runtime linking only. Runtime linking is enabled by the -brtl linker flag for executables and the -G linker flag for Shared Objects. The behaviour is similar to Linux/SVR4 DT_SONAME, hence the name "aix-soname=svr4". * Makefile.am (TESTS_ENVIRONMENT): Pass with_aix_soname value via lt_cv_with_aix_soname into testsuite. * configure.ac: AC_SUBST with_aix_soname for testsuite. * libltdl/loaders/dlopen.c (vm_open): Use RTLD_MEMBER flag for dlopen when the filename does specify an archive member between "()". Otherways, retry with appending LT_SHARED_LIB_MEMBER when loading fails without but archive file seems to exist. * m4/libtool.m4 (dynamic_linker): Describe configured shared library versioning variant according to with_aix_soname and runtime linking. (soname_spec, library_names_spec, shlibpath_overrides_runpath) (postinstall_cmds, postuninstall_cmds, hardcode_direct) (hardcode_direct_absolute, no_undefined_flag) (allow_undefined_flag): Set according to with_aix_soname and runtime linking configuration. (export_symbols_cmds): Decorate symbols with the weak keyword. (archive_expsym_cmds): Create both shared libraries according to with_aix_soname and runtime linking configuration. Filter -brtl linker flag from compiler_flags for shared libraries due to its side effects. (enable_static): Respect with_aix_soname for disabling as well. * m4/ltdl.m4 (LT_SHARED_LIB_MEMBER): Define, set based on the value of the shared_archive_member_spec libtool variable. * m4/ltoptions.m4 (_LT_WITH_AIX_SONAME): New. Provides commandline option --with-aix-soname=aix|svr4|both. Declares $shared_archive_member_spec as libtool variable. (_LT_SET_OPTIONS): Define LT_INIT options "aix-soname=aix", "aix-soname=svr4", "aix-soname=both". Default is "aix-soname=aix". * doc/libtool.texi (LT_INIT): Document new options. * tests/deplibs-ident.at: To define whether this test should XFAIL, use hardcode_action, hardcode_direct, hardcode_direct_absolute configuration settings instead of platforms aix, bitrig, hppa-hpux, interix or openbsd. * tests/versioning.at: When shared_archive_member_spec is defined and LDFLAGS contain -brtl, we can run the versioning check. * NEWS: Update. Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-11-29 23:05:05 +08:00
- Support filename-based shared library versioning on AIX. See manual
for details.
* Noteworthy changes in release 2.4.3 (2014-10-27) [stable]
** New features:
- Moved to gnulib release infrastructure.
- M4 is now used for scanning the M4 macros in your configure.ac that
'libtoolize' looks at to determine what files you want, and where you
would like them installed. This means that you can compose your
version number or any other argument that Libtoolize needs to know at
M4 time using git-version-gen from gnulib, for example.
- Invoking 'libtoolize --ltdl' no longer maintains a separate autoconf
libtoolize: rename `libltdl/m4' directory to standard `m4'. In addition to moving the autoconf macro directory into the place expected by GNU developers ($top_srcdir/m4), we also simplify libtoolize somewhat by having libltdl use whatever directory was specified by the parent project. This is much more flexible, allows libltdl client projects to also use a single canonical `$top_srcdir/m4' macro directory, and maintains backward compatibility with existing projects that wish to continue using $ltdl_dir/m4. * libltdl/m4: Moved to it's parent directory. * Makefile.am (ACLOCAL_AMFLAGS, BUILDCHECK_ENVIRONMENT) (libltdl/Makefile.am, libltdl/aclocal.m4): Adjust. * configure.ac (AC_CONFIG_MACRO_DIR): Adjust. * libltdl/configure.ac (AC_CONFIG_MACRO_DIR): Remove. The libtoolize script can pick up the project macro directory from ACLOCAL_AMFLAGS in libltdl/Makefile.am, saving us from needing to regenerate configure for the sake of a different macro directory declared in the libltdl using client project. * libtoolize.m4sh (func_install_pkgmacro_subproject): Remove. (func_install_pkgmacro_parent): Remove. (subproject_macro_dir): Remove. (require_libltdl_Makefile_am, require_ltdl_aclocal_amflags) (require_ltdl_am_macro_dir): New functions, generated at runtime by adding libltdl/Makefile.am to the generation loop. (func_install_pkgmacro_files): Considerably simplified now that we have only a single macro directory to worry about. (require_ltdl_relative_macro_dir): New function. Calculate the relative path from $ltdl_dir to the parent project macro_dir. (require_Makefile_am_filter): Depending on $ltdl_mode, edit Makefile.am ACLOCAL_AMFLAGS to use the parent project macro directory if necessary. (require_aclocal_m4_filter): Make sure m4_includes point to the correct macro directory by editing the file as it is copied into the parent project. (func_install_pkgltdl_files): Use the filters. (func_check_macros): Remove various advice that no longer applies with an always shared macro directory. (func_require_ltdl_dir): Don't default ltdl_dir to subproject when `--ltdl' was not given. (func_require_ltdl_mode): Leave ltdl_mode empty when ltdl_dir is not set. (func_require_macro_dir): Default to $ltdl_dir/m4 in subproject mode with no other directory implied by AC_CONFIG_MACRO_DIR or ACLOCAL_AMFLAGS, otherwise m4 as before. * tests/libtoolize.at: Match new "creating file `Makefile.am'" messages correctly. (subproject ltdl with non-shared directories): This test no longer makes sense, so repurposed... (subproject ltdl with non-canonical macro dir): ...this, to ensure subproject ltdl continues to automatically share the parent macro directory. * tests/cdemo/Makefile.am, tests/demo/Makefile.am, tests/depdemo/Makefile.am, tests/f77demo/Makefile.am, tests/fcdemo/Makefile.am, tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (ACLOCAL_AMFLAGS): Use new location of macro_dir. * NEWS: Updated. Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-10-27 19:29:50 +08:00
macro directory in the libltdl tree, but automatically adjusts the
installed libltdl configuration files to share whatever macro
directory is declared by the parent project. (Note: if you were
already sharing a macro directory with AC_CONFIG_MACRO_DIR(ltdl/m4)
or similar, that still works as does any other directory choice).
- Invoking 'libtoolize --ltdl' no longer maintains a separate auxiliary
libtoolize: rename `libltdl/config' directory to standard `build-aux'. In addition to moving the autoconf auxiliary script directory into the place expected by GNU developers ($top_srcdir/build-aux) we also simplify libtoolize somewhat by having libltdl use whatever directory was specified by the parent project. This is much more flexible, allows libltdl client projects to also use a single canonical `$top_srcdir/build-aux' auxiliary script directory, and maintains backward compatibility with existing projects that wish to continue using $ltdl_dir/config. * libltdl/config: Moved whole directory from here... * build-aux: ...to here. * libtoolize.m4sh (func_install_pkgaux_subproject): Remove. (func_install_pkgaux_parent): Remove. (func_install_pkgaux_files): Considerably simplified now that we have only a single auxiliary directory to worry about. (subproject_aux_dir): Remove. * bootstrap.conf (libtool_readme_release_package_substitutions): No need to substitute our old unusual aux_dir location into README-release any more. * cfg.mk (_build-aux): Now that we use the standard location for this directory, no need to set this variable either. * configure.ac (AC_INIT): git-version-gen has moved. (AC_CONFIG_AUX_DIR): Adjust. * Makefile.am (stamp-mk, auxexefiles, auxfiles) (install-data-local): Use build-aux instead of config. (libltdl/stamp-mk): Ditto. * libltdl/configure.ac, tests/cdemo/configure.ac, tests/demo/configure.ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/fcdemo/configure.ac, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/pdemo/configure.ac, tests/tagdemo/configure.ac (AC_CONFIG_AUX_DIR): Ditto. * tests/defs.m4sh (aux_dir): Ditto. * tests/configure-iface.at, tests/getopt-m4sh.at, tests/libtoolize.at, tests/subproject.at, tests/testsuite.at: Ditto. * Makefile.am (ltdl_ac_aux_dir): Extract at build-time... * libtoolize.m4sh (require_ltdl_ac_aux_dir): ...so that libtoolize can access it at runtime without requiring GNU M4 via the extract-trace script. (require_Makefile_am_filter): Use it to determine whether the aux_dir declared in the current (parent) project configure is compatible with the declarations in installed ltdl autotools source files. (require_configure_ac_filter): New function to perform similar checks and rewrite configure.ac during installation if necessary. * NEWS: Updated. Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-10-27 11:00:29 +08:00
scripts directory in the libltdl tree, but automatically adjusts the
installed libltdl configuration files to share whatever auxiliary
scripts directory is declared by the parent project. (Note: if you
were already sharing an auxiliary directory with subproject libltdl
using AC_CONFIG_AUX_DIR(ltdl/config) or similar, that still works as
does any other directory choice).
- The legacy tests have all been migrated to the Autotest harness.
- The Autotest testsuite can be run without the especially time consuming
tests with:
make check-local TESTSUITEFLAGS='-k "!expensive"'
** Bug fixes:
- Fix a long-standing latent bug in autom4te include path for autotests
with VPATH builds.
- Fix a long-standing latent bug in libtoolize that could delete lines
from libltdl/Makefile.am in recursive mode due to underquoting in a
sed script.
- Fix a long-standing bug in libtoolize, by outputting the 'putting
auxiliary files in' header with 'libtoolize --ltdl --subproject'.
- Fix a long-standing bug in libtoolize subproject installation, by not
installing a set of autoconf macro files into the parent project if
there is no configure.ac present to use them.
- The libtoolize subproject mode selector is now named '--subproject'
and is equivalent to the implied '--subproject' mode when no other
mode is selected; '--standalone' never worked, and is no longer
accepted.
- Libtool and libtoolize no longer choke on paths with a comma in them.
- In the case where $SHELL does not have the same enhanced features
(e.g. the ability to parse 'var+=append') as $CONFIG_SHELL, libtool
will now correctly fallback to using only vanilla shell features
instead of failing with a parse at startup.
- Correctly recognize import libraries when Microsoft dumpbin is used
as the name lister and extend the dumpbin wrapper to find symbols
in import libraries using the -headers option of dumpbin. Also fix a
bug in the dumpbin wrapper that could lead to broken symbol listings
in some corner cases.
- Use the improved Microsoft dumpbin support to mend preloading of
import libraries for Microsoft Visual C/C++.
- No longer mangle module-definition (.def) files when feeding them to
the Microsoft Visual C/C++ linker via the -export-symbols argument to
the libtool script, thus matching how .def files are handled when
using GNU tools.
- Recognize more variants (e.g. those starting with a LIBRARY statement)
of module-definitions (.def) files when using them instead of a raw
list of symbols to export.
- Fix a long-standing bug when using libtoolize without automake; we
no longer remove install-sh with --force, since it's not a file
libtoolize will reinstall without --install..
** Important incompatible changes:
- GNU M4 is required to run libtoolize in a directory with a
'configure.ac' (or 'configure.in') that needs tracing to determine
what modes and directories have been specified.
- The use of the idiosyncratically named 'Makefile.inc' in nonrecursive
libltdl builds is deprecated, although it will be supported for one
more year or until the next release, whichever takes longer. Please
upgrade to the more standard naming of 'ltdl.mk' in keeping with other
GNU projects.
- libtoolize now behaves consistenty in respect of multiple directory
arguments to ACLOCAL_AMFLAGS and multiple invocations of AC_CONFIG-
_MACRO_DIRS, where the first directory is always selected. Previous
releases took the first ACLOCAL_AMFLAGS argument, but the last
invocation of AC_CONFIG_MACRO_DIRS.
- The libtoolize program now advises use of the new Autoconf
AC_CONFIG_MACRO_DIRS declaration. If you follow that advice, all
your developers will need at least autoconf-2.70 and automake-1.13
to rebootstrap your probject. If you still need to support
bootstrap with older Autotools, then you should add the following
to your configure.ac file:
m4_ifndef([AC_CONFIG_MACRO_DIRS],
[m4_define([AC_CONFIG_MACRO_DIRS],
m4_defn([AC_CONFIG_MACRO_DIR]))])
- Overhead of probing for a non-backslash crippled echo equivalent
during initialization of every script has been removed in favor of
trusting that "printf %s\n" works out of the box on all non-museum
host architectures. Manually setting ECHO appropriately in the
build environment will be necessary on some ancient architectures.
** Changes in supported systems or compilers:
- Support for bitrig (*-*-bitrig*).
- Solaris 7 and earlier requires ECHO=/usr/ucb/echo in the build
environment, to build and use libtool.
New in 2.4.2 2011-10-17: git version 2.4.1a, Libtool team:
* New features:
- The --with-pic configure option now supports a list of comma-separated
package names. This can be used to build some static libraries with PIC
objects while building others with non-PIC objects.
- Initial support for Go, using the gccgo compiler.
- On Mac OS X .dylib is now tried as well as .so with
lt_dlopenext().
* Bug fixes:
- The generic approximation of the command line length limit (when getconf is
not available) works again. Regression introduced in v2.2.6-39-g9c3d4d8.
- The bug that leaked developer tool paths into the release tarballs
from ./bootstrap is fixed.
- Improved support for the Cuda Compiler Driver (nvcc) on Darwin.
- For GCC LTO support, the -fuse-linker-plugin switch is now also removed
when computing compiler postdeps.
* Important incompatible changes:
- The undocumented hardcode_libdir_flag_spec_ld tag variable has been
removed in favor of using hardcode_libdir_flag_spec with $wl set to empty.
* Changes in supported systems or compilers:
- Fixes for gfortran on Darwin, XL Fortran on GNU/Linux.
- Support for FreeBSD 1.x (outdated since 1994) has been removed.
New in 2.4 2010-09-22: git version 2.2.11a, Libtool team:
* New features:
- Sysroot support. This allows you to build cross-compiled packages
with the same prefix that will be used on the destination machine,
and still find dependent libraries under the compiler's "sysroot".
Without sysroot support, paths internal to the build system may leak
into the product of the build.
Sysroot support is disabled unless the --with-sysroot configure
option is passed to configure, because .la files generated with
sysroot support will _not_ be usable in general with older Libtools.
- On non-cygwin Windows systems, we now lookup potential library
file names without regard to file name case.
- The old testsuite now uses the 'parallel-tests' Automake test driver
now for more concurrency and better test logging. For this, tests are
run in verbose mode by default now.
* Important incompatible changes:
- Autoconf 2.62 and Automake 1.11.1 or newer are now required for
bootstrapping Libtool. For using Libtool in your own projects,
Autoconf 2.59 and Automake 1.9.6 should still work.
- The fix_srcfile_path variable has been replaced by a more thorough
mechanism triggered by the to_tool_file_cmd variable.
* Changes in supported systems or compilers:
- Initial support for the Microsoft C/C++ Compiler, with help from
the compile script in unreleased Automake 1.12. Override the manifest
tool used to embed the manifest resource through the environment
variable MANIFEST_TOOL. Please note that the import library naming
has changed (from foo-2.lib to foo.dll.lib) from when the code lived
in its own git branch.
- Initial support for the NAG Fortran compiler on GNU/Linux.
* Bug fixes:
- The 'check-interactive' and 'check-noninteractive' convenience make
targets now also work for the old testsuite.
- Warnings from Autoconf v2.67-36-g1e604ec about incomplete programs
passed to AC_*_IFELSE tests have been fixed.
- On IRIX, the test for -Wl,-exported_symbol now also works with gfortran.
New in 2.2.10 2010-06-10: git version 2.2.9a, Libtool team:
* New features:
- On non-cygwin Windows systems, we no longer try to lookup the POSIX
format path recorded in $libdir of a pseudo-library when looking up
the location of the library with the native tools.
New in 2.2.8 2010-06-05: git version 2.2.7c, Libtool team:
* No new features:
- Bumped version number and promoted 2.2.7b release candidate to a full
stable release.
New in 2.2.7b 2010-05-20: git version 2.2.7a, Libtool team:
2008-09-07 16:14:06 +08:00
* New features:
- Libtool ships and installs man pages for libtool and libtoolize now.
- New libtool command line flag --help-all.
- New libtool command line flag --no-silent (with alternate spelling
--no-quiet). This flag (re)enables the default informational messages,
but has no effect on so-called "verbose" output messages.
- New libtool command line flag --no-verbose, which disables only
the extra "verbose" output messages and has no effect on the
default informational messages.
- New convenience make targets 'check-noninteractive' to avoid long testsuite
runs on Windows with popup windows in the middle, and 'check-interactive'
for the complement set of tests.
- New link mode flag -bindir to specify the location for installed PE DLLs.
- Wrapper scripts and wrapper executables for programs linked against
uninstalled shared libraries now support command-line options --lt-debug
and --lt-dump-script.
* Important incompatible changes:
- The wrapper command line option support described above introduces the
following incompatibility: the wrapper will remove any command line
options that begin with '--lt-*' from the argument list before launching
(uninstalled) programs. Any '--lt-*' option on the command line not
recognized by the wrapper will result in an error.
- The type of the symbol lists variables (lt_*_LTX_preloaded_symbols) has
been fixed in the manual and in a couple of tests to match the actual
implementation.
* Changes in supported systems or compilers:
- Improved support for 64bit Windows (mingw64).
- Improved support for cegcc (Windows CE/PocketPC).
- Support for GNU/kOpenSolaris (kopensolaris*-gnu).
- Initial support for compilers on BlueGene BG/P.
- Improved support for Atari FreeMiNT.
- With binutils 2.19.50+, shared libraries can be built on AIX.
- Initial support for the Cuda Compiler Driver on GNU/Linux.
- Support for Haiku (i586-pc-haiku).
- Initial support for GCC link-time optimization (LTO) flags.
2008-09-07 16:14:06 +08:00
* Bug fixes:
- Fix 2.2.6 regression that prevented using the libltdl macros together
with Autoconf 2.59 ('possibly undefined macro: LT_LIBEXT').
- Fix 2.2.4 regression that caused arguments with special characters
to be mangled by the compile wrapper for uninstalled programs on MinGW.
- libtool command line flag --verbose now also enables explicit
verbose output, in addition to its previous behavior of (re)enabling
only the default informational output. See New Features, --no-silent.
- Link tests are guarded by cache variables so they can be avoided for
bootstrapping purposes (e.g., when link tests are not possible).
- Argument mangling of execute mode has been improved (i.e., lessened).
- Fix 2.1b regression that caused nm to not be the default name lister.
The regression affected mainly (arguably broken) cross compiles.
- Fix long standing bug that caused compiler checks for Fortran and
C++ compilers to run twice.
- Link mode works around a parallel build failure on Darwin 9.6.0 due
to the 'ar' 'flock'ing an archive upon extraction, by protecting the
extraction of convenience archives with a lock.
- The Libtool macro files do not contain instances of __oline__ any more,
easing merges for configure scripts that are added to version control.
- Fix ancient bug where "-Wc," was turned into "$wl" (typically "-Wl,")
when using the compiler driver to link programs. Now "-Wc," is stripped
just as it is when linking libraries through the compiler driver.
- Symbol versioning works with the GNU gold linker now.
- Fixes for detection of shared library dependencies on MinGW systems.
- Fixed Sun compiler detection on Solaris with sunCC, sunf77 etc. names.
2008-09-07 16:14:06 +08:00
* Miscellaneous changes:
- The manual is distributed under the terms of the GNU FDL 1.3 now.
New in 2.2.6 2008-09-05: git version 2.2.5a, Libtool team:
* New features:
- New lt_dloadvise_preload() call to set a hint that only preloadeded
modules can be opened.
- libtoolize no longer removes config.guess and config.sub, even when
--install is passed.
* Changes in supported systems or compilers:
- Fixes for ifort on Darwin, and newer Intel compilers (icc 10, ifort 9)
on GNU/Linux.
- Fixes for cwrapper (cygwin/mingw) under -stdc=c99.
- Support cross compile of MinGW with Wine.
- Initial support for cegcc (Windows CE/PocketPC) cross compilation.
- Initial support for lf95 (Lahey Fortran 8.1) on GNU/Linux.
* Bug fixes:
- Several testsuite issues have been fixed, thanks to user feedback.
- Fix 2.2 regression that caused argz symbols to be exported from
libltdl unrenamed on systems that do not have working argz.
- Revert "lt_dlopen(NULL) works on AIX again.". It was not the
correct fix.
- Diagnose '-L' arguments correctly.
- Libtool no longer tries to open devices as files in execute mode.
- Libtool no longer removes *.gcno profile information from GCC.
New in 2.2.4: 2008-05-04: git version 2.2.3a, Libtool team:
* New features:
- New libtoolize option --no-warn, for users that want to continue to
use old libtool style without being nagged.
- Options --debug, --no-warn, --quiet and --verbose can be passed to
libtoolize through the environment variable LIBTOOLIZE_OPTIONS, for
cleaner interaction between the user and libtoolize when called by
autoreconf.
* Bug fixes:
- The documentation for lt_dlopenadvise showed the wrong type for
the lt_dladvise parameter.
- The public declarations for lt_dlhandle and lt_dladvise are now
incomplete struct types rather than void*, which means that nearly
all casting is eliminated allowing the compiler to provide more
type checking.
Only complain that files are up-to-date with --force. As a side effect, this also means that when `aclocal' copies the libtool macros into `aclocal.m4' libtoolize complains only about the macro files that are missing or not up-to-date. * libtoolize.m4sh (func_echo_once): New function that prints the contents of a named variable only on the first call. (func_aclocal_update_check): New function that compares serial numbers of libtool macros in aclocal.m4 and only diagnoses the missing files. (func_copy, func_copy_cb, func_copy_some_files, func_serial_update) (func_keyword_update, func_ltmain_update, func_config_update) (func_install_update): Accept a new argument naming a variable containing a header string to print with func_echo_once iff any body text is output by this function. (func_install_pkgmacro_subproject, func_install_pkgmacro_parent) (func_install_pkgltdl_files, func_install_pkgconfig_subproject) (func_install_pkgconfig_parent: Set and pass a suitable header string variable for the above functions. (func_serial_update_check): Don't advise rerunning `libtoolize --force' when aclocal.m4 is not m4_including libtoolize installed macro files. * tests/testsuite.at (_LIBTOOLIZE_TRANSFORM): Transform generic /usr/local/share/aclocal paths to point into the uninstalled libtool macro directory. * tests/libtoolize.at: Update tests that were checking for old behaviour of outputing `file is already up to date' even when --force was not passed. * tests/libtoolize.at: New tests to prevent regressions of these smarter messages. * NEWS: Updated. Reported by Olly Betts <olly@survex.com>
2008-04-23 06:55:20 +08:00
- libtoolize no longer reports up-to-date files that it would have
copied, unless --force is passed.
- No longer reports that lt~obsolete.m4 needs to be added to aclocal.m4
when it is already there.
- When 'aclocal' copied the libtool macros directly into 'aclocal.m4'
Only complain that files are up-to-date with --force. As a side effect, this also means that when `aclocal' copies the libtool macros into `aclocal.m4' libtoolize complains only about the macro files that are missing or not up-to-date. * libtoolize.m4sh (func_echo_once): New function that prints the contents of a named variable only on the first call. (func_aclocal_update_check): New function that compares serial numbers of libtool macros in aclocal.m4 and only diagnoses the missing files. (func_copy, func_copy_cb, func_copy_some_files, func_serial_update) (func_keyword_update, func_ltmain_update, func_config_update) (func_install_update): Accept a new argument naming a variable containing a header string to print with func_echo_once iff any body text is output by this function. (func_install_pkgmacro_subproject, func_install_pkgmacro_parent) (func_install_pkgltdl_files, func_install_pkgconfig_subproject) (func_install_pkgconfig_parent: Set and pass a suitable header string variable for the above functions. (func_serial_update_check): Don't advise rerunning `libtoolize --force' when aclocal.m4 is not m4_including libtoolize installed macro files. * tests/testsuite.at (_LIBTOOLIZE_TRANSFORM): Transform generic /usr/local/share/aclocal paths to point into the uninstalled libtool macro directory. * tests/libtoolize.at: Update tests that were checking for old behaviour of outputing `file is already up to date' even when --force was not passed. * tests/libtoolize.at: New tests to prevent regressions of these smarter messages. * NEWS: Updated. Reported by Olly Betts <olly@survex.com>
2008-04-23 06:55:20 +08:00
(i.e. AC_CONFIG_MACRO_DIR is not being used), libtoolize no longer
reports that all macros need to be added to 'aclocal.m4', and
Only complain that files are up-to-date with --force. As a side effect, this also means that when `aclocal' copies the libtool macros into `aclocal.m4' libtoolize complains only about the macro files that are missing or not up-to-date. * libtoolize.m4sh (func_echo_once): New function that prints the contents of a named variable only on the first call. (func_aclocal_update_check): New function that compares serial numbers of libtool macros in aclocal.m4 and only diagnoses the missing files. (func_copy, func_copy_cb, func_copy_some_files, func_serial_update) (func_keyword_update, func_ltmain_update, func_config_update) (func_install_update): Accept a new argument naming a variable containing a header string to print with func_echo_once iff any body text is output by this function. (func_install_pkgmacro_subproject, func_install_pkgmacro_parent) (func_install_pkgltdl_files, func_install_pkgconfig_subproject) (func_install_pkgconfig_parent: Set and pass a suitable header string variable for the above functions. (func_serial_update_check): Don't advise rerunning `libtoolize --force' when aclocal.m4 is not m4_including libtoolize installed macro files. * tests/testsuite.at (_LIBTOOLIZE_TRANSFORM): Transform generic /usr/local/share/aclocal paths to point into the uninstalled libtool macro directory. * tests/libtoolize.at: Update tests that were checking for old behaviour of outputing `file is already up to date' even when --force was not passed. * tests/libtoolize.at: New tests to prevent regressions of these smarter messages. * NEWS: Updated. Reported by Olly Betts <olly@survex.com>
2008-04-23 06:55:20 +08:00
diagnoses only the macro files that are missing or not up-to-date.
- libtoolize now advises use of AC_CONFIG_MACRO_DIR to keep matching
libtool macros in-tree where appropriate.
- libtoolize now advises use of 'ACLOCAL_AMFLAGS = -I m4' (or
equivalent) where appropriate, and errors out when ACLOCAL_AMFLAGS
names a different directory to AC_CONFIG_MACRO_DIR.
New in 2.2.2: 2008-04-01: CVS version 2.2.1a, Libtool team:
2008-03-14 14:18:07 +08:00
* New features:
- In compile mode, compiler output occurs in the user locale. This
feature has been present in 1.5.26 but not in 2.2.
* Changes in supported systems or compilers:
- Initial shared library support for AmigaOS4 on powerpc.
* Bug fixes:
- Fix 2.2 regression in libltdl that causes memory corruption upon
repeated 'lt_dlinit(); lt_dlexit()'.
- Fix 2.2 regression in libltdl that skipped the dlopen loader if
the system also supports other loaders (e.g., Cygwin, HP-UX).
- Fix 2.2 regression in that 'libtool --mode=execute CMD ARGS' does not
transform ARGS that do not look like shell or C wrappers of libtool
programs.
2008-03-14 14:18:07 +08:00
- Fix 2.2 regression that kept cross-compiling to w32 from working.
- Several testsuite issues have been fixed, thanks to user feedback.
New in 2.2: 2008-03-01; CVS version 2.1c, Libtool team:
* Bug fixes:
- argz.c, lt__dirent.c and lt__strl.c are correctly distributed with
parent projects using nonrecursive libltdl.
- libtoolize no longer tries to install libtool files when libltdl is
used in a non-autoconf parent package.
- Don't add the CXX tag to libtool when there is no C++ compiler, even
if AC_PROG_CXX sets a default g++ compiler where no such compiler
actually exists.
- make distcheck DISTCHECK_CONFIGURE_FLAGS=--disable-ltdl-install
works again.
New in 2.1b: 2008-02-01; CVS version 2.1a, Libtool team:
* Important incompatible changes and obsoleted features:
- Removed deprecated APIs from libltdl: lt_dlcaller_register,
lt_dlhandle_next, lt_dlhandle_find, lt_dlforeach, lt_dlmutex_register,
lt_dlmutex_lock, lt_dlmutex_unlock, lt_dlmutex_seterror,
lt_dlmutex_geterror, lt_dlmalloc, lt_dlrealloc, lt_dlfree.
- The Libtool and libltdl macros and the testsuite now assume a C89
environment, consequently do not test for headers such as string.h,
strings.h, memory.h any more.
- Fix regression in libltdl symbol exports on Cygwin. Side effect:
LT_GLOBAL_DATA and LT_SCOPE are now explicitly defined as
declspec(dllexport), bypassing auto-export logic on Cygwin.
This tracks existing behavior on MinGW.
- The libtool script has been optimized a bit for more modern shells.
This breaks use of the stdin file descriptor in libtool, and can
break if a different shell is used to execute the libtool script
than the one it was configured for.
- The macros AC_ENABLE_SHARED, AC_DISABLE_SHARED, AC_ENABLE_STATIC, and
Move libltdl build mode options from LT_CONFIG_LTDL_DIR to LTDL_INIT. Accept (optional) new 'convenience' and 'installable' options in lieu of LTDL_CONVENIENCE and LTDL_INSTALL macros. And also, implement --with-included-ltdl, --with-ltdl-lib and --with-ltdl-include configure-time options: * libltdl/m4/ltoptions.m4: Associate existing option settings with LT_INIT. (LT_OPTION_DEFINE): Associate options 'nonrecursive', 'recursive', 'subproject', 'installable' and 'convenience' with LTDL_INIT. (_LT_MANGLE_OPTION, _LT_SET_OPTION, _LT_IF_OPTION) (_LT_UNLESS_OPTIONS, _LT_SET_OPTIONS): Add MACRO-NAME argument to support options to named macros instead of hardcoding only LT_INIT options. * libltdl/m4/ltdl.m4 (_LTDL_CONVENIENCE): Factor common code from LTDL_CONVENIENCE and LTDL_INIT([convenience]). (_LTDL_INSTALLABLE): Factor out common code from LTDL_INSTALLABLE and LTDL_INIT([installable]). (_LTDL_SETUP): Renamed from LTDL_INIT. Support new configure-time options: --with-included-ltdl, --with-ltdl-lib, --with-ltdl-include. (LTDL_CONVENIENCE, LTDL_INSTALLABLE): Adjust. (LT_WITH_LTDL): Removed. (LTDL_INIT): Parse caller options. * libltdl/m4/libtool.m4 (LT_INIT): Declare that this macro must be expanded before LTDL_INIT, and be sure to parse caller options. * configure.ac: Call directly into internal _LTDL_SETUP macro. * libtoolize.m4sh (func_scan_files): Ltdl mode argument moved from LT_CONFIG_LTDL_DIR to LT_INIT. * tests/nonrecursive.at, tests/recursive.at: Use new interfaces. * tests/configure-iface.at: Test it. * Makefile.am (TESTSUITE_AT): Add configure-iface.at. * doc/libtool.texi (Distributing libltdl): Document improved. LTDL_INIT interfaces. * NEWS: Updated.
2008-01-07 00:33:31 +08:00
AC_DISABLE_STATIC have been un-deprecated after deprecation in
1.9b.
- The macro LT_WITH_LTDL has been renamed to LTDL_INIT.
- Fixed a branch-1-5/HEAD regression to only link uninstalled libraries
statically with '-static'. In order to compensate for this, there
is a new link flag '-static-libtool-libs' to provide the previous
'-static' semantics.
* New features:
- Fix installation of libltdl so that it does not need Autoconf and
Automake installed, in order to be usable in another package. This
lifts the restrictions introduced in 1.9b.
Move libltdl build mode options from LT_CONFIG_LTDL_DIR to LTDL_INIT. Accept (optional) new 'convenience' and 'installable' options in lieu of LTDL_CONVENIENCE and LTDL_INSTALL macros. And also, implement --with-included-ltdl, --with-ltdl-lib and --with-ltdl-include configure-time options: * libltdl/m4/ltoptions.m4: Associate existing option settings with LT_INIT. (LT_OPTION_DEFINE): Associate options 'nonrecursive', 'recursive', 'subproject', 'installable' and 'convenience' with LTDL_INIT. (_LT_MANGLE_OPTION, _LT_SET_OPTION, _LT_IF_OPTION) (_LT_UNLESS_OPTIONS, _LT_SET_OPTIONS): Add MACRO-NAME argument to support options to named macros instead of hardcoding only LT_INIT options. * libltdl/m4/ltdl.m4 (_LTDL_CONVENIENCE): Factor common code from LTDL_CONVENIENCE and LTDL_INIT([convenience]). (_LTDL_INSTALLABLE): Factor out common code from LTDL_INSTALLABLE and LTDL_INIT([installable]). (_LTDL_SETUP): Renamed from LTDL_INIT. Support new configure-time options: --with-included-ltdl, --with-ltdl-lib, --with-ltdl-include. (LTDL_CONVENIENCE, LTDL_INSTALLABLE): Adjust. (LT_WITH_LTDL): Removed. (LTDL_INIT): Parse caller options. * libltdl/m4/libtool.m4 (LT_INIT): Declare that this macro must be expanded before LTDL_INIT, and be sure to parse caller options. * configure.ac: Call directly into internal _LTDL_SETUP macro. * libtoolize.m4sh (func_scan_files): Ltdl mode argument moved from LT_CONFIG_LTDL_DIR to LT_INIT. * tests/nonrecursive.at, tests/recursive.at: Use new interfaces. * tests/configure-iface.at: Test it. * Makefile.am (TESTSUITE_AT): Add configure-iface.at. * doc/libtool.texi (Distributing libltdl): Document improved. LTDL_INIT interfaces. * NEWS: Updated.
2008-01-07 00:33:31 +08:00
- Default convenience or installable libltdl builds can optionally
be declared using new 'convenience' or 'installable' options to the
Move libltdl build mode options from LT_CONFIG_LTDL_DIR to LTDL_INIT. Accept (optional) new 'convenience' and 'installable' options in lieu of LTDL_CONVENIENCE and LTDL_INSTALL macros. And also, implement --with-included-ltdl, --with-ltdl-lib and --with-ltdl-include configure-time options: * libltdl/m4/ltoptions.m4: Associate existing option settings with LT_INIT. (LT_OPTION_DEFINE): Associate options 'nonrecursive', 'recursive', 'subproject', 'installable' and 'convenience' with LTDL_INIT. (_LT_MANGLE_OPTION, _LT_SET_OPTION, _LT_IF_OPTION) (_LT_UNLESS_OPTIONS, _LT_SET_OPTIONS): Add MACRO-NAME argument to support options to named macros instead of hardcoding only LT_INIT options. * libltdl/m4/ltdl.m4 (_LTDL_CONVENIENCE): Factor common code from LTDL_CONVENIENCE and LTDL_INIT([convenience]). (_LTDL_INSTALLABLE): Factor out common code from LTDL_INSTALLABLE and LTDL_INIT([installable]). (_LTDL_SETUP): Renamed from LTDL_INIT. Support new configure-time options: --with-included-ltdl, --with-ltdl-lib, --with-ltdl-include. (LTDL_CONVENIENCE, LTDL_INSTALLABLE): Adjust. (LT_WITH_LTDL): Removed. (LTDL_INIT): Parse caller options. * libltdl/m4/libtool.m4 (LT_INIT): Declare that this macro must be expanded before LTDL_INIT, and be sure to parse caller options. * configure.ac: Call directly into internal _LTDL_SETUP macro. * libtoolize.m4sh (func_scan_files): Ltdl mode argument moved from LT_CONFIG_LTDL_DIR to LT_INIT. * tests/nonrecursive.at, tests/recursive.at: Use new interfaces. * tests/configure-iface.at: Test it. * Makefile.am (TESTSUITE_AT): Add configure-iface.at. * doc/libtool.texi (Distributing libltdl): Document improved. LTDL_INIT interfaces. * NEWS: Updated.
2008-01-07 00:33:31 +08:00
LTDL_INIT macro (as an alternative to individual LTDL_CONVENIENCE
or LTDL_INSTALLABLE invocations).
- New configure-time options to allow libltdl parent project builder
to choose between installed and shipped libltdl, when invoking
LTDL_INIT: --with-included-ltdl, --with-ltdl-include,
--with-ltdl-lib.
- New LT_CONFIG_LTDL_DIR macro to specify a different directory name
for a convenience libltdl.
- libtoolize has been completely overhauled.
- 'libtoolize --install' now also installs 'install-sh'.
- New libtoolize options: --non-recursive, --recursive, --subproject.
These options control the way libltdl is installed into a package by
libtoolize. The new recursive and non-recursive build modes for
libltdl don't require a subconfigure any more.
The Libtool package itself builds libltdl nonrecursively.
Move libltdl build mode options from LT_CONFIG_LTDL_DIR to LTDL_INIT. Accept (optional) new 'convenience' and 'installable' options in lieu of LTDL_CONVENIENCE and LTDL_INSTALL macros. And also, implement --with-included-ltdl, --with-ltdl-lib and --with-ltdl-include configure-time options: * libltdl/m4/ltoptions.m4: Associate existing option settings with LT_INIT. (LT_OPTION_DEFINE): Associate options 'nonrecursive', 'recursive', 'subproject', 'installable' and 'convenience' with LTDL_INIT. (_LT_MANGLE_OPTION, _LT_SET_OPTION, _LT_IF_OPTION) (_LT_UNLESS_OPTIONS, _LT_SET_OPTIONS): Add MACRO-NAME argument to support options to named macros instead of hardcoding only LT_INIT options. * libltdl/m4/ltdl.m4 (_LTDL_CONVENIENCE): Factor common code from LTDL_CONVENIENCE and LTDL_INIT([convenience]). (_LTDL_INSTALLABLE): Factor out common code from LTDL_INSTALLABLE and LTDL_INIT([installable]). (_LTDL_SETUP): Renamed from LTDL_INIT. Support new configure-time options: --with-included-ltdl, --with-ltdl-lib, --with-ltdl-include. (LTDL_CONVENIENCE, LTDL_INSTALLABLE): Adjust. (LT_WITH_LTDL): Removed. (LTDL_INIT): Parse caller options. * libltdl/m4/libtool.m4 (LT_INIT): Declare that this macro must be expanded before LTDL_INIT, and be sure to parse caller options. * configure.ac: Call directly into internal _LTDL_SETUP macro. * libtoolize.m4sh (func_scan_files): Ltdl mode argument moved from LT_CONFIG_LTDL_DIR to LT_INIT. * tests/nonrecursive.at, tests/recursive.at: Use new interfaces. * tests/configure-iface.at: Test it. * Makefile.am (TESTSUITE_AT): Add configure-iface.at. * doc/libtool.texi (Distributing libltdl): Document improved. LTDL_INIT interfaces. * NEWS: Updated.
2008-01-07 00:33:31 +08:00
- The 'nonrecursive', 'recursive' and 'subproject' libltdl build
modes are given as LTDL_INIT options.
- New make variable LTDLDEPS for use in output_DEPENDENCIES.
- New multi-module-loader safe libltdl handle iteration APIs:
lt_dlhandle_iterate, lt_dlhandle_fetch, lt_dlhandle_map.
- New lt_dlinterface_register to maintain separation of concerns
between modules loaded by different libraries.
Without this patch, lt_dlopen always opens modules with symbol visibility set according to the underlying implementation. Here, we add lt_dlopenadvise() to allow callers to request, among other things, local or global symbol visibility from the underlying dlloader: * libltdl/ltdl.c (LT_DLRESIDENT_FLAG): Removed. (LT_DLIS_RESIDENT): Use public is_resident info field. (LT_DLIS_SYMLOCAL, LT_DLIS_SYMGLOBAL): New macros to test for module symbol visibility status. (tryall_dlopen): If vtable->module_open() was able to act on either is_symlocal or is_symglobal hints, store that in the handle flags. (lt_dlopenadvise): New function that works like lt_dlopen(), but accepts an advise type to determine whether to ask dlloaders to change default symbol visibility. (lt_dlopen, lt_dlopenext): Just call lt_dlopenadvise() with the correct parameters. (lt_dladvise_init, lt_dladvise_destroy): New functions to initialize and destroy an advise type hint. (lt_dladvise_ext, lt_dladvise_resident, lt_dladvise_local) (lt_dladvise_global): Set hints on an advise type. (openadvise): Factored out of lt_dlopenadvise. (has_library_ext): Factored out of lt_dlopenadvise. * libltdl/ltdl.h: Declare all of the above. (lt_dlinfo): New fields for advise hints. * libltdl/libltdl/lt_dlloader.h (lt_module_open): Add a new advise parameter. Adjust all callers. (lt_dladvise): New opaque type for advise hints. * libltdl/libltdl/lt__private.h (lt__advise): Declare contents of opaque lt_dladvise type. * libltdl/libltdl/lt_error.h (CONFLICTING_FLAGS): New error for attempts to have local and global symbol visibility at the same time. * libltdl/loaders/dld_link.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c: Adjust. * libltdl/loaders/dlopen.c (RTLD_LOCAL, RTLD_GLOBAL): Try to define these symbols if the system has equivalents. (vmopen): If unable to act on a caller request to set symbol visibility, then unset the relevant hints in the advise type. * tests/lt_dladvise.at: New tests for the above. * doc/libtool.texi (Libltdl Interface): Updated. * NEWS: Updated.
2007-05-08 22:38:50 +08:00
- New lt_dlopenadvise takes a new lt_dladvise type argument, which
lets the caller request local or global symbol visibility from the
module loader with lt_dladvise_local and lt_dladvise_global
respectively. If neither is given, or if lt_dlopen (or lt_dlopenext)
are called, then the system default module symbol visibility is used.
- The new lt_dladvise_init/lt_dladvise_destroy based APIs also allow
caller requests for a filename extension search with lt_dladvise_ext,
and for marking a module unloadable with lt_dladvise_resident.
- Allow shell special characters like '$' in source file names, but
not in object names, to enhance GCJ support.
- An entire new Autotest-based testsuite in addition to the old one.
Both testsuites have been made more useful for testing
cross-compilers. The new testsuite exposes many more issues, but
may also be a little rocky on exotic systems.
- In 1.9b, a new variable inherited_linker_flags has been added to the
libtool library files. This variable takes flags that should be
used by dependent libraries and programs, but that do not fit into
'dependency_libs' for both clarity and backward-compatibility.
* Changes in supported systems or compilers:
- Removed bitrotted support for xlc on Mac OS X.
- Detection of compiler wrappers distcc/ccache and $host_alias prefix.
- Basic support for PIE (position-independent executables).
- Support for DragonFly BSD, improved support for FreeBSD.
- Improved support for GNU/kFreeBSD and GNU/NetBSD.
- Support for Interix 3 (Windows SFU) and newer versions.
- Support for AIX 6.1.
- Improved support for UnixWare.
- Initial support for RDOS.
- Initial Support for FC (modern Fortran).
- Support for Portland Group compiler, the Sun compiler suite on GNU/Linux,
and initial support for the IBM compiler suite on GNU/Linux/ppc.
- Support for linux-dietlibc ('diet' as well as 'diet-dyn', separately).
- Building libltdl with a C++ compiler has been undusted.
- On (AIX?,) HP-UX, and OpenBSD, hardcoding has been changed to prefer
rpath over absolute dependent library names. This fixes DESTDIR
installs, among others, on the non-HP-UX/PA systems.
- Use of C++ templates together with shared libraries has been
improved on some systems and with some compilers, but is still
ongoing work. Feedback is desirable here.
* Bug fixes:
- Fix libltdl on static platforms.
- Search paths with GCC on multilib systems like x86_64 have been fixed.
- Fixed a regression that prevented use of libltdl without autotools.
- Fix error with -version-info on systems with version_type=none, such
as BeOS.
- Fix symbol exporting for cases where command line length limits are
exceeded.
- Improve linking with C++ libraries on Solaris with Sun compiler.
- Fix installation of libraries that are required by installation
commands such as 'ln' or 'rm'.
- More robust parsing of mangled '.la' files inside libltdl, fixing a
2007-09-01 18:55:42 +08:00
possible overrun and a crash due to memory exhaustion.
- Fix compile command line for gcj on MinGW.
- Some configure variables have been renamed to fix caching:
lt_prog_compiler_pic_works to lt_cv_prog_compiler_pic_works
lt_prog_compiler_static_works to lt_cv_prog_compiler_static_works.
- Fix 1.9b regression: lt_dlopen(NULL) works on AIX again.
- Loads of smaller bug fixes.
New in 1.9f: 2004-10-23; CVS version 1.9e, Libtool team:
* Fix a regression in 1.9d, where ECHO was always set to 'echo' and the
backslash quoting tests were never run.
* Fix a regression in 1.9d, where progpath was used for --no-reexec before it
was set.
* Fix a regression in 1.9d, which required an installed automake to build the
bootstrapped tarball.
* Fix hanging bug on MinGW.
New in 1.9d: 2004-10-03; CVS version 1.9c, Libtool team:
* If non-pic objects were not compiled, and libtool is called in link mode,
libtool no longer silently creates an empty archive, but rather falls
back to pic objects.
* When compiling C glue code with $LTCC, libtool now saves the setting of
$compiler_flags from the C tag, and passes those flags to $LTCC.
* libtool no longer dies when concurrently creating directories with
'make -j' on multi-processor hosts.
* Return type, and name parameter of lt_dlloader_remove are no longer
'const'.
* Name parameter of lt_dlloader_find is no longer 'const'.
* The API for the slist ADT has been updated: slist_new has been replaced
by slist_box; slist_unbox and slist_sort are new; the footprint of
slist_remove and slist_fnid have changed; SListCallback and SListCompare
types have been exchanged. See libltdl/slist.c for documentation.
* libltdl is C89 compatible again. lt_dlsymbol type removed, and lt_dlsymlist
structure changed to avoid using C99 flexible arrays.
* Support self dlopening for executables on cygwin and mingw.
* Improved support for linux-gnu/ia64.
* Initial support for s390x-ibm-tpf.
* Fixed some memory leaks in libltdl.
* Improved support for OpenBSD (use rpath instead of hardcoding absolute
file names).
New in 1.9b: 2004-08-29; CVS version 1.5a, Libtool team:
* The /^_?LT_[A-Z_]+$/ namespace is now reserved for Libtool's own macros.
If you have any shell variables in this namespace they will need to be
renamed. If you have any macros in this namespace please rename them to
prevent any possible future clash with libtool supplied macros.
* New LT_PREREQ macro for specifying minimum libtool requirement.
Sweeping changes to the user interface to libtool from `configure.ac' to be more like AC_INIT and accept a space delimited list of options. Instead of calling `AC_LIBTOOL_DLOPEN; AC_PROG_LIBTOOL', we now recommend `LT_INIT([dlopen])': * m4/libtool.m4 (AC_PROG_LIBTOOL, _AC_PROG_LIBTOOL) (AC_LIBTOOL_SETUP): Removed. Added AU_DEFUNs. (LT_INIT): Replace with an Autoconf like interface which accepts a version number as a minimum required libtool release at configure time. * m4/ltoptions.m4: New file inspired by automake/m4/amoptions.m4, which additionally flags an error if the configuring libtool macros are not new enough according to LT_INIT. (LT_OPTION_DEFINE): New macro to declare option handlers. (dlopen, win32-dll, shared, disable-shared, static) (disable-static, fast-install, disable-fast-install, pic-only) (no-pic): Newly LT_OPTION_DEFINEd option handlers that use... (_LT_ENABLE_SHARED, _LT_ENABLE_STATIC, _LT_ENABLE_FAST_INSTALL) (_LT_WITH_PIC, _LT_WIN32_DLL): New macros to handle LT_LIBTOOL_INIT options... * m4/libtool.m4 (AC_ENABLE_SHARED, AC_ENABLE_STATIC) (AC_ENABLE_FAST_INSTALL, AC_LIBTOOL_DLOPEN, AC_LIBTOOL_WIN32_DLL): ...to replace these user interface macros, now defined as AU_DEFUNs. (AC_DISABLE_SHARED, AC_DISABLE_STATIC, AC_DISABLE_FAST_INSTALL): Removed. No longer required with LT_INIT_LIBTOOL interface. Added AU_DEFUNs. (AM_ENABLE_SHARED, AM_DISABLE_SHARED, AM_ENABLE_STATIC) (AM_DISABLE_STATIC): Changed AU_DEFUNs to match new interface. (_LT_SETUP): Internal to LT_INIT, replaces AC_LIBTOOL_SETUP. * m4/lt~obsolete.m4 (AC_LIBTOOL_SETUP, _AC_PROG_LIBTOOL) (_LT_PROG_LTMAIN): More AC_DEFUNs that have been retracted. * configure.ac: Use new interface. * doc/libtool.texi: Document new interface. * NEWS: Updated.
2004-02-22 19:13:45 +08:00
* New LT_INIT interface replaces AC_PROG_LIBTOOL, AC_ENABLE_SHARED,
AC_DISABLE_SHARED, AC_ENABLE_STATIC, AC_DISABLE_STATIC,
AC_ENABLE_FAST_INSTALL, AC_DISABLE_FAST_INSTALL, AC_LIBTOOL_DLOPEN,
AC_LIBTOOL_WIN32_DLL and AC_LIBTOOL_PIC_MODE. Use autoupdate to modernise
your configure.ac files after installing this release.
Further sweeping changes to the user interface to libtool from `configure.ac' to allow users to better control the list of supported languages. Three LT_INIT options 'no-lang', 'all-lang' and 'auto-lang' (the default) control the initial list and others may be added with LT_LANG. * m4/libtool.m4 (_LT_CONFIG): Renamed AC_LIBTOOL_CONFIG to _LT_CONFIG which is more consistent with our own namespace and gets us further out of Autoconf's. (_LT_LIBTOOL_TAGS): Output available_tags variable based entirely on the value of _LT_TAGS. (_LT_COPYING): Call _LT_LIBTOOL_TAGS to output available tags, always append tag configuration if the tag is available. (LT_LANG): New macro to enable support for a language that accepts tag names (eg. "CXX") or human language names (eg. "C++"). (_LT_LANG): Internal support macro for above that appends the tag to _LT_TAGS and calls the appropriate config macro. (LT_INIT): Ensure that LT_LANG is not called before LT_INIT. (AC_LIBTOOL_TAGS): Removed, call LT_LANG for each language now. (_LT_AC_TAG_CHECK): Removed, _LT_LANG handles duplicate calls. (_LT_LANG_DEFAULT_CONFIG): Macro to set initial language support based on options passed to LT_INIT. (_LT_SETUP): Call _LT_LANG_DEFAULT_CONFIG. (_LT_AC_TAG_CONFIG): Removed, handled by _LT_LANG_DEFAULT_CONFIG. (_LT_AC_LANG_CXX, _LT_AC_LANG_F77, _LT_AC_LANG_GCJ): Removed, automatic language support inclusion now handled by _LT_LANG_DEFAULT_CONFIG. (AC_LIBTOOL_CXX): Obsolete macro, update to LT_LANG(C++). (AC_LIBTOOL_F77): Obsolete macro, update to LT_LANG(Fortran 77). (AC_LIBTOOL_GCJ): Obsolete macro, update to LT_LANG(Java). (AC_LIBTOOL_LANG_C_CONFIG_: Removed. (_LT_AC_LANG_C_CONFIG): Renamed to _LT_LANG_C_CONFIG, call _LT_CONFIG instead of AC_LIBTOOL_CONFIG. (_LT_SETUP): Replace call to AC_LIBTOOL_LANG_C_CONFIG with call to new _LT_LANG_C_CONFIG macro. (AC_LIBTOOL_LANG_CXX_CONFIG): Removed. (_LT_AC_LANG_CXX_CONFIG): Renamed to _LT_LANG_CXX_CONFIG, call _LT_CONFIG instead of AC_LIBTOOL_CONFIG. (AC_LIBTOOL_LANG_F77_CONFIG): Removed. (_LT_AC_LANG_F77_CONFIG): Renamed to _LT_LANG_F77_CONFIG, call _LT_CONFIG instead of AC_LIBTOOL_CONFIG. (AC_LIBTOOL_LANG_GCJ_CONFIG): Removed. (_LT_AC_LANG_GCJ_CONFIG): Renamed to _LT_LANG_GCJ_CONFIG, call _LT_CONFIG instead of AC_LIBTOOL_CONFIG. (AC_LIBTOOL_LANG_RC_CONFIG): Removed. (_LT_AC_LANG_RC_CONFIG): Renamed to _LT_LANG_RC_CONFIG, call _LT_CONFIG instead of AC_LIBTOOL_CONFIG. (LT_AC_PROG_GCJ): Renamed to LT_PROG_GCJ. (LT_AC_PROG_RC): Renamed to LT_PROG_RC. * m4/ltoptions.m4: Define new 'no-lang', 'auto-lang' and 'all-lang' options which set the default for _LT_LANG_DEFAULT_CONFIG. * m4/lt~obsolete.m4: Removed AC_LIBTOOL_CONFIG, _LT_AC_LANG_C_CONFIG, _LT_AC_LANG_GCJ_CONFIG, _LT_AC_LANG_RC_CONFIG; all of which are no long referenced in any way. * configure.ac: Enable all languages. * tests/cdemo/configure.ac, tests/demo/configure,ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/mdemo/configure.ac, tests/pdemo/configure,ac, tests/tagdemo/configure.ac: Remove calls to AC_LIBTOOL_TAGS, the default 'auto-lang' mode now does the right thing. * doc/libtool.texi (The LT_INIT macro): Add documentation for new LT_INIT options and the LT_LANG macro, replacing the old documentation of AC_LIBTOOL_TAGS which is no more. * NEWS: Updated.
2004-03-22 00:05:28 +08:00
* New LT_LANG interface to enable libtool support for a specific language.
* Language support is now only included if your configure.ac enables it,
either through a call to AC_PROG_CXX etc. or LT_LANG.
* The libtool script will complain if it was built from mismatched ltmain.sh
and libtool m4 macro versions.
2004-01-07 03:58:01 +08:00
* Like automake, libtoolize no longer installs config.guess and config.sub by
default. Use new --install option to get the old behaviour.
* libtoolize no longer supports the --ltdl-tar option.
2003-10-21 23:03:57 +08:00
* libtool script is now created by config.status. Instead of interrogating
'./libtool' from configure.ac after calling AC_PROG_LIBTOOL, use the
2003-10-21 23:03:57 +08:00
variable names directly.
* libltdl is no longer a self-contained package, and shares configury with
the top level directory now.
* Shared objects (.lo) are no longer created when '-static' is passed in
compile mode.
* New compile mode option '-shared' prevents creation of static objects (.o).
* New link mode option '-shared' creates only shared libraries at link time.
* If you configure libtool with --disable-shared (or if libtool does not
support shared libraries on your platform) trying to build a library using
'-shared' is a fatal error.
* New link mode option '-weak' tells libtool when not to propagate dependency
libraries from dlpreopened modules.
* libtoolize installs libtool.m4, (ltdl.m4 if used,) and various supporting
m4 definitions to AC_CONFIG_MACRO_DIR.
* Mode inferrence removed, shorthand for choosing modes added.
* Specifying -allow-undefined is now an error.
* Speed up max_cmd_len check.
This pervasive changeset makes two intertwined deep changes to the operation of libtool (neither would work alone). First, there is a new feature that allows libraries to preopen modules. This entails a backwards incompatible change to the libltdl API for separating out the preloaded symbol lists by owner. Second, in the tradition of "eating our own dogfood", libltdl now preloads its own dlloaders. The internal API for dlloaders has also had to change in a backwards incompatible way in support of the new library preloading feature. If you don't use preloaded libraries, you needn't change your project sources, though you will need to recompile against the new libltdl. The API changes are mostly confined to dlloaders, so you probably needn't worry about those (unless you have written a custom loader that you want libltdl to use): * configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile. * libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile. * libltdl/loaders: New directory for module loaders, to simplify Makefile rules, and to give the loaders themselves names that are unique in the first few characters. * libtoolize.in (func_copy_all_files): Copy recursively to pick up the loaders directory contents. * libltdl/loaders/Makefile.am: New file. Move module building rules to here... * libltdl/Makefile.am: ...from here. (VERSION_INFO): Bumped version info to signify interface changes. (libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN appropriately for each library. * libltdl/loader-dld_link.c, libltdl/loader-dlopen.c, libltdl/loader-dyld.c, libltdl/loader-load_add_on.c, libltdl/loader-loadlibrary.c libltdl/loader-preopen.c, libltdl/loader-shl_load.c: Moved from here... * libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c: ...to here. (get_vtable): New entry function for each. * libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by... (symlist_chain): ...a new structure which maps lists of preloaded symbols from the object that loads them. (lt_dlpreload_open): New function to automatically open all preloaded modules belonging to a named object (ORIGINATOR). * libltdl/lt__alloc.c (lt__zalloc): New function to return a block of zeroed out new memory. * libltdl/lt__alloc.h (lt__zalloc): Prototype it. * libltdl/lt__private.h (lt__alloc_die_callback): Add missing prototype. (lt__error_strings): Make this opaque to callers. * libltdl/lt_error.c (lt__error_strings): Move the implementation to here. * libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to make originator focused preloading possible. *BREAKS BACKWARDS COMPATIBILITY* (lt_dlloader_add): Take advantage of new fields to simplify paramater list. * libltdl/lt_system.h (LT_STR): New ANSI stringification macro. (LT_CONC): Fix it to work from within macros. * libltdl/ltdl.c (loader_init, loader_init_callback): Simplify dlloader loading. (get_vtable, preloaded_symbols): Point these at the preopen.c symbols to bootstrap the loader chain. (lt_dlinit): Load the preopen dlloader manually, and then use it to load any other preloaded dlloaders. (lt_dlloader_add): Simplify parameter list. Populate new fields. Chain new loaders according to priority field. * libltdl/ltdl.h (lt_dlsymlist): Add a new originator field. (lt_dlpreload_callback_func): Type of a callback for automatic lt_dlpreload_open loading. (LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded symbols from the "@PROGRAM@" originator. * tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol. * tests/pdemo/longer_file_name_dlmain.c (main): Ditto. * ltmain.in: Don't spew spurious warnings when dlopening and dlpreopening modules. (func_generate_dlsyms): Factored out from multiple copies in the rest of the code. Generate originator keyed symbol lists. (func_extract_archives): Also factored. Extract the contents of convenience archives for linking with dependent libraries when --whole-archive is not available. [darwin]: Don't try to link $old_library unless it exists, and $lib is a bundle. * m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic loading libraries/apis rather that stopping when an acceptable one is discovered. (LT_DLLOADERS): New variable for holding dlloaders that can be preloaded. * doc/libtool.texi: Document interface changes. * NEWS: Updated.
2004-07-15 20:14:48 +08:00
* libltdl can now preopen modules from within a library, and libtool will
accept -dlpreopen options when linking either a shared library or a
convenience library.
* New function in libltdl: lt_dlhandle_find provides access to module handles
by module name.
This pervasive changeset makes two intertwined deep changes to the operation of libtool (neither would work alone). First, there is a new feature that allows libraries to preopen modules. This entails a backwards incompatible change to the libltdl API for separating out the preloaded symbol lists by owner. Second, in the tradition of "eating our own dogfood", libltdl now preloads its own dlloaders. The internal API for dlloaders has also had to change in a backwards incompatible way in support of the new library preloading feature. If you don't use preloaded libraries, you needn't change your project sources, though you will need to recompile against the new libltdl. The API changes are mostly confined to dlloaders, so you probably needn't worry about those (unless you have written a custom loader that you want libltdl to use): * configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile. * libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile. * libltdl/loaders: New directory for module loaders, to simplify Makefile rules, and to give the loaders themselves names that are unique in the first few characters. * libtoolize.in (func_copy_all_files): Copy recursively to pick up the loaders directory contents. * libltdl/loaders/Makefile.am: New file. Move module building rules to here... * libltdl/Makefile.am: ...from here. (VERSION_INFO): Bumped version info to signify interface changes. (libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN appropriately for each library. * libltdl/loader-dld_link.c, libltdl/loader-dlopen.c, libltdl/loader-dyld.c, libltdl/loader-load_add_on.c, libltdl/loader-loadlibrary.c libltdl/loader-preopen.c, libltdl/loader-shl_load.c: Moved from here... * libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c: ...to here. (get_vtable): New entry function for each. * libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by... (symlist_chain): ...a new structure which maps lists of preloaded symbols from the object that loads them. (lt_dlpreload_open): New function to automatically open all preloaded modules belonging to a named object (ORIGINATOR). * libltdl/lt__alloc.c (lt__zalloc): New function to return a block of zeroed out new memory. * libltdl/lt__alloc.h (lt__zalloc): Prototype it. * libltdl/lt__private.h (lt__alloc_die_callback): Add missing prototype. (lt__error_strings): Make this opaque to callers. * libltdl/lt_error.c (lt__error_strings): Move the implementation to here. * libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to make originator focused preloading possible. *BREAKS BACKWARDS COMPATIBILITY* (lt_dlloader_add): Take advantage of new fields to simplify paramater list. * libltdl/lt_system.h (LT_STR): New ANSI stringification macro. (LT_CONC): Fix it to work from within macros. * libltdl/ltdl.c (loader_init, loader_init_callback): Simplify dlloader loading. (get_vtable, preloaded_symbols): Point these at the preopen.c symbols to bootstrap the loader chain. (lt_dlinit): Load the preopen dlloader manually, and then use it to load any other preloaded dlloaders. (lt_dlloader_add): Simplify parameter list. Populate new fields. Chain new loaders according to priority field. * libltdl/ltdl.h (lt_dlsymlist): Add a new originator field. (lt_dlpreload_callback_func): Type of a callback for automatic lt_dlpreload_open loading. (LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded symbols from the "@PROGRAM@" originator. * tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol. * tests/pdemo/longer_file_name_dlmain.c (main): Ditto. * ltmain.in: Don't spew spurious warnings when dlopening and dlpreopening modules. (func_generate_dlsyms): Factored out from multiple copies in the rest of the code. Generate originator keyed symbol lists. (func_extract_archives): Also factored. Extract the contents of convenience archives for linking with dependent libraries when --whole-archive is not available. [darwin]: Don't try to link $old_library unless it exists, and $lib is a bundle. * m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic loading libraries/apis rather that stopping when an acceptable one is discovered. (LT_DLLOADERS): New variable for holding dlloaders that can be preloaded. * doc/libtool.texi: Document interface changes. * NEWS: Updated.
2004-07-15 20:14:48 +08:00
* New function in libltdl: lt_dlpreload_open opens all preloaded modules.
* libltdl no longer loads shared libraries with global symbol resolution,
this caused problems when the symbols were intended to be overriden further
up the stack; it is also not recommended practice.
* New function in libltdl: lt_dlhandle_first, primes handle iterations (using
lt_dlhandle_next) to filter by module interface.
* libltdl no longer tries to support multi-threaded programming with
lt_dlmutex_register(), which was unusable with POSIX threads anyway.
The symbols are deprecated but exported for backwards compatibility.
Keywords: There was no clean separation of abstraction layers in libltdl. The first step in fixing this is to factor out the memory management abstraction, making a start on removing promiscuity from the underlying portability layer: * doc/libtool.texi (Libltdl interface): Remove lt_dlmalloc, lt_dlrealloc and lt_dlfree references. The memory management layer used by libltdl is now private. * libltdl/lt_system.h: New installed header for system portability abstraction. * libltdl/ltdl.h: Use it. * libltdl/lt__alloc.c, libltdl/lt__alloc.h: New module above system portability layer to abstract ltdl's memory management. * libltdl/ltdl.c: Use lt__alloc.h. (closedir): Use free. (opendir): Use malloc/free. (lt__xalloc_die_callback): Report memory failures through lt_dlerror. (lt_dlinit): Use it to initialise memory management. (LT_DLMALLOC, LT_DLREALLOC, LT_DLFREE, LT_EMALLOC, LT_EREALLOC) (rpl_strdup, rpl_realloc, lt_estrdup, lt_emalloc, lt_erealloc): Removed in favour of... (lt__strdup, lt__memdup, MALLOC, REALLOC, FREE): ...these calls from libltdl/lt__alloc.h. Changed all callers. (rpl_argz_append, rpl_argz_create_sep, rpl_argz_insert): As part of the portability layer, these functions no longer use libltdl memory management API. (free_vars): Factored out. (LT_DLMEM_REASSIGN): While redoing memory handling, renamed... * libltdl/lt__alloc.h (MEMREASSIGN): ...to this. * libltdl/Makefile.am (AUTOMAKE_OPTIONS): Let automake track dependencies automatically. (pkgincludedir): Override from parent package's setting. (pkginclude_HEADERS): Install lt_system.h. (libltdl_la_SOURCES): Add new files. * NEWS: Updated. Reported by Dalibor Topic <robilad@kaffe.org>
2004-04-06 23:42:11 +08:00
* libltdl no longer uses lt_dlmalloc, lt_dlrealloc and lt_dlfree. The symbols
are still exported for backwards compatibility.
* The lt_dlinfo struct has a new module field that can be used by dlloaders.
* libltdl no longer supports pre-c89 compilers. Some of the pre89 portability
functions had compile time bugs in them anyway, so you guys can't have been
using it :-)
* make install now deletes preexisting $prefix/share/libtool before installing
latest files.
2003-11-06 22:04:20 +08:00
* Extracting symbols from an import library on cygwin and win32 now works.
* Initial support for amigaos-ppc.
* Improved support for OpenBSD.
* Support for Intel C++ version 8.0.
Keywords: There was no clean separation of abstraction layers in libltdl. The first step in fixing this is to factor out the memory management abstraction, making a start on removing promiscuity from the underlying portability layer: * doc/libtool.texi (Libltdl interface): Remove lt_dlmalloc, lt_dlrealloc and lt_dlfree references. The memory management layer used by libltdl is now private. * libltdl/lt_system.h: New installed header for system portability abstraction. * libltdl/ltdl.h: Use it. * libltdl/lt__alloc.c, libltdl/lt__alloc.h: New module above system portability layer to abstract ltdl's memory management. * libltdl/ltdl.c: Use lt__alloc.h. (closedir): Use free. (opendir): Use malloc/free. (lt__xalloc_die_callback): Report memory failures through lt_dlerror. (lt_dlinit): Use it to initialise memory management. (LT_DLMALLOC, LT_DLREALLOC, LT_DLFREE, LT_EMALLOC, LT_EREALLOC) (rpl_strdup, rpl_realloc, lt_estrdup, lt_emalloc, lt_erealloc): Removed in favour of... (lt__strdup, lt__memdup, MALLOC, REALLOC, FREE): ...these calls from libltdl/lt__alloc.h. Changed all callers. (rpl_argz_append, rpl_argz_create_sep, rpl_argz_insert): As part of the portability layer, these functions no longer use libltdl memory management API. (free_vars): Factored out. (LT_DLMEM_REASSIGN): While redoing memory handling, renamed... * libltdl/lt__alloc.h (MEMREASSIGN): ...to this. * libltdl/Makefile.am (AUTOMAKE_OPTIONS): Let automake track dependencies automatically. (pkgincludedir): Override from parent package's setting. (pkginclude_HEADERS): Install lt_system.h. (libltdl_la_SOURCES): Add new files. * NEWS: Updated. Reported by Dalibor Topic <robilad@kaffe.org>
2004-04-06 23:42:11 +08:00
* New support for IBM's xlc and xlc++ on Mac OS X.
* Finished support for QNX RTOS.
* Bug fixes.
2004-08-30 01:06:25 +08:00
New in 1.5.8: 2004-08-07; CVS version 1.5.7a, Libtool team:
* Support for Intel C++ version 8.0.
* Improved support for OpenBSD.
* Support for xlc on Mac OS X.
* Better support for zsh as /bin/sh.
* Much faster check for command line length on all BSD systems.
* Better Mac OS X/darwin support.
* Bug Fixes.
New in 1.5.6: 2004-04-11; CVS version 1.5.5a, Libtool team:
* Installs libltdl files properly in $prefix/share/libtool/libltdl. 1.5.4
did not install them at all.
* libltdl correctly guesses the extension for loadable modules again.
New in 1.5.4: 2004-04-03; CVS version 1.5.3a, Libtool team:
* Bug fixes.
New in 1.5.2: 2004-01-25; CVS version 1.5.0a, Libtool team:
* lt_dlrealloc is an official part of the libltdl API.
* --tag, --silent and --debug options are preserved and reused when libtool
calls itself for relinking etc.
* '-pthread' and similar options are honoured when linking shared libraries.
* -no-suppress in compile mode shows compiler output for both PIC and non-PIC
object compilation.
* New link mode option '-precious-files-regex' to prevent accidental removal
of files you want to keep, such as test coverage data, from the temporary
output directory.
2005-02-04 23:47:40 +08:00
* Directories specified in /etc/ld.so.conf are no longer hardcoded on GNU/Linux.
* Recognises the 'R' symbol type on Solaris so read-only symbols can be
exported.
* Bug fixes.
New in 1.5.1: 2003-??-??; CVS version 1.5.0a, Libtool team:
* lt_dlrealloc is an official part of the libltdl API.
* Bug fixes.
2003-06-11 22:23:41 +08:00
New in 1.5: 2003-04-14; CVS version 1.4e, Libtool team:
* First stable release of multi-language architecture.
* libtool and libltdl support for Mac OS/X.
* libltdl will now use cygwins dlopen API instead of always forcing
LoadLibrary.
* NEWS: Updated. * THANKS: Added Rob Collins and Chuck Wilson for their cygwin work. From Robert Collins <robert.collins@itdomain.com.au>: * configure.ac (AC_EXEEXT): Needed for DOSish systems. * libtool.m4 (shlibpath_overrides_runpath) [cygwin]: Set to yes when compiling with gcc. (lt_prog_compiler_pic) [cygwin]: No longer needs the -DDLL_EXPORT hack, so we just say the pic is the default. (AC_LIBTOOL_PROG_LD_SHLIBS) [cygwin]: Extract symbols from a library normally. [cygwin]: Declare C++ compiler characterisics for g++, taking into account the new auto-import support in cygwin ld. * ltmain.in (specialdeplibs) [cygwin]: Be careful about eliminating duplicate -lgcc's from the link line. [cygwin]: Be smarter about .exe suffixes. * demo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Support DOSish systems properly. * depdemo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Ditto. * demo/Makefile.am (deplibs-check): Allow for .exe suffix. Use hell_static instead of hell.static for multi-`.' inhibited OSes. * tests/demo-exec.test: Ditto. * tests/demo-inst.test: Ditto. * demo/foo.h [cygwin]: Sanitize cygwin dll support. * demo/foo.c (_LIBFOO_COMPILATION_): No longer required. * demo/hello.c (_LIBFOO_COMPILATION_): Ditto. * depdemo/Makefile.am (bin_PROGRAMS): Use depdemo_static instead of depdemo.static for multi-`.' inhibited OSes. * tests/depdemo-exec.test: Ditto. * tests/depdemo-inst.test: Ditto. * mdemo/Makefile.am (bin_PROGRAMS): Ditto for mdemo.static. * tests/dryrun.test: Ditto. * tests/mdemo-exec.test: Ditto. * tests/mdemo-inst.test: Ditto. * tests/build-relink.test: Be careful about possible .exe suffixes. * tests/noinst-link.test: Allow for .exe suffix.
2002-03-03 11:19:55 +08:00
* Support auto-import patch to binutils on cygwin for much improved dll
support.
* Bug fixes.
2003-06-11 22:23:41 +08:00
New in 1.4.3: 2002-10-13; CVS version 1.4.2a, Robert Boehne:
* The libltdl subdirectory now bootstraps correctly with Automake 1.5.
* srcdir != builddir builds with Automake 1.5 work correctly.
* Support for mips-compaq-nonstopux.
* New command line argument, --preserve-dup-deps prevents removal of
duplicate dependent libraries.
New in 1.4d: 2002-01-07; CVS version 1.4c, Libtool team:
* Help strings display correctly again.
* Better error messages when library linking fails.
* Better error messages from libltdl when loading fails.
* Better search path management in libltdl with 'lt_dlinsertsearchdir' call.
* Support /lib/w32api in recent cygwin releases.
* Support cross compilation to mingw.
* Support for .rc files (Windows resource compiler).
* Improved handling of mingw gcc.
* Improved handling of $PATH with entries containing spaces.
* Improved support for linking with gcc on aix4* and aix5*.
* Improved support for GCC 3.0.
* Initial support for QNX RTOS, UnixWare 7 and OpenUNIX 8.
* Bug fixes to the OpenBSD port.
* Bug fixes.
2003-06-11 22:23:41 +08:00
New in 1.4.2: 2001-09-11; CVS version 1.4.1a, Gary V. Vaughan:
* libltdl now builds on solaris again
* diagnose and warn about not-quite-working combinations of gcc and
ld on solaris.
* Improved OpenBSD support.
* Improved cygwin support.
* Bugfixes.
New in 1.4.1: 2001-09-03; CVS version 1.4.0a, Libtool team:
* Better error messages from libltdl when loading fails.
* Don't leave here-doc files behind.
* Improved support for OpenBSD.
* Libtool will build with autoconf-2.50 and higher.
* Plug memory management bugs in libltdl.
* Prefer shl_load to dlopen for better operation on HP-UX.
New in 1.4b: 2001-07-09; CVS version 1.4a, Libtool team:
* Now bootstraps with autoconf-2.50 and automake-1.4-p4.
* Always try to build at least a static lib, even if both static and
shared libs were disabled.
* Full support for C++ compiler.
* Support for GNU gcj compiler.
* libltdl can now load all modules in a given path according to user
supplied criteria with 'lt_dlforeachfile' call.
* Improved support for AIX ia64, djgpp, HPUX, hurd, OpenBSD, sco3.2*.
* Internal mutex handling no longer has namespace clashes on NCR MP-RAS.
* New pdemo and tagdemo tests.
* Bug fixes.
New in 1.4: 2001-04-25; CVS version 1.3e, Libtool team:
* Support for aix5*.
* Bugfixes.
2001-04-02 08:46:39 +08:00
New in 1.3d: 2001-04-02; CVS version 1.3c, Libtool team:
* ltconfig is no more. Generation of libtool happens directly from
the configure file.
* Multithread safe with lt_dlmutex_register callback registration.
* New -no-install flag to avoid the use of executable wrapper scripts.
* New --with-pic, -prefer-pic and -prefer-non-pic flags to control
the generation of PIC/non-PIC code.
* 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 in libltdl:
lt_dlgetinfo, lt_dlhandle_next and lt_dlforeach provide access to module
specific data in handles.
lt_dlcaller_register, lt_dlcaller_set_data and lt_dlcaller_get_data provide
management for user storage of per module data.
lt_dlloader_next, lt_dlloader_name, lt_dlloader_find, lt_dlloader_add and
lt_dlloader_remove 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.
* Support recent dlltool formats.
* Start of support code for cross-compiling to win32.
* libltdl can now be built as a dll with win32.
* m4 macros needed to configure libltdl split out into libltdl/ltdl.m4.
* New port to NEWS-OS Release 6.
* Improved support for darwin (rhapsody), mingw32, NetBSD, Compaq Tru64 V5.0
and Digital Unix V4.*.
* Initial support for ia64 linux.
* Initial support for a.out freebsd shared libs.
* Initial support for Paul Sokolovsky's pw32 POSIX over win32 layer.
* Many bugfixes (especially in libltdl)
New in 1.3b: 1999-07-02; CVS version 1.3a, Libtool team:
* merged my inter-library dependencies code from the ILD branch: * NEWS: inter-library dependencies are now supported * configure.in: add the depdemo subdirectory * depdemo/*: new demo to demonstrate inter-library dependencies * tests/depdemo*: new tests for depdemo * ltconfig.in: added hardcode_into_libs (whether library paths should be hardcoded into the libraries), it currently defaults to 'no' * ltmain.in: new internal 'relink' mode to relink libraries on platforms with hardcode_into_libs=yes, save command line arguments in libtool_args, accept relative -L directories, ignore -lm on BeOS and Cygwin, always ignore -lc, handle -l, -L and .la arguments later, always make the library installation directory (-rpath) absolute, in relink mode don't delete the not-relinked library and exit immediately after relinking, try to find already-installed libtool libraries that were specified using -l, support hardcoding of library paths into libraries too, export shlibpath before linking libraries, and a lot of other big changes that I don't want to describe here... please read the source. * merged Gary's Win32 code from the ILD branch: * NEWS: Win32 DLLs are now supported * TODO: removed .a library namespace clash for win32. It is now resolved. * ltconfig.in (cygwin, library_names_spec): removed $libname.a. Creating a dll with libtool no longer creates an import library. * ltconfig.in (extract_expsyms_cmds): Create $objdir if it does not exist -- i.e. we need to generate import an import library in a directory which has no libs of its own. * doc/libtool.texi (old_archive_from_expsyms_cmds, extract_expsyms_cmds): documented these new variables. * ltconfig.in (extract_expsyms_cmds): New variable. Commands to extract the exported symbol list from a dll. (old_archive_from_expsyms_cmds): New variable. Commands to build an old archive from the extracted expsyms list. * ltmain.in: run the cmds in extract_expsyms_cmds and old_archive_from_expsyms_cmds as necessary. * ltconfig.in (cygwin, old_archive_from_new_cmds): no longer required. * ltconfig.in (cygwin, shlibpath_overrides_runpath): I'm not even sure whether win32 honours the runpath at all when searching for a dll to load! Anyway, when set to yes this prevents a gratuitous warning. * ltmain.in (deplib): The cygwin environment doesn't actually have -lm, and although the linker fakes having one, specifiying it to libtool will break ILD, so we ignore it when generating dependencies.
1999-03-19 05:57:08 +08:00
* Complete inter-library dependencies support. It's now possible
to link libtool libraries against other libtool libraries.
* Libtool is able to find already-installed libtool libraries,
even if they were moved out of their installation directory.
* New "-Wc,flag" and "-Xcompiler flag" flags to pass flags
directly to the compiler
* New "-Wl,flag" and "-Xlinker flag" flags to pass flags
directly to the linker
* New "-no-fast-install" flag to selectively disable fast-install mode.
* Support for installing stripped libraries using GNU strip (install -s).
Automake >= 1.5 will install stripped libraries with "make install-strip".
* Allow linking shared libraries against static ones
on FreeBSD, GNU/Linux, GNU Hurd and Solaris
* merged my inter-library dependencies code from the ILD branch: * NEWS: inter-library dependencies are now supported * configure.in: add the depdemo subdirectory * depdemo/*: new demo to demonstrate inter-library dependencies * tests/depdemo*: new tests for depdemo * ltconfig.in: added hardcode_into_libs (whether library paths should be hardcoded into the libraries), it currently defaults to 'no' * ltmain.in: new internal 'relink' mode to relink libraries on platforms with hardcode_into_libs=yes, save command line arguments in libtool_args, accept relative -L directories, ignore -lm on BeOS and Cygwin, always ignore -lc, handle -l, -L and .la arguments later, always make the library installation directory (-rpath) absolute, in relink mode don't delete the not-relinked library and exit immediately after relinking, try to find already-installed libtool libraries that were specified using -l, support hardcoding of library paths into libraries too, export shlibpath before linking libraries, and a lot of other big changes that I don't want to describe here... please read the source. * merged Gary's Win32 code from the ILD branch: * NEWS: Win32 DLLs are now supported * TODO: removed .a library namespace clash for win32. It is now resolved. * ltconfig.in (cygwin, library_names_spec): removed $libname.a. Creating a dll with libtool no longer creates an import library. * ltconfig.in (extract_expsyms_cmds): Create $objdir if it does not exist -- i.e. we need to generate import an import library in a directory which has no libs of its own. * doc/libtool.texi (old_archive_from_expsyms_cmds, extract_expsyms_cmds): documented these new variables. * ltconfig.in (extract_expsyms_cmds): New variable. Commands to extract the exported symbol list from a dll. (old_archive_from_expsyms_cmds): New variable. Commands to build an old archive from the extracted expsyms list. * ltmain.in: run the cmds in extract_expsyms_cmds and old_archive_from_expsyms_cmds as necessary. * ltconfig.in (cygwin, old_archive_from_new_cmds): no longer required. * ltconfig.in (cygwin, shlibpath_overrides_runpath): I'm not even sure whether win32 honours the runpath at all when searching for a dll to load! Anyway, when set to yes this prevents a gratuitous warning. * ltmain.in (deplib): The cygwin environment doesn't actually have -lm, and although the linker fakes having one, specifiying it to libtool will break ILD, so we ignore it when generating dependencies.
1999-03-19 05:57:08 +08:00
* Support for linking DLLs on Win32
* New 'clean' mode to delete uninstalled files.
* merged my inter-library dependencies code from the ILD branch: * NEWS: inter-library dependencies are now supported * configure.in: add the depdemo subdirectory * depdemo/*: new demo to demonstrate inter-library dependencies * tests/depdemo*: new tests for depdemo * ltconfig.in: added hardcode_into_libs (whether library paths should be hardcoded into the libraries), it currently defaults to 'no' * ltmain.in: new internal 'relink' mode to relink libraries on platforms with hardcode_into_libs=yes, save command line arguments in libtool_args, accept relative -L directories, ignore -lm on BeOS and Cygwin, always ignore -lc, handle -l, -L and .la arguments later, always make the library installation directory (-rpath) absolute, in relink mode don't delete the not-relinked library and exit immediately after relinking, try to find already-installed libtool libraries that were specified using -l, support hardcoding of library paths into libraries too, export shlibpath before linking libraries, and a lot of other big changes that I don't want to describe here... please read the source. * merged Gary's Win32 code from the ILD branch: * NEWS: Win32 DLLs are now supported * TODO: removed .a library namespace clash for win32. It is now resolved. * ltconfig.in (cygwin, library_names_spec): removed $libname.a. Creating a dll with libtool no longer creates an import library. * ltconfig.in (extract_expsyms_cmds): Create $objdir if it does not exist -- i.e. we need to generate import an import library in a directory which has no libs of its own. * doc/libtool.texi (old_archive_from_expsyms_cmds, extract_expsyms_cmds): documented these new variables. * ltconfig.in (extract_expsyms_cmds): New variable. Commands to extract the exported symbol list from a dll. (old_archive_from_expsyms_cmds): New variable. Commands to build an old archive from the extracted expsyms list. * ltmain.in: run the cmds in extract_expsyms_cmds and old_archive_from_expsyms_cmds as necessary. * ltconfig.in (cygwin, old_archive_from_new_cmds): no longer required. * ltconfig.in (cygwin, shlibpath_overrides_runpath): I'm not even sure whether win32 honours the runpath at all when searching for a dll to load! Anyway, when set to yes this prevents a gratuitous warning. * ltmain.in (deplib): The cygwin environment doesn't actually have -lm, and although the linker fakes having one, specifiying it to libtool will break ILD, so we ignore it when generating dependencies.
1999-03-19 05:57:08 +08:00
* New demos and tests
* Various bugfixes
2001-04-02 08:46:39 +08:00
New in 1.3.5: 2000-05-27, CVS version 1.3.4a, Libtool team:
* Support for mac OS X (rhapsody).
* Support for *-sequent-sysv4.
* Support for Cygwin-1.1.0.
* Support recent dlltool formats.
* Bugfixes.
New in 1.3.4: 1999-12-08, CVS version 1.3.3a, Libtool team:
* Support for Compaq Tru64 V5.0.
* Improved support for Digital Unix V4.*.
* Improved support for NetBSD, FreeBSD and Unixware.
* Many fine bugfixes.
New in 1.3.3: 1999-07-02, CVS version 1.3.2a, Libtool team:
* New '-dlpreopen force' flag to ensure that
lt_preloaded_symbols is always defined.
* Work around self-dlclose bug in FreeBSD 3.1.
* Expand convenience libraries when creating reloadable objects.
* Do not forget to import -L flags of convenience libraries.
* Do not pass -whole-archive or equivalent to symbol extractor.
* Create directory to expand convenience libraries only when needed.
* Improved support for Cygwin, DJGPP and NetBSD
* Various bugfixes
New in 1.3.2: 1999-05-26, CVS version 1.3.1a, Libtool team:
* Avoid circular links of objects and libraries.
* Look for dlerror when dlopen was found in -ldl (typo).
* Disable shared libraries with broken GNU ld on Solaris.
New in 1.3.1: 1999-05-21, CVS version 1.3.0a, Libtool team:
* Documentation improvements; recommend automake users to insert libtool.m4
in acinclude.m4
* AC_LIBLTDL_CONVENIENCE and AC_LIBLTDL_INSTALLABLE now set INCLTDL.
* New port to NEC UX/4800.
* cygwin-b20.1 passes all tests.
* Slightly improved BeOS support.
* Many AIX 4.3.2 test failures have gone.
* Pass unknown -L arguments through to the linker (for -LANG:* support).
* Close a security hole with mode 777 directory during libltdl installation.
* Fixed the infamous 'ifelse' bug in libtool.m4
New in 1.3: 1999-04-29, Libtool team:
* This is just a summary of the changes since 1.2.
See the news of intermediate alpha releases below for details.
* Support for convenience archives.
* New maintainers. Anonymous CVS and home page at gnu.org.
* Portable dlopening interface with libltdl, new -module flag.
* Correctly link installed libtool libraries into programs and other
libtool libraries. Linking of uninstalled libtool libraries into
libraries is under development for 1.4.
* Do not drop library dependencies on platforms that allow them.
* Linking with uninstalled libraries no longer picks installed ones by
mistake.
* Use libraries from the build tree when running uninstalled
executables (may require double linking).
* Allow developers to optimize for build-tree executions.
* Support -export-symbols-regex for controlled symbol exporting.
* Support -R to hardcode directories in library search paths.
* New ports, demos and tests. Lots of improvements and bug fixes.
New in CVS version 1.2g, Libtool team:
* AM_PROG_LIBTOOL is smaller and faster
* NEWS: Updated. * THANKS: Added Rob Collins and Chuck Wilson for their cygwin work. From Robert Collins <robert.collins@itdomain.com.au>: * configure.ac (AC_EXEEXT): Needed for DOSish systems. * libtool.m4 (shlibpath_overrides_runpath) [cygwin]: Set to yes when compiling with gcc. (lt_prog_compiler_pic) [cygwin]: No longer needs the -DDLL_EXPORT hack, so we just say the pic is the default. (AC_LIBTOOL_PROG_LD_SHLIBS) [cygwin]: Extract symbols from a library normally. [cygwin]: Declare C++ compiler characterisics for g++, taking into account the new auto-import support in cygwin ld. * ltmain.in (specialdeplibs) [cygwin]: Be careful about eliminating duplicate -lgcc's from the link line. [cygwin]: Be smarter about .exe suffixes. * demo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Support DOSish systems properly. * depdemo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Ditto. * demo/Makefile.am (deplibs-check): Allow for .exe suffix. Use hell_static instead of hell.static for multi-`.' inhibited OSes. * tests/demo-exec.test: Ditto. * tests/demo-inst.test: Ditto. * demo/foo.h [cygwin]: Sanitize cygwin dll support. * demo/foo.c (_LIBFOO_COMPILATION_): No longer required. * demo/hello.c (_LIBFOO_COMPILATION_): Ditto. * depdemo/Makefile.am (bin_PROGRAMS): Use depdemo_static instead of depdemo.static for multi-`.' inhibited OSes. * tests/depdemo-exec.test: Ditto. * tests/depdemo-inst.test: Ditto. * mdemo/Makefile.am (bin_PROGRAMS): Ditto for mdemo.static. * tests/dryrun.test: Ditto. * tests/mdemo-exec.test: Ditto. * tests/mdemo-inst.test: Ditto. * tests/build-relink.test: Be careful about possible .exe suffixes. * tests/noinst-link.test: Allow for .exe suffix.
2002-03-03 11:19:55 +08:00
* AC_LIBTL_L_WIN32_DLL is required in configure.in for libtool to
attempt to build dlls on win32 hosts
* Shared libraries on AmigaOS up to version 4 are now disabled
since they don't meet libtool's requirements for shared libraries
* -L supports now relative directories
* Libltdl has a new license: LGPL with a special exception
* Libltdl can be used as stand-alone package
* dlopen support for BeOS
* Partial support for Motorola System V 4
* Improved support for AIX, BeOS, Cygwin, DJGPP, DU, IRIX and HP/UX
* Documentation updates
* New tests
* Bugfixes
* merged my inter-library dependencies code from the ILD branch: * NEWS: inter-library dependencies are now supported * configure.in: add the depdemo subdirectory * depdemo/*: new demo to demonstrate inter-library dependencies * tests/depdemo*: new tests for depdemo * ltconfig.in: added hardcode_into_libs (whether library paths should be hardcoded into the libraries), it currently defaults to 'no' * ltmain.in: new internal 'relink' mode to relink libraries on platforms with hardcode_into_libs=yes, save command line arguments in libtool_args, accept relative -L directories, ignore -lm on BeOS and Cygwin, always ignore -lc, handle -l, -L and .la arguments later, always make the library installation directory (-rpath) absolute, in relink mode don't delete the not-relinked library and exit immediately after relinking, try to find already-installed libtool libraries that were specified using -l, support hardcoding of library paths into libraries too, export shlibpath before linking libraries, and a lot of other big changes that I don't want to describe here... please read the source. * merged Gary's Win32 code from the ILD branch: * NEWS: Win32 DLLs are now supported * TODO: removed .a library namespace clash for win32. It is now resolved. * ltconfig.in (cygwin, library_names_spec): removed $libname.a. Creating a dll with libtool no longer creates an import library. * ltconfig.in (extract_expsyms_cmds): Create $objdir if it does not exist -- i.e. we need to generate import an import library in a directory which has no libs of its own. * doc/libtool.texi (old_archive_from_expsyms_cmds, extract_expsyms_cmds): documented these new variables. * ltconfig.in (extract_expsyms_cmds): New variable. Commands to extract the exported symbol list from a dll. (old_archive_from_expsyms_cmds): New variable. Commands to build an old archive from the extracted expsyms list. * ltmain.in: run the cmds in extract_expsyms_cmds and old_archive_from_expsyms_cmds as necessary. * ltconfig.in (cygwin, old_archive_from_new_cmds): no longer required. * ltconfig.in (cygwin, shlibpath_overrides_runpath): I'm not even sure whether win32 honours the runpath at all when searching for a dll to load! Anyway, when set to yes this prevents a gratuitous warning. * ltmain.in (deplib): The cygwin environment doesn't actually have -lm, and although the linker fakes having one, specifiying it to libtool will break ILD, so we ignore it when generating dependencies.
1999-03-19 05:57:08 +08:00
New in 1.2f: 1999-03-15; CVS version 1.2e, Libtool team:
1999-03-08 02:32:07 +08:00
* 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
are no longer hardcoded into executables.
1999-03-08 02:32:07 +08:00
* New fast installation mode, which links the final executable
in order to avoid relinking during installation.
Programs in the build-tree are relinked when executed.
* New AC_DISABLE_FAST_INSTALL macro to set the default for
the fast-install mode to disabled
1999-03-08 02:32:07 +08:00
* New -export-symbols-regex flag, to export symbols selectively by
a regular expression
* Support -R for specifying run-time path of programs and library dependencies
* New -avoid-version option to avoid versioning for libraries
* libtool module names no longer need to have a "lib" prefix
(requires automake 1.4).
* New -thread-safe flag, to build thread-safe libraries
1999-03-08 02:32:07 +08:00
* Major improvements in libltdl: API documentation, installable version,
support for module search paths, support for lt_dlopen(0),
can be embedded into packages as a tar file (libltdl.tar.gz),
dynamic buffer allocation and buffer overflow checks,
new macro LTDL_SET_PRELOADED_SYMBOLS() which must be used in the
main program, dynamic memory allocation functions are user-defineable
* New AC_LIBLTDL_CONVENIENCE and AC_LIBLTDL_INSTALLABLE macros, to select
convenience and/or installable versions of libltdl.
* libltdl is now built and installed unless --disable-ltdl-install
1999-03-08 02:32:07 +08:00
* New "-dlopen self" flag for dlopening the executable itself
* New AC_LIBTOOL_DLOPEN macro to check for dlopen support,
required if you use -dlopen or -dlpreopen
* If libtool could not satisfy all dependencies of a module
it will only build a static version of it
* dld_preloaded_symbols was renamed to lt_preloaded_symbols
1999-01-02 04:01:09 +08:00
* Support for BeOS
* Improved support for FreeBSD, AIX, IRIX, OSF, SysV 4.3, HP/UX, DJGPP
1999-03-08 02:32:07 +08:00
BSD/OS 4.x and NetBSD
* In order for libtool to attempt to link a shared library (dll) on win32
platforms, you must pass the -no-undefined flag to libtool in link mode.
* The path to GNU ld now works on cygwin-b18 to cygwin-b20.2 at least.
* Support for IRIX library versioning.
* New demos and tests
1998-12-30 19:36:22 +08:00
* Various bugfixes
1999-03-08 02:32:07 +08:00
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.
1999-03-08 02:32:07 +08:00
It is still undocumented, but you can already find some examples in:
* New mdemo directory, with tests of -module and dlopening examples.
1999-03-08 02:32:07 +08:00
Be aware that libltdl is only known to work on a few platforms such as
GNU/Linux and Solaris2. Some mdemo tests are known to FAIL on several
1999-03-08 02:32:07 +08:00
other platforms; please ignore these failures by now (or work to fix
them :-).
* Inter-library dependencies patch finally integrated, but there's
still much porting to do. See PORTING for details (some plans for the
1999-03-08 02:32:07 +08:00
future in mail/deplibs in the CVS tree).
* New option -export-symbols to control symbol exporting when possible.
* Fixed -export-dynamic problem with C++ programs in egcs 1.1.
* New dlpreopen structure.
* libtool now supports '-c -o' and subdirectories in sources and
1999-03-08 02:32:07 +08:00
target object names even in platforms whose compilers do not support
this. In this case, file locking occurs to avoid problems with
parallel builds.
* New 'echo' variant that should fix most problems with long command
1999-03-08 02:32:07 +08:00
lines and broken printf programs.
* Support for DG/UX, UnixWare 7.x and FreeBSD 3.0, and improved
1999-03-08 02:32:07 +08:00
support for Microsoft Windows
* Various bugfixes
* We now have anonymous CVS access to GNU libtool. CVSROOT is
1999-03-08 02:32:07 +08:00
:pserver:anoncvs@anoncvs.gnu.org:/gd/gnu/anoncvsroot. The password
is empty. The directory is libtool. Check our home-page at
http://www.gnu.org/software/libtool/libtool.html for details.
* Alexandre Oliva, Thomas Tanner and Gary V. Vaughan have taken over
1999-03-08 02:32:07 +08:00
the maintenance of libtool.
1998-08-20 23:48:13 +08:00
* Arguments to ltconfig have been changed to allow creation of a
1999-03-08 02:32:07 +08:00
libtool C program, totally unusable as of this release.
1998-07-01 16:12:49 +08:00
New in 1.2b - 1998-07-01, Gordon Matzigkeit:
* Libtool needs a new maintainer, since Gordon Matzigkeit has quit.
1999-03-08 02:32:07 +08:00
If you think you can do the job, send mail to bug-libtool@gnu.org.
1998-07-01 16:12:49 +08:00
* Bug fixes.
* Support for libtool convenience archives.
1999-03-08 02:32:07 +08:00
1998-04-20 03:29:28 +08:00
New in 1.2a - 1998-04-19, Gordon Matzigkeit:
1998-04-15 00:29:20 +08:00
* Bug fixes.
* ltconfig accepts an '--output' option to specify the name of the
1998-04-20 03:29:28 +08:00
generated libtool.
* New '--debug' flag to turn on shell script tracing for libtool,
1998-04-15 00:29:20 +08:00
libtoolize, and ltconfig.
* Added 'libtool --config' to print out all configuration variables.
1998-04-15 00:29:20 +08:00
* Support for *-*-hpux11*.
1998-04-20 03:29:28 +08:00
1998-03-20 15:58:42 +08:00
New in 1.2 - 1998-03-20, Gordon Matzigkeit:
* Minor bug fixes to provide a stable public release.
* NEWS: Updated. * THANKS: Added Rob Collins and Chuck Wilson for their cygwin work. From Robert Collins <robert.collins@itdomain.com.au>: * configure.ac (AC_EXEEXT): Needed for DOSish systems. * libtool.m4 (shlibpath_overrides_runpath) [cygwin]: Set to yes when compiling with gcc. (lt_prog_compiler_pic) [cygwin]: No longer needs the -DDLL_EXPORT hack, so we just say the pic is the default. (AC_LIBTOOL_PROG_LD_SHLIBS) [cygwin]: Extract symbols from a library normally. [cygwin]: Declare C++ compiler characterisics for g++, taking into account the new auto-import support in cygwin ld. * ltmain.in (specialdeplibs) [cygwin]: Be careful about eliminating duplicate -lgcc's from the link line. [cygwin]: Be smarter about .exe suffixes. * demo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Support DOSish systems properly. * depdemo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Ditto. * demo/Makefile.am (deplibs-check): Allow for .exe suffix. Use hell_static instead of hell.static for multi-`.' inhibited OSes. * tests/demo-exec.test: Ditto. * tests/demo-inst.test: Ditto. * demo/foo.h [cygwin]: Sanitize cygwin dll support. * demo/foo.c (_LIBFOO_COMPILATION_): No longer required. * demo/hello.c (_LIBFOO_COMPILATION_): Ditto. * depdemo/Makefile.am (bin_PROGRAMS): Use depdemo_static instead of depdemo.static for multi-`.' inhibited OSes. * tests/depdemo-exec.test: Ditto. * tests/depdemo-inst.test: Ditto. * mdemo/Makefile.am (bin_PROGRAMS): Ditto for mdemo.static. * tests/dryrun.test: Ditto. * tests/mdemo-exec.test: Ditto. * tests/mdemo-inst.test: Ditto. * tests/build-relink.test: Be careful about possible .exe suffixes. * tests/noinst-link.test: Allow for .exe suffix.
2002-03-03 11:19:55 +08:00
* Libtool no longer cseses Solaris printf to barf due to silly
1998-03-20 15:58:42 +08:00
2110-byte static buffers.
1998-04-20 03:29:28 +08:00
1998-03-09 13:34:02 +08:00
New in 1.1 - 1998-03-08, Gordon Matzigkeit:
* Bug fixes.
1998-03-06 00:22:50 +08:00
* http://www.profitpress.com/libtool/ is libtool's homepage.
* 'AM_PROG_LIBTOOL' supports turning shared or static libraries off
with the '--enable-shared=PKGS' and '--enable-static=PKGS' configure
1998-03-06 00:22:50 +08:00
flags. See (libtool)AM_PROG_LIBTOOL.
* Use the 'AM_DISABLE_SHARED' or 'AM_DISABLE_STATIC' macros if you
wish to modify the default behaviour of 'AM_PROG_LIBTOOL' for your
1998-03-09 13:34:02 +08:00
package.
* New rules for 'AM_PROG_LD' to use gcc's '-print-prog-name' flag in
1998-03-09 13:34:02 +08:00
order to find ld, if possible.
* Suppress duplicate compiler output during 'compile' mode.
* Deleted 'dlname' mode. Dlopen applications should only use the
1998-03-09 13:34:02 +08:00
runtime search method described in (libtool)Finding the dlname.
* Experimental support for dynamically loaded modules, even on
static-only platforms, via new '-dlopen' and '-dlpreopen' link
1998-03-09 13:34:02 +08:00
flags.
* 'compile' mode honours the '-static' flag to prevent libtool
1998-03-06 00:22:50 +08:00
from building PIC objects.
* New 'execute' mode to support debugging uninstalled libtool
1998-03-09 13:34:02 +08:00
libraries and executables.
* '-allow-undefined' is now the default. You can use '-no-undefined'
1998-03-09 13:34:02 +08:00
to declare that a shared library is completely self-contained.
1998-01-26 03:35:11 +08:00
* Inter-library dependencies are automatically handled when linking
against an uninstalled '.la' file.
* New '-all-static' flag to prevent any dynamic linking. The regular
'-static' flag now just prevents dynamic linking of libtool libraries.
* New '-release' flag to encode release numbers into libtool
1998-02-06 15:36:38 +08:00
libraries. This breaks binary compatibility, but is useful for
libraries whose interfaces change very frequently. See
(libtool)Versioning.
* The '-rpath' flag can be used to hardcode absolute directories when
1997-09-15 20:31:09 +08:00
linking executables using libtool.
1998-03-09 13:34:02 +08:00
* New robust quoting code to handle any metacharacters passed in
1997-08-29 11:09:18 +08:00
arguments to libtool commands.
1997-11-15 02:04:44 +08:00
* Full support for broken collect2 on AIX 3. Shared libraries
can now be built with all working versions of GCC on AIX.
1998-03-09 13:34:02 +08:00
* Shell script speed optimizations for old and buggy /bin/sh systems,
such as HP-UX 9 and SunOS 4.1.4.
* Maybe use '_libs' as a temporary libtool directory instead of '.libs'
1997-11-15 02:04:44 +08:00
in order to cope with MS-DOS filenames.
1998-03-09 13:34:02 +08:00
* Portability fixes for Windows NT.
* Refuse to create libtool libraries that don't begin with 'lib'.
This allows us to correctly handle OSes that don't have the 'lib'
1998-03-09 13:34:02 +08:00
prefix by default, such as OS/2.
* Support for *-*-amigaos*, *-*-os2*, *-*-sysv4.2uw2*, and *-*-uts4*.
1997-07-13 05:39:00 +08:00
1997-11-15 02:04:44 +08:00
New in 1.0 - 1997-07-08, Gordon Matzigkeit:
1997-04-02 03:21:43 +08:00
* Bug fixes.
1997-06-19 12:30:26 +08:00
* Better configuration test to find the system linker. The old test
was failing because people frequently install GNU ld, but don't
necessarily configure GCC to use it.
1997-04-02 03:21:43 +08:00
* Automake support for Libtool now uses the LTLIBRARIES primary. See
the Automake documentation for more information.
* Added new '--disable-static' flag to disable building static
1997-05-25 06:50:52 +08:00
libraries on platforms that have shared libs.
* New '-allow-undefined' link flag to build shared libs that contain
1997-06-06 02:00:56 +08:00
references to unresolved symbols.
1997-06-12 01:13:23 +08:00
* Removed all support for creating static-only libraries.
* Basic support for dynamically loaded modules: new '-export-dynamic'
linking flag and corresponding 'dlname' mode.
* New '--features' flag to display configured libtool attributes.
1997-06-14 05:40:39 +08:00
* Added support for installing libtool objects, both in absolute and
relative directories.
1997-04-02 03:21:43 +08:00
* Support *-*-linux-gnu* as an alias for *-*-linux*.
1997-06-07 05:55:10 +08:00
* Support for *-*-openbsd* and *-*-freebsd3*.
1997-04-02 03:21:43 +08:00
1997-11-15 02:04:44 +08:00
New in 0.9 - 1997-02-03, Gordon Matzigkeit:
1997-04-02 03:19:30 +08:00
* Bug fixes.
* The libtool demo now uses the libm cos(3) function, to demonstrate
inter-library dependencies.
* The PLATFORMS file has been moved to doc/platforms.texi.
1997-11-15 02:04:44 +08:00
New in 0.8 - 1997-01-26, Gordon Matzigkeit:
1997-04-02 03:00:38 +08:00
* Bug fixes, and more documentation.
* Basic support for other language compilers (C++, Fortran, and
preprocessed assembler).
* Libtool is now more persistent when linking with the '-static'
1997-04-02 03:02:08 +08:00
flag fails.
* New test for hardcoding system linkers, to verify that libtool
neither creates incorrect binaries, nor takes unnecessary
precautions while linking against uninstalled shared libraries.
1997-04-02 03:04:40 +08:00
* For clarity, the demo subdirectory no longer uses ansi2knr, and has
been rewritten to avoid ANSI-only constructs.
1997-04-02 03:02:08 +08:00
* Support for *-*-irix5, *-*-irix6*, and *-*-sco3.2v5*.
1997-04-02 03:00:38 +08:00
1997-11-15 02:04:44 +08:00
New in 0.7 - 1996-12-08, Gordon Matzigkeit:
1997-04-02 02:29:23 +08:00
* Total rewrite of libtool, along with a new model for library building.
1997-04-02 02:46:48 +08:00
* Completely rewritten documentation for the new paradigm.
* Sane handling of broken system linkers, such as the ones on AIX
1997-04-02 02:29:23 +08:00
and HP-UX.
* configure mode is now a separate program, 'ltconfig'
1997-04-02 02:46:48 +08:00
* The libinfo helper script has been incorporated into the main
libtool program.
1997-04-02 02:29:23 +08:00
* Automatic mode guessing, based on the command line.
1997-04-02 02:57:49 +08:00
* Full support for Automake 1.2 (including ansi2knr features).
* Support to create reloadable objects using link mode.
* Support for new '-static' linking flag.
1997-04-02 02:53:35 +08:00
* Support for stripping libraries during installation.
1997-04-02 02:49:25 +08:00
* Library version information is now passed on the command line, not
through a version file.
1997-04-02 02:29:23 +08:00
1997-04-02 02:46:48 +08:00
Version 0.6 was never released.
1997-04-02 02:29:23 +08:00
New in 0.5:
* Disabled install-progs until next version, when it will be correctly
implemented.
* Clearer library versioning documentation. See (libtool)Versioning.
* Renamed gm_PROG_LIBTOOL to AM_PROG_LIBTOOL
* Libtool now creates pseudo-objects named foo.lo and pseudo-archives named
libfoo.la instead of foo.o and libfoo.a. See the documentation.
* libtool compile doesn't interfere with user CFLAGS if they don't
conflict with the current objtype. From Karl Berry.
* Created new libinfo helper script.
* libversion.in files are obsolete -- libtool uses libinfo to read the
new LIBINFO files.
* Libtool is better at finding its config file and helper scripts.
* Support for *-*-gnu*
New in 0.4:
* Bug fixes and new regression tests
* On unsupported configurations, 'libtool configure' demotes OBJTYPES to
'standard' instead of aborting
* Added new object type, 't', for tcov(1) support
1997-04-02 02:29:23 +08:00
* Support for *-*-aix3*, *-*-aix4*, *-*-hpux10*, *-*-osf3*, and *-*-solaris2*
New in 0.3:
* Bug fixes and new regression tests
* Added new uninstall-libs mode
* Added a host argument to configure mode
* Fixed debugging/hyper-optimizing flags conflict (from Karl Berry)
* Support for --no-whole-archive when needed by GNU ld (from Ulrich Drepper)
* Implementation of --enable-linktype, --enable-profile, --enable-shared,
--enable-static in gm_PROG_LIBTOOL macro
* New 'libtoolize' program (modeled after GNU gettext's 'gettextize') to help
1997-04-02 02:29:23 +08:00
conversion to libtool
* New ABOUT-LIBS document for inclusion with libtool-supported packages
New in 0.2:
* Support for *-*-linux
* Better checking for GNU ld
* Reimplemented the config file so that it corresponds more closely to the
variables listed in (libtool)Porting Libtool.
* Reimplemented the shared library version scheme. See (libtool)Versioning.
* Replaced '--config-file' and '--version-file' options with '--confdir'
1997-04-02 02:29:23 +08:00
* Added new install-libs and install-progs modes
New in 0.1:
* First release of libtool
* Support for: *-*-freebsd*, *-*-netbsd*, *-*-sunos4*, *-*-ultrix4*
--
Copyright (C) 1996, 1998-2019, 2021-2022 Free Software Foundation, Inc.
This file is part of GNU Libtool.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without warranty of any kind.