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
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'
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
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
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++
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
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
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'
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
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.
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.
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
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
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
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
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
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 libltdl/libltdl to allow
313 `#include <libltdl/ltdl.h>' to always work:
315 * libltdl/Makefile.am, libltdl/loaders/Makefile.am: Look for includes
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
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
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
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
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
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
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.
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
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
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
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 * libltdl/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
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
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
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
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
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
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
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
658 * configure.ac (AC_CONFIG_TESTDIR): Re-enable commented out
660 (AUTOTEST, M4SH): Use --language long hand.
661 * bootstrap: Generate tests/testsuite, and by implication
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
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
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
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
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
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
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
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
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.
855 * config/ltmain.m4sh: Need to include getopt.m4sh earlier so that
856 progpath is set before it is called to --no-reexec.
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
871 ($(top_srcdir)/tests/defs.in, $(top_srcdir)/tests/defs): Ditto.
872 ($(top_srcdir)/config/ltmain.sh): Swap ltmain.m4sh and ltmain.in
874 * bootstrap: Make libtoolize.in and tests/defs.in.
877 2004-10-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
879 * README, README.alpha: Update notes regarding available VERBOSE
882 2004-10-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
884 * config/ltmain.in: Change $XSED to $Xsed to fix hang noticed
886 * tests/defs.in: Support VERBOSE=debug to enable shell tracing
889 2004-10-03 Gary V. Vaughan <gary@gnu.org>
892 * configure.ac: Bumped version to 1.9e.
894 GNU libtool 1.9d was released.
896 * configure.ac: Bumped version to 1.9d.
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
906 (libltdlc_la_SOURCES): ...use libdlloader_la_SOURCES here
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
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
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
945 (_LT_SYS_DYNAMIC_LINKER): Set defaults for s390x-ibm-tpf host.
946 (_LT_CHECK_MAGIC_METHOD): Skip all dependency checks for
948 (_LT_LINKER_SHLIBS): Make s390x-ibm-tpf hosts adopt GNU/Linux OS
952 2004-10-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
954 * config/ltmain.in (func_mode_install): Need to set $tmpdir before
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
997 Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
999 * m4/libtool.m4 (rm): Use RM throughout for consistency with
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
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
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
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
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
1148 (func_serial): No need to double up m4sh quotes after a `#'.
1149 (func_check_macros): Escape `dnl' to stop m4sh interpreting it as
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
1154 * Makefile.am ($(top_srcdir)/config/ltmain.sh): Now built with
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
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.
1192 * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): better quoting for
1193 postinstall_cmds and postuninstall_cmds to allow spaces in install
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
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
1212 * tests/assign.test: Removed; chokes on perfectly valid shell
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
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
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).
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
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
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
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
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.
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.
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
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.
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
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.
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.
1457 Add missing copyright preamble.
1458 * tests/demo-static.test: Add missing copyright preamble.
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.
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'.
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
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
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
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
1563 (vm_sym): Skip the new originator symbol when scanning symbol
1565 * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Adjust preloaded symbols
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
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
1614 * libltdl/lt_dlloader.h (lt_dlloader_remove): Ditto.
1615 * libltdl/ltdl.c (lt_dlexit): Adjust.
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>
1629 * configure.ac: Bumped version to 1.9c.
1631 GNU libtool 1.9b was released.
1633 * configure.ac: Bumped version to 1.9b.
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
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
1658 * libltdl/Makefile.am (libltdlc_la_LDFLAGS): Use it.
1659 * doc/libtool.texi (Linking with dlopened modules): Document it.
1660 (Link mode): Mention -weak.
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
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
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
1750 * m4/libtool.m4 (_LT_LINKER_SHLIBS): Add per-tag variable
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
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
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
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
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
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
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
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,
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
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
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
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.
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
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
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
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
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
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
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
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
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
2212 (lt__error_strings): Make this opaque to callers.
2213 * libltdl/lt_error.c (lt__error_strings): Move the implementation
2215 * libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
2216 make originator focused preloading possible. *BREAKS BACKWARDS
2218 (lt_dlloader_add): Take advantage of new fields to simplify
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
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
2246 * m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
2247 loading libraries/apis rather that stopping when an acceptable one
2249 (LT_DLLOADERS): New variable for holding dlloaders that can be
2251 * doc/libtool.texi: Document interface changes.
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
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
2266 * libltdl/loader-loadlibrary.c (sys_wll_open): Use new inteface to
2267 scan loaded handle->info.module fields for previously loaded
2269 * doc/libtool.texi (User defined module data): Document changes to
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.
2312 * doc/libtool.texi (Distributing libltdl): Improved documentation
2314 (Invoking libtoolize): Document new optional --ltdl target
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.
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
2345 (ltdldata_DATA): List *all* the files that libtoolize --ltdl will
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.
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.
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
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
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
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
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
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):
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.
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
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
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
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
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
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
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
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
2564 * m4/ltdl.m4 (AC_LTDL_DLLIB): Use AC_LIBOBJ to add appropriate
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
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
2602 * libltdl/lt__private.h (lt__error_strings, LT__STRERROR): ...to
2603 here as additional internal interfaces to lt_error. Changed all
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
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)
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
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
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
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
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 *
2679 * libltdl/memmove.c (memmove): ...to here, and fixed void *
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
2694 (lt_ptr): Keep backwards compatibility stub.
2695 * libltdl/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
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
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.
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
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
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
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
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()
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
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.
2928 2004-03-17 Scott James Remnant <scott@netsplit.com>
2930 * m4/libtool.m4: Removed AC_BEFORE references to AC_LIBTOOL_SETUP
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
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.
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
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
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
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
3041 (AC_DISABLE_SHARED, AC_DISABLE_STATIC, AC_DISABLE_FAST_INSTALL):
3042 Removed. No longer required with LT_INIT_LIBTOOL interface.
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.
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
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
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
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
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
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
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
3204 * Makefile.am (m4/ltversion.m4): New rule to create it from
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
3210 * bootstrap: Call the Makefile.am to create an initial
3212 * ltmain.in: Diagnose version mismatches of various flavours.
3213 * TODO: Remove mismatch item.
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.
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
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
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
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
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):
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
3340 * Makefile.am (install-data-hook, uninstall-local): Removed.
3341 Libltdl files for libtoolize are installed by their own Makefile
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
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
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
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
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
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
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
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
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
3494 (_LT_TAGDECL): Similarly mark a tagged shell variable for export
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
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
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
3564 2004-01-02 Scott James Remnant <scott@netsplit.com>
3566 * NEWS: Next release will be in 2004.
3568 Continued in ChangeLog.2003