* libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG, _LT_LINKER_SHLIBS)
[libtool.git] / ChangeLog.2004
blobe1d84fbd3e9ac8e399d820876ed5266d83fb024e
1 2004-12-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3         * config/getopt.m4sh (func_version, func_usage, func_help):
4         Use `$SED -n' instead of `$SED RANGE {..}; d' as AIX sed cannot
5         handle the latter.
6         (func_help): start autoconf and automake in subshells to avoid
7         error messages from ash or Bourne shell if not available.
9 2004-12-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11         * config/general.m4sh (func_quote_for_eval): Move backslash to
12         beginning of character class, to work around old Bash bug.
13         (func_quote_for_expand): Also test to avoid unnecessary fork.
15 2004-12-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>,
16             Gary V. Vaughan <gary@gnu.org>
18         * Makefile.am, bootstrap, clcommit.m4sh, libtoolize.m4sh,
19         config/ltmain.m4sh: Replace `set --' with `set dummy [...]; shift'
20         for portability.
21         * tests/sh.test: Test for this.
23 2004-12-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25         * libtoolize.m4sh, config/ltmain.m4sh (most functions): New
26         variable $opt_debug is either `:' or `set -x' depending on
27         --debug.  Execute at most function entries to cater for ksh which
28         resets `-x'.
29         * tests/defs.m4sh: Ditto for VERBOSE=debug.
31         * m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin, mingw, pw32]:
32         _LT_TAGVAR missing for `fix_srcfile_path'.
33         [sysv4, sysv5]: _LT_TAGVAR missing for
34         `export_dynamic_flag_spec'.
36         * doc/libtool.texi (all over): Use @option and @command.
37         Some more minor formatting updates, typos.
39         * m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH): Fix variable quoting;
40         allows lt_ECHO to match --fallback-echo again.
42         * config/ltmain.m4sh (func_extract_archives): Not all shells grok
43         `read -r' (unnecessary in this case).
44         Reported by Ralf Menzel <menzel@ls6.cs.uni-dortmund.de>.
46         * config/general.m4sh: New variable quote_scanset...
47         (func_quote_for_eval, func_quote_for_expand): ...use it to work
48         around SunOS ksh `case' backslash-escaping bug: protect character
49         class by variable expansion.
50         Reported by Alexander Kurz <alexander.kurz@qsc.de>.
52         * tests/quote.test: Restart under the correct shell (the one
53         $ECHO was computed for).
55 2004-12-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
57         * libltdl/lt__dirent.c: Include lt__private.h.
58         * libltdl/libltdl/lt__private.h: Include lt__strl.h.
60 2004-12-20  Peter O'Gorman  <peter@pogma.com>
62         * config/ltmain.m4sh (func_extract_archives)
63         (func_extract_an_archive): On darwin, uniq can not take the flags
64         -cd together, thanks to Ralf for the fix, also ar does not accept
65         N, so we use the fact that ar x libfoo.a foo.o will always extract
66         the first foo.o in the archive and we then delete foo.o from the
67         archive, which will also delete only the first foo.o, then rinse
68         and repeat. Also add markers for the testuite.
69         * m4/libtool.m4 (_LT_CONFIG): Add a marker so that we can use a
70         sed expression to find the shell functions in libtool.
71         * tests/functests.at: Test this feature.
72         * tests/testsuite.at: Add the test.
73         * tests/Makefile.am: Add the test.
75 2004-12-20  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
77         * libtoolize.m4sh: Install `install-sh' as well, needed for
78         configure.
79         * Makefile.am, Makefile.maint: Install, update it.
80         * NEWS, doc/libtool.texi (Distributing): Document it.
81         Reported by Ross Boylan <ross@biostat.ucsf.edu>.
83         * m4/libtool.m4 (_LT_LINKER_SHLIBS) [solaris]: Add '${wl}-z
84         ${wl}text' to archive_cmds and archive_expsyms_cmds.  I.e., do not
85         allow nopic in shared libraries.
87         * m4/libtool.m4 (_LT_LINKER_SHLIBS) [solaris]: Change
88         no_undefined_flag back to ' -z defs'.  Problems with linking
89         against libgcc.a will have to be resolved differently.
91         * tests/demo-nopic.test [solaris, sunos]: Skip test.
93 2004-12-18  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
95         * libtool.m4 [linux] (_LT_COMPILER_PIC, _LT_LANG_CXX_CONFIG):
96         Match icpc* and ecpc* (ia64 version of icpc) instead of only icpc.
98         * libltdl/lt__dirent.c (opendir) [mingw]: Fix write of constant
99         strings past end of buffer.
100         (opendir, readdir): Fix read past end of buffer.
102 2004-12-17  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
104         * HACKING: Update list of non-Libtool-owned files.
106 2004-12-17  Akim Demaille <akim@epita.fr>
108         * libtoolize.m4sh (func_copy_all_from_path): Remove spurious eval.
110 2004-12-16  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
112         * libltdl/ltdl.c (trim): Return error rather than do bogus
113         null pointer arithmetic when parsing a malformed .la file.
115 2004-12-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
117         * libltdl/lt__strl.c, libltdl/libltdl/lt__strl.h: New files to
118         emulate strlcat and strlcpy, which support size-bounded string
119         copying and concatenation for improved security.
120         * libltdl/Makefile.am: Optionally build source files
121         libltdl/lt__strl.c and libltdl/libltdl/lt__strl.h.
122         * m4/ltdl.m4 (LTDL_INIT): Add checks for strlcat and strlcpy.
124 2004-12-13  Albert Chin-A-Young  <china@thewrittenword.com>
126         * libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG):
127         Append -G to link command-line on AIX to honor -brtl on
128         command-line (runtime linking). Already done for IBM C/C++
129         compilers.
131 2004-12-12  Patrick Welche <prlw1@newn.cam.ac.uk>
133         * configure.ac: Fix aclocaldir to use ${datadir}, not ${prefix}.
134         Necessary for removal of old libtool.m4 files.
136 2004-12-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
138         * config/ltmain.m4sh (func_extract_archive): Send stderr of $NM
139         to /dev/null.
140         Reported by Martin Waitz <tali@admingilde.org>.
142 2004-12-09  Albert Chin-A-Young  <china@thewrittenword.com>
144         * config/ltmain.m4sh: Preserve -model [arg] option, used
145         with the Tru64 UNIX C++ compiler. This option selects the
146         layout of C++ classes, name mangling, and exception handling.
148 2004-12-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
150         * config/ltmain.m4sh (func_mode_finish) [solaris]: Fix [] escaping
151         bug.
153         * config/ltmain.m4sh (all over the map): Make use of func_basename
154         and func_dirname in most occasions.
156         * m4/libtool.m4 (_LT_CHECK_XSI_SHELL, _LT_PROG_XSI_SHELLFNS): New
157         macros to detect at `configure' time whether the shell supports
158         some XSI extensions and to copy appropriate versions of new shell
159         functions into `libtool' through `config.status'.  Copied
160         functions are Bourne and XSI variants of func_basename,
161         func_dirname (a variant of `dirname' suitable for libtool).
162         (_LT_SETUP): Require _LT_CHECK_XSI_SHELL.
163         (_LT_CONFIG):  Use _LT_PROG_XSI_SHELLFNS to insert into `libtool'
164         at marker.
166         * config/ltmain.m4sh: Set marker for insertion of shell functions.
168         * config/general.m4sh (func_quote_for_eval): Only fork if the
169         substitution matches.
171 2004-12-03  Gary V. Vaughan  <gary@gnu.org>
173         * TODO: Paste Peter's summary of the TODO thread starting at
174         http://lists.gnu.org/archive/html/libtool/2004-11/msg00130.html.
176 2004-12-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
178         * config/ltmain.m4sh: Remove code which is no longer needed
179         now that temp_rpath only contains fully-qualified elements.
181 2004-11-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
183         * config/general.m4sh: basename sed-subst is anchored and thus
184         does not need the `g' flag.
185         (func_quote_for_eval): Return both the possibly double-quoted
186         backslashified as well as only the backslashified argument.
187         * config/ltmain.m4sh (func_mode_link): Use both return values,
188         to save another sed_quote_subst application per cmdline arg.
190 2004-11-29  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
192         * config/ltmain.m4sh (func_lalib_p): Update function
193         description.
194         (func_lalib_unsafe_p): New function with same functionality but
195         written without forks; this function is safe to use for cases
196         where the argument either does not exist or is required to be a
197         lalib for correct operation.
198         * NEWS: Mention the fact that stdin is not to be used.
199         * config/ltmain.m4sh (func_mode_execute, func_mode_install)
200         (func_mode_link): Use func_lalib_unsafe_p where appropriate.
201         (func_mode_execute): For the program wrapper, use
202         func_ltwrapper_p instead of func_lalib_p.
204         * m4/libtool.m4 (_LT_LINKER_SHLIBS): Treat linux-dietlibc with
205         the `diet' compiler wrapper (as opposed to the `diet-dyn' wrapper)
206         as a static-only platform.
207         * NEWS: Updated.
209         * libltdl/ltdl.c (trim): Use memcpy instead of strncpy here, to
210         avoid problems with non-conforming strncpy.  This is safe here.
212         * m4/ltdl.m4 (LT_LIB_DLLOAD): Define HAVE_LIBDLLOADER if we
213         have a dlloader to preload.
214         * libltdl/ltdl.c (lt_dlinit): Only preload if HAVE_LIBDLLOADER, only
215         declare preloaded_symbols then.  Fixes libltdl on static platforms.
216         * NEWS: Updated.
218 2004-11-29  Gary V. Vaughan  <gary@gnu.org>
220         Add a search path option to libtoolize so that we can run it from
221         the testsuite without pulling in the last installed macros and
222         ltdl sources:
224         * libtoolize.m4sh:  Add a -I option to change libtoolize's search
225         path for macro files, and libltdl master sources.
226         (pkgvdatadir, pkgvmacrodir): Renamed...
227         (pkgvdatadirs, pkgvmacrodirs): ...as they can now contain a ':'
228         delimited list of directories.  Adjust all callers.
229         (func_copy_all_from_path): New function to search a ':' delimited
230         search path for a directory to copy.
231         (func_serial_update, func_ltmain_update, func_config_update): New
232         first parameter is a filename to search for.  srcdir parameter can
233         now be a ':' delimited search path.  Adjust all callers.
234         (func_copy_some_files): Ditto.
235         Put srcfile_spec first in parameter list for consistency with
236         other functions.  Adjust all callers.
237         (func_copy_cb): func_copy adapter function to call func_copy
238         correctly from func_copy_some_files.
239         (func_filename_path_search): Return the full path to the first
240         occurence of a named file found in a list of directories.
241         * tests/testsuite.at (LIBTOOLIZE): Wrap exported LIBTOOLIZE
242         initialisation in PREPARE_TESTS diversion to stop it being
243         discarded when testsuite is generated.
244         (AT_LIBTOOLIZE): Factor out libtoolize calls,
245         and set search path to find macros and libltdl source files from
246         the source tree.
247         (AT_CHECK_LIBTOOLIZE): Test it.
248         (AT_BOOTSTRAP): Adjust.  Split out call to make.
249         * tests/am-subdir.at: Call make explicitly.
250         (Makefile.am): Fix typo in ACLOCAL_AMFLAGS,
252 2004-11-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
254         * config/ltmain.m4sh (func_mode_link): $dlsymsobj is really
255         $symfileobj, bug exposed only in the static preloading case
256         (symfileobj is created, but not linked into output).
258         * tests/demo-relink.test, tests/depdemo-relink.test: SKIP, don't
259         FAIL if no shared libs available in demo/.  Do not try to access
260         nonexistent files.
262         * libltdl/loaders/loadlibrary.c: Remove unneeded
263         file-static variable.
265 2004-11-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
267         * config/ltmain.m4sh: Add fully-qualified paths to temp_rpath
268         rather than unqualified paths in order to avoid possible errors
269         when computing the fully-qualified path later.
271 2004-11-24  Jeff Squyres  <jsquyres@lam-mpi.org>
273         * m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS)
274         (_LT_LANG_CXX_CONFIG) [linux]: Support for Portland Group (aka
275         "pgi") compilers.
276         * NEWS, THANKS: Updated.
278 2004-11-24  Gary V. Vaughan  <gary@gnu.org>
280         * Makefile.am: Move Autotest rules from here...
281         * tests/Makefile.am: ...to here.
282         * bootstrap: Adjust.  Also, create temporary Makefile from
283         tests/Makefile.am so that bootstrap can create the Autotest
284         testsuite.
286 2004-11-23  Gary V. Vaughan  <gary@gnu.org>
288         If the user's login shell is something crazy like, oooh,
289         /bin/tcsh, trying to execute bourne shell helper scripts with
290         the `$SHELL /path/to/helper $helper_flags' idiom incase the
291         execute bits were lost by say, eeer, cvs, is gonna blow up in
292         our faces.  This changeset tries to save these people from
293         their shells^H^H^H^H^H^H^H^H^Hmselves :->
295         * tests/defs.m4sh (SHELL): Move definition from here...
296         * config/general.m4sh (SHELL): ...to here.
298 2004-11-23  Gary V. Vaughan  <gary@gnu.org>
300         The ltdl.h header is the published interface to libltdl, and
301         is thus not installed to $prefix/include/libltdl.  It has always
302         been used with `#include <ltdl.h>', so move just that one file
303         back to where it was before:
305         * libltdl/libltdl/ltdl.h: Moved from here...
306         * libltdl/ltdl.h: ...to here.
307         * libltdl/Makefile.am: Adjust.
309 2004-11-23  Peter O'Gorman  <peter@pogma.com>
311         Do not require that libtoolize --ltdl=/some/path end in libltdl.
312         Move most libltdl headers to libtldl/libltdl to allow
313         `#include <libltdl/ltdl.h>' to always work:
315         * libltdl/Makefile.am, libltdl/loaders/Makefile.am: Look for includes
316         in the new location.
317         * libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__dirent.h,
318         libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h,
319         libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h,
320         libltdl/libltdl/lt_system.h, libltdl/libltdl/ltdl.h,
321         libltdl/libltdl/slist.h: Added files, moved from libtdl/.
322         * libltdl/lt__alloc.h, libltdl/lt__dirent.h, libltdl/lt__glibc.h,
323         libltdl/lt__private.h, libltdl/lt_dlloader.h, libltdl/lt_error.h,
324         libltdl/lt_system.h, libltdl/ltdl.h, libltdl/slist.h: Removed, moved
325         to libltdl/libltdl.
327 2004-11-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
329         * doc/libtool.texi (LT_INIT): s/libtool 1.6/libtool 2.0/.
330         (Invoking libtoolize): Fix typo.
332 2004-11-22  Gary V. Vaughan  <gary@gnu.org>
334         * config/ltmain.m4sh (func_mode_install): Now that func_mktempdir
335         has been improved, the default directory template is perfectly
336         fine.
338         * doc/libtool.texi (Invoking libtoolize): Improve documentation
339         for use of ACLOCAL_AMFLAGS and AC_CONFIG_MACRO_DIR.
341 2004-11-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
343         * m4/libtool.m4 (_LT_TAG_COMPILER): Document that with_gcc is
344         tag-dependent.
346         * m4/libtool.m4, tests/demo-nopic.test: Undo bogus commit.
348         * config/ltmain.m4sh (func_mode_link), tests/objectlist.test:
349         Make sure the argument to `-objectlist' may contain spaces.
351 2004-11-19  Gary V. Vaughan  <gary@gnu.org>
353         * config/m4general.m4sh, config/mailnotify.m4sh,
354         clcommit.m4sh: Updated from cvs-utils--tla--1.0 to allow
355         parallel commits, and use safer tmpfiles.
357 2004-11-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
359         * doc/libtool.texi (Libltdl interface): Typos.
361         * doc/libtool.texi (Libltdl interface): Document public macros
362         LT_PATHSEP_CHAR, LT_DIRSEP_CHAR, use in path descriptions.
364 2004-11-18  Daniel Reed  <djr@redhat.com>
366         * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [linux]: Interpret
367         `include' statements in toplevel ld.so.conf file.
369 2004-11-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
371         * m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin, mingw, pw32]:
372         tag-protect setting of ld_shlibs.
374 2004-11-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
376         * doc/libtool.texi (Libltdl interface): The path separator
377         is system-dependent.
379         * doc/libtool.texi (Linking static libraries): Typo.
381         * m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG)
382         [aix4/aix5 !ia64]: Set whole_archive_flag_spec to '$convenience'
383         so convenience libs are really added to the link cmdline.
385 2004-11-17  Mats Rynge  <rynge@isi.edu>
387         * libtool.m4 [linux]: Use only the CC basename in case statment
388         when checking for icc/ecc.  Allows for setting CC to the full path
389         to the compiler.
391         * libtool.m4 [solaris]: Added missing 'with linker' flags to
392         -z allextract ... -z defaultextract flags
394 2004-11-14  Gary V. Vaughan  <gary@gnu.org>
396         * m4/libtool.m4 (_LT_LINKER_SHLIBS): Typo: s/--rpath/-rpath/g.
397         (_LT_LANG_CXX_CONFIG): Ditto.
399         * configure.ac (APIVERSION): New substituted variable.
400         (pkgvdatadir): Ditto.  Versioned data directory.
401         (pkgvmacrodir): Ditto.  Versioned aclocal directory.
402         (LN): New check for LN command.
403         * Makefile.am (aclocal_DATA): Replaced with...
404         (pkgvmacro_DATA): ...this.
405         (install-data-local): Remove old shared resources.
406         (install-exec-hook): Make versioned links to executables.
407         (uninstall-hook): Remove versioned files.
408         * libltdl/Makefile.am (ltdldatadir): Redefine in terms of
409         pkgvdatadir.
410         * libltdl/loaders/Makefile.am (ltdldatadir): Ditto.
411         * libtoolize.m4sh: Copy macro files from versioned macro directory
412         instead of shared aclocal directory.
413         * doc/libtool.texi: Document it.
414         * NEWS: Updated.
416 2004-11-10  Gary V. Vaughan  <gary@gnu.org>
418         From James Henstridge <james@jamesh.id.au>:
419         * m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4: Added commented out
420         empty macro definitions to match each AU_DEFUN to help aclocal
421         from automake-1.4 regexps find the right libtool macro files.
423 2004-11-10  James E Wilson  <wilson@specifixinc.com>,
424             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
426         * config/ltmain.m4sh (func_mode_link), tests/Makefile.am,
427         Fix error message with `-objectlist' file that does not exist.
428         * tests/objectlist.test:  New test for this.
430         * Makefile.am: config/ltmain.sh is generated by
431         config/ltmain.m4sh.
433 2004-11-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
435         * doc/libtool.texi (Compile mode, Link mode,
436         Libltdl interface, Test descriptions, libtool script
437         contents): Some quote cleanup, more use of texinfo types.
439         * doc/libtool.texi (libtool script contents):
440         echo is now ECHO; mention argument restriction.
442         * doc/libtool.texi (Multiple dependencies): Minor rewording.
444         * doc/libtool.texi (User defined module data, References):
445         indentation and word-wrap cleanup.
447         * doc/libtool.texi (all over): White space cleanup:
448         two spaces at start of sentence, no TABs.
450 2004-11-09  Gary V. Vaughan  <gary@gnu.org>,
451             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
453         * doc/libtool.texi (libtool script contents): Fix description
454         of need_lib_prefix.
456 2004-11-08  Peter Ekberg  <spam.protected>
458         * config/ltmain.m4sh (func_mode_link): forward thread
459         related flags to dependent applications and libraries
460         by adding them to `inherited_linker_flags'.
462 2004-11-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
464         * m4/ltoptions.m4: Change all references of LT_LIBTOOL_INIT
465         to LT_INIT.
467 2004-11-05  Peter Ekberg  <spam.protected>
469         * ltmain.m4sh (cwrappersource): clean up other warning on MinGW.
471 2004-11-04  Bernhard Fischer  <spam.protected>,
472             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
474         * m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS), m4/ltoptions.m4
475         (_LT_SET_OPTIONS), README, README.alpha: Typos.
477 2004-11-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
479         * libtldl/ltdl.c (parse_dotla_file): Fix memleak.
481         * ltmain.m4sh (cwrappersource): Cast isalpha arguments correctly.
483 2004-11-03  Peter Ekberg  <spam.protected>
485         * ltmain.m4sh (cwrappersource): clean up warnings and
486         #include errors on MinGW.
488 2004-11-01  Peter Ekberg  <spam.protected>
490         * config/ltmain.m4sh (cwrappersource): clean up warnings and
491         #include errors.
493 2004-11-01  Peter Ekberg  <spam.protected>
495         Sometimes, a wrapper script is generated for an executable that,
496         itself, does not link against an uninstalled library.  It appears
497         that this can happen if you are building a project where:
499           (1) there is a library
500           (2) there is an executable that does not, itself, link against
501               that library
503         In this case, notinst_deplibs is empty, and when the wrapper
504         script is loaded by libtool during ./libtool mode=install, there
505         is a check for "is notinst_deplibs empty".  In this case, it is,
506         so libtool reports an error.
508         I don't think it is wrong to have a wrapper script for an exe that
509         *technically* doesn't need it.  But instead of checking for
510         notinst_deplib nonempty as a proxy for "did wrapper script get
511         sourced into my environment properly" a different var should be
512         used.
514         * config/ltmain.m4sh (func_mode_install): set new variable
515         `generated_by_libtool_version' in wrapper script when using
516         libtool_install_magic.  When verifying that wrapper script was
517         properly sourced, check that `generated_by_libtool_version' is
518         non-empty, instead of using notinst_deplibs.
520 2004-11-01  Charles Wilson  <spam.protected>,
521             Peter Ekberg  <spam.protected>
523         * config/ltmain.m4sh (func_mode_install): On Windows based hosts,
524         ensure that import libraries don't get stripped.
525         * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): On Windows based hosts,
526         use postinstall_cmds to strip DLL (not import lib!) when symbol
527         stripped installation was requested.
529 2004-10-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
531         * libltdl/ltdl.c (loader_init_callback): Back out broken cast.
533         * libltdl/ltdl.c (loader_init_callback, lt_dlexit): Add casts to
534         target type.
536         * tests/defs.m4sh (func_exec): `shift'ing when there is nothing
537         to shift is non-portable.
539 2004-10-28  Patrick Welche  <prlw1@newn.cam.ac.uk>,
540             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
542         * Makefile.am, Makefile.maint: Use path for dependencies built
543         in the source tree, to cater for BSD make.
545 2004-10-24  Noah Misch  <noah@cs.caltech.edu>
547         * config/ltmain.m4sh (func_lalib_p, func_ltwrapper_p): New
548         functions that abstract .la sanity checking.
549         (func_mode_execute, func_mode_install, func_mode_link)
550         (func_mode_uninstall): Use them.
552 2004-10-24  Gary V. Vaughan  <gary@gnu.org>
554         * config/ltmain.m4sh (opt_silent): Whether --silent was given.
555         (run, show): Deleted.  All callers converted to opt_dry_run,
556         opt_silent or calls to func_show_eval.
557         * tests/mdemo-dryrun.test: Adjust.
559         * HACKING: Fix a typo in the gpg --verify instructions.
561         * Makefile.maint (cvs-dist): Generate signatures and directives
562         for bz2 upload.
564 2004-10-23  Peter O'Gorman  <peter@pogma.com>
566         * config/ltmain.m4sh (func_mode_link): Make Gary's new tests
567         pass. When the output wrapper script is not in the current
568         directory, we can not use an rpath which is relative to the
569         current directory. Use an absolute path instead.
571 2004-10-22  Gary V. Vaughan  <gary@gnu.org>
573         * clcommit.m4sh: Add --rcfile option.
575         * clcommit.m4sh: Updated again, to support file list limited
576         commits to CVS, and to fix another occurence of the bash bug
577         that was preventing non-tla users from sending a commit mail.
579 2004-10-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
581         * TODO, libltdl/lt_error.h, libltdl/ltdl.c, libltdl/ltdl.h:
582         Undo accidental commit.
584         * Makefile.maint: Fix typo.
586 2004-10-22  Gary V. Vaughan  <gary@gnu.org>
588         * clcommit.m4sh, config/mailnotify.m4sh: Updated from
589         cvs-utils--tla--1.0 to fix quoting of metachars in patch names.
591         * HACKING: Updated: `.in' files are now `.m4sh'; document some
592         more coding standards for these files.
594         * config/general.m4sh (sed_double_backslash): Undo an
595         over-optimisation.
597 2004-10-21  Gary V. Vaughan  <gary@gnu.org>
599         * AUTHORS: Reformatted to better reflect the current state of
600         Libtool maintainership.
601         * THANKS: Reformatted to give maintainers a quick way to look
602         up who has supplied FSF paperwork.
604 2004-10-21  Noah Misch  <noah@cs.caltech.edu>,
605             Gary V. Vaughan  <gary@gnu.org>
607         * config/general.m4sh (sed_double_backslash): Improve this sed
608         expression to correct left anchored \$ input to
609         double_quote_subst, as well as backslash escaped $ preceded by
610         any odd-numbered amount of \ characters.
612 2004-10-20  Gary V. Vaughan  <gary@gnu.org>
614         * config/general.m4sh (sed_double_backslash): New sed expression
615         to escape \$ properly in combination with double_quote_subst.
616         (func_quote_for_eval): Four space indent margin for functions!
617         (func_quote_for_expand): Use $sed_double_backslash.
618         (func_show_eval): New function that echos an escaped but variable
619         expanded command, and then evaluates it.
621 2004-10-20  Noah Misch  <noah@cs.caltech.edu>,
622             Gary V. Vaughan  <gary@gnu.org>
624         * m4/libtool.m4 (sed_quote_subst): Remove superfluous backslashes
625         from the match character set.
626         (double_quote_subst): Ditto.
627         * config/general.m4sh (sed_quote_subst): Ditto.
628         (double_quote_subst): New variable, copied from
629         m4/libtool.m4. Much the same as sed_quote_subst, but variable
630         references are not quoted.
631         (func_quote_for_eval): Given any $foo; $bar and
632         $foo must be identical after the following commands:
633             func_quote_for_eval "$foo"
634             eval "bar=$func_quote_for_eval_result"
635         (func_quote_for_expand): In a similar vein to to func_quote_for_eval,
636         except that variable expansions are not protected when quoting the
637         command for subsequent display.
638         * config/ltmain.m4sh: Factor away use of $sed_quote_subst now that
639         it has been subsumed into func_quote_for_eval.
640         (func_mode_link): Instead of `2004-10-14 Peter O'Gorman' below,
641         use func_quote_for_expand so that ${wl} is expanded properly in
642         the $show expression.
644 2004-10-16  Gary V. Vaughan  <gary@gnu.org>
646         * config/ltmain.m4sh (func_mode_finish): solaris-2.6 also has
647         crle(1).
648         Reported by Albert Chin-A-Young <china@thewrittenword.com>
650 2004-10-16  Gary V. Vaughan  <gary@gnu.org>
652         Add some new tests for Libtool's support of Automake
653         subdir-objects builds.  This marks the beginning of a move to an
654         Autotest driven test framework, which will eventually allow us to
655         trim away many of the generated files in the current test demo
656         subdirectories:
658         * configure.ac (AC_CONFIG_TESTDIR): Re-enable commented out
659         Autotest macros.
660         (AUTOTEST, M4SH): Use --language long hand.
661         * bootstrap: Generate tests/testsuite, and by implication
662         tests/package.m4.
663         * Makefile.am (edit): Add substitutions needed to generate
664         tests/package.m4 from bootstrap.
665         (check-recursive): Add tests/testsuite.
666         (TESTSUITE): The new Autotest testsuite target.
667         (TESTSUITE_AT): The Autotest sources.
668         (EXTRA_DIST): Distribute the generated testsuite and sources.
669         (tests/package.m4): Use $(edit) to propagate package metadata to
670         the new tests.
671         (tests/testsuite): Build the testsuite.
672         (tests/atconfig): How to regenerate the file.
673         (check-local): Hook Autotest into `make check'.
674         (installcheck-local): Run the testsuite on the installed tree.
675         (clean-local): Tidy our file droppings.
676         * tests/Makefile.am: Remove bitrotted code from Autotest
677         experiments in Autoconf 2.52 era.  Updated the rest and moved into
678         Makefile.am.
679         * tests/testsuite.at: New container for Autotest test groups.
680         * tests/am-subdir.at: New test group for compatibility with
681         Automake's subdir-objects builds.  Currently holds two tests, one
682         for a C project and another similar project in C++.
683         * TODO: Add an entry to remind us that these new tests expose a
684         bug in libtool.
685         * NEWS: Updated.
687 2004-10-14  Peter O'Gorman  <peter@pogma.com>
689         * config/ltmain.m4sh: Revert most of my last commit, only eval
690         \$show \"$cmds\", and only when building a library. I'm a wimp.
691         Thanks Gary for pointing out errors in previous commit.
693 2004-10-13  Gary V. Vaughan  <gary@gnu.org>
695         * config/ltmain.m4sh (func_mode_finish): Mention crle(1) on
696         solaris 2.7 and higher in the finalisation notes.
697         Reported by Kurt J. Lidl <lidl@pix.net>
699         * tests/cdemo-undef.test: New test for hosts that allow shared
700         libraries with undefined symbols, but have no C++ compiler
701         installed.
702         * tests/Makefile.am (COMMON_TESTS): Add it.
704 2004-10-13  Peter O'Gorman  <peter@pogma.com>
706         * config/ltmain.m4sh: Make sure that we $show what we will $run,
707         use eval $show if we do $run eval.
709 2004-10-13  Charles Wilson  <spam.protected>
711         * config/ltmain.m4sh: add foo/bin for every foo/lib
712         in dllsearchpath when creating wrapper script.  Fixes
713         depdemo-relink test failure.
715 2004-10-12  Charles Wilson  <spam.protected>
717         * config/ltmain.m4sh (func_mode_link): don't relink
718         on cygwin/mingw; no need.  But do ensure that wrappers
719         are created unless doing a purely static build.
721 2004-10-13  Gary V. Vaughan  <gary@gnu.org>
723         * tests/tagdemo-undef.test: New test for hosts that allow shared
724         libraries with undefined symbols.
725         * tests/Makefile.am (CXX_TESTS): Add it.
727 2004-10-11  Charles Wilson  <spam.protected>
729         * tests/link.test: Fix check for use of libnlsut.a under
730         Cygwin.
732 2004-10-11  Noah Misch  <noah@cs.caltech.edu>
734         * tests/quote.test: Do not look for $preargs in the output,
735         because libtool may change them.
737 2004-10-10  Charles Wilson  <spam.protected>
739         * config/ltmain.m4sh: Really don't require versions of GNU
740         sed newer than 3.02 for Cygwin and MinGW, and don't break
741         dryrun mode.
743 2004-10-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
745         * config/getopt.m4sh: Under MinGW, reported paths may include ':'
746         so ':' should not be used as the sed delimiter.  Use '*' instead
747         since it is very unlikely to appear in a path.
749 2004-10-10  Albert Chin-A-Young  <china@thewrittenword.com>
751         * config/ltmain.m4sh: Don't require versions of GNU sed newer than
752         3.02 for Cygwin and MinGW.
754 2004-10-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
756         * tests/pdemo-inst.test: Correction for mis-application of
757         Charles Wilson's earlier patch.
759 2004-10-09  Gary V. Vaughan  <gary@gnu.org>
761         * m4/libtool.m4 (_LT_LANG_F77_CONFIG): Make sure the save and
762         restore code for CC is nested at the same depth.
763         (_LT_LANG_CXX_CONFIG): Ditto, but for several variables.
765 2004-10-08  Gary V. Vaughan  <gary@gnu.org>
767         Update to the latest commit and mailnotify scripts from
768         gary@gnu.org--2004/cvs-utils--tla--1.0:
770         * commit, config/mailnotify: Removed.  Now built from...
771         * clcommit.m4sh, config/mailnotify.m4sh: ...these new sources.
772         * Makefile.maint (commit, config/mailnotify): How to build them.
773         * bootstrap: If we have a checked out tree (i.e. clcommit.m4sh
774         is present), then build them.
776 2004-10-08  Gary V. Vaughan  <gary@gnu.org>
778         Fix some issues that mangled the reexecution path to a script,
779         and thus prevented it from finding itself:
781         * config/general.m4sh (progname): Don't actually change the name
782         of the script if it begins with a `-', just prepend `./'.
783         (progpath): Add a new clause that first searches the execution
784         PATH, and then finally assumes this script is in the current
785         working directory if $progname has no directory separators (e.g
786         when invoked as `$SHELL progname').
788 2004-10-08  Gary V. Vaughan  <gary@gnu.org>
790         * config/general.m4sh (func_verbose): Work around a bash bug in
791         shell functions.
793 2004-10-08  Charles Wilson  <cygwin@cwilson.fastmail.fm>
795         * tests/pdemo-inst.test: pdemo-inst should depend on pdemo-make.
796         * config/ltmain.m4sh: Windows and Cygwin reserve the .lnk
797         extension to represent shortcuts.  Use the extension ".lnkscript"
798         rather than ".lnk" for the piecewise linking ld script in order to
799         avoid the conflict.
801 2004-10-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
803         * libltdl/ltdl.c (lt_dlexit, lt_dlpath_insertdir): Fix memleaks,
804         free user_search_path on lt_dlexit.
806 2004-10-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
808         * tests/sh.test: Remove tests which fail on AS_SHELL_SANITIZE
809         from autoconf >= 2.59.
811         * TODO: Remove item: no need for a libltdl without stdio.
813 2004-10-07  Gary V. Vaughan  <gary@gnu.org>
815         * tests/defs.m4sh (scripts): Actually scan the generated ltmain.sh
816         for shell portability problems.
818         * m4/libtool.m4 (_LT_FORMAT_COMMENT): Shell meta-characters in
819         _LT_DECL descriptions were not being escaped before injection into
820         TAG CONFIG here documents in config.status.
822 2004-10-06  Peter O'Gorman  <peter@pogma.com>
824         * m4/libtool.m4 (_LT_PROG_CXX, _LT_PROG_F77): New macros to work
825         around the deficiencies in AC_PROG_CXX and AC_PROG_F77.
826         * configure.ac: Cleaned up, having moved the checks for compilers
827         which do not exist to libtool.m4.
829 2004-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
831         * libltdl/ltdl.c (try_dlopen): Move .la file parsing
832         part.. (parse_dotla_file): ..here.  Adjust.
834         * libltdl/ltdl.c (load_deplibs, try_dlopen): Revert unnecessary casts
835         to int from my patch from 2004-10-01.
837         * AUTHORS: Add myself.
839 2004-10-05  Peter O'Gorman  <peter@pogma.com>
841         * config/ltmain.m4sh [darwin]: Make the -dylib_file flag work on
842         older darwins too. Reported by Christoph Egger.
844 2004-10-05  Gary V. Vaughan  <gary@gnu.org>
846         * configure.ac: Bumped version to 2.1a.
848 2004-10-04  Gary V. Vaughan  <gary@gnu.org>
850         * m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH): Don't confuse $ECHO
851         with $lt_ECHO, or we always get a libtool with ECHO=echo, rather
852         than testing for a mechanism that quotes \ properly.
853         * NEWS: Updated.
855         * config/ltmain.m4sh: Need to include getopt.m4sh earlier so that
856         progpath is set before it is called to --no-reexec.
857         * NEWS: Updated.
859 2004-10-04  Gary V. Vaughan  <gary@gnu.org>
861         Without this change, the distributed libtool tarball has a
862         dependency on autom4te.  There was some inconsistency in the
863         filenames: now we have foo.m4sh -> m4sh -> foo.in -> configure
864         -> foo[.sh].  Bootstrap runs the m4sh steps and the resulting .in
865         files are distributed:
867         * tests/Makefile.am (EXTRA_DIST): Distribute defs.m4sh.
868         * Makefile.am (EXTRA_DIST): Distribute libtoolize.m4sh.
869         (libtoolize.in, libtoolize): Split into bootstrap and runtime
870         stages.
871         ($(top_srcdir)/tests/defs.in, $(top_srcdir)/tests/defs): Ditto.
872         ($(top_srcdir)/config/ltmain.sh): Swap ltmain.m4sh and ltmain.in
873         names.
874         * bootstrap: Make libtoolize.in and tests/defs.in.
875         * NEWS: Updated.
877 2004-10-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
879         * README, README.alpha: Update notes regarding available VERBOSE
880         settings.
882 2004-10-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
884         * config/ltmain.in: Change $XSED to $Xsed to fix hang noticed
885         under MinGW.
886         * tests/defs.in: Support VERBOSE=debug to enable shell tracing
887         while running tests.
889 2004-10-03  Gary V. Vaughan  <gary@gnu.org>
891         * NEWS: Updated.
892         * configure.ac: Bumped version to 1.9e.
894         GNU libtool 1.9d was released.
896         * configure.ac: Bumped version to 1.9d.
897         * NEWS: Updated.
899         * libltdl/lt__alloc.h (lt__alloc_die): Declare with LT_SCOPE as
900         per Ralf's original patch.
901         Reported by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
903         * libltdl/Makefile.am (libltdlc_la_LIBADD): Don't use
904         libdlloader_la_OBJECTS, an undocumented Automake internal
905         variable...
906         (libltdlc_la_SOURCES): ...use libdlloader_la_SOURCES here
907         instead.
908         Reported by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
910         * libltdl/argz_.h: Forgot to spell lt_system.h with just one `_'.
912         * libltdl/argz_.h: Forgot to include lt__system.h for LT_SCOPE
913         definition.
915 2004-10-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>,
916             Gary V. Vaughan  <gary@gnu.org>
918         * libltdl/lt__alloc.h: Declare exported functions with LT_SCOPE
919         for mingw32.
920         * libltdl/lt__dirent.h: Ditto.
921         * libltdl/argz._h: Ditto.  Be careful about not requiring
922         additional libltdl files when used outside of libltdl.
923         * libltdl/slist.h: Ditto.
924         * HACKING: Add a section on libltdl implementation layering.
926 2004-10-03  Gary V. Vaughan  <gary@gnu.org>
928         * tests/quote.test: echo is called ECHO now.  Make sure we extract
929         the value of ECHO from the libtool script.
930         Reported by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
932 2004-10-02  Gary V. Vaughan  <gary@gnu.org>
934         * m4/libtool.m4 (hardcode_shlibpath_var) [darwin7*]: Revert my
935         hack from 2004-09-30 now that I've removed /lib/hello.la and the
936         tests work properly for me again.
938 2004-10-02  Jim Tison  <jtison@us.ibm.com>
940         Initial support for s390x-ibm-tpf:
942         * m4/libtool.m4: Correct obvious spelling errors in remarks.
943         (_LT_ENABLE_LOCK): Make s390x-ibm-tpf hosts adopt elf64_s390
944         conventions.
945         (_LT_SYS_DYNAMIC_LINKER): Set defaults for s390x-ibm-tpf host.
946         (_LT_CHECK_MAGIC_METHOD): Skip all dependency checks for
947         s390x-ibm-tpf hosts.
948         (_LT_LINKER_SHLIBS): Make s390x-ibm-tpf hosts adopt GNU/Linux OS
949         attributes.
950         * NEWS: Updated.
952 2004-10-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
954         * config/ltmain.in (func_mode_install): Need to set $tmpdir before
955         using it.
957         * config/ltmain.in (func_mode_link): Fix quoting bug.  Fixes
958         e.g. the quoting of the -export-symbols-regex argument in .la
959         files' relink_command.
961         * libltdl/lt__alloc.c (lt__memdup): Allocation can fail, so we
962         need to guard against null pointer dereference here.
963         * libltdl/ltdl.c (lt_dlcaller_register): Ditto.
965         * libltdl/slist.c (slist_foreach): result was declared as
966         inner variable, shadowing the actually returned value.
968         * libltdl/ltdl.c (load_deplibs, try_dlopen): Cast argument
969         to isspace/isalnum to the correct range.  Also, cast to int to
970         avoid compiler warnings.
972 2004-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
974         * libltdl/ltdl.c (try_dlopen): Fix null pointer dereference in
975         case the name given to lt_dlopen contains no extension.
977         * libltdl/lt_dlloader.c (lt_dlloader_remove), libltdl/ltdl.c
978         (tryall_dlopen, lt_dlhandle_next): Show usage of function pointers.
980         * doc/libtool.texi (LT_INIT, Using libltdl)
981         (Module loaders for libltdl, Multiple dependencies)
982         (libtool script contents): Fix several typos (trivial change).
983         Also, libltdl consists of more than two small files.
985 2004-09-30  Gary V. Vaughan  <gary@gnu.org>
987         * m4/libtool.m4 (hardcode_shlibpath_var) [darwin7]: My Panther
988         workstation doesn't hardcode the shared library path, although it
989         used to, so this is more likely a function of the binutils and/or
990         gcc I am using at the moment.  The hardcode value setting code for
991         the configure script sucks at the moment though...
992         * TODO: ...and needs to do a test compile instead of a table
993         lookup before 2.0 final.
995         * m4/libtool.m4 (echo): Use ECHO throughout for consistency with
996         config/ltmain.in.
997         Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
999         * m4/libtool.m4 (rm): Use RM throughout for consistency with
1000         config/ltmain.in.
1001         Reported by Charles Wilson <cwilson@spam.protected>
1003 2004-09-27  Peter O'Gorman  <peter@pogma.com>
1005         * m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [darwin]: Don't echo gcc -v
1006         output during configure. (Really this time, honest)
1008 2004-09-26  Albert Chin-A-Young  <china@thewrittenword.com>
1010         * m4/libtool.m4 (_LT_LINKER_SHLIBS) [aix]: In archive_expsym_cmds,
1011         move -bnoentry linker option before $compiler_flags to honor any
1012         possible -e entries in LDFLAGS.
1014 2004-09-25  Gary V. Vaughan  <gary@gnu.org>
1016         * config/ltmain.in (func_mode_link): When linking an installed
1017         libtool library on the command line using -lfoo we need to find
1018         the library in the search paths and add it's dependency_libs to
1019         the link in the conv pass so that any libtool libs listed are
1020         correctly expanded in the link pass.
1022 2004-09-24  Charles Wilson  <cwilson@spam.protected>
1024         * libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Revert changeset from
1025         `2004-09-22  Charles Wilson  <cwilson@spam.protected>'.
1027 2004-09-24  Gary V. Vaughan  <gary@gnu.org>
1029         * config/general.m4sh (Xsed): Set a default when not used from
1030         ltmain.in.
1031         (ECHO): Audit for (and correct!) uses of $ECHO with more than one
1032         argument, which breaks when ECHO='printf %s\n', and with possible
1033         `-' as first character of the argument, which breaks `print -r'
1034         and some implementations of `echo'.
1035         * config/ltmain.in, tests/defs.in, libtoolize.in (ECHO): Ditto.
1036         Reported by Albert Chin-A-Young <china@thewrittenword.com>
1038 2004-09-24  Peter O'Gorman  <peter@pogma.com>
1040         * m4/libtool.m4 (_LT_CMD_STRIPLIB) [darwin]: strip archives too.
1042         * m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [darwin]: Don't echo gcc -v
1043         output during configure.
1045 2004-09-24  Gary V. Vaughan  <gary@gnu.org>
1047         * m4/libtool.m4 (_LT_DECL_EGREP): Only the newest CVS autoconf
1048         AC_SUBSTs for GREP.  Do our own here too to cater for release
1049         autoconfen.
1051         * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [openbsd3.3]: Set
1052         need_version to yes or no depending on the os release.
1053         Reported by Dalibor Topic <robilad@kaffe.org>
1055 2004-09-23  Gary V. Vaughan  <gary@gnu.org>
1057         * tests/cdemo-conf.test, tests/cdemo-exec.test,
1058         tests/cdemo-make.test, tests/cdemo-shared.test,
1059         tests/cdemo-static.test, tests/demo-conf.test,
1060         tests/demo-deplibs.test, tests/demo-exec.test,
1061         tests/demo-hardcode.test, tests/demo-inst.test,
1062         tests/demo-make.test, tests/demo-nofast.test,
1063         tests/demo-noinst-link.test, tests/demo-nopic.test,
1064         tests/demo-pic.test, tests/demo-relink.test,
1065         tests/demo-shared.test, tests/demo-static.test,
1066         tests/demo-unst.test, tests/depdemo-conf.test,
1067         tests/depdemo-exec.test, tests/depdemo-inst.test,
1068         tests/depdemo-make.test, tests/depdemo-nofast.test,
1069         tests/depdemo-relink.test, tests/depdemo-shared.test,
1070         tests/depdemo-static.test, tests/depdemo-unst.test,
1071         tests/f77demo-conf.test, tests/f77demo-exec.test,
1072         tests/f77demo-make.test, tests/f77demo-shared.test,
1073         tests/f77demo-static.test, tests/link-2.test, tests/link.test,
1074         tests/mdemo-conf.test, tests/mdemo-dryrun.test,
1075         tests/mdemo-exec.test, tests/mdemo-inst.test,
1076         tests/mdemo-make.test, tests/mdemo-shared.test,
1077         tests/mdemo-static.test, tests/mdemo-unst.test,
1078         tests/mdemo2-conf.test, tests/mdemo2-exec.test,
1079         tests/mdemo2-make.test, tests/nomode.test, tests/pdemo-conf.test,
1080         tests/pdemo-exec.test, tests/pdemo-inst.test,
1081         tests/pdemo-make.test, tests/quote.test, tests/sh.test,
1082         tests/suffix.test, tests/tagdemo-conf.test,
1083         tests/tagdemo-exec.test, tests/tagdemo-make.test,
1084         tests/tagdemo-shared.test, tests/tagdemo-static.test,
1085         tests/tagtrace.test: POSIX `.' searches only in user's $PATH, so
1086         we must use `. ./defs' to source the common code.
1087         Reported by Alexandre Duret-Lutz <adl@src.lip6.fr>
1089         * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Gah.  Merge error
1090         corrected.
1092 2004-09-23  Gary V. Vaughan  <gary@gnu.org>
1094         Since defs can change (path to grep for example) when it is made
1095         for a different host, it can't be shipped.  That also means that
1096         defs will always be generated in the build tree, so each test case
1097         can have the srcdir discovery factored away into tests/defs.in:
1099         * Makefile.am (EXTRA_DIST): s/defs/defs.in/g
1100         * tests/Makefile.am (defs): New rule to remake defs from the
1101         parent directory's Makefile.
1102         * tests/cdemo-conf.test, tests/cdemo-exec.test,
1103         tests/cdemo-make.test, tests/cdemo-shared.test,
1104         tests/cdemo-static.test, tests/demo-conf.test,
1105         tests/demo-deplibs.test, tests/demo-exec.test,
1106         tests/demo-hardcode.test, tests/demo-inst.test,
1107         tests/demo-make.test, tests/demo-nofast.test,
1108         tests/demo-noinst-link.test, tests/demo-nopic.test,
1109         tests/demo-pic.test, tests/demo-relink.test,
1110         tests/demo-shared.test, tests/demo-static.test,
1111         tests/demo-unst.test, tests/depdemo-conf.test,
1112         tests/depdemo-exec.test, tests/depdemo-inst.test,
1113         tests/depdemo-make.test, tests/depdemo-nofast.test,
1114         tests/depdemo-relink.test, tests/depdemo-shared.test,
1115         tests/depdemo-static.test, tests/depdemo-unst.test,
1116         tests/f77demo-conf.test, tests/f77demo-exec.test,
1117         tests/f77demo-make.test, tests/f77demo-shared.test,
1118         tests/f77demo-static.test, tests/link-2.test, tests/link.test,
1119         tests/mdemo-conf.test, tests/mdemo-dryrun.test,
1120         tests/mdemo-exec.test, tests/mdemo-inst.test,
1121         tests/mdemo-make.test, tests/mdemo-shared.test,
1122         tests/mdemo-static.test, tests/mdemo-unst.test,
1123         tests/mdemo2-conf.test, tests/mdemo2-exec.test,
1124         tests/mdemo2-make.test, tests/nomode.test, tests/pdemo-conf.test,
1125         tests/pdemo-exec.test, tests/pdemo-inst.test,
1126         tests/pdemo-make.test, tests/quote.test, tests/sh.test,
1127         tests/suffix.test, tests/tagdemo-conf.test,
1128         tests/tagdemo-exec.test, tests/tagdemo-make.test,
1129         tests/tagdemo-shared.test, tests/tagdemo-static.test,
1130         tests/tagtrace.test: Removed srcdir discovery boilerplate...
1131         * tests/defs.in: ...and put it here.
1133 2004-09-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1135         * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): move symcode calculation
1136         to correct place.
1137         * doc/libtool.texi (libtool script contents): update description
1138         of global_symbol_to_cdecl.
1140 2004-09-23  Gary V. Vaughan  <gary@gnu.org>
1142         * configure.ac (M4SH): AC_SUBST m4sh expander.
1143         * config/general.m4sh, config/getopt.m4sh: New files with factored
1144         out functionality from...
1145         * config/ltmain.in, libtoolize.in: ...here.  m4_include the shared
1146         code, and call AS_SHELL_SANITIZE.  Also quote all `[' and `]' to
1147         survive m4 run.
1148         (func_serial): No need to double up m4sh quotes after a `#'.
1149         (func_check_macros): Escape `dnl' to stop m4sh interpreting it as
1150         a macro.
1151         * tests/defs.in: New file expanded into tests/defs by autom4te.
1152         * m4/libtool.m4 (_LT_DECL_EGREP): Also require fgrep for the tests
1153         that use it.
1154         * Makefile.am ($(top_srcdir)/config/ltmain.sh): Now built with
1155         M4SH.
1156         (libtoolize): Ditto.
1157         * bootstrap: Set M4SH for call to make.
1158         * HACKING: No need to sync to AS_SHELL_SANITIZE by hand any more.
1160         * m4/libtool.m4: _LT_DECL uppercase ECHO.
1161         * config/ltmain.in: Use it throughout.
1162         (func_mkdir_p): Now matches the other implementations in
1163         tests/defs and libtoolize.in.
1164         * tests/sh.test: Updated to detect ECHO misuse.
1166 2004-09-22  Gary V. Vaughan  <gary@gnu.org>
1168         * config/ltmain.in (func_mode_link): Propagate a convenience
1169         library's dependency libs correctly when it is being linked into a
1170         libtool library.  Deplibs are now propagated whether libdir is set
1171         or not.
1173 2004-09-22  Andreas Schwab  <schwab@suse.de>
1175         The dlpreopen pass over libraries reverses the elements in the
1176         $deplibs list.  This causes problems when the link pass tries to
1177         find libraries when they are located in non-standard places
1178         denoted by -L options.  Due to the reversed order these -L options
1179         occur after the libraries that need them, and they are not found:
1181         * config/ltmain.in: (Un)Reverse $deplibs list at the start of the
1182         link pass in lib mode.
1184 2004-09-22  Charles Wilson  <cwilson@spam.protected>
1186         * ltmain.in (func_generate_dlsyms) [cygwin, mingw]: when creating
1187         a .exp file for an executable, also create a .def file, and add
1188         that file to the link command via SYMFILES.  This causes binutils
1189         to generate an .edata section, and allows self dlopening to work.
1190         * NEWS: Updated.
1192         * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): better quoting for
1193         postinstall_cmds and postuninstall_cmds to allow spaces in install
1194         paths.
1196         * config/ltmain.in (func_generate_dlsyms): Addresses in
1197         _preloaded_symbols[] cannot go into .rdata section if symbols are
1198         DATA imported from DLL, on windows, because runtime relocations
1199         must happen.
1200         * m4/libtool.m4 (_LT_LINKER_SHLIBS([TAGNAME])): Build exports for
1201         symbols in .rdata sections.
1203 2004-09-19  Gary V. Vaughan  <gary@gnu.org>
1205         The checks in assign.test are trying to catch case of this ilk:
1206         `foo=bar break', but unfortunately they also choke on `foo=bar;
1207         break' and `foo=bar && break'.  Writing a sophisticated test to
1208         catch just the intended case seems like more trouble than it's
1209         worth, but leaving the test in causes the testsuite to fail on
1210         valid m4sh output:
1212         * tests/assign.test: Removed; chokes on perfectly valid shell
1213         syntax.
1214         * tests/Makefile.am (COMMON_TESTS): Remove assign.test.
1215         * tests/defs.in (scripts): Don't check the m4sh inputs, go back
1216         to checking the generated ltmain.sh script.
1218 2004-09-17  Gary V. Vaughan  <gary@gnu.org>
1220         * config/ltmain.in (func_echo): Except for multi-line warnings and
1221         errors, always use func_echo.  $show is for command output, and
1222         $echo is for internal use in backtick expressions and similar.
1224 2004-09-17  Gary V. Vaughan  <gary@gnu.org>
1226         Missed a couple of MKDIR_P references in ltmain.in in my last
1227         patch; fix them carefully.  Introduce an opt_dry_run to ltmain.in
1228         so that the implementations of func_mkdir_p can converge, and a
1229         func_mktempdir to do a better job of temporary directory creation:
1231         * libtoolize.in (func_mkdir_p): Don't fail if the directory wasn't
1232         created in dry run mode.
1233         * tests/defs (func_mkdir_p): Ditto.  We don't actually have a dry
1234         run mode for the tests, but the function is written carefully to
1235         be kept in synch and work correctly here too.
1236         * config/ltmain.in (func_mkdir_p): Ditto.  This copy of the
1237         function now only differs in its use of $echo over $ECHO.
1238         (func_extract_archive): Removed first redundant mkdir call.
1239         (func_mktempdir): New function that tries to avoid races when
1240         making temporary directories.
1241         (opt_dry_run): Set this if --dry-run is given at the CLI, or if
1242         tests/mdemo-dryrun.test has forced the value of $run.
1243         (func_mode_install): Call $MKDIR directly and error out if the
1244         directory cannot be created.
1245         (func_mode_link): Rather than copying func_mkdir_p into the
1246         wrapper script as a replacement for $MKDIR_P, we know that the
1247         script won't be called my `make -j', so write the current value of
1248         $MKDIR.
1250 2004-09-17  Peter O'Gorman  <peter@pogma.com>
1252         * m4/libtool.m4: remove an extra "]"
1254         * m4/libtool.m4 [darwin] (_LT_LANG_CXX_CONFIG): Changes for 10.4.
1255         * config/libtool.in [darwin]: ditto.
1257 2004-09-16  Gary V. Vaughan  <gary@gnu.org>
1259         My most recent `2004-09-02 Gary V. Vaughan' patch for mkdir_p
1260         below is horrendously broken since it makes the installed libtool
1261         try to run the mkinstalldirs or install-sh helper scripts.  This
1262         patch fixes the `make -j' mkdir race condition internally:
1264         * libtoolize.in (func_mkdir_p): New slice and dice algorithm
1265         to build the directory tree one dir at a time, ignoring errors
1266         until the end incase they are transient due to a concurrent
1267         identical mkdir.
1268         * tests/defs (func_mkdir_p): Ditto.
1269         * config/ltmain.in (func_mkdir_p): Ditto, except that ltmain.in
1270         uses $echo rather than $ECHO, and uses $show and $run to interact
1271         correctly with the command line.
1272         * configure.ac (AM_INIT_AUTOMAKE): 1.8 is sufficient again.
1273         * Makefile.am (edit): Don't substitute automake's $(mkdir_p).
1274         * NEWS: Updated.
1276 2004-09-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1278         * libltdl/loaders/loadlibrary.c: Compilation fixes (originally
1279         from Gary V. Vaughan) to compile under MinGW.
1280         * config/mkstamp: Translate input data so that it is assured to
1281         use the Unix line terminations. This is necessary under Windows if
1282         the files are checked out with CR/NL line terminations. A
1283         side-effect of this change is that input must always be from
1284         stdin. Previously a filename argument was accepted as well.
1286 2004-09-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1288         * tests/Makefile.am: Use the same CPP, F77, CXX and CXXFLAGS
1289         for the test suite.
1291 2004-09-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1293         * m4/libtool.m4 (_LT_ENABLE_LOCK):Replace AC_TRY_LINK with
1294         AC_LINK_IFELSE to get rid of `autoconf -Wobsolete' warning.
1295         * m4/ltdl.m4 (LT_LIB_DLLOAD): Ditto.
1297 2004-09-15  Gary V. Vaughan  <gary@gnu.org>
1299         * config/ltmain.in (func_quote_for_eval): Set a return value to
1300         avoid forking at every call.  Changed all callers.
1301         (func_mode_link): Simplified, and removed the final non-portable
1302         nested escaped double quotes in back quotes usage in the process.
1304 2004-09-14  Gary V. Vaughan  <gary@gnu.org>
1306         * config/ltmain.in (func_quote_for_eval): Factor out the ugly
1307         shell meta-character quoting.  Changed all callers.
1309 2004-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1311         * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Simplification:
1312         distinguish between data and code symbols on every system.
1314 2004-09-14  Albert Chin-A-Young  <china@thewrittenword.com>
1316         Unfortunately, libtool has no way of telling if unrecognized
1317         compiler flags need an argument or not, and can disect options and
1318         pass parts through incorrectly.  This changeset reverts both
1319         2004-09-06 Albert Chin-A-Young (topmost) and 2004-09-05 Albert
1320         Chin-A-Young below, and recognises more options explicitly:
1322         * config/ltmain.in (func_mode_link): Pass through options needed
1323         to compile in 64-bit mode with gcc, and the SGI, Sun, HP and IBM
1324         compilers.
1326 2004-09-13  Gary V. Vaughan  <gary@gnu.org>
1328         * m4/libtool.m4 (_LT_CMD_GLOBALS_SYMBOLS): Fix a typo I made when
1329         applying 2004-09-11 Ralf Wildenhues.
1331 2004-09-12  Brad  <brad@comstyle.com>
1333         * libtool.m4: Fixes for the OpenBSD support
1335 2004-09-12  Peter O'Gorman  <peter@pogma.com>
1337         Our fortran tests were not very good. All the libraries created
1338         were convenience libs, so we did not test the creation of shared
1339         libraries on any platform. Also none of the libs used any actual
1340         fortran library calls, adding a call to write(*,*) in each lib
1341         causes the tests to fail on darwin (and presumably other platforms).
1342         These new tests would likely cause many more fortran test failures,
1343         so if there is an error during make it is reported as SKIP.
1345         * tests/f77demo-make.test: Don't fail hard, skip on failure.
1346         * tests/f77demo/foof2.f: New file.
1347         * tests/f77demo/foof3.f: New file.
1348         * tests/f77demo/fprogram.f: Call routine in new lib.
1349         * tests/f77demo/foof.f: Call routine in another new lib.
1350         * tests/f77demo/Makefile.am: Make a couple of new libraries, add
1351         $(FLIBS) to cprogram LDADD.
1353 2004-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1355         * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): The linker distinguishes
1356         data and code symbols on linux-gnu/ia64.  Fixes multiple testsuite
1357         failures.
1358         * NEWS: Updated.
1360 2004-09-06  Gary V. Vaughan  <gary@gnu.org>
1362         * libltdl/loaders/shl_load.c (get_vtable): Typo.
1364 2004-09-06  Albert Chin-A-Young  <china@thewrittenword.com>
1366         Hopefully, passing unrecognised compiler arguments through
1367         unmolested will prove to be a good plan for the 2.0 release.  If
1368         it goes awry, we can get back to where we were by reverting this
1369         patch and the 2004-09-05 Albert Chin-A-Young patch, aka
1370         gary@gnu.org--2004/libtool--devo--1.0--patch-169,172:
1372         * config/ltmain.in (func_mode_link): Because we now pass through
1373         compiler arguments we doesn't recognize, the code to pass
1374         through GCC's -m* arguments is not needed.
1376 2004-09-06  Albert Chin-A-Young  <china@thewrittenword.com>
1378         * Makefile.am (clean-ltmain-sh): Using '==' to test for equality
1379         in a shell script is not portable. Use '=' instead.
1381 2004-09-05  Andreas Schwab  <schwab@suse.de>
1383         * m4/ltdl.m4 (LT_WITH_LTDL): Remove excess quoting in argument of
1384         AC_CONFIG_SUBDIRS.
1386 2004-09-05  Albert Chin-A-Young  <china@thewrittenword.com>
1388         * config/ltmain.in (func_mode_link): Pass otherwise unrecognised +
1389         and - style switches to the compiler.
1390         * NEWS: Updated.
1392 2004-09-05  Gary V. Vaughan  <gary@gnu.org>
1394         * Makefile.am (libtool): Force libtool to be regenerated if
1395         stamp-vcl has changed.
1397 2004-09-05  Albert Chin-A-Young  <china@thewrittenword.com>
1399         * m4/libtool.m4, config/ltmain.in: When calling $LTCC,
1400         pass default $CFLAGS through with $LTCFLAGS.
1402 2004-09-03  David Edelsohn  <dje@watson.ibm.com>
1404         * config/ltmain.in (func_mode_link): Use $pic_object as
1405         $non_pic_object if $non_pic_object=none.
1406         * NEWS: Updated.
1408 2004-09-03  Gary V. Vaughan  <gary@gnu.org>
1410         * bootstrap: Remember that the ltmain.sh generated by bootstrap
1411         is missing most of its substitution values, so force it to be
1412         rebuilt at make time by touching $(top_srcdir)/config/ltmain.in.
1414         From Martin Quinson <mquinson@ens-lyon.fr>
1415         * m4/libtool.m4 (_LT_SETUP, _LT_ENABLE_LOCK, LT_PATH_LD): Use
1416         AS_HELP_STRING to get rid of autoconf -Wobsolete warning
1417         messages.
1418         * m4/ltdl.m4 (LT_WITH_LTDL, _LT_ENABLE_INSTALL): Ditto.
1419         * m4/ltoptions.m4 (_LT_ENABLE_SHARED, _LT_ENABLE_STATIC)
1420         (_LT_ENABLE_FAST_INSTALL, _LT_WITH_PIC): Ditto.
1421         * TODO: Updated
1423 2004-09-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1425         * libltdl/slist.c (slist_cons): Don't leak the tail of a list.
1427 2004-09-03  Albert Chin-A-Young  <china@thewrittenword.com>
1429         * m4/libtool.m4 (_LT_ENABLE_LOCK): Reformatted.
1431 2004-09-03  Gary V. Vaughan  <gary@gnu.org>
1433         * HACKING: Explain how to verify detached signatures with gpg in
1434         the release announcement templates.
1436         * AUTHORS: Fix typo in my address.
1438 2004-09-02  Gary V. Vaughan  <gary@gnu.org>,
1440         Builds of packages that use libtool and make -j produce "directory
1441         already exists warnings" for .lib directory.  Build on automake
1442         wisdom to support make -j builds where a suitable mkdir is
1443         available:
1445         * configure.ac (AM_INIT_AUTOMAKE): Require 1.9, which goes to some
1446         trouble to find a $(mkdir_p) that doesn't interfere with make -j.
1447         * Makefile.am (edit): Substitute for @mkdir_p@.
1448         * config/ltmain.in (MKDIR_P): Take @mkdir_p@ value.
1449         (mkdir): Removed.
1450         (func_mkdir_p): New function to use $MKDIR_P.  Factor out all
1451         previous mkdir calls to use this function.
1452         (RM, MV): Declared as in libtoolize.in.  Changed all callers.
1453         * libtoolize.in (MKDIR_P): Take @mkdir_p@ value from automake.
1454         (func_mkdir_p): Use it, similarly to new config/ltmain.in.
1455         * tests/defs: Synchronize boiler plate code with ltmain.in.
1456         Adjust all callers.
1457         Add missing copyright preamble.
1458         * tests/demo-static.test: Add missing copyright preamble.
1459         * NEWS: Updated.
1460         Reported by Daniel Reed <n@ml.org>
1462 2004-09-02  Gary V. Vaughan  <gary@gnu.org>,
1464         * Makefile.am (clean-ltmain-sh): Quote $(top_builddir) for the
1465         shell, incase it is not set when running maintainer rules with
1466         `make -fMakefile.maint'.
1467         Don't show the shell commands.
1469         * AUTHORS: Fix my email address.
1471 2004-09-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1473         * libltdl/ltdl.c (try_dlopen): Fix memory leak.
1474         * NEWS: Updated.
1476 2004-09-02  Gary V. Vaughan  <gary@gnu.org>,
1477             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1479         * libltdl/slist.c, libltdl/slist.h: Merge in changes from latest
1480         upstream.  Mostly comments, formal item boxing, a sort function,
1481         and const madness reduction.
1482         (slist_new): Removed.
1483         (slist_box, slist_unbox, slist_sort): New.
1484         (SListCompare, SListCallback): Swapped!
1485         (slist_remove, slist_find): Change order of parameters for
1486         orthogonality with slist_foreach.  Changed all callers.
1487         * libltdl/lt_dlloader.c (loader_cmp): Renamed to...
1488         (loader_callback): ...this.  Return boxed item.
1489         (lt_dlloader_remove): Adjust to new loader_callback semantics;
1490         unbox each removed item before returning.
1491         Remove unused variable.
1492         Remove const from name parameter, since the slist API cannot
1493         guarantee userdata const-ancy for its callback functions.
1494         (lt_dlloader_find): Adjust to new loader_callback semantics; need
1495         to return the contents of the boxed item.
1496         Remove const from name parameter, since the slist API cannot
1497         guarantee userdata const-ancy for its callback functions.
1498         * libltdl/lt_dlloader.h (lt_dlloader_find, lt_dlloader_remove):
1499         Adjust to new constless footprint.
1500         * libltdl/ltdl.c (ltdl_exit): The global `loaders' list is changed
1501         by `lt_dlloader_remove' while cleaning up, so the address in local
1502         variable `loader' is invalidated.  Since some loaders may be
1503         resident modules that cannot be unloaded (though we have none
1504         yet), we must save each `next' address before calling
1505         `lt_dlloader_remove'.
1506         * NEWS: Updated.
1507         * THANKS: Added Ralf.
1509 2004-09-01  Gary V. Vaughan  <gary@gnu.org>
1511         * libltdl/lt_dlloader.c (lt_dlloader_add): Handle malloc failure
1512         from slist_new.
1513         * libltdl/ltdl.c (loader_init): Trust lt_dlloader_add(), don't
1514         overwrite its error type, and simplify.
1515         Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1517 2004-09-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1519         * libltdl/slist.c (slist_new): Handle malloc failure gracefully.
1521 2004-09-01  Gary V. Vaughan  <gary@gnu.org>
1523         * libtoolize.in, config/ltmain.in: Add CDPATH protection to
1524         preamble.
1525         * tests/defs: Put a full m4sh.m4 style 'Be Bourne compatible'
1526         preamble in here too.
1527         * HACKING: Note that tests/defs needs synching with m4sh.m4 too.
1528         * TODO: Add new item.
1530         * libltdl/ltdl.c (try_dlopen, lt_dlforeachfile): Use correct cpp
1531         macro name, LT_DLSEARCH_PATH.
1533         * libltdl/ltdl.c (lt_dlexit, tryall_dlopen): Fix gcc parentheses
1534         warning.
1535         (foreach_dirinpath, try_dlopen, lt_dlpath_insertdir): Fix gcc
1536         signed vs unsigned warning.
1537         Reported by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1539         * m4/libtool.m4 (_LT_PROG_LTMAIN): Simplified in light of
1540         ltmain.sh no longer being in the build tree.
1541         Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1543 2004-09-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1545         * libltdl/loaders/preopen.c: Initialise memory in get_vtable.
1547         * tests/sh.test: Look in the source tree for ltmain.sh.
1549 2004-09-01  Gary V. Vaughan  <gary@gnu.org>
1551         Don't use C99 flexible array types as we want to be C89
1552         compatible.  Instead, revert to the old way of doing things with
1553         an array of symbol name vs. address, and adding the originator as
1554         the first symbol but with a NULL address:
1556         * config/ltmain.in (func_extract_dlsyms): Store originator as a
1557         NULL address symbol.
1558         * libltdl/ltdl.h (lt_dlsymbol): Removed.
1559         (lt_dlsymlist): Remove originator field.
1560         (LTDL_SET_PRELOADED_SYMBOLS): Adjust.
1561         * libltdl/loaders/preopen.c (vm_open, lt_dlpreload_open): Adjust
1562         for new types.
1563         (vm_sym): Skip the new originator symbol when scanning symbol
1564         names.
1565         * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Adjust preloaded symbols
1566         test file to match.
1567         * NEWS: Updated.
1568         Reported by Andreas Schwab <schwab@suse.de>
1570 2004-09-01  Gary V. Vaughan  <gary@gnu.org>
1572         Libtool currently assumes that certain characteristics, such as
1573         enable_shared, apply to the host architecture rather than per-
1574         language.  Running the tests over a broken compiler can corrupt
1575         these values, when there is no C++ compiler for example, so we
1576         skip most of the tests in those cases.
1578         * m4/libtool.m4 (_LT_LANG_CXX_CONFIG): If caught_CXX_compiler was
1579         set from configure.ac, then don't run all the compiler tests.
1580         (_LT_LANG_F77_CONFIG): Similarly for caught_F77_compiler.
1582 2004-08-31  Gary V. Vaughan  <gary@gnu.org>
1584         * Makefile.am (clean-ltmain-sh): Remove stale config/ltmain.sh
1585         from the build tree that were left behind by previous versions of
1586         libtool.
1587         ($top_srcdir)/stamp-vcl: Since this rule is already called on
1588         every invocation of make, hook clean-ltmain-sh in here too.
1589         Suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1591 2004-08-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1593         * bootstrap: Update warning message to reflect having split
1594         libtool.m4 into several files.
1595         Also, add config/ltmain.sh to list of stale files from previous
1596         versions to be removed before bootstrap.
1598         * libltdl/ltdl.c: Replace strdup with lt__strdup.
1600 2004-08-30  Gary V. Vaughan  <gary@gnu.org>
1602         * config/ltmain.in: Double quote even $# for the sake of sh.test.
1603         (exec_cmd): Be careful about "`\"foo\"`" quoting, even in comments
1604         to avoid triggering the tests in sh.test.
1606         * configure.ac:  Because of the way the autoconf C++ testing
1607         works, we need to call the C test first to work in an environment
1608         that has no C++ compiler.
1610         * libltdl/lt_dlloader.c (lt_dlloader_remove): Since the return
1611         value of this function is often passed to free, don't declare it
1612         `const'. Responsibility for this memory is given back to the
1613         caller on return.
1614         * libltdl/lt_dlloader.h (lt_dlloader_remove): Ditto.
1615         * libltdl/ltdl.c (lt_dlexit): Adjust.
1616         * NEWS: Updated.
1618 2004-08-30  Andreas Schwab  <schwab@suse.de>
1620         * libltdl/ltdl.c (lt_dlexit): Remove lvalue cast.
1622         * libltdl/slist.h (SListCallback): Fix missing type.
1624         * config/ltmain.in: Accept --mode=relink.
1626 2004-08-29  Gary V. Vaughan  <gary@gnu.org>
1628         * NEWS: Updated.
1629         * configure.ac: Bumped version to 1.9c.
1631         GNU libtool 1.9b was released.
1633         * configure.ac: Bumped version to 1.9b.
1634         * NEWS: Updated.
1635         * INSTALL, config/config.guess, config/config.sub,
1636         config/texinfo.tex: Updated from canonical source.
1637         * Makefile.maint, HACKING: Update instructions for releasing in a
1638         VPATH build.
1640         * Makefile.am (dist-hook): Only run if README-alpha exists.
1641         * README.alpha: Renamed from README-alpha to stop automake from
1642         automatically adding it to DIST_COMMON.
1644         * NEWS: Merge changes from branch-1-5.
1646         * Makefile.am (dist-hook): Always distribute just a README file,
1647         but take its contents from README-alpha for alpha releases.
1649         * TODO: Reformat.  Removed some items that have been implemented.
1651 2004-08-29  Gary V. Vaughan  <gary@gnu.org>
1653         Add a new `-weak' flag to tell libtool when not to propogate
1654         dependency libraries from dlpreopened modules to libraries:
1656         * config/ltmain.in: Support new -weak link mode option.  Adjust
1657         help message.
1658         * libltdl/Makefile.am (libltdlc_la_LDFLAGS): Use it.
1659         * doc/libtool.texi (Linking with dlopened modules): Document it.
1660         (Link mode): Mention -weak.
1661         * NEWS: Updated.
1663 2004-08-29  Gary V. Vaughan  <gary@gnu.org>
1665         * config/ltmain.in (opt_help): Defer showing help messages until
1666         after a possible following --mode argument has been parsed, so we
1667         can handle `libtool --help --mode=foo'.
1669 2004-08-29  Gary V. Vaughan  <gary@gnu.org>
1671         We have had shell functions in ltmain.in for a few years without
1672         complaint now, and recently a few more have crept in.  Make a
1673         start at refactoring the code with shell functions, and
1674         standardising on option parsing style:
1676         * config/ltmain.in (func_echo, func_verbose, func_error)
1677         (func_fatal_error, func_fatal_help, func_missing_arg)
1678         (func_version, func_usage, func_help): Boiler plate shell
1679         functions mostly copied from libtoolize.in.  Changed *lots* of
1680         shell snippets to call these functions as appropriate, rather than
1681         inlining the same code over and over.
1682         (func_config, func_features, func_enable_tag, func_mode_help):
1683         Factored out from the shared option parsing loop.  Write a new
1684         shared option parser based on the one in libtoolize.in.
1685         (func_check_version_match): Factored out from global scope.
1686         (func_mode_compile, func_mode_execute, func_mode_finish)
1687         (func_mode_install, func_mode_link, func_mode_uninstall): Break
1688         each of the top level mode handlers out into a function.  Adjust
1689         main loop.
1690         (modename, prevopt, prev, optarg, show_help): Removed in the
1691         course of cleaning up the shared option parser.
1692         (opt_duplicate_deps): Use `:' and `false' instead of `yes' and `',
1693         so we can run it directly, rather than calling test.
1695 2004-08-28  Gary V. Vaughan  <gary@gnu.org>
1697         To help users submit better bug reports, improve the general
1698         instructions, and provide additional useful info alongside the bug
1699         reporting address in --help output:
1701         * Makefile.am (edit): Substitute $host_triplet.
1702         * libtoolize.in: Output useful debug info with --help.
1703         * config/ltmain.in: Ditto.
1704         * README: Rewritten.  Added copyright info.
1705         * README-alpha: Rewritten.  Added copyright info.
1706         * HACKING: New file, partly taken from old README-alpha.
1708 2004-08-27  Gary V. Vaughan  <gary@gnu.org>
1710         Two things to stop `make distcheck' from trying to rebuild
1711         distributed files (m4/ltversion.m4 and config/ltmain.in) in the
1712         readonly source tree:
1714         * Makefile.am (stamp-vcl): Keep only one copy of stamp-vcl; in
1715         $(top_srcdir), so that an up-to-date version is rolled into the
1716         dist tarball even from a VPATH build.
1717         ($(top_srcdir)/config/ltmain.sh): Don't depend on Makefile,
1718         otherwise ltmain.sh needs to be rebuilt after every config.status
1719         run, and then configure needs to be rebuilt, and it all goes
1720         horribly wrong :-/  Unfortunately, we can't depend on Makefile.am
1721         either, because that is a circular dependency.  The downside of
1722         this change is that it is now possible to edit Makefile.am to
1723         change the way ltmain.sh is generated, and the dependency
1724         information can't tell that ltmain.sh needs regenerating.
1726 2004-08-27  Gary V. Vaughan  <gary@gnu.org>
1728         * doc/libtool.texi (Cheap tricks): Escape the `@' for texinfo.
1730 2004-08-27  Gary V. Vaughan  <gary@gnu.org>
1732         * doc/libtool.texi (Cheap tricks): Fix the instructions for making
1733         a ltmain.in wrapping libtool in light of recent changes to the
1734         version checking code.
1736 2004-08-26  Peter O'Gorman  <peter@pogma.com>
1738         * config/ltmain.in [darwin]: Use the -dylib_file flag and avoid
1739         linking to so many libraries on darwin.
1741         * m4/libtool.m4 [darwin]: Don't use a libname triplet, a couplet
1742         is perfectly fine.
1744         * m4/ltdl.m4: Don't use the dyld loader on darwin 8 or later.
1746 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
1748         * config/ltmain.in (piecewise linking): Use a GNU ld script if
1749         possible.
1750         * m4/libtool.m4 (_LT_LINKER_SHLIBS): Add per-tag variable
1751         with_gnu_ld.
1752         (_LT_LANG_CXX_CONFIG): Don't set unused variable with_gnu_ldcxx.
1754 2004-08-22  Gary V. Vaughan  <gary@gnu.org>
1756         The Grand Renaming.  In preparation for libtool-2.0, move all of
1757         the many and varied m4 symbols accumulated by libtool over the
1758         years, considering also that modern autoconf can detect unexpanded
1759         macros even without AC in the macro name:
1761         * bootstrap: Remove libltdl/config.h from previous releases.
1762         * m4/libtool.m4, m4/ltdl.m4, doc/libtool.texi: Basically, run a
1763         giant sed transformation like this:
1764         s,AC_LIB_LTDL,LTDL_INIT,g
1765         s,AC_LIBLTDL_CONVENIENCE,LTDL_CONVENIENCE,g
1766         s,AC_LIBLTDL_INSTALLABLE,LTDL_INSTALLABLE,g
1767         s,AC_WITH_LTDL,LT_WITH_LTDL,g
1768         s,AC_LTDL_ENABLE_INSTALL,_LT_ENABLE_INSTALL,g
1769         s,AC_DEPLIBS_CHECK_METHOD,_LT_CHECK_MAGIC_METHOD,g
1770         s,AC_LIBTOOL_OBJDIR,_LT_CHECK_OBJDIR,g
1771         s,AC_LTDL_OBJDIR,_LT_CHECK_OBJDIR,g
1772         s,AC_LTDL_DLPREOPEN,_LT_CHECK_DLPREOPEN,g
1773         s,AC_LIBTOOL_SYS_MAX_CMD_LEN,LT_CMD_MAX_LEN,g
1774         s,AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE,_LT_CMD_GLOBAL_SYMBOLS,g
1775         s,AC_LIBTOOL_SYS_OLD_ARCHIVE,_LT_CMD_OLD_ARCHIVE,g
1776         s,AC_PROG_LD_RELOAD_FLAG,_LT_CMD_RELOAD,g
1777         s,AC_LIBTOOL_SYS_LIB_STRIP,_LT_CMD_STRIPLIB,g
1778         s,AC_CHECK_LIBM,LT_LIB_M,g
1779         s,AC_LTDL_DLLIB,LT_LIB_DLLOAD,g
1780         s,AC_LIBTOOL_COMPILER_OPTION,_LT_COMPILER_OPTION,g
1781         s,AC_LIBTOOL_PROG_CC_C_O,_LT_COMPILER_C_O,g
1782         s,AC_LIBTOOL_PROG_COMPILER_NO_RTTI,_LT_COMPILER_NO_RTTI,g
1783         s,AC_LIBTOOL_PROG_COMPILER_PIC,_LT_COMPILER_PIC,g
1784         s,AC_LIBTOOL_SYS_HARD_LINK_LOCKS,_LT_COMPILER_FILE_LOCKS,g
1785         s,AC_LTDL_DLSYM_USCORE,LT_FUNC_DLSYM_USCORE,g
1786         s,AC_LIBTOOL_LINKER_OPTION,_LT_LINKER_OPTION,g
1787         s,AC_LIBTOOL_PROG_LD_SHLIBS,_LT_LINKER_SHLIBS,g
1788         s,AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH,_LT_LINKER_HARDCODE_LIBPATH,g
1789         s,AC_PATH_MAGIC,_LT_PATH_MAGIC,g
1790         s,AC_PATH_TOOL_PREFIX,_LT_PATH_TOOL_PREFIX,g
1791         s,AC_PROG_LD,LT_PATH_LD,g
1792         s,AC_PROG_LD_GNU,_LT_PATH_LD_GNU,g
1793         s,AC_PROG_NM,LT_PATH_NM,g
1794         s,AC_LTDL_SYS_DLOPEN_DEPLIBS,LT_SYS_DLOPEN_DEPLIBS,g
1795         s,AC_LIBTOOL_DLOPEN_SELF,LT_SYS_DLOPEN_SELF,g
1796         s,AC_LIBTOOL_POSTDEP_PREDEP,_LT_SYS_HIDDEN_LIBDEPS,g
1797         s,AC_LTDL_SYSSEARCHPATH,LT_SYS_DLSEARCH_PATH,g
1798         s,AC_LTDL_SHLIBEXT,LT_SYS_MODULE_EXT,g
1799         s,AC_LTDL_SHLIBPATH,LT_SYS_MODULE_PATH,g
1800         s,AC_LTDL_SYMBOL_USCORE,LT_SYS_SYMBOL_USCORE,g
1801         s,AC_LIBTOOL_SYS_DYNAMIC_LINKER,_LT_SYS_DYNAMIC_LINKER,g
1802         s,_LT_AC_TAGVAR,_LT_TAGVAR,g
1803         s,_LT_AC_SYS_COMPILER,_LT_TAG_COMPILER,g
1804         s,_LT_AC_PROG_ECHO_BACKSLASH,_LT_PROG_ECHO_BACKSLASH,g
1805         s,_LT_AC_SYS_LIBPATH_AIX,_LT_SYS_MODULE_PATH_AIX,g
1806         s,_LT_AC_SHELL_INIT,_LT_SHELL_INIT,g
1807         s,_LT_AC_LOCK,_LT_ENABLE_LOCK,g
1808         s,_LT_AC_CHECK_DLFCN,_LT_HEADER_DLFCN,g
1809         s,_LT_AC_TRY_DLOPEN_SELF,_LT_TRY_DLOPEN_SELF,g
1810         s,LT_AC_PROG_EGREP,_LT_DECL_EGREP,g
1811         s,LT_AC_PROG_SED,_LT_DECL_SED,g
1812         * doc/libtool.texi (Autoconf macros): Document exported macros.
1813         * libtoolize.in: Compare ltdl.m4 serial numbers for LTDL_INIT
1814         instead of newly obsoleted AC_LIB_LTDL.
1815         (func_scan_files): Also set seen_ltdl for LTDL_INIT and
1816         LT_WITH_LTDL.
1818 2004-08-12  Peter O'Gorman  <peter@pogma.com>
1820         * m4/libtool.m4 [GNU/linux] (AC_DEPLIBS_CHECK_METHOD): Cleanup,
1821         thanks to Daniel Reed.
1823 2004-08-11  Daniel Reed  <djr@redhat.com>
1825         * tests/demo-nopic.test: Do not run on x86_64 or s390*
1827 2004-08-06  Gary V. Vaughan  <gary@gnu.org>
1829         * libltdl/ltdl.c (lt_dlforeachfile): LT_SYS_LIBSEARCH_PATH is not
1830         an environment variable, it is an actual path.
1832         * bootstrap: Remove `-f Makefile.am' now that we have an actual
1833         Makefile to build ltmain.sh.
1834         Reported by Noah Mish <noah@cs.caltech.edu>
1836 2004-08-05  Gary V. Vaughan  <gary@gnu.org>
1838         * bootstrap: Run the bootstrap rules from a file named Makefile,
1839         copied from Makefile.am for fresh checkouts.
1841 2004-08-05  Alexandre Duret-Lutz  <adl@gnu.org>
1843         * m4/libtool.m4 (_LT_PROG_LTMAIN): Require ltmain.sh using
1844         using Autoconf's new AC_REQUIRE_AUX_FILE.
1846 2004-08-05  Gary V. Vaughan  <gary@gnu.org>
1848         * Makefile.am ($(top_srcdir)/config/ltmain.sh): Depends on
1849         Makefile.
1850         (timestamp): Factor out timestamp setting and edit it based on the
1851         version number, so that it is empty for release versions.
1852         ($(top_srcdir)/config/ltmain.sh): Use it.
1853         (libtoolize): Ditto.
1855         * Makefile.am (libtool): Depends on ltmain.sh.
1856         (libtoolize): Set and substitute TIMESTAMP.
1858         * Makefile.am ($(top_srcdir)/config/ltmain.sh): Actually run
1859         $(MKSTAMP) before changing directories, or it won't be found.
1860         Forgot to save before my last commit :-(
1862         * Makefile.am ($(top_srcdir)/m4/ltversion.m4): Since we already did
1863         `cd $(top_srcdir)' for this rule, we can't mv ltversion.tmp to the
1864         relative $(top_srcdir) again!  Also, run $(MKSTAMP) before changing
1865         directories, or it won't be found.
1866         ($(top_srcdir)/config/ltmain.sh): Ditto.
1867         (EXTRA_DIST): We should distribute ltversion.m4 too.
1869 2004-08-04  Peter O'Gorman  <peter@pogma.com>
1871         * m4/libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Since CONFIG_SHELL may
1872         not actually be set, we should use SHELL here, also make darn sure
1873         that SHELL is set to something. Bug from Willem Jan Palenstijn
1874         <wpalenst@math.leidenuniv.nl>.
1876 2004-08-03  Jacob Meuser  <jakemsr@jakemsr.com>
1878         * ltmain.in: Allow some static libraries to be used in generating a
1879         shared library on NetBSD and OpenBSD. match-pattern_regex decides
1880         which are good.
1882 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
1884         * m4/libtool.m4 [darwin]: Don't use -all_load.
1886 2004-08-01  Maciej W. Rozycki  <macro@linux-mips.org>
1888         * m4/libtool.m4 (LT_AC_PROG_SED): Set SED when running from cache as
1889         well.
1891 2004-07-31  Gary V. Vaughan  <gary@gnu.org>
1893         Although libtool is optimised to not need to subconfigure libltdl,
1894         the installed libltdl sources for libtoolize need to put
1895         libltdl/configure.ac in the parent package so that *it* can
1896         subconfigure libltdl.  That way we don't put any constraints on
1897         the build system used by the parent package because the
1898         libtoolized libltdl subtree is a self-contained sub-project:
1900         * libltdl/Makefile.am (EXTRA_DIST): Add configure.ac.
1901         (nobase_ltdldata_DATA): Change back to libltdl's own
1902         configure.ac.
1904 2004-07-30  Gary V. Vaughan  <gary@gnu.org>
1906         My thanks to Alexandre Duret-Lutz <adl@gnu.org> for the insight
1907         required to write this changeset -- especially that ltmain.sh is
1908         the same on any machine for a given release, which I hadn't
1909         noticed for some bizarre reason: It turns out that generating
1910         distributed files from configure causes no end of hassle, as
1911         evidenced by the many patches I've generated over the last few
1912         days to try and get the dist and distcheck make rules to work.
1913         Instead of all that hair, we now simply generate our distributed
1914         files (now including ltmain.sh) with make rules -- and since
1915         automake creates make variables for all AC_SUBSTs, that is really
1916         easy.  The code looks a lot more like automake and autoconf
1917         Makefile.ams now, and doesn't have all the rough edges the earlier
1918         hacky solution suffered from.  We still generate libtool from
1919         config.status, but that is not a distributed file, and doesn't
1920         break the golden rule.  Besides, there is way more going on there
1921         than a bunch of substitutions:
1923         * Makefile.am (edit): New common sed substitutions for files now
1924         generated by make instead of config.status.
1925         (CLEANFILES): Clean new tmp files.
1926         (EXTRA_DIST): Add ltmain.sh.
1927         (vcl-tmp): Reinstated.
1928         (m4/ltversion.m4, config/ltmain.sh): New rules.  Generate from
1929         here instead of config.status.
1930         (libtoolize): Ditto.
1931         (libtool): Call config.status to regenerate if necessary.
1932         (dist-hook): Removed.
1933         * config/ltmain.in: Moved here from top_srcdir.
1934         * README-alpha: Update instructions to check AS_SHELL_SANITIZE is
1935         up to date.
1936         * bootstrap: Rewritten.  Generate m4/ltversion.m4 and
1937         config/ltmain.sh because configure depends on them.
1938         * configure.ac (AC_CONFIG_SRCDIR): Use libtoolize.in now that
1939         ltmain.in has moved.
1940         (AC_CONFIG_FILES): Don't generate distributed files,
1941         config/ltmain.sh and libtoolize from config.status.  We have make
1942         rules to do that now.
1944 2004-07-30  Peter O'Gorman  <peter@pogma.com>
1946         * m4/libtool.m4, ltmain.in: readd the comments that I erased.
1948         * ltmain.in [darwin]: We already had a module var, there can be
1949         only one.
1951         * m4/libtool.m4, ltmain.in: autoconf now says the best thing to do
1952         with CDPATH is to (unset CDPATH) >/dev/null 2>&1 && unset CDPATH,
1953         so do it.
1955 2004-07-29  Gary V. Vaughan  <gary@gnu.org>
1957         * Makefile.am ($(top_srcdir)/config/ltmain.sh): Ugh. More hair to
1958         help `make distcheck'; not only do we have to make a copy of
1959         ltmain.sh available in the source tree, but we have to be really
1960         careful about permission bit twiddling when we copy it across into
1961         the possible read-only $(top_srcdir)/config directory!
1963         * tests/tagtrace.test: Skip this test when running a VPATH build
1964         against a read-only source tree (as in distcheck for example),
1965         since autoconf wants to write temporary files in $top_srcdir
1966         otherwise.
1968         * Makefile.am ($(top_srcdir)/config/ltmain.sh): Automake assumes,
1969         quite rightly for every project except libtool, that there will be
1970         an ltmain.sh in the source tree.
1971         (EXTRA_DIST): As do the dist rules it generates.
1972         (dist-hook): Even though we definitely don't want to distribute
1973         our local ltmain.sh.
1975         * config/config.guess, config/config.sub: Don't check these in,
1976         they cause spurious conflicts on cvs commit and update, and are
1977         added by bootstrap in any case.
1979         * configure.ac (AC_INIT): Revert an accidental commit from my
1980         testing of package_revision.
1982 2004-07-29  Alexandre Duret-Lutz  <adl@gnu.org>
1984         * doc/libtool.texi (Tags): Document CC.
1985         * m4/libtool.m4 (_LT_SETUP): Register CC as supported tag so that
1986         Automake uses it.
1988 2004-07-28  Gary V. Vaughan  <gary@gnu.org>
1990         Fix a long-standing bug where macro_version was always empty in
1991         the generated m4/ltversion.m4.  Except for CVS revisions:
1993         * ltmain.in (package_revision): Don't try to deduce it from
1994         TIMESTAMP, since that is empty for release versions; simply
1995         substitute it...
1996         * configure.ac (package_revision): ...from here, having
1997         precalculated it before resetting TIMESTAMP for release versions.
1998         * bootstrap: Force regeneration of m4/ltversion.m4, but retain
1999         timestamps if there is no change to the content.
2001 2004-07-28  Gary V. Vaughan  <gary@gnu.org>
2003         To take full advantage of this, libtool must be bootstrapped with
2004         CVS autoconf, otherwise pdksh chokes on some nested escaped quotes
2005         from libtool.m4.  Using CVS autoconf protects configure from
2006         non-bourne compatible shells in the same way this changeset
2007         protects libtool and libtoolize:
2009         * libtoolize.in: Include latest CVS autoconf AS_SHELL_SANITIZE
2010         expansion to make various shells fully bourne compatible.
2011         * ltmain.in: Ditto.
2012         * m4/libtool.m4 (AC_PATH_TOOL_PREFIX): Remove spurious quotes, the
2013         RHS of = assignment is not IFS split.
2014         (_LT_LANG_CXX_CONFIG): Ditto.
2015         (AC_LIBTOOL_POSTDEP_PREDEP): Ditto.
2017 2004-07-27  Gary V. Vaughan  <gary@gnu.org>
2019         This change fixes another VPATH build bug, where the vcl.tmp
2020         target forced a rebuild of stamp-vcl in the build tree (and
2021         hence regeneration of m4/ltversion.m4, thus an automake driven
2022         rebootstrap that doesn't know about $fakes) requiring a fresh
2023         ./bootstrap after every cvs/tla update:
2025         * Makefile.am (vcl.tmp): Removed.
2026         (stamp-vcl): Adopt former vcl.tmp target rules.
2028 2004-07-25  Gary V. Vaughan  <gary@gnu.org>
2030         * ltmain.in: Make sure that dependency libraries of -dlpreopened
2031         libraries are propogated properly.
2033 2004-07-23  Joe Orton  <joe@manyfish.co.uk>
2035         * libtool.m4: Treat bsdi5* like bsdi4*.
2037 2004-07-22  Peter O'Gorman  <peter@pogma.com>
2039         * ltmain.in [darwin](func_extract_archives): $SED not sed.
2041         * ltmain.in [darwin](func_extract_archives): Clean up last commit
2042         a little, some suggestions are from Albert Chin, those that are
2043         broken are mine.
2045         * libltdl/Makefile.am, libltdl/loaders/Makefile.am: Look for
2046         included files in the right places.
2048 2004-07-18  Peter O'Gorman  <peter@pogma.com>
2050         * ltmain.in [darwin](func_extract_archives): Because fat archives
2051         on darwin can not be extracted using ar, we need to use lipo to
2052         extract the thin archives and then use lipo again to generate the
2053         individual fat objects. This should allow people to run configure
2054         with CC set to "cc -arch ppc -arch ppc64" or "cc -arch ppc -arch
2055         i386" or whatever to match the toolchain they have available.
2057 2004-07-18  Greg Eisenhauer  <eisen@cc.gatech.edu>
2059         * libltdl/loaders/Makefile.am: Use AM_MAKEFLAGS not MAKEFLAGS.
2061 2004-07-18  Peter O'Gorman  <peter@pogma.com>
2063         * libltdl/Makefile.am: Ensure that lt__dirent.h is part of the dist,
2064         also make failed looking for configure.ac, look for
2065         $(top_srcdir)/configure.ac instead.
2067 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2069         * libltdl/lt__private.h (lt_dlhandle_struct): Renamed to
2070         lt__handle to better reflect the naming scheme.
2071         * libltdl/ltdl.h (lt_dlhandle): Be truly opaque with a void *.
2072         * libltdl/lt_dlloader.c (lt_dlloader_remove): Party to
2073         lt__private.h, so use internal lt__handle instead of opaque
2074         lt_dlhandle.
2075         * libltdl/ltdl.c (LT_DLGET_FLAG, LT_DLSET_FLAG): Add a cast to
2076         internal lt__handle type.
2077         (try_dlopen, tryall_dlopen, load_deplibs, unload_deplibs): Ditto.
2078         (lt_dlexit, lt_dlclose, lt_dlsym): Use lt__handle to iterate
2079         throught the handle list.
2080         (try_dlopen): Use lt__zalloc instead of MALLOC and memset.
2081         * libltdl/ltdl.h (lt_dlcaller_id): Be truly opaque with a void *.
2082         (lt_dlhandle_interface): New callback type for filtering handles
2083         according to the interface they present.
2084         * libltdl/ltdl.c (lt_dlcaller_register): Take an id and an
2085         interface check callback, and generate a caller_id.
2086         (iterator): New static variable for the use of...
2087         (lt_dlhandle_first): New function.  Set the iterator for
2088         subsequent calls to lt_dlhandle_next.
2089         (lt_dlhandle_next): Either work as before when iterator is unset,
2090         or else skip handles that fail the interface check in iterator set
2091         by lt_dlhandle_first.
2092         * libltdl/ltdl.h (lt_dlhandle_first): Declaration.
2093         * doc/libtool.texi (User defined module data): Document the new
2094         APIs.
2095         * NEWS: Updated.
2097 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2099         Split lt_dlloader management into a separate file, and factor
2100         `loaders' list management into a new SList ADT.  In the process,
2101         the API for writing loaders is a little cleaner, so all the
2102         existing loaders were tweaked to take advantage of that:
2104         * libltdl/slist.h, libltdl/slist.c: New files implementing a
2105         generic singly linked list container ADT.  The ADT is purely
2106         internal, and none of its API's are visible from an installed
2107         libltdl.
2108         * libltdl/lt_dlloader.h (lt_dlloader): Removed next field again
2109         :-) Renamed to lt_dlvtable for API.  Changed all callers.
2110         (lt_dlloader_get): New function to turn an lt_dlloader into its
2111         associated lt_dlvtable.
2112         (lt_dlloader_add): Removed unused data parameter.  The caller
2113         data belongs to (and is set by) the loader itself, not the
2114         loader's client.  Changed all callers.
2115         (lt_dlloader_name, lt_dlloader_data): Removed.  Use
2116         lt_dlloader_get instead!
2117         * libltdl/lt__private.h: Include slist.h.
2118         (lt__alloc_die_callback): Add missing LT_SCOPE to declaration.
2119         (lt_dlhandle_struct): Use lt_dlvtable instead of opaque
2120         lt_dlloader.
2121         * libltdl/ltdl.c (lt_dlexit): Rewritten for the new loader API.
2122         (loaders, lt_dlloader_add, lt_dlloader_remove, lt_dlloader_next,
2123         lt_dlloader_find): Moved from here...
2124         * libltdl/lt_dlloader.c ((loaders, lt_dlloader_add,
2125         lt_dlloader_remove, lt_dlloader_next, lt_dlloader_find): ...to
2126         here.  And rewritten in terms of new SList interface.
2127         * libltdl/ltdl.c (lt_dlexit, tryall_dlopen): Rewritten in terms of
2128         new lt_dlloader interface.
2129         * libltdl/Makefile.am (libdlloader_la_SOURCES): Add slist.h and
2130         slist.c.  Move lt_dlloader.h from here...
2131         (pkginclude_HEADERS): ...to here.
2132         (libltdl_la_SOURCES): Add lt_dlloader.c and lt_dlloader.h.
2134 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2136         Collapse two almost identical structures into one:
2138         * libltdl/lt_dlloader.h (lt_dlloader): Add next field.
2139         * libltdl/ltdl.c (lt_user_dlloader): Remove entirely.  Change all
2140         callers to use lt_dlloader instead.  Add a compatibility macro.
2141         (lt_dlloader_add): Remove copy and allocate stage, just hook
2142         directly into the loaders list.
2144 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2146         A cleaner way to access the private fields of an lt_dlhandle
2147         than my move of the module field into lt_dlinfo:
2149         * libltdl/ltdl.c (lt_caller_data, lt_dlhandle_struct): Move from
2150         here...
2151         * libltdl/lt__private.h (lt_caller_data, lt_dlhandle_struct):
2152         ...to here.  And put the module field back here...
2153         * libltdl/ltdl.h (lt_dlinfo): ...instead of here.
2154         * libltdl/loaders/loadlibrary.c (vm_open): Adjust.
2156 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2158         * libltdl/lt__private.h (streq, strneq): New macros to make strcmp
2159         calls as used for simple comparison easier to read.
2160         * libltdl/loaders/dyld.c, libltdl/loaders/preopen.c,
2161         libltdl/ltdl.c: Use them!
2163 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2165         This pervasive changeset makes two intertwined deep changes to the
2166         operation of libtool (neither would work alone).  First, there is
2167         a new feature that allows libraries to preopen modules.  This
2168         entails a backwards incompatible change to the libltdl API for
2169         separating out the preloaded symbol lists by owner.  Second, in
2170         the tradition of "eating our own dogfood", libltdl now preloads
2171         its own dlloaders.  The internal API for dlloaders has also had to
2172         change in a backwards incompatible way in support of the new
2173         library preloading feature.  If you don't use preloaded libraries,
2174         you needn't change your project sources, though you will need to
2175         recompile against the new libltdl.  The API changes are mostly
2176         confined to dlloaders, so you probably needn't worry about those
2177         (unless you have written a custom loader that you want libltdl to
2178         use):
2180         * configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
2181         * libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
2182         * libltdl/loaders: New directory for module loaders, to simplify
2183         Makefile rules, and to give the loaders themselves names that are
2184         unique in the first few characters.
2185         * libtoolize.in (func_copy_all_files): Copy recursively to pick up
2186         the loaders directory contents.
2187         * libltdl/loaders/Makefile.am: New file.  Move module building
2188         rules to here...
2189         * libltdl/Makefile.am: ...from here.
2190         (VERSION_INFO): Bumped version info to signify interface changes.
2191         (libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
2192         appropriately for each library.
2193         * libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
2194         libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
2195         libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
2196         libltdl/loader-shl_load.c: Moved from here...
2197         * libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
2198         libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
2199         libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
2200         libltdl/loaders/shl_load.c: ...to here.
2201         (get_vtable): New entry function for each.
2202         * libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
2203         (symlist_chain): ...a new structure which maps lists of preloaded
2204         symbols from the object that loads them.
2205         (lt_dlpreload_open): New function to automatically open all
2206         preloaded modules belonging to a named object (ORIGINATOR).
2207         * libltdl/lt__alloc.c (lt__zalloc): New function to return a block
2208         of zeroed out new memory.
2209         * libltdl/lt__alloc.h (lt__zalloc): Prototype it.
2210         * libltdl/lt__private.h (lt__alloc_die_callback): Add missing
2211         prototype.
2212         (lt__error_strings): Make this opaque to callers.
2213         * libltdl/lt_error.c (lt__error_strings): Move the implementation
2214         to here.
2215         * libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
2216         make originator focused preloading possible.  *BREAKS BACKWARDS
2217         COMPATIBILITY*
2218         (lt_dlloader_add): Take advantage of new fields to simplify
2219         paramater list.
2220         * libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
2221         (LT_CONC): Fix it to work from within macros.
2222         * libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
2223         dlloader loading.
2224         (get_vtable, preloaded_symbols): Point these at the preopen.c
2225         symbols to bootstrap the loader chain.
2226         (lt_dlinit): Load the preopen dlloader manually, and then use it
2227         to load any other preloaded dlloaders.
2228         (lt_dlloader_add): Simplify parameter list. Populate new
2229         fields. Chain new loaders according to priority field.
2230         * libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
2231         (lt_dlpreload_callback_func): Type of a callback for automatic
2232         lt_dlpreload_open loading.
2233         (LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
2234         symbols from the "@PROGRAM@" originator.
2235         * tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
2236         * tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
2237         * ltmain.in: Don't spew spurious warnings when dlopening and
2238         dlpreopening modules.
2239         (func_generate_dlsyms): Factored out from multiple copies in the
2240         rest of the code. Generate originator keyed symbol lists.
2241         (func_extract_archives): Also factored.  Extract the contents of
2242         convenience archives for linking with dependent libraries when
2243         --whole-archive is not available.
2244         [darwin]: Don't try to link $old_library unless it exists, and
2245         $lib is a bundle.
2246         * m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
2247         loading libraries/apis rather that stopping when an acceptable one
2248         is discovered.
2249         (LT_DLLOADERS): New variable for holding dlloaders that can be
2250         preloaded.
2251         * doc/libtool.texi: Document interface changes.
2252         * NEWS: Updated.
2254 2004-07-12  Peter O'Gorman  <peter@pogma.com>
2256         * m4/libtool.m4 [darwin]: Set whole_archive_flag_spec to '' for xlc,
2257         or it does not pass it's tests. xlc passes -noall_load (the default)
2258         and when -all_load is also specified Apple's /usr/bin/libtool barfs
2259         and dies.
2261 2004-07-07  Gary V. Vaughan  <gary@gnu.org>
2263         * libltdl/ltdl.h (lt_dlinfo): Move private module field to here...
2264         * libltdl/ltdl.c (lt_dlhandle_struct): ...from here.  Changed all
2265         callers.
2266         * libltdl/loader-loadlibrary.c (sys_wll_open): Use new inteface to
2267         scan loaded handle->info.module fields for previously loaded
2268         modules.
2269         * doc/libtool.texi (User defined module data): Document changes to
2270         the interface.
2271         * NEWS: Updated.
2272         Reported by Chuck Wilson <cwilson@ece.gatech.edu>
2274 2004-07-07  Brad  <brad@comstyle.com>
2276         * m4/libtool.m4: Fixes for the OpenBSD support
2278 2004-06-24  Noah Misch  <noah@cs.caltech.edu>
2280         * ltmain.in: Unset the zsh GLOB_SUBST option, which makes zsh
2281         handle backslash quoting poorly, before doing anything else.
2282         * tests/defs: Likewise.
2284 2004-06-21  Gary V. Vaughan  <gary@gnu.org>
2286         * libtoolize.in (libtoolize_flags): With the --ltdl option, we
2287         libtoolize the libltdl subdirectory automatically.
2288         * m4/ltdl.m4 (AC_WITH_LTDL): Fix overquoted args.
2290 2004-06-21  Peter O'Gorman  <peter@pogma.com>
2292         * ltmain.in (dependency_libs) [darwin]: Remove -framework stuff from
2293         dependency_libs. Instead, invent a new .la var "inherited_linker_flags"
2294         to keep any linker flags which should be used when linking the library,
2295         but are outside the usual -L -l, -R etc that can be used in
2296         dependency_libs. Any unusual flags in dependency_libs cause recent
2297         versions of libtool to die with "cannot find the library `'", so
2298         it is required to move frameworks out of there. :(
2300 2004-06-21  Gary V. Vaughan  <gary@gnu.org>
2302         From Ralf Wildenhues <Ralf.Wildenhues@gmx.de>:
2303         * libtoolize.in: Quote $# to make sh.test happy again.
2305         * m4/ltdl.m4 (AC_WITH_LTDL): Remove redundant AC_REQUIRE calls.
2306         Either set variables to allow a client to link with the installed
2307         libltdl, or else compile a local libltdl as a convenience library.
2308         * libtoolize.in (opt_ltdl): Removed in favour of...
2309         (ltdldir): ...this, which is defaulted to "libltdl" or can be set
2310         by the user with an argument to --ltdl.
2311         (Main): Use it!
2312         * doc/libtool.texi (Distributing libltdl): Improved documentation
2313         on libltdl.
2314         (Invoking libtoolize): Document new optional --ltdl target
2315         directory argument.
2317 2004-06-17  Gary V. Vaughan  <gary@gnu.org>
2319         * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [darwin*]: Fix a typo
2320         in allow_undefined_flag: s,${Wl},${wl},g
2322         * libtoolize.in (func_scan_files): Accept AC_WITH_LTDL as an
2323         indication that libltdl is being used.
2324         (Main): Without AC_CONFIG_MACRO_DIR, don't just dump all the
2325         macro files in `.' since they are never used, and aclocal will
2326         copy them from $aclocaldir into aclocal.m4 anyway.
2327         Reported by Alexandre Duret-Lutz <adl@gnu.org>
2329 2004-06-16  Brad  <brad@comstyle.com>
2331         * m4/libtool.m4: More improvements to OpenBSD support.
2332         * NEWS: Updated.
2334 2004-06-16  Gary V. Vaughan  <gary@gnu.org>
2336         libltdl uses LIBOBJS, which leak out into a parent project if both
2337         share the same configure.ac.  Libtool itself doesn't compile any
2338         code, so it is okay to do it during bootstrap, but other projects
2339         need to treat libltdl as a configurable subproject to keep their
2340         respective LIBOBJS separate:
2342         * libltdl/configure.ac: New file, based on configure.ac.
2343         * libltdl/Makefile.am (AC_LOCAL_AMFLAGS): Use our own m4
2344         directory.
2345         (ltdldata_DATA): List *all* the files that libtoolize --ltdl will
2346         install.
2348 2004-06-16  Gary V. Vaughan  <gary@gnu.org>
2350         Automake 1.9 won't have the AC_PROG_EGREP bug (aclocal used to
2351         pull an old installed libtool.m4 as well as the bootstrap
2352         m4/libtool.m4 if an AC_DEFUN was removed), and we have
2353         lt~obsolete.m4 to work around it in the mean time.  libtoolize
2354         can install macro files from $prefix/share/aclocal perfectly well
2355         without us needing to move to a whole other directory:
2357         * Makefile.am (pkgmacro_DATA): Renamed to aclocal_DATA, so m4
2358         files are installed to $prefix/share/aclocal again.
2359         (install-data-local): Don't remove just installed macros!
2360         * libtoolize.in (pkgmacrodir): Renamed to aclocaldir.
2361         (func_copy_some_files): New function factored out of...
2362         (func_copy_all_files): ...here.  Adjust to use func_copy_some_files.
2363         (re_pkgaux_files): Renamed to glob_pkgaux_files, since it is not
2364         a regular expression.
2365         (re_pkgmagro_files): Replaced with...
2366         (pkgmacro_files): ...a colon delimited list of libtool installed
2367         m4 files from aclocaldir.
2368         (Main): Copy macro files from aclocaldir again.
2369         * NEWS: Updated.
2371 2004-05-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
2373         * ltmain.sh (check_executable): The WIN32 API and MinGW do not support
2374         S_IXOTH and S_IXGRP so use of these modes should be conditional.
2376 2004-05-21  Gary V. Vaughan  <gary@gnu.org>
2378         * tests/tagtrace.test: Forgot to add this file to the repository
2379         for Alexandre's 2004-05-16 patch below.
2381 2004-05-18  Peter O'Gorman  <peter@pogma.com>
2383         * m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Make this an m4_defun,
2384         test the tags compiler to see if it is GCC, not the CC compiler.
2386 2004-05-16  Alexandre Duret-Lutz  <adl@gnu.org>
2388         * doc/libtool.texi (Invoking libtool): Mention --tag=TAG.
2389         (Tags, Trace interface): New nodes.
2390         * m4/libtool.m4 (LT_SUPPORTED_TAG): New macro.
2391         (_LT_LANG): Call it.
2392         * tests/tagtrace.test: New file.
2393         * tests/Makefile.am
2394         (TESTS): Add tagtrace.test.
2395         * tests/defs: Define AUTOCONF.
2397 2004-05-14  Mike Gorchak  <lestat@i.com.ua>
2399         * ltmain.in: Add new qnx version type support.
2400         * m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Use it.  Set
2401         ldqnx.so linker type.
2402         (AC_DEPLIBS_CHECK_METHOD): QNX6 uses GNU C++, with deplib
2403         checking, so use pass_all.
2404         (AC_LIBTOOL_PROG_COMPILER_PIC): Use -shared for QNX.
2405         (_LT_LANG_CXX_CONFIG): QNX can make shared libraries.
2406         * m4/ltdl.m4 (AC_LTDL_SYS_DLOPEN_DEPLIBS): QNX opens deplibs on
2407         dlopen.
2408         * NEWS: Updated.
2410 2004-05-05  Peter O'Gorman  <peter@pogma.com>
2412         * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH): Insert space
2413         around = for a test and a comma between runpath_var and $1. Bug
2414         reported by Max Bowsher.
2416 2004-04-22  Gary V. Vaughan  <gary@gnu.org>
2418         * libltdl/argz.h: Moved from here...
2419         * libltdl/argz_.h: ...to here, so as not to shadow system
2420         argz.h when we `#include <argz.h>' for example.
2421         #include stdlib.h and sys/types.h to ensure we get a size_t
2422         definition.
2423         * libltdl/argz.c (HAVE_CONFIG_H): Set it up how ltdl likes it when
2424         used by another client.
2425         * m4/argz.m4: New file.
2426         (gl_FUNC_ARGZ): Try to find an error_t definition, and a system
2427         argz.h.
2428         * m4/ltdl.m4: Use it.
2429         (AC_LTDL_FUNC_ARGZ): Removed.
2430         * libltdl/lt__glibc.h: #include <argz.h> to pick up either the
2431         system argz.h or our libltdl/argz.h if necessary.
2432         * libltdl/Makefile.am (libltdl_la_SOURCES): Move argz.h from
2433         here...
2434         (ltdldata_DATA): ...here. Along with argz.c.
2435         (argz.h): Generate from argz_.h if the system file is missing.
2436         Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2438 2004-04-22  Gary V. Vaughan  <gary@gnu.org>
2440         According to Howard Chu <hyc@highlandsun.com>:
2441         Applications should assume that the native dlopen is NOT
2442         thread-safe, and take care of locking themselves. All application
2443         calls into libltdl should thus be protected by the caller.
2445         * libltdl/lt_mutex.c, libltdl/lt_mutex.h: Removed.
2446         * libltdl/Makefile.am (pkginclude_HEADERS): Removed lt_mutex.h.
2447         (libltdl_la_SOURCES): Removed lt_mutex.c and lt_mutex.h.
2448         * libltdl/ltdl.h: Don't include lt_mutex.h.
2449         * libltdl/lt__private.h (LT__MUTEX_GETERROR, LT__MUTEX_SETERROR)
2450         (LT__MUTEX_SETERRORSTR): Renamed to...
2451         (LT__GETERROR, LT__SETERROR, LT__SETERRORSTR): ...this.  Changed
2452         all callers.
2453         (LT__MUTEX_LOCK, LT__MUTEX_UNLOCK, lt_dlmutex_lock)
2454         (lt_dlmutex_unlock, lt_dlmutex_seterror, lt_dlmutex_geterror):
2455         Removed.  Changed all callers.
2456         * doc/libtool.texi (Thread Saftey in libltdl):
2457         * NEWS: Updated.
2459 2004-04-19  Gary V. Vaughan  <gary@gnu.org>
2461         * m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Detect Intel C++ compiler
2462         version more idiomatically.
2464 2004-04-19  Albert Chin-A-Young  <china@thewrittenword.com>
2466         * m4/libtool.m4: Use cc rather than ld to created
2467         a shared library on HP-UX 11.x. On HP-UX 10.x, the
2468         C compiler doesn't grok -b so we continue to use ld.
2470         * m4/libtool.m4: Use cc rather than ld to create a
2471         shared library on Solaris. When using the Sun
2472         Workshop compiler 5.0 (and I presume any previous
2473         version), revert to ld due to compiler errors.
2475         * m4/libtool.m4: Use cc rather than ld to created
2476         a shared library on Tru64 UNIX.
2478         * m4/libtool.m4: Use cc rather than ld to created
2479         a shared library on IRIX.
2481         * libltdl/loader-shl_load.c: Fix typos during reorg.
2483 2004-04-19  Alexandre Duret-Lutz  <adl@gnu.org>
2485         * doc/libtool.texi (LT_INIT): Properly display options in a table.
2487 2004-04-19  Gary V. Vaughan  <gary@gnu.org>
2489         * m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Intel C++ compiler 8.0 and
2490         newer adds predep_objects and postdep_objects itself, so don't
2491         duplicate them in $archive_cmds and $archive_expsym_cmds.
2492         * NEWS: Updated.
2493         Reported by Roberto Bagnara <bagnara@cs.unipr.it>
2495 2004-04-17  Peter O'Gorman  <peter@pogma.com>
2497         * libltdl/loader-dyld.c: Fix compilation issues. Set Original author
2498         to me.
2500 2004-04-17  Todd Vierling  <tv@duh.org>,
2501         Peter O'Gorman  <peter@pogma.com>
2503         * m4/libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Use sysctl to get the
2504         max cmd length on BSD* and darwin. Make sure that there is a safety
2505         factor too.
2507 2004-04-15  Scott James Remnant  <scott@netsplit.com>
2509         * m4/libtool.m4 (_LT_LANG_DEFAULT_CONFIG): Remove code to handle 'none'
2510         and 'all' options, this now always assumes automatic mode as that
2511         works so well.
2512         (_LT_LANG_DEFAULT): Remove definition
2513         * m4/ltoptions.m4: Remove 'no-lang', 'auto-lang' and 'all-lang' options.
2514         * configure.ac: Invoke LT_LANG for each desired supported language.
2515         * doc/libtool.texi: Remove documentation for the LT_INIT options,
2516         rewrite LT_LANG documentation.
2518 2004-04-14  Alexandre Duret-Lutz  <adl@gnu.org>
2520         * bootstrap: Delete acinclude.m4.
2522 2004-04-14  Gary V. Vaughan  <gary@gnu.org>
2524         * libtoolize.in (configure_ac): Don't complain about the lack of
2525         aclocal.m4.
2526         Reported by Alexandre Duret-Lutz <adl@src.lip6.fr>
2528 2004-04-13  Gary V. Vaughan  <gary@gnu.org>
2530         * m4/ltdl.m4 (AC_LIB_LTDL): Remove AC_REPLACE_FUNCS for memmove
2531         and strcpy.
2533         * libltdl/lt__pre89.h, libltdl/memcpy.c, libltdl/memmove.c,
2534         libltdl/strchr.c, libltdl/strcmp.c, libltdl/strrchr.c: Remove
2535         half-assed pre-c89 support entirely.
2536         * libltdl/lt__private.h: Don't refer to lt__pre89.h.
2537         * libltdl/Makefile.am (ltdldata_DATA): Remove references to
2538         deleted files.
2539         * NEWS: Mention it.
2541         * libltdl/lt__pre89.h, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/argz.c,
2542         libltdl/argz.h, libltdl/lt__glibc.h, libltdl/lt_dlloader.h,
2543         libltdl/lt__dirent.c, libltdl/lt__dirent.h, libltdl/lt__private.h,
2544         libltdl/lt__alloc.c, libltdl/lt__alloc.h, libltdl/lt_system.h,
2545         libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
2546         libltdl/loader-dyld.c,  libltdl/loader-loadlibrary.c,
2547         libltdl/loader-shl_load.c, libltdl/lt_error.h, libltdl/lt_mutex.h:
2548         Autoconf either defines to 1 or undefs the discovery macros it
2549         puts in config.h, and many (non-GNU) compilers throw a spurious
2550         warning when testing an #undef macro with #if.  For consistency,
2551         while we are touching all these lines, use defined(MACRO) style
2552         throughout.
2553         Reported by Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
2555 2004-04-13  Gary V. Vaughan  <gary@gnu.org>
2557         Factor out the individual loaders, in preparation for preloading
2558         them as libtool modules.  Currently loader-preopen.c is linked
2559         unconditionally and other appropriate loaders discovered by
2560         AC_LTDL_DLLIB are built and linked in:
2562         * libltdl/Makefile.am (libltdl_la_SOURCES): Add loader-preopen
2563         module.
2564         * m4/ltdl.m4 (AC_LTDL_DLLIB): Use AC_LIBOBJ to add appropriate
2565         loaders to libltdl.
2566         * libltdl/lt_system.h (LT_SCOPE): Moved to here.
2567         * libltdl/ltdl.h (lt_dlloader, lt_user_data, lt_module)
2568         (lt_module_open, lt_module_close, lt_find_sym, lt_dlloader_exit)
2569         (struct lt_user_dlloader, lt_dlloader_next, lt_dlloader_find)
2570         (lt_dlloader_name, lt_dlloader_data, lt_dlloader_add)
2571         (lt_dlloader_remove): Moved declarations...
2572         * libltdl/lt_loader.h: ...to here.
2573         * libltdl/ltdl.c: Include lt_loader.h.  Move loader implementation
2574         code from here...
2575         * libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
2576         libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
2577         libltdl/loader-loadlibrary.c, libltdl/loader-preopen.c,
2578         libltdl/loader-shl_load.c: ...to here.
2579         * tests/cdemo/Makefile.am, tests/demo/Makefile.am,
2580         tests/depdemo/Makefile.am, tests/f77demo/Makefile.am,
2581         tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am,
2582         tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (AM_CPPFLAGS):
2583         Add -I$(top_srcdir)/../.. so that libltdl include files can be
2584         written as #include <libltdl/lt_dlloader.h> and found correctly.
2586 2004-04-13  Gary V. Vaughan  <gary@gnu.org>
2588         Factor out the mutex handling and error handling into their own
2589         modules.  Mutex handling is not currently useful in combination
2590         with posix threads, and should be easier to replace if it is in a
2591         separate module.  Additionally, we can factor out the loaders in
2592         such a way as to depend on only the portability layer and these
2593         new mutex and error modules now:
2595         * libltdl/Makefile.am (pkginclude_HEADERS): Install lt_error.h and
2596         lt_mutex.h to $includedir/libltdl.
2597         (libltdl_la_SOURCES): Build lt_error and lt_mutex objects.
2598         * libltdl/ltdl.h (LT_SCOPE): Moved from here...
2599         * libltdl/lt_system.h (LT_SCOPE): ...to here.
2600         * libltdl/ltdl.c (lt_dlerror_strings, LT_DLSTRERROR): Moved from
2601         here...
2602         * libltdl/lt__private.h (lt__error_strings, LT__STRERROR): ...to
2603         here as additional internal interfaces to lt_error.  Changed all
2604         callers.
2605         * libltdl/ltdl.c (LT_DLMUTEX_LOCK, LT_DLMUTEX_UNLOCK)
2606         (LT_DLMUTEX_SETERROR, LT_DLMUTEX_GETERROR, lt_dlmutex_lock_func)
2607         (lt_dlmutex_unlock_func, lt_dlmutex_geterror_func)
2608         (lt_dllast_error): Moved from here...
2609         (LT__MUTEX_LOCK, LT__MUTEX_UNLOCK, LT__MUTEX_SETERRORSTR)
2610         (LT__MUTEX_GETERROR, lt__mutex_lock_func, lt__mutex_unlock_func)
2611         (lt__mutex_geterror_func, lt__last_error): ...to here as
2612         additional internal interfaces to lt_mutex.  Changed all callers.
2613         (LT_MUTEX_SETERROR): Take an errorcode rather than a string.
2614         Changed all callers.
2615         * libltdl/ltdl.c, libltdl/ltdl.h (lt_dlmutex_register): Moved from
2616         here...
2617         * libltdl/lt_mutex.c, libltdl/lt_mutex.h (lt_dlmutex_register):
2618         ...to here. New files.
2619         * libltdl/ltdl.c, libltdl/ltdl.h (lt_dladderror, lt_dlseterror)
2620         (lt_dlerror_table):
2621         Moved from here...
2622         * libltdl/lt_error.c, libltdl/lt_error.h (lt_dladderror)
2623         (lt_dlseterror, lt_dlerror_table): ...to here. New files.
2625 2004-04-13  Scott James Remnant  <scott@netsplit.com>
2627         * Makefile.am (XDELTA_OPTIONS): Remove --pristine as that
2628         generates huge xdeltas.
2630 2004-04-08  Gary V. Vaughan  <gary@gnu.org>
2632         * libltdl/ltdl.c (argz_append, argz_create_sep, argz_insert)
2633         (argz_next, argz_stringify): Move from here...
2634         * libltdl/argz.c: New file. ...to here.
2635         * libltdl/lt__glibc.h: New file. Rename global symbols into the
2636         lt__ namespace.
2637         * libltdl/lt__private.h: Include lt__glibc.h.
2638         * libltdl/Makefile.am (libltdl_la_SOURCES): Add new files.
2639         (AM_CPPFLAGS): Add -DLTDL.
2640         * libltdl/argz.h (argz_append, argz_create_sep, argz_insert)
2641         (argz_next, argz_stringify): New file. Declare argz functions
2642         here, including lt__glibc.h when LTDL is defined to rename global
2643         symbols for libltdl.
2644         * m4/ltdl.m4 (AC_LTDL_FUNC_ARGZ): Add argz to AC_LIBOBJ if any of
2645         our argz_* functions are missing from the system libraries.
2647         * libltdl/ltdl.c: Move standard headers and preprocessor guards
2648         from here...
2649         * libltdl/lt__private.h: ...to here.  New file to declare ltdl's
2650         internal interfaces.
2651         * libltdl/ltdl.c: Include lt__private.h.
2652         * m4/ltdl.m4 (AC_LIB_LTDL): Add lt_dirent to AC_LIBOBJ if all of
2653         opendir, readdir and closedir are missing.
2654         (AC_CHECK_HEADERS): Remove assert.h, ctype.h, errno.h, malloc.h,
2655         stdio.h and stdlib.h; these headers are all available in standard
2656         c89 environments and newer.
2657         * libltdl/lt__private.h: Include them here unconditionally.
2658         * libltdl/lt__dirent.c (opendir, readdir, closedir): New file.
2659         Windows dirent emulation functions moved to here...
2660         * libltdl/ltdl.c (opendir, readdir, closedir): ...from here.
2661         * libltdl/lt__dirent.h: New file.  Rename the global symbols from
2662         lt__dirent.c into the lt__ namespace so they don't clash with
2663         other libraries.
2665 2004-04-08  Gary V. Vaughan  <gary@gnu.org>
2667         Factor out the bottom portability layer from ltdl.  Code in this
2668         layer has global symbols renamed by lt__pre89.h, and may not
2669         refer to any symbols except those provided by the system libraries
2670         or other code in the portability layer:
2672         * libltdl/lt__pre89.h: New file.  Rename all the symbols from
2673         LTLIBOBJS into the lt__ namespace so that they don't clash with
2674         other libraries.
2675         * libltdl/ltdl.c (rpl_memcpy, rpl_memmove, rpl_strchr, rpl_strcmp)
2676         (rpl_strrchr): Moved from here...
2677         * libltdl/memcpy.c (memcpy): ...to here, and fixed void *
2678         dereference bug...
2679         * libltdl/memmove.c (memmove): ...to here, and fixed void *
2680         dereference bug...
2681         * libltdl/strchr.c (strchr): ...to here...
2682         * libltdl/strcmp.c (strcmp): ...here...
2683         * libltdl/strrchr.c (strrchr): ...and here.
2684         * libltdl/Makefile.am (libltdl_la_SOURCES): Add lt__pre89.h.
2685         (libltdl_la_LIBADD, libltdlc_la_LIBADD): Add $(LTLIBOBJS).
2686         (ltdldata_DATA): Add replacement sources files.
2687         * m4/ltdl.m4 (AC_LIB_LTDL): Do careful config.h and LTLIBOBJ
2688         setting for missing pre89 functions.
2690 2004-04-08  Gary V. Vaughan  <gary@gnu.org>
2692         * libltdl/ltdl.h (LT_PARAMS): Removed.  Changed all users to
2693         ANSI prototypes.
2694         (lt_ptr): Keep backwards compatibility stub.
2695         * libtldl/ltdl.c, libltdl/ltdl.h: Use ANSI function declarations
2696         throughout.  s/lt_ptr/void */g.
2698 2004-04-08  Fredrik Estreen  <estreen@algonet.se>
2700         * m4/ltdl.m4: Rename shrext to shrext_cmds here too.
2702 2004-04-06  Gary V. Vaughan  <gary@gnu.org>
2704         There was no clean separation of abstraction layers in libltdl.
2705         The first step in fixing this is to factor out the memory
2706         management abstraction, making a start on removing promiscuity
2707         from the underlying portability layer:
2709         * doc/libtool.texi (Libltdl interface): Remove lt_dlmalloc,
2710         lt_dlrealloc and lt_dlfree references.  The memory management
2711         layer used by libltdl is now private.
2712         * libltdl/lt_system.h: New installed header for system portability
2713         abstraction.
2714         * libltdl/ltdl.h: Use it.
2715         * libltdl/lt__alloc.c, libltdl/lt__alloc.h: New module above
2716         system portability layer to abstract ltdl's memory management.
2717         * libltdl/ltdl.c: Use lt__alloc.h.
2718         (closedir): Use free.
2719         (opendir): Use malloc/free.
2720         (lt__xalloc_die_callback): Report memory failures through
2721         lt_dlerror.
2722         (lt_dlinit): Use it to initialise memory management.
2723         (LT_DLMALLOC, LT_DLREALLOC, LT_DLFREE, LT_EMALLOC, LT_EREALLOC)
2724         (rpl_strdup, rpl_realloc, lt_estrdup, lt_emalloc, lt_erealloc):
2725         Removed in favour of...
2726         (lt__strdup, lt__memdup, MALLOC, REALLOC, FREE): ...these calls
2727         from libltdl/lt__alloc.h.  Changed all callers.
2728         (rpl_argz_append, rpl_argz_create_sep, rpl_argz_insert): As part
2729         of the portability layer, these functions no longer use libltdl
2730         memory management API.
2731         (free_vars): Factored out.
2732         (LT_DLMEM_REASSIGN): While redoing memory handling, renamed...
2733         * libltdl/lt__alloc.h (MEMREASSIGN): ...to this.
2734         * libltdl/Makefile.am (AUTOMAKE_OPTIONS): Let automake track
2735         dependencies automatically.
2736         (pkgincludedir): Override from parent package's setting.
2737         (pkginclude_HEADERS): Install lt_system.h.
2738         (libltdl_la_SOURCES): Add new files.
2739         * NEWS: Updated.
2740         Reported by Dalibor Topic <robilad@kaffe.org>
2742 2004-04-01  Peter O'Gorman  <peter@pogma.com>
2744         * ltmain.in: Remove an extra eval concat_cmds that some idiot added.
2745         Fixes double eval on AIX, reported by Albert Chin and Uwe Moeller.
2747         * NEWS: Add a news item about xlc support that I forgot yesterday.
2749 2004-03-31  Peter O'Gorman  <peter@pogma.com>
2751         * m4/libtool.m4, ltmain.in (darwin): Support IBM's xlc and xlc++.
2753 2004-03-31  Gary V. Vaughan  <gary@gnu.org>
2755         * m4/libtool.m4 (_LT_LANG_C_CONFIG): If $compiler is not set, then
2756         don't call the macros that test it.
2757         (_LT_LANG_CXX_CONFIG): Ditto.
2758         (_LT_LANG_F77_CONFIG): Ditto.
2759         (_LT_LANG_GCJ_CONFIG): Ditto.
2760         (_LT_LANG_RC_CONFIG): Ditto.
2762 2004-03-30  Gary V. Vaughan  <gary@gnu.org>
2764         * libtoolize.in (func_scan_files): sed BRE have no alternation, so
2765         break LT_INIT matcher out.
2766         (func_serial): Don't escape literal parens for grep BRE.
2768         * m4/libtool.m4 (LT_INIT): aclocal can't see AC_DEFUN_ONCE, so use
2769         AC_DEFUN and m4_define.
2770         * libtoolize.in (func_serial): No longer accept AC_DEFUN_ONCE...
2771         (func_grep): ...so mere grep is sufficient again...
2772         (EGREP): ...and this is no longer required.
2774 2004-03-29  Gary V. Vaughan  <gary@gnu.org>
2776         * m4/libtool.m4: Use LT_INIT as #serial tag.
2777         * libtoolize.in: Grok LT_INIT!  Pass A[CM]_PROG_LIBTOOL to...
2778         (func_serial_update): ...here, we now take an additional parameter
2779         containing another regex to match ancient serialed files.
2780         (func_serial): Accept AC_DEFUN_ONCE of the #serial tag...
2781         (func_grep): ...which requires egrep...
2782         (EGREP): ...substituted by config.status.
2783         (func_scan_files): Set seen_libtool if LT_INIT goes by.
2785         * Makefile.am (pkgmacro_DATA): Install ltoptions.m4.
2787         * libltdl/Makefile.am (AM_CPPFLAGS): Also check $top_builddir for
2788         config.h.
2789         (ltdl.o): config.h is in $top_builddir.
2791 2004-03-24  Scott James Remnant  <scott@netsplit.com>
2793         * NEWS: Explain more fully why we no longer load libraries
2794         with global symbol resolution.
2795         * doc/libtool.texi (libtool script contents): Add missing
2796         documentation for 'inherit_rpath' variable.
2798         * configure.ac: Catch errors during calls to AC_PROG_CXX,
2799         AC_PROG_CXXCPP and AC_PROG_F77 before LT_INIT.  Only set the
2800         HAVE_CXX and HAVE_F77 conditions to true if an error didn't
2801         occur (AC_PROG_CXX leaves CXX="g++" even if it didn't find one).
2802         Set HAVE_GCJ and HAVE_RC to true correctly as well.
2803         * m4/libtool.m4 (LT_PROG_GCJ): If AC_PROG_GCJ or AM_PROG_GCJ are
2804         defined, expand to the definition of those instead of our own.
2805         Define GCJ to '' instead of 'no' if not found.
2806         (LT_PROG_RC) Define RC to '' instead of 'no' if not found.
2807         (_LT_LANG_GCJ_CONFIG): Require LT_PROG_GCJ to be expanded first.
2808         (_LT_LANG_RC_CONFIG): Require LT_PROG_RC to be expanded first.
2810         * libltdl/ltdl.c (sys_dl_open): Don't load libraries with global
2811         symbol resolution.
2812         * NEWS: Updated.
2814 2004-03-24  Albert Chin-A-Young  <china@thewrittenword.com>
2816         * m4/libtool.m4: Add new variable, inherit_rpath, if the
2817         RPATHs of the libraries being linked are inherited in
2818         the output file. For systems with a linker exhibiting
2819         this feature, programs/libraries must be relinked at
2820         installation time.
2822         * m4/libtool.m4: When linking convenience libraries on Solaris
2823         with the Sun C++ compiler, pass convenience libraries through
2824         to the linker with -Qoption between allextract/defaultextract.
2825         The Sun C++ compiler bundles -Qoption arguments so
2826         convenience libraries are linked with defaultextract
2827         otherwise.
2828         * tagdemo/Makefile.am, tagdemo/main.cpp, tagdemo/conv.h,
2829         tagdemo/conv.cpp: Augment tagdemo test to link a convenience
2830         library with a libtool library.
2832         * ltmain.in: Piecewise linking doesn't work when the output
2833         file is an absolute path, use the basename only instead.
2835         * ltmain.in: When a library is installed, dependent on a
2836         convenience library, and it involves relinking, the object
2837         files extracted from the convenience library are not removed
2838         after the relink. This is a problem if you build as non-root,
2839         install as root, then try to remove the build directory as
2840         non-root; Clean up properly if relink fails; Change
2841         "$realname"U to ${realname}T to be consistent.
2843 2004-03-24  Scott James Remnant  <scott@netsplit.com>
2845         * ltmain.in <prog linkmode>: Always add -L options to
2846         $newlib_search_path instead of just in scan mode to ensure that
2847         non-libtool libraries in user-specified directories can be found.
2849 2004-03-22  Scott James Remnant  <scott@netsplit.com>
2851         * m4/libtool.m4 (_LT_CONFIG): Remove unneeded else condition
2852         code, now the support determination is done in m4.
2853         (_LT_LANG): Correct comment, unexpected leak from keybuk-lt-tag.patch.
2855 2004-03-21  Scott James Remnant  <scott@netsplit.com>
2857         * libltdl/Makefile.am (libltdl_la_LDFLAGS): Increment CURRENT
2858         and AGE of libltdl, warranted by the addition of lt_dlhandle_find()
2859         since 1.5.2.
2861 2004-03-21  Scott James Remnant  <scott@netsplit.com>
2863         Further sweeping changes to the user interface to libtool from
2864         `configure.ac' to allow users to better control the list of
2865         supported languages.  Three LT_INIT options 'no-lang', 'all-lang'
2866         and 'auto-lang' (the default) control the initial list and others
2867         may be added with LT_LANG.
2869         * m4/libtool.m4 (_LT_CONFIG): Renamed AC_LIBTOOL_CONFIG to _LT_CONFIG
2870         which is more consistent with our own namespace and gets us further out
2871         of Autoconf's.
2872         (_LT_LIBTOOL_TAGS): Output available_tags variable based entirely
2873         on the value of _LT_TAGS.
2874         (_LT_COPYING): Call _LT_LIBTOOL_TAGS to output available tags,
2875         always append tag configuration if the tag is available.
2876         (LT_LANG): New macro to enable support for a language that accepts
2877         tag names (eg. "CXX") or human language names (eg. "C++").
2878         (_LT_LANG): Internal support macro for above that appends the
2879         tag to _LT_TAGS and calls the appropriate config macro.
2880         (LT_INIT): Ensure that LT_LANG is not called before LT_INIT.
2881         (AC_LIBTOOL_TAGS): Removed, call LT_LANG for each language now.
2882         (_LT_AC_TAG_CHECK): Removed, _LT_LANG handles duplicate calls.
2883         (_LT_LANG_DEFAULT_CONFIG): Macro to set initial language support
2884         based on options passed to LT_INIT.
2885         (_LT_SETUP): Call _LT_LANG_DEFAULT_CONFIG.
2886         (_LT_AC_TAG_CONFIG): Removed, handled by _LT_LANG_DEFAULT_CONFIG.
2887         (_LT_AC_LANG_CXX, _LT_AC_LANG_F77, _LT_AC_LANG_GCJ): Removed,
2888         automatic language support inclusion now handled by
2889         _LT_LANG_DEFAULT_CONFIG.
2890         (AC_LIBTOOL_CXX): Obsolete macro, update to LT_LANG(C++).
2891         (AC_LIBTOOL_F77): Obsolete macro, update to LT_LANG(Fortran 77).
2892         (AC_LIBTOOL_GCJ): Obsolete macro, update to LT_LANG(Java).
2893         (AC_LIBTOOL_LANG_C_CONFIG_: Removed.
2894         (_LT_AC_LANG_C_CONFIG): Renamed to _LT_LANG_C_CONFIG, call
2895         _LT_CONFIG instead of AC_LIBTOOL_CONFIG.
2896         (_LT_SETUP): Replace call to AC_LIBTOOL_LANG_C_CONFIG with call to
2897         new _LT_LANG_C_CONFIG macro.
2898         (AC_LIBTOOL_LANG_CXX_CONFIG): Removed.
2899         (_LT_AC_LANG_CXX_CONFIG): Renamed to _LT_LANG_CXX_CONFIG, call
2900         _LT_CONFIG instead of AC_LIBTOOL_CONFIG.
2901         (AC_LIBTOOL_LANG_F77_CONFIG): Removed.
2902         (_LT_AC_LANG_F77_CONFIG): Renamed to _LT_LANG_F77_CONFIG, call
2903         _LT_CONFIG instead of AC_LIBTOOL_CONFIG.
2904         (AC_LIBTOOL_LANG_GCJ_CONFIG): Removed.
2905         (_LT_AC_LANG_GCJ_CONFIG): Renamed to _LT_LANG_GCJ_CONFIG, call
2906         _LT_CONFIG instead of AC_LIBTOOL_CONFIG.
2907         (AC_LIBTOOL_LANG_RC_CONFIG): Removed.
2908         (_LT_AC_LANG_RC_CONFIG): Renamed to _LT_LANG_RC_CONFIG, call
2909         _LT_CONFIG instead of AC_LIBTOOL_CONFIG.
2910         (LT_AC_PROG_GCJ): Renamed to LT_PROG_GCJ.
2911         (LT_AC_PROG_RC): Renamed to LT_PROG_RC.
2912         * m4/ltoptions.m4: Define new 'no-lang', 'auto-lang' and 'all-lang'
2913         options which set the default for _LT_LANG_DEFAULT_CONFIG.
2914         * m4/lt~obsolete.m4: Removed AC_LIBTOOL_CONFIG, _LT_AC_LANG_C_CONFIG,
2915         _LT_AC_LANG_GCJ_CONFIG, _LT_AC_LANG_RC_CONFIG; all of which are no
2916         long referenced in any way.
2917         * configure.ac: Enable all languages.
2918         * tests/cdemo/configure.ac, tests/demo/configure,ac,
2919         tests/depdemo/configure.ac, tests/f77demo/configure.ac,
2920         tests/mdemo/configure.ac, tests/pdemo/configure,ac,
2921         tests/tagdemo/configure.ac: Remove calls to AC_LIBTOOL_TAGS,
2922         the default 'auto-lang' mode now does the right thing.
2923         * doc/libtool.texi (The LT_INIT macro): Add documentation for
2924         new LT_INIT options and the LT_LANG macro, replacing the old
2925         documentation of AC_LIBTOOL_TAGS which is no more.
2926         * NEWS: Updated.
2928 2004-03-17  Scott James Remnant  <scott@netsplit.com>
2930         * m4/libtool.m4: Removed AC_BEFORE references to AC_LIBTOOL_SETUP
2931         which is no more.
2932         * m4/lt~obsolete.m4: As AC_LIBTOOL_SETUP is no longer referenced,
2933         it can be removed from this file.  Remove _AC_PROG_LIBTOOL also.
2935 2004-03-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2937         * m4/libtool.m4: Remove newlines from lt_ld_extra, so
2938         variable can safely be stored in config.cache.
2940 2004-03-14  Michael Pruett  <michael@68k.org>
2942         * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS0 [irix]: Define
2943         archive_expsym_cmds so that --export-symbols will work.
2945 2004-03-11  Peter O'Gorman  <peter@pogma.com>
2947         * ltmain.in (link_all_deplibs,darwin): Link libraries in the
2948         correct order. Bug from Zachary Pincus <zpincus@stanford.edu>.
2950 2004-03-14  Scott James Remnant  <scott@netsplit.com>
2952         * m4/ltmain.in: Only check precious_files_regex if it is not empty.
2954 2004-03-14  Gary V. Vaughan  <gary@gnu.org>
2956         * doc/libtool.texi (Autoconf and LTLIBOBJS): The correct version
2957         of Autoconf is 2.54.
2958         From Alexandre Duret-Lutz  <adl@src.lip6.fr>
2960 2004-03-13  Gary V. Vaughan  <gary@gnu.org>
2962         * doc/libtool.texi (Using Automake): Cite correct Automake version
2963         for -dlopen quoting.
2964         (Autoconf and LTLIBOBJS): Cite correct Autoconf versions
2965         throughout.
2966         (Distributing libltdl): Use AM_CPPFLAGS; INCLUDES is deprecated.
2967         From Alexandre Duret-Lutz  <adl@src.lip6.fr>
2969 2004-03-05  David Edelsohn  <edelsohn@gnu.org>
2971         * m4/libtool.m4: Disable building static libraries if building
2972         shared libraries on AIX 5L.
2974 2004-03-05  Gary V. Vaughan  <gary@gnu.org>
2976         * libtoolize.in: Remove --ltdl-tar.  It doesn't work with the
2977         current implementation, and seems more or less pointless.
2978         * doc/libtool.texi (Invoking libtoolize): Updated.
2979         * NEWS: Updated.
2981         * doc/libtool.texi: This manual has not been maintained properly
2982         for a number of years.  Much of what it said was outdated, or
2983         plain wrong with reference to modern autotools.  This change
2984         represents a first pass edit to clean up the obviously wrong.
2986 2004-03-02  Gary V. Vaughan  <gary@gnu.org>
2988         * bootstrap: Prune out my arch mirror dir before running
2989         amok through the tree with 'rm -rf'!
2991 2004-03-02  Patrick Welche  <prlw1@newn.cam.ac.uk>
2993         * doc/libtool.texi (LT_INIT): Dumb typos fixed.
2995 2004-02-23  Gary V. Vaughan  <gary@gnu.org>
2997         * ltmain.in <install mode>: Add missing --help doc for
2998         -inst-prefix option.
3000         * ltmain.in <link mode>: Add missing --help doc for -shrext
3001         option.
3003         * ltmain.in (IFS): Move '\n' to beginning of IFS so that emacs
3004         doesn't offer to strip trailing ' \t' on every save.
3006         * ltmain.in: Add missing --help doc for --preserve-dup-deps.
3008 2004-02-22  Gary V. Vaughan  <gary@gnu.org>
3010         * Makefile.maint (web-manual): Generate the web manual carefully
3011         so that links will still work when it is uploaded to gnu.org.
3012         * README-alpha: Note that this rule should be used at release
3013         time.
3015 2004-02-20  Gary V. Vaughan  <gary@gnu.org>
3017         Sweeping changes to the user interface to libtool from
3018         `configure.ac' to be more like AC_INIT and accept a space
3019         delimited list of options.  Instead of calling `AC_LIBTOOL_DLOPEN;
3020         AC_PROG_LIBTOOL', we now recommend `LT_INIT([dlopen])':
3022         * m4/libtool.m4 (AC_PROG_LIBTOOL, _AC_PROG_LIBTOOL)
3023         (AC_LIBTOOL_SETUP): Removed.  Added AU_DEFUNs.
3024         (LT_INIT): Replace with an Autoconf like interface which accepts a
3025         version number as a minimum required libtool release at configure
3026         time.
3027         * m4/ltoptions.m4: New file inspired by automake/m4/amoptions.m4,
3028         which additionally flags an error if the configuring libtool
3029         macros are not new enough according to LT_INIT.
3030         (LT_OPTION_DEFINE): New macro to declare option handlers.
3031         (dlopen, win32-dll, shared, disable-shared, static)
3032         (disable-static, fast-install, disable-fast-install, pic-only)
3033         (no-pic): Newly LT_OPTION_DEFINEd option handlers that use...
3034         (_LT_ENABLE_SHARED, _LT_ENABLE_STATIC, _LT_ENABLE_FAST_INSTALL)
3035         (_LT_WITH_PIC, _LT_WIN32_DLL): New macros to handle
3036         LT_LIBTOOL_INIT options...
3037         * m4/libtool.m4 (AC_ENABLE_SHARED, AC_ENABLE_STATIC)
3038         (AC_ENABLE_FAST_INSTALL, AC_LIBTOOL_DLOPEN, AC_LIBTOOL_WIN32_DLL):
3039         ...to replace these user interface macros, now defined as
3040         AU_DEFUNs.
3041         (AC_DISABLE_SHARED, AC_DISABLE_STATIC, AC_DISABLE_FAST_INSTALL):
3042         Removed.  No longer required with LT_INIT_LIBTOOL interface.
3043         Added AU_DEFUNs.
3044         (AM_ENABLE_SHARED, AM_DISABLE_SHARED, AM_ENABLE_STATIC)
3045         (AM_DISABLE_STATIC): Changed AU_DEFUNs to match new interface.
3046         (_LT_SETUP): Internal to LT_INIT, replaces AC_LIBTOOL_SETUP.
3047         * m4/lt~obsolete.m4 (AC_LIBTOOL_SETUP, _AC_PROG_LIBTOOL)
3048         (_LT_PROG_LTMAIN):  More AC_DEFUNs that have been retracted.
3049         * configure.ac: Use new interface.
3050         * doc/libtool.texi: Document new interface.
3051         * NEWS: Updated.
3053 2004-02-18  Gary V. Vaughan  <gary@gnu.org>
3055         * commit (SHELL): Set it explicitly, incase some madman is using
3056         tcsh as their login shell :-b
3058 2004-02-15  Scott James Remnant  <scott@netsplit.com>
3060         * Makefile.am (m4/ltversion.m4): Generate serial number by
3061         removing initial '1.' from the revision, replace @MACRO_SERIAL@
3062         with this new variable.
3063         * m4/ltversion.in: Use @MACRO_SERIAL@ for the serial number
3064         as some shells don't like a '.' when using test.
3066         * m4/ltversion.in: Add a serial number to this file otherwise
3067         libtoolize will refuse to copy it into $pkgdatadir, where it
3068         is needed by m4/libtool.m4.
3070 2004-02-15  Peter O'Gorman  <peter@pogma.com>
3072         * m4/libtool.m4, ltmain.in: Rename shrext to shrext_cmds.
3074 2004-02-13  Scott James Remnant  <scott@netsplit.com>
3076         * ltmain.in, libtoolize.in, commit, config/mailnotify: Correctly
3077         quote usage of $basename and $dirname to avoid (unlikely) path
3078         expansion.
3080         * tests/sh.test: Test the config/ltmain.sh and libtoolize in the
3081         build directory not the source directory, where they won't exist
3082         during 'make distcheck'.
3083         * ltmain.in: Revert one line of previous intendation clean-up
3084         to enable one of the sh.test checks to pass.
3086         * tests/cdemo/configure.ac: Drop AC_PREREQ back to 2.54, this
3087         was debris from Gary's cvsapply going mad and wasn't backed
3088         out.
3090         * Makefile.am (pkgmacro_DATA): We have to distribute
3091         m4/ltversion.m4 because it can be needed before the Makefile
3092         that generates it exists.
3094 2004-02-13  Gary V. Vaughan  <gary@gnu.org>
3096         * commit (MKSTAMP): Look for mkstamp in the right place.
3098 2004-02-12  Scott James Remnant  <scott@netsplit.com>
3100         * Makefile.maint, Makefile: Move rules intended for Libtool
3101         maintainers only out of the Makefile we distribute and into one
3102         that we only need keep in CVS.
3103         * README-alpha: Add -fMakefile.maint to the instructions where
3104         needed.
3106 2004-02-12  Albert Chin-A-Young  <china@thewrittenword.com>
3107         Scott James Remnant  <scott@netsplit.com>
3109         * ltmain.in: Fix typo: duplcations -> duplications,
3110         Fix indentation of a handful of badly indented blocks,
3111         Fix last remaining use of 'grep' to $GREP,
3112         Remove unnecessary trailing slash where we break a line on a
3113         command separator.
3114         * m4/libtool.m4: Also remove unnecessary trailing slash where
3115         we break a line on a command separator.
3117 2004-02-12  Scott James Remnant  <scott@netsplit.com>
3119         * m4/ltoptions.m4: This got committed by an over-keen Gary,
3120         but the support for this isn't ready yet and if aclocal decides
3121         to m4_include this (which it will) you'll get a non-functioning
3122         libtool.  Removed.
3124         * ltmain.in: Remove duplicated version checking block.
3126         * bootstrap, m4/libtool.m4: Argh, Gary went crazy after cvsapply
3127         went crazy and backed out more than he should've.  This patch puts
3128         some of it back again.
3130         * ltmain.in, libtoolize.in, commit, config/mailnotify: Remove
3131         $SED from definitions of $dirname and $basename and prefix each
3132         use with it instead.  Some shells (zsh) treat the expansion as
3133         a single command instead of a command with arguments.
3135         * config/mailnotify (func_sendmail): Look for sendmail in a
3136         couple of common non-PATH locations as well.
3138         * ltmain.in: Fix typo: macro's -> macros.
3140         * ltmain.in: Correct definition of basename sed expression to
3141         not include single quotes.
3143 2004-02-12  Gary V. Vaughan  <gary@gnu.org>
3145         * libtoolize.in: Use $progpath as for ltmain.in to work around the
3146         IRIX bug described below.
3147         * commit, config/mailnotify: Ditto. Resynch with cvs-utils HEAD.
3149 2004-02-12  Albert Chin-A-Young  <china@thewrittenword.com>,
3150             Gary V. Vaughan  <gary@gnu.org>
3152         * ltmain.in (progpath): Work around backward compatibility issue
3153         on IRIX 6.5. On IRIX 6.4+, sh is ksh but when the shell is invoked
3154         as "sh" and the current value of the _XPG environment variable is
3155         not equal to 1 (one), the special positional parameter $0, within
3156         a function call, is the name of the function. So, rather than
3157         using "$0" in functions, we set $progpath in the body and use that
3158         everywhere instead (incase of code refactoring later).
3159         (EXIT_SUCCESS, EXIT_FAILURE, EXIT_MISMATCH): For clarity.
3161 2004-02-12  Gary V. Vaughan  <gary@gnu.org>
3163         * Makefile.am (EXTRA_DIST): Remove config/mailnotify after all; it
3164         is of no use in a distribution tarball.
3166 2004-02-11  Gary V. Vaughan  <gary@gnu.org>
3168         * commit: Fix cut-n-paste error.
3170         * commit: Completely change CVS/Root->name sed script to actually
3171         work when :ext: is not shown.
3173         * commit: Improve CVS/Root->name sed script to work when :ext: is
3174         not shown.
3176 2004-02-11  Albert Chin-A-Young  <china@thewrittenword.com>
3178         * m4/libtool.m4: Fix typo: testring -> teststring.
3180 2004-02-11  Gary V. Vaughan  <gary@gnu.org>
3182         * commit: Mail a nicer commit notification.
3184 2004-02-10  Gary V. Vaughan  <gary@gnu.org>
3186         * NEWS, bootstrap, configure.ac, ltmain.in, m4/libtool.m4:
3187         * m4/lt~obsolete.m4, tests/cdemo/configure.ac: Arghh.  cvsapply just
3188         went crazy and committed a bunch of stuff that shouldn't have been
3189         in the last changeset.  The patch backs it all out.
3191         * config/mailnotify: New file for mailing commit notifications,
3192         imported from cvs-utils.
3193         * commit: Updated from cvs-utils and tweaked for libtool.
3194         * Makefile.am (EXTRA_DIST): Add config/mailnotify.
3196 2004-02-06  Gary V. Vaughan  <gary@gnu.org>
3198         * bootstrap: Remove vcl.tmp, otherwise it can interfere with make.
3199         * Makefile.am (vcl.tmp): Move comment out of multi-line command,
3200         as this rule is called from bootstrap as if it were a Makefile.
3202         * m4/ltversion.in: New file to capture what version number macros
3203         are being used.
3204         * Makefile.am (m4/ltversion.m4): New rule to create it from
3205         m4/ltversion.in.
3206         (nodist_pkgmacro_DATA): Add m4/ltversion.m4.
3207         (EXTRA_DIST): Add m4/ltversion.in.
3208         * m4/libtool.m4 (AC_LIBTOOL_SETUP): AC_REQUIRE LTVERSION_VERSION
3209         from ltversion.m4.
3210         * bootstrap: Call the Makefile.am to create an initial
3211         m4/ltversion.m4.
3212         * ltmain.in: Diagnose version mismatches of various flavours.
3213         * TODO: Remove mismatch item.
3214         * NEWS: Updated.
3216         * Makefile.am ($(top_builddir)/config.status): Removed.
3217         * configure.ac (CONFIG_STATUS_DEPENDENCIES): This substitution is
3218         how automake-1.8 now informs all Makefiles when config.status
3219         needs to be rebuilt.
3220         Reported by Alexandre Duret-Lutz <adl@src.lip6.fr>
3222         * configure.ac (AC_CONFIG_FILES): Generate libtoolize from here.
3223         * Makefile.am (libtool, libtoolize): These rules are redundant.
3224         Automake generates better rules for remaking these files.
3226         * m4/libtool.m4 (AC_LIBTOOL_SETUP): Catch unexpanded macros with
3227         beginning with LT_ and _LT_.
3228         * configure.ac (LT_MAJOR, LT_MINOR, LT_MICRO, LT_ALPHA): Renamed
3229         to lt_major, lt_minor, lt_micro, lt_alpha to save triggering the
3230         unexpanded macros error.
3232         * m4/libtool.m4 (AC_PROVIDE_IFELSE): Removed.  We now require
3233         Autoconf 2.58, which ships this macro anyway.
3235         * Makefile.am: Comment typo.
3237         * m4/libtool.m4 (LT_PREREQ): Declare the minimum release number
3238         that is required for the calling code.
3239         * doc/libtool.texi (AC_PROG_LIBTOOL): Document it.
3240         * NEWS: Updated.
3242 2004-02-05  Peter O'Gorman  <peter@pogma.com>
3244         * ltmain.in (infer_tag, win32_libid): Style changes. Rename
3245         infer_tag to func_infer_tag and win32_libid to func_win32_libid.
3246         * m4/libtool.m4 (cygwin): rename win32_libid to func_win32_libid.
3248 2004-02-04  Peter O'Gorman  <peter@pogma.com>
3250         * ltmain.in (infer_tag): Move tag inferrence to a shell function.
3251         Also test $base_compile against $CC with escaped arguments. Bug
3252         reported by Geoff Keating <geoffk@apple.com>.
3254 2004-02-03  Scott James Remnant  <scott@netsplit.com>
3256         * Makefile.am (install-data-hook): Manually make config.guess
3257         and config.sub executable after they are installed as _DATA.
3258         We can't use _SCRIPTS because the various program name
3259         transforms may be applied to them.
3260         (dist_pkgdata_DATA): List config.guess and config.sub here
3261         (pkgdata_SCRIPTS): instead of here.
3263 2003-02-03  Scott James Remnant  <scott@netsplit.com>
3265         * ltmain.in: Create temporary directory under a strict umask
3266         rather than running chmod afterwards, preventing a race
3267         condition where the directory could be replaced with a symbolic
3268         link in the time between the two commands.
3270 2004-01-31  Peter O'Gorman  <peter@pogma.com>
3272         * m4/libtool.m4 (_LT_CONFIG_STATUS_DECLARE): Change `echo to
3273         `$echo, causes problems when builtin echo is broken. Reported
3274         by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
3276 2004-01-27  Scott James Remnant  <scott@netsplit.com>
3278         This fixes release procedure problems discovered whilst making
3279         the 1.5.2 release.
3281         * Makefile.am (cvs-dist): Because we check whether ChangeLog
3282         has been committed, this rule can't be run with uncommitted
3283         source so we can't run 'commit' and don't need to run
3284         'make dist' a second time.  Fix CVS tag as it should be
3285         "release-X" not "Release-X".
3286         (cvs_commit): New rule for the cvs-release chain that runs
3287         'commit'
3288         (cvs-release): Depend on cvs-commit, depend on deltas instead of
3289         cvs-diff and xdelta.
3290         (cvs-diff): Removed, replaced with delta-diff.
3291         (delta-diff): Unpack and diff the old and new tarballs rather
3292         than using CVS, so we get a genuinely complete diff.
3293         (xdelta): Removed, replaced with delta-xdelta.
3294         (got-xdelta): New rule for improved reading.
3295         (delta-xdiff): Copied and cleaned up version of old xdelta rule.
3296         (deltas): Depends on delta-diff and delta-xdelta (make deltas).
3297         (cvs-news): Don't depend on timestamps, cvs-dist itself does now.
3298         (prev-tarball): This is the only place we need a LASTRELEASE check
3299         so copy the code here and remove the CHECK_RELEASE variable.
3300         (new-tarball): Check there's a new tarball (did cvs-dist work?)
3301         (FETCHFILES): Remove obsolete libltdl mentions.
3302         * README-alpha: Update CVS instructions as everything's changed
3303         on Savannah.
3304         (Release procedure): Update NEWS and ChangeLog after changing
3305         the version number (both times); Run 'make fetch' after running
3306         'configure' (difficult to do it beforehand); Require 'commit'
3307         before 'make cvs-dist' as that checks ChangeLog is committed;
3308         'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE
3309         to make instead of OLDVERSION (and it's mandatory); Clean up
3310         uploading paragraph; Clearer announcement sending instruction;
3311         Removed ftp-upload@gnu.org mail as that's not necessary now;
3312         Make web page updating instructions a bit clearer; Add an instruction
3313         to update the manual for non-alphas.
3314         (Alpha release note template): Add a Subject; update CVS instructions.
3315         (Full release note template): Add a Subject; update CVS instructions.
3316         * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk
3317         about bz2 files in our release announcements; remove old reference
3318         to OLDVERSION.
3320 2004-01-25  Scott James Remnant  <scott@netsplit.com>
3322         * NEWS: Include 1.5.2 release information.
3324 2004-01-22  Gary V. Vaughan  <gary@gnu.org>
3326         This fixes a bug in the libtoolize ltdl source installation rules,
3327         which were copying Makefile.in from the libtool tree into the
3328         package running libtoolize.  Now we explicitly list the files to
3329         copy to force the package to generate its own Makefile.in:
3331         * libltdl/Makefile.am (libltdl_la_SOURCES, libltdlc_la_SOURCES):
3332         Add ltdl.h.
3333         (ltdldatadir): New variable for installation directory of
3334         libtoolize --ltdl files.
3335         (ltdldata_DATA): Tell automake what files to copy there at install
3336         time (and remove at unistall time!).
3337         (local-install-files): Removed.  This hack is not required
3338         anymore, the automake generated install rules are much more
3339         advanced than this.
3340         * Makefile.am (install-data-hook, uninstall-local): Removed.
3341         Libltdl files for libtoolize are installed by their own Makefile
3342         now.
3344 2004-01-22  Jeff Squyres  <jsquyres@lam-mpi.org>
3346         * m4/libtool.m4 (AC_LIBTOOL_PROG_CC_C_O): Some compilers
3347         (e.g. Intel Linux icc compiler) write temporary files to the current
3348         directory. These compilers do support -c and -o simultaneously but
3349         wrongly fail the test due to the failure to create temporary
3350         files. It is incorrect to penalize compilers which write temporary
3351         files to the current directory so the 'chmod -w .' is therefore
3352         removed.
3354 2004-01-22  Gary V. Vaughan  <gary@gnu.org>
3356         * m4/libtool.m4 (LT_AC_PROG_EGREP): Wrapper for AC_PROG_GREP.
3357         AIX has a brain-dead grep that only handles lines < 2048
3358         characters.  Default GREP incase we are not using a future
3359         autoconf that sets it for us :-)  Changed all callers to use $GREP
3360         instead of grep, and to AC_REQUIRE LT_AC_PROG_EGREP.
3361         Declare GREP as a libtool config var.
3362         * ltmain.in: Use it.
3363         * tests/sh.test (scripts): Accept `if $GREP "^foo=bar"' by
3364         tightening the regexp.
3365         Reported by Albert Chin-A-Young  <china@thewrittenword.com>
3367 2004-01-21  Nick Hudson  <skrll@netbsd.org>
3369         * m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [netbsd*]: Remove
3370         gratuitous ${libname}${release}${shared_ext} from
3371         library_names_spec.
3373 2004-01-21  Peter O'Gorman  <peter@pogma.com>
3375         * m4/libtool.m4 (AC_PROG_LD_RELOAD_FLAG): On darwin change the
3376         reload_cmds to use $CC, otherwise ld will thin out any fat
3377         objects.
3379 2004-01-18  Benjamin Reed  <ranger@befunk.com>
3381         * ltmain.in: Fix handling of frameworks in search paths.  Also
3382         a one-liner fix to eval shrext in the libtool library search.
3384 2004-01-16  Gary V. Vaughan  <gary@gnu.org>
3386         * configure.ac (AM_INIT_AUTOMAKE): Require 1.8 for bootstrap, or
3387         else aclocal.m4 is huge, and m4 directory is not distributed.
3389         * configure.ac (AC_CONFIG_HEADERS): Create config.h in
3390         $top_srcdir.
3391         * m4/ltdl.m4 (AC_LIB_LTDL): Run AC_CONFIG_HEADERS for the user if
3392         necessary. Calculate filename from first argument to
3393         AC_CONFIG_HEADERS, and substitute as CONFIG_H.
3394         * libltdl/Makefile.am (AM_CPPFLAGS): Make sure we are searching in
3395         $top_srcdir for headers.
3396         (DEFS): Override the default HAVE_CONFIG_H with the config.h
3397         filename.
3398         (ltdl.lo): Reference config.h via $(CONFIG_H).
3399         * libltdl/ltdl.c (HAVE_CONFIG_H): Ditto.
3401 2004-01-15  Scott James Remnant  <scott@netsplit.com>
3403         * m4/lt~obsolete.m4: Add a file containing aclocal-fooling
3404         macro definitions which stop the contents of an installed
3405         libtool.m4 ending up in our aclocal.m4 when we bootstrap.
3406         * Makefile.am (pkgmacro_DATA): Note that we don't need to add
3407         lt~obsolete.m4 to this list.
3409 2004-01-12  Gary V. Vaughan  <gary@gnu.org>
3411         * m4/libtool.m4 (_LT_COPYING): Factor out copyright message so it
3412         only needs to be updated in one place.
3413         (AC_LIBTOOL_CONFIG): Refactor to be more readable.  Only add
3414         tags if a compiler was found; ie if you have no gcj compiler,
3415         don't tack the GCJ tag onto the generated libtool script.
3417 2004-01-13  Peter O'Gorman  <peter@pogma.com>
3419         * m4/libtool.m4: Quote shrext as it is evaled in ltmain.
3421 2004-01-11  Scott James Remnant  <scott@netsplit.com>
3423         * ltmain.in: new -precious-files-regex link mode option
3424         to prevent removal of matching files from the temporary
3425         output directory.
3426         (Debian Bug #221420)
3427         * doc/libtool.texi: document the new option.
3428         * NEWS: announce the new option.
3430 2004-01-11  Gary V. Vaughan  <gary@gnu.org>
3432         * libtoolize.in (func_copy_all_files): s/xfunc_copy/Xfunc_copy.
3433         Now the test can actually succeed sometimes.
3435 2004-01-09  Gary V. Vaughan  <gary@gnu.org>
3437         * libtoolize.in: Break out of the command argument parse loop when
3438         -- is encountered.
3440 2004-01-08  Gary V. Vaughan  <gary@gnu.org>
3442         * libtoolize.in (func_copy_all_files): s/test "x/test "X/ to keep
3443         tests/sh.test happy.
3445 2004-01-07  Gary V. Vaughan  <gary@gnu.org>
3447         * Makefile.am (aclocal_macros, aclocal_DATA): Removed.
3448         (EXTRA_DIST): Remove m4 macro files; they are automatically
3449         added by automake.
3450         (pkgmacrodir): Where to install libtool macro files.
3451         (pkgmacro_DATA): List installable libtool macro files.
3452         (install-data-local): Remove previous versions of ltdl.m4 and
3453         libtool.m4 from their old location.
3454         * libtoolize.in: Use new pkgmacrodir installed macros when
3455         libtoolizing a project.  Treat libtool.m4 and ltdl.m4 specially,
3456         and func_serial_update() any other files from pkgmacrodir.
3457         (pkgmacrodir): Where to find installed libtool macro files.
3458         (aclocaldir): Removed.
3459         (func_copy_all_files): Add an optional callback parameter to
3460         control how files are copied.  If the callback is passed, don't
3461         tell it whether it can copy or not.
3462         (func_serial): Exchange parameters and make macro_regex optional,
3463         so that this function can be used to extract serial numbers from
3464         files with the traditional /^# serial [1-9][0-9]*$/ syntax.
3465         Changed all callers.
3466         (func_serial_update): Make macro_regex optional last parameter, so
3467         that this function can be used as a callback for
3468         func_copy_all_files().  Changed all callers.
3469         * m4/ltsugar.m4: Add a serial number.
3471 2004-01-07  Gary V. Vaughan  <gary@gnu.org>
3473         A complete rewrite of the m4 code involved in the generation of
3474         libtool via config.status.  The old way involved manually
3475         synchronising disparate bits of shell code in several macros, to
3476         quote a copy of a shell variable, put that in config.status, maybe
3477         add it to some quotation loops to prevent early expansion, and
3478         then add a block to _LT_CONFIG_COMMANDS to bring it into the
3479         libtool script.  The new way is to mark shell variables for
3480         propogation using _LT_DECL for language independent variables, or
3481         _LT_TAGDECL for those that need to be propogated in several
3482         language flavours.  The marking can be done in the macro that
3483         probes the variables, and this new m4 machinery takes care of
3484         synchronising all the other bits of code at autoconf time:
3486         * m4/ltsugar.m4:  New file.  Macros that are useful outside the
3487         context of libtool.  Initially, contains some generalised list
3488         management macros, and the scaffolding for dictionary type data
3489         storage and retrieval.
3490         * Makefile.am (aclocal_macros): Install ltsugar.m4.
3491         * m4/libtool.m4 (_LT_DECL): Mark a shell variable for export to
3492         the libtool script, along with a comment, and hints for quoting
3493         and renaming.
3494         (_LT_TAGDECL): Similarly mark a tagged shell variable for export
3495         in each tag.
3496         (lt_decl_tag_varnames, lt_decl_quote_varnames)
3497         (lt_decl_dquote_varnames, lt_decl_varnames_tagged)
3498         (lt_decl_all_varnames):  New utility macros for managing lists of
3499         shell variable names from _LT_DECL and _LT_TAGDECL.
3500         (_LT_CONFIG_STATUS_DECLARATIONS, _LT_CONFIG_STATUS_DECLARE):
3501         Expand to correctly quoted variable declarations in config.status
3502         from all marked shell variables.
3503         (_LT_LIBTOOL_DECLARE): Expand to commented and quoted variable
3504         declaration for libtool tag section.
3505         (_LT_LIBTOOL_CONFIG_VARS, _LT_LIBTOOL_TAG_VARS): Pass all marked
3506         variables to _LT_LIBTOOL_DECLARE.
3507         (_LT_CONFIG_COMMANDS): Use _LT_CONFIG_STATUS_DECLARATIONS and
3508         friends to generate all the variable passing shell code for
3509         config.status, to get marked variables from libtool.m4 into
3510         libtool itself eventually.
3511         (AC_LIBTOOL_CONFIG): Generate marked variable code for libtool tag
3512         configuration.  Changed all client macros to mark variables
3513         suitably rather than the hand pasting that was necessary
3514         previously.
3515         (AC_PROG_SED): Renamed from LT_AC_PROG_SED.
3516         (LT_AC_PROG_SED): Wrap AC_PROG_SED, and mark shell variables for
3517         propogation to the libtool script.
3519 2004-01-07  Gary V. Vaughan  <gary@gnu.org>
3521         * libtoolize.in (seen_gettext): Removed unused variable.
3523 2004-01-06  Gary V. Vaughan  <gary@gnu.org>
3525         * libtoolize.in (func_scan_files): Don't assume the existence of
3526         aclocal.m4.  Make the comment more descriptive.
3527         Reported by Alexandre Duret-Lutz <adl@src.lip6.fr>
3529         * NEWS: Note libtoolize changes.
3531         * ChangeLog.2003: New file, containing all the ChangeLog entries
3532         from 2003.  Trimmed ChangeLog accordingly.
3534         * ltmain.in: Output 2004 in the copyright from libtool --version.
3536 2004-01-03  Stefan Nordhausen  <nordhaus@informatik.hu-berlin.de>
3537         Scott James Remnant  <scott@netsplit.com>
3539         * ltmain.in: Don't use the mkdir -p option when creating a
3540         temporary output directory so a symlink attack can't be used to
3541         arbitrarily chmod other directories on the system if libtool
3542         gets run as root.
3544 2004-01-02  Peter O'Gorman  <peter@pogma.com>
3546         * m4/libtool.m4: Ensure that ${ZSH_VERSION+set} is properly escaped.
3548         * m4/libtool.m4 (CDPATH): Change the CDPATH setting so that it
3549         allows for zsh differences, as noted in the autoconf manual's
3550         Portable Shell - Special Shell Variables section.
3552 2004-01-02  Scott James Remnant  <scott@netsplit.com>
3554         * .cvsignore: Ignore stamp-vcl created by the Makefile.
3556 2004-01-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
3557         Joe Orton  <joe@manyfish.co.uk>
3559         * m4/libtool.m4 (AC_LIBTOOL_CONFIG): Add extra blackslash
3560         in front of all the inner double-quotes as this is removed
3561         on Solaris, IRIX and AIX leading to broken definitions
3562         in config.status.
3564 2004-01-02  Scott James Remnant  <scott@netsplit.com>
3566         * NEWS: Next release will be in 2004.
3568 Continued in ChangeLog.2003