keep static
[platform/upstream/libtool.git] / ChangeLog.2004
1 2004-12-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2
3         * config/getopt.m4sh (func_version, func_usage, func_help):
4         Use `$SED -n' instead of `$SED RANGE {..}; d' as AIX sed cannot
5         handle the latter.
6         (func_help): start autoconf and automake in subshells to avoid
7         error messages from ash or Bourne shell if not available.
8
9 2004-12-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10
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.
14
15 2004-12-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>,
16             Gary V. Vaughan <gary@gnu.org>
17
18         * Makefile.am, bootstrap, clcommit.m4sh, libtoolize.m4sh,
19         config/ltmain.m4sh: Replace `set --' with `set dummy [...]; shift'
20         for portability.
21         * tests/sh.test: Test for this.
22
23 2004-12-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24
25         * libtoolize.m4sh, config/ltmain.m4sh (most functions): New
26         variable $opt_debug is either `:' or `set -x' depending on
27         --debug.  Execute at most function entries to cater for ksh which
28         resets `-x'.
29         * tests/defs.m4sh: Ditto for VERBOSE=debug.
30
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'.
35
36         * doc/libtool.texi (all over): Use @option and @command.
37         Some more minor formatting updates, typos.
38
39         * m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH): Fix variable quoting;
40         allows lt_ECHO to match --fallback-echo again.
41
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>.
45
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>.
51
52         * tests/quote.test: Restart under the correct shell (the one
53         $ECHO was computed for).
54
55 2004-12-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
56
57         * libltdl/lt__dirent.c: Include lt__private.h.
58         * libltdl/libltdl/lt__private.h: Include lt__strl.h.
59
60 2004-12-20  Peter O'Gorman  <peter@pogma.com>
61
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.
74
75 2004-12-20  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
76
77         * libtoolize.m4sh: Install `install-sh' as well, needed for
78         configure.
79         * Makefile.am, Makefile.maint: Install, update it.
80         * NEWS, doc/libtool.texi (Distributing): Document it.
81         Reported by Ross Boylan <ross@biostat.ucsf.edu>.
82
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.
86
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.
90
91         * tests/demo-nopic.test [solaris, sunos]: Skip test.
92
93 2004-12-18  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
94
95         * libtool.m4 [linux] (_LT_COMPILER_PIC, _LT_LANG_CXX_CONFIG):
96         Match icpc* and ecpc* (ia64 version of icpc) instead of only icpc.
97
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.
101
102 2004-12-17  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
103
104         * HACKING: Update list of non-Libtool-owned files.
105
106 2004-12-17  Akim Demaille <akim@epita.fr>
107
108         * libtoolize.m4sh (func_copy_all_from_path): Remove spurious eval.
109
110 2004-12-16  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
111
112         * libltdl/ltdl.c (trim): Return error rather than do bogus
113         null pointer arithmetic when parsing a malformed .la file.
114
115 2004-12-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
116
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.
123
124 2004-12-13  Albert Chin-A-Young  <china@thewrittenword.com>
125
126         * libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG):
127         Append -G to link command-line on AIX to honor -brtl on
128         command-line (runtime linking). Already done for IBM C/C++
129         compilers.
130
131 2004-12-12  Patrick Welche <prlw1@newn.cam.ac.uk>
132
133         * configure.ac: Fix aclocaldir to use ${datadir}, not ${prefix}.
134         Necessary for removal of old libtool.m4 files.
135
136 2004-12-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
137
138         * config/ltmain.m4sh (func_extract_archive): Send stderr of $NM
139         to /dev/null.
140         Reported by Martin Waitz <tali@admingilde.org>.
141
142 2004-12-09  Albert Chin-A-Young  <china@thewrittenword.com>
143
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.
147
148 2004-12-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
149
150         * config/ltmain.m4sh (func_mode_finish) [solaris]: Fix [] escaping
151         bug.
152
153         * config/ltmain.m4sh (all over the map): Make use of func_basename
154         and func_dirname in most occasions.
155
156         * m4/libtool.m4 (_LT_CHECK_XSI_SHELL, _LT_PROG_XSI_SHELLFNS): New
157         macros to detect at `configure' time whether the shell supports
158         some XSI extensions and to copy appropriate versions of new shell
159         functions into `libtool' through `config.status'.  Copied
160         functions are Bourne and XSI variants of func_basename,
161         func_dirname (a variant of `dirname' suitable for libtool).
162         (_LT_SETUP): Require _LT_CHECK_XSI_SHELL.
163         (_LT_CONFIG):  Use _LT_PROG_XSI_SHELLFNS to insert into `libtool'
164         at marker.
165
166         * config/ltmain.m4sh: Set marker for insertion of shell functions.
167
168         * config/general.m4sh (func_quote_for_eval): Only fork if the
169         substitution matches.
170
171 2004-12-03  Gary V. Vaughan  <gary@gnu.org>
172
173         * TODO: Paste Peter's summary of the TODO thread starting at
174         http://lists.gnu.org/archive/html/libtool/2004-11/msg00130.html.
175
176 2004-12-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
177
178         * config/ltmain.m4sh: Remove code which is no longer needed
179         now that temp_rpath only contains fully-qualified elements.
180
181 2004-11-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
182
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.
189
190 2004-11-29  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
191
192         * config/ltmain.m4sh (func_lalib_p): Update function
193         description.
194         (func_lalib_unsafe_p): New function with same functionality but
195         written without forks; this function is safe to use for cases
196         where the argument either does not exist or is required to be a
197         lalib for correct operation.
198         * NEWS: Mention the fact that stdin is not to be used.
199         * config/ltmain.m4sh (func_mode_execute, func_mode_install)
200         (func_mode_link): Use func_lalib_unsafe_p where appropriate.
201         (func_mode_execute): For the program wrapper, use
202         func_ltwrapper_p instead of func_lalib_p.
203
204         * m4/libtool.m4 (_LT_LINKER_SHLIBS): Treat linux-dietlibc with
205         the `diet' compiler wrapper (as opposed to the `diet-dyn' wrapper)
206         as a static-only platform.
207         * NEWS: Updated.
208
209         * libltdl/ltdl.c (trim): Use memcpy instead of strncpy here, to
210         avoid problems with non-conforming strncpy.  This is safe here.
211
212         * m4/ltdl.m4 (LT_LIB_DLLOAD): Define HAVE_LIBDLLOADER if we
213         have a dlloader to preload.
214         * libltdl/ltdl.c (lt_dlinit): Only preload if HAVE_LIBDLLOADER, only
215         declare preloaded_symbols then.  Fixes libltdl on static platforms.
216         * NEWS: Updated.
217
218 2004-11-29  Gary V. Vaughan  <gary@gnu.org>
219
220         Add a search path option to libtoolize so that we can run it from
221         the testsuite without pulling in the last installed macros and
222         ltdl sources:
223
224         * libtoolize.m4sh:  Add a -I option to change libtoolize's search
225         path for macro files, and libltdl master sources.
226         (pkgvdatadir, pkgvmacrodir): Renamed...
227         (pkgvdatadirs, pkgvmacrodirs): ...as they can now contain a ':'
228         delimited list of directories.  Adjust all callers.
229         (func_copy_all_from_path): New function to search a ':' delimited
230         search path for a directory to copy.
231         (func_serial_update, func_ltmain_update, func_config_update): New
232         first parameter is a filename to search for.  srcdir parameter can
233         now be a ':' delimited search path.  Adjust all callers.
234         (func_copy_some_files): Ditto.
235         Put srcfile_spec first in parameter list for consistency with
236         other functions.  Adjust all callers.
237         (func_copy_cb): func_copy adapter function to call func_copy
238         correctly from func_copy_some_files.
239         (func_filename_path_search): Return the full path to the first
240         occurence of a named file found in a list of directories.
241         * tests/testsuite.at (LIBTOOLIZE): Wrap exported LIBTOOLIZE
242         initialisation in PREPARE_TESTS diversion to stop it being
243         discarded when testsuite is generated.
244         (AT_LIBTOOLIZE): Factor out libtoolize calls,
245         and set search path to find macros and libltdl source files from
246         the source tree.
247         (AT_CHECK_LIBTOOLIZE): Test it.
248         (AT_BOOTSTRAP): Adjust.  Split out call to make.
249         * tests/am-subdir.at: Call make explicitly.
250         (Makefile.am): Fix typo in ACLOCAL_AMFLAGS,
251
252 2004-11-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
253
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).
257
258         * tests/demo-relink.test, tests/depdemo-relink.test: SKIP, don't
259         FAIL if no shared libs available in demo/.  Do not try to access
260         nonexistent files.
261
262         * libltdl/loaders/loadlibrary.c: Remove unneeded
263         file-static variable.
264
265 2004-11-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
266
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.
270
271 2004-11-24  Jeff Squyres  <jsquyres@lam-mpi.org>
272
273         * m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS)
274         (_LT_LANG_CXX_CONFIG) [linux]: Support for Portland Group (aka
275         "pgi") compilers.
276         * NEWS, THANKS: Updated.
277
278 2004-11-24  Gary V. Vaughan  <gary@gnu.org>
279
280         * Makefile.am: Move Autotest rules from here...
281         * tests/Makefile.am: ...to here.
282         * bootstrap: Adjust.  Also, create temporary Makefile from
283         tests/Makefile.am so that bootstrap can create the Autotest
284         testsuite.
285
286 2004-11-23  Gary V. Vaughan  <gary@gnu.org>
287
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 :->
294
295         * tests/defs.m4sh (SHELL): Move definition from here...
296         * config/general.m4sh (SHELL): ...to here.
297
298 2004-11-23  Gary V. Vaughan  <gary@gnu.org>
299
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:
304
305         * libltdl/libltdl/ltdl.h: Moved from here...
306         * libltdl/ltdl.h: ...to here.
307         * libltdl/Makefile.am: Adjust.
308
309 2004-11-23  Peter O'Gorman  <peter@pogma.com>
310
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:
314
315         * libltdl/Makefile.am, libltdl/loaders/Makefile.am: Look for includes
316         in the new location.
317         * libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__dirent.h,
318         libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h,
319         libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h,
320         libltdl/libltdl/lt_system.h, libltdl/libltdl/ltdl.h,
321         libltdl/libltdl/slist.h: Added files, moved from libtdl/.
322         * libltdl/lt__alloc.h, libltdl/lt__dirent.h, libltdl/lt__glibc.h,
323         libltdl/lt__private.h, libltdl/lt_dlloader.h, libltdl/lt_error.h,
324         libltdl/lt_system.h, libltdl/ltdl.h, libltdl/slist.h: Removed, moved
325         to libltdl/libltdl.
326
327 2004-11-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
328
329         * doc/libtool.texi (LT_INIT): s/libtool 1.6/libtool 2.0/.
330         (Invoking libtoolize): Fix typo.
331
332 2004-11-22  Gary V. Vaughan  <gary@gnu.org>
333
334         * config/ltmain.m4sh (func_mode_install): Now that func_mktempdir
335         has been improved, the default directory template is perfectly
336         fine.
337
338         * doc/libtool.texi (Invoking libtoolize): Improve documentation
339         for use of ACLOCAL_AMFLAGS and AC_CONFIG_MACRO_DIR.
340
341 2004-11-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
342
343         * m4/libtool.m4 (_LT_TAG_COMPILER): Document that with_gcc is
344         tag-dependent.
345
346         * m4/libtool.m4, tests/demo-nopic.test: Undo bogus commit.
347
348         * config/ltmain.m4sh (func_mode_link), tests/objectlist.test:
349         Make sure the argument to `-objectlist' may contain spaces.
350
351 2004-11-19  Gary V. Vaughan  <gary@gnu.org>
352
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.
356
357 2004-11-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
358
359         * doc/libtool.texi (Libltdl interface): Typos.
360
361         * doc/libtool.texi (Libltdl interface): Document public macros
362         LT_PATHSEP_CHAR, LT_DIRSEP_CHAR, use in path descriptions.
363
364 2004-11-18  Daniel Reed  <djr@redhat.com>
365
366         * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [linux]: Interpret
367         `include' statements in toplevel ld.so.conf file.
368
369 2004-11-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
370
371         * m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin, mingw, pw32]:
372         tag-protect setting of ld_shlibs.
373
374 2004-11-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
375
376         * doc/libtool.texi (Libltdl interface): The path separator
377         is system-dependent.
378
379         * doc/libtool.texi (Linking static libraries): Typo.
380
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.
384
385 2004-11-17  Mats Rynge  <rynge@isi.edu>
386
387         * libtool.m4 [linux]: Use only the CC basename in case statment
388         when checking for icc/ecc.  Allows for setting CC to the full path
389         to the compiler.
390
391         * libtool.m4 [solaris]: Added missing 'with linker' flags to
392         -z allextract ... -z defaultextract flags
393
394 2004-11-14  Gary V. Vaughan  <gary@gnu.org>
395
396         * m4/libtool.m4 (_LT_LINKER_SHLIBS): Typo: s/--rpath/-rpath/g.
397         (_LT_LANG_CXX_CONFIG): Ditto.
398
399         * configure.ac (APIVERSION): New substituted variable.
400         (pkgvdatadir): Ditto.  Versioned data directory.
401         (pkgvmacrodir): Ditto.  Versioned aclocal directory.
402         (LN): New check for LN command.
403         * Makefile.am (aclocal_DATA): Replaced with...
404         (pkgvmacro_DATA): ...this.
405         (install-data-local): Remove old shared resources.
406         (install-exec-hook): Make versioned links to executables.
407         (uninstall-hook): Remove versioned files.
408         * libltdl/Makefile.am (ltdldatadir): Redefine in terms of
409         pkgvdatadir.
410         * libltdl/loaders/Makefile.am (ltdldatadir): Ditto.
411         * libtoolize.m4sh: Copy macro files from versioned macro directory
412         instead of shared aclocal directory.
413         * doc/libtool.texi: Document it.
414         * NEWS: Updated.
415
416 2004-11-10  Gary V. Vaughan  <gary@gnu.org>
417
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.
422
423 2004-11-10  James E Wilson  <wilson@specifixinc.com>,
424             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
425
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.
429
430         * Makefile.am: config/ltmain.sh is generated by
431         config/ltmain.m4sh.
432
433 2004-11-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
434
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.
438
439         * doc/libtool.texi (libtool script contents):
440         echo is now ECHO; mention argument restriction.
441
442         * doc/libtool.texi (Multiple dependencies): Minor rewording.
443
444         * doc/libtool.texi (User defined module data, References):
445         indentation and word-wrap cleanup.
446
447         * doc/libtool.texi (all over): White space cleanup:
448         two spaces at start of sentence, no TABs.
449
450 2004-11-09  Gary V. Vaughan  <gary@gnu.org>,
451             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
452
453         * doc/libtool.texi (libtool script contents): Fix description
454         of need_lib_prefix.
455
456 2004-11-08  Peter Ekberg  <spam.protected>
457
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'.
461
462 2004-11-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
463
464         * m4/ltoptions.m4: Change all references of LT_LIBTOOL_INIT
465         to LT_INIT.
466
467 2004-11-05  Peter Ekberg  <spam.protected>
468
469         * ltmain.m4sh (cwrappersource): clean up other warning on MinGW.
470
471 2004-11-04  Bernhard Fischer  <spam.protected>,
472             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
473
474         * m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS), m4/ltoptions.m4
475         (_LT_SET_OPTIONS), README, README.alpha: Typos.
476
477 2004-11-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
478
479         * libltdl/ltdl.c (parse_dotla_file): Fix memleak.
480
481         * ltmain.m4sh (cwrappersource): Cast isalpha arguments correctly.
482
483 2004-11-03  Peter Ekberg  <spam.protected>
484
485         * ltmain.m4sh (cwrappersource): clean up warnings and
486         #include errors on MinGW.
487
488 2004-11-01  Peter Ekberg  <spam.protected>
489
490         * config/ltmain.m4sh (cwrappersource): clean up warnings and
491         #include errors.
492
493 2004-11-01  Peter Ekberg  <spam.protected>
494
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:
498
499           (1) there is a library
500           (2) there is an executable that does not, itself, link against
501               that library
502
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.
507
508         I don't think it is wrong to have a wrapper script for an exe that
509         *technically* doesn't need it.  But instead of checking for
510         notinst_deplib nonempty as a proxy for "did wrapper script get
511         sourced into my environment properly" a different var should be
512         used.
513
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.
519
520 2004-11-01  Charles Wilson  <spam.protected>,
521             Peter Ekberg  <spam.protected>
522
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.
528
529 2004-10-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
530
531         * libltdl/ltdl.c (loader_init_callback): Back out broken cast.
532
533         * libltdl/ltdl.c (loader_init_callback, lt_dlexit): Add casts to
534         target type.
535
536         * tests/defs.m4sh (func_exec): `shift'ing when there is nothing
537         to shift is non-portable.
538
539 2004-10-28  Patrick Welche  <prlw1@newn.cam.ac.uk>,
540             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
541
542         * Makefile.am, Makefile.maint: Use path for dependencies built
543         in the source tree, to cater for BSD make.
544
545 2004-10-24  Noah Misch  <noah@cs.caltech.edu>
546
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.
551
552 2004-10-24  Gary V. Vaughan  <gary@gnu.org>
553
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.
558
559         * HACKING: Fix a typo in the gpg --verify instructions.
560
561         * Makefile.maint (cvs-dist): Generate signatures and directives
562         for bz2 upload.
563
564 2004-10-23  Peter O'Gorman  <peter@pogma.com>
565
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.
570
571 2004-10-22  Gary V. Vaughan  <gary@gnu.org>
572
573         * clcommit.m4sh: Add --rcfile option.
574
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.
578
579 2004-10-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
580
581         * TODO, libltdl/lt_error.h, libltdl/ltdl.c, libltdl/ltdl.h:
582         Undo accidental commit.
583
584         * Makefile.maint: Fix typo.
585
586 2004-10-22  Gary V. Vaughan  <gary@gnu.org>
587
588         * clcommit.m4sh, config/mailnotify.m4sh: Updated from
589         cvs-utils--tla--1.0 to fix quoting of metachars in patch names.
590
591         * HACKING: Updated: `.in' files are now `.m4sh'; document some
592         more coding standards for these files.
593
594         * config/general.m4sh (sed_double_backslash): Undo an
595         over-optimisation.
596
597 2004-10-21  Gary V. Vaughan  <gary@gnu.org>
598
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.
603
604 2004-10-21  Noah Misch  <noah@cs.caltech.edu>,
605             Gary V. Vaughan  <gary@gnu.org>
606
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.
611
612 2004-10-20  Gary V. Vaughan  <gary@gnu.org>
613
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.
620
621 2004-10-20  Noah Misch  <noah@cs.caltech.edu>,
622             Gary V. Vaughan  <gary@gnu.org>
623
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.
643
644 2004-10-16  Gary V. Vaughan  <gary@gnu.org>
645
646         * config/ltmain.m4sh (func_mode_finish): solaris-2.6 also has
647         crle(1).
648         Reported by Albert Chin-A-Young <china@thewrittenword.com>
649
650 2004-10-16  Gary V. Vaughan  <gary@gnu.org>
651
652         Add some new tests for Libtool's support of Automake
653         subdir-objects builds.  This marks the beginning of a move to an
654         Autotest driven test framework, which will eventually allow us to
655         trim away many of the generated files in the current test demo
656         subdirectories:
657
658         * configure.ac (AC_CONFIG_TESTDIR): Re-enable commented out
659         Autotest macros.
660         (AUTOTEST, M4SH): Use --language long hand.
661         * bootstrap: Generate tests/testsuite, and by implication
662         tests/package.m4.
663         * Makefile.am (edit): Add substitutions needed to generate
664         tests/package.m4 from bootstrap.
665         (check-recursive): Add tests/testsuite.
666         (TESTSUITE): The new Autotest testsuite target.
667         (TESTSUITE_AT): The Autotest sources.
668         (EXTRA_DIST): Distribute the generated testsuite and sources.
669         (tests/package.m4): Use $(edit) to propagate package metadata to
670         the new tests.
671         (tests/testsuite): Build the testsuite.
672         (tests/atconfig): How to regenerate the file.
673         (check-local): Hook Autotest into `make check'.
674         (installcheck-local): Run the testsuite on the installed tree.
675         (clean-local): Tidy our file droppings.
676         * tests/Makefile.am: Remove bitrotted code from Autotest
677         experiments in Autoconf 2.52 era.  Updated the rest and moved into
678         Makefile.am.
679         * tests/testsuite.at: New container for Autotest test groups.
680         * tests/am-subdir.at: New test group for compatibility with
681         Automake's subdir-objects builds.  Currently holds two tests, one
682         for a C project and another similar project in C++.
683         * TODO: Add an entry to remind us that these new tests expose a
684         bug in libtool.
685         * NEWS: Updated.
686
687 2004-10-14  Peter O'Gorman  <peter@pogma.com>
688
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.
692
693 2004-10-13  Gary V. Vaughan  <gary@gnu.org>
694
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>
698
699         * tests/cdemo-undef.test: New test for hosts that allow shared
700         libraries with undefined symbols, but have no C++ compiler
701         installed.
702         * tests/Makefile.am (COMMON_TESTS): Add it.
703
704 2004-10-13  Peter O'Gorman  <peter@pogma.com>
705
706         * config/ltmain.m4sh: Make sure that we $show what we will $run,
707         use eval $show if we do $run eval.
708
709 2004-10-13  Charles Wilson  <spam.protected>
710
711         * config/ltmain.m4sh: add foo/bin for every foo/lib
712         in dllsearchpath when creating wrapper script.  Fixes
713         depdemo-relink test failure.
714
715 2004-10-12  Charles Wilson  <spam.protected>
716
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.
720
721 2004-10-13  Gary V. Vaughan  <gary@gnu.org>
722
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.
726
727 2004-10-11  Charles Wilson  <spam.protected>
728
729         * tests/link.test: Fix check for use of libnlsut.a under
730         Cygwin.
731
732 2004-10-11  Noah Misch  <noah@cs.caltech.edu>
733
734         * tests/quote.test: Do not look for $preargs in the output,
735         because libtool may change them.
736
737 2004-10-10  Charles Wilson  <spam.protected>
738
739         * config/ltmain.m4sh: Really don't require versions of GNU
740         sed newer than 3.02 for Cygwin and MinGW, and don't break
741         dryrun mode.
742
743 2004-10-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
744
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.
748
749 2004-10-10  Albert Chin-A-Young  <china@thewrittenword.com>
750
751         * config/ltmain.m4sh: Don't require versions of GNU sed newer than
752         3.02 for Cygwin and MinGW.
753
754 2004-10-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
755
756         * tests/pdemo-inst.test: Correction for mis-application of
757         Charles Wilson's earlier patch.
758
759 2004-10-09  Gary V. Vaughan  <gary@gnu.org>
760
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.
764
765 2004-10-08  Gary V. Vaughan  <gary@gnu.org>
766
767         Update to the latest commit and mailnotify scripts from
768         gary@gnu.org--2004/cvs-utils--tla--1.0:
769
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.
775
776 2004-10-08  Gary V. Vaughan  <gary@gnu.org>
777
778         Fix some issues that mangled the reexecution path to a script,
779         and thus prevented it from finding itself:
780
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').
787
788 2004-10-08  Gary V. Vaughan  <gary@gnu.org>
789
790         * config/general.m4sh (func_verbose): Work around a bash bug in
791         shell functions.
792
793 2004-10-08  Charles Wilson  <cygwin@cwilson.fastmail.fm>
794
795         * tests/pdemo-inst.test: pdemo-inst should depend on pdemo-make.
796         * config/ltmain.m4sh: Windows and Cygwin reserve the .lnk
797         extension to represent shortcuts.  Use the extension ".lnkscript"
798         rather than ".lnk" for the piecewise linking ld script in order to
799         avoid the conflict.
800
801 2004-10-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
802
803         * libltdl/ltdl.c (lt_dlexit, lt_dlpath_insertdir): Fix memleaks,
804         free user_search_path on lt_dlexit.
805
806 2004-10-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
807
808         * tests/sh.test: Remove tests which fail on AS_SHELL_SANITIZE
809         from autoconf >= 2.59.
810
811         * TODO: Remove item: no need for a libltdl without stdio.
812
813 2004-10-07  Gary V. Vaughan  <gary@gnu.org>
814
815         * tests/defs.m4sh (scripts): Actually scan the generated ltmain.sh
816         for shell portability problems.
817
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.
821
822 2004-10-06  Peter O'Gorman  <peter@pogma.com>
823
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.
828
829 2004-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
830
831         * libltdl/ltdl.c (try_dlopen): Move .la file parsing
832         part.. (parse_dotla_file): ..here.  Adjust.
833
834         * libltdl/ltdl.c (load_deplibs, try_dlopen): Revert unnecessary casts
835         to int from my patch from 2004-10-01.
836
837         * AUTHORS: Add myself.
838
839 2004-10-05  Peter O'Gorman  <peter@pogma.com>
840
841         * config/ltmain.m4sh [darwin]: Make the -dylib_file flag work on
842         older darwins too. Reported by Christoph Egger.
843
844 2004-10-05  Gary V. Vaughan  <gary@gnu.org>
845
846         * configure.ac: Bumped version to 2.1a.
847
848 2004-10-04  Gary V. Vaughan  <gary@gnu.org>
849
850         * m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH): Don't confuse $ECHO
851         with $lt_ECHO, or we always get a libtool with ECHO=echo, rather
852         than testing for a mechanism that quotes \ properly.
853         * NEWS: Updated.
854
855         * config/ltmain.m4sh: Need to include getopt.m4sh earlier so that
856         progpath is set before it is called to --no-reexec.
857         * NEWS: Updated.
858
859 2004-10-04  Gary V. Vaughan  <gary@gnu.org>
860
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:
866
867         * tests/Makefile.am (EXTRA_DIST): Distribute defs.m4sh.
868         * Makefile.am (EXTRA_DIST): Distribute libtoolize.m4sh.
869         (libtoolize.in, libtoolize): Split into bootstrap and runtime
870         stages.
871         ($(top_srcdir)/tests/defs.in, $(top_srcdir)/tests/defs): Ditto.
872         ($(top_srcdir)/config/ltmain.sh): Swap ltmain.m4sh and ltmain.in
873         names.
874         * bootstrap: Make libtoolize.in and tests/defs.in.
875         * NEWS: Updated.
876
877 2004-10-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
878
879         * README, README.alpha: Update notes regarding available VERBOSE
880         settings.
881
882 2004-10-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
883
884         * config/ltmain.in: Change $XSED to $Xsed to fix hang noticed
885         under MinGW.
886         * tests/defs.in: Support VERBOSE=debug to enable shell tracing
887         while running tests.
888
889 2004-10-03  Gary V. Vaughan  <gary@gnu.org>
890
891         * NEWS: Updated.
892         * configure.ac: Bumped version to 1.9e.
893
894         GNU libtool 1.9d was released.
895
896         * configure.ac: Bumped version to 1.9d.
897         * NEWS: Updated.
898
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>
902
903         * libltdl/Makefile.am (libltdlc_la_LIBADD): Don't use
904         libdlloader_la_OBJECTS, an undocumented Automake internal
905         variable...
906         (libltdlc_la_SOURCES): ...use libdlloader_la_SOURCES here
907         instead.
908         Reported by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
909
910         * libltdl/argz_.h: Forgot to spell lt_system.h with just one `_'.
911
912         * libltdl/argz_.h: Forgot to include lt__system.h for LT_SCOPE
913         definition.
914
915 2004-10-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>,
916             Gary V. Vaughan  <gary@gnu.org>
917
918         * libltdl/lt__alloc.h: Declare exported functions with LT_SCOPE
919         for mingw32.
920         * libltdl/lt__dirent.h: Ditto.
921         * libltdl/argz._h: Ditto.  Be careful about not requiring
922         additional libltdl files when used outside of libltdl.
923         * libltdl/slist.h: Ditto.
924         * HACKING: Add a section on libltdl implementation layering.
925
926 2004-10-03  Gary V. Vaughan  <gary@gnu.org>
927
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>
931
932 2004-10-02  Gary V. Vaughan  <gary@gnu.org>
933
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.
937
938 2004-10-02  Jim Tison  <jtison@us.ibm.com>
939
940         Initial support for s390x-ibm-tpf:
941
942         * m4/libtool.m4: Correct obvious spelling errors in remarks.
943         (_LT_ENABLE_LOCK): Make s390x-ibm-tpf hosts adopt elf64_s390
944         conventions.
945         (_LT_SYS_DYNAMIC_LINKER): Set defaults for s390x-ibm-tpf host.
946         (_LT_CHECK_MAGIC_METHOD): Skip all dependency checks for
947         s390x-ibm-tpf hosts.
948         (_LT_LINKER_SHLIBS): Make s390x-ibm-tpf hosts adopt GNU/Linux OS
949         attributes.
950         * NEWS: Updated.
951
952 2004-10-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
953
954         * config/ltmain.in (func_mode_install): Need to set $tmpdir before
955         using it.
956
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.
960
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.
964
965         * libltdl/slist.c (slist_foreach): result was declared as
966         inner variable, shadowing the actually returned value.
967
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.
971
972 2004-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
973
974         * libltdl/ltdl.c (try_dlopen): Fix null pointer dereference in
975         case the name given to lt_dlopen contains no extension.
976
977         * libltdl/lt_dlloader.c (lt_dlloader_remove), libltdl/ltdl.c
978         (tryall_dlopen, lt_dlhandle_next): Show usage of function pointers.
979
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.
984
985 2004-09-30  Gary V. Vaughan  <gary@gnu.org>
986
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.
994
995         * m4/libtool.m4 (echo): Use ECHO throughout for consistency with
996         config/ltmain.in.
997         Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
998
999         * m4/libtool.m4 (rm): Use RM throughout for consistency with
1000         config/ltmain.in.
1001         Reported by Charles Wilson <cwilson@spam.protected>
1002
1003 2004-09-27  Peter O'Gorman  <peter@pogma.com>
1004
1005         * m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [darwin]: Don't echo gcc -v
1006         output during configure. (Really this time, honest)
1007
1008 2004-09-26  Albert Chin-A-Young  <china@thewrittenword.com>
1009
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.
1013
1014 2004-09-25  Gary V. Vaughan  <gary@gnu.org>
1015
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.
1021
1022 2004-09-24  Charles Wilson  <cwilson@spam.protected>
1023
1024         * libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Revert changeset from
1025         `2004-09-22  Charles Wilson  <cwilson@spam.protected>'.
1026
1027 2004-09-24  Gary V. Vaughan  <gary@gnu.org>
1028
1029         * config/general.m4sh (Xsed): Set a default when not used from
1030         ltmain.in.
1031         (ECHO): Audit for (and correct!) uses of $ECHO with more than one
1032         argument, which breaks when ECHO='printf %s\n', and with possible
1033         `-' as first character of the argument, which breaks `print -r'
1034         and some implementations of `echo'.
1035         * config/ltmain.in, tests/defs.in, libtoolize.in (ECHO): Ditto.
1036         Reported by Albert Chin-A-Young <china@thewrittenword.com>
1037
1038 2004-09-24  Peter O'Gorman  <peter@pogma.com>
1039
1040         * m4/libtool.m4 (_LT_CMD_STRIPLIB) [darwin]: strip archives too.
1041
1042         * m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [darwin]: Don't echo gcc -v
1043         output during configure.
1044
1045 2004-09-24  Gary V. Vaughan  <gary@gnu.org>
1046
1047         * m4/libtool.m4 (_LT_DECL_EGREP): Only the newest CVS autoconf
1048         AC_SUBSTs for GREP.  Do our own here too to cater for release
1049         autoconfen.
1050
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>
1054
1055 2004-09-23  Gary V. Vaughan  <gary@gnu.org>
1056
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>
1088
1089         * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Gah.  Merge error
1090         corrected.
1091
1092 2004-09-23  Gary V. Vaughan  <gary@gnu.org>
1093
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:
1098
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.
1132
1133 2004-09-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1134
1135         * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): move symcode calculation
1136         to correct place.
1137         * doc/libtool.texi (libtool script contents): update description
1138         of global_symbol_to_cdecl.
1139
1140 2004-09-23  Gary V. Vaughan  <gary@gnu.org>
1141
1142         * configure.ac (M4SH): AC_SUBST m4sh expander.
1143         * config/general.m4sh, config/getopt.m4sh: New files with factored
1144         out functionality from...
1145         * config/ltmain.in, libtoolize.in: ...here.  m4_include the shared
1146         code, and call AS_SHELL_SANITIZE.  Also quote all `[' and `]' to
1147         survive m4 run.
1148         (func_serial): No need to double up m4sh quotes after a `#'.
1149         (func_check_macros): Escape `dnl' to stop m4sh interpreting it as
1150         a macro.
1151         * tests/defs.in: New file expanded into tests/defs by autom4te.
1152         * m4/libtool.m4 (_LT_DECL_EGREP): Also require fgrep for the tests
1153         that use it.
1154         * Makefile.am ($(top_srcdir)/config/ltmain.sh): Now built with
1155         M4SH.
1156         (libtoolize): Ditto.
1157         * bootstrap: Set M4SH for call to make.
1158         * HACKING: No need to sync to AS_SHELL_SANITIZE by hand any more.
1159
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.
1165
1166 2004-09-22  Gary V. Vaughan  <gary@gnu.org>
1167
1168         * config/ltmain.in (func_mode_link): Propagate a convenience
1169         library's dependency libs correctly when it is being linked into a
1170         libtool library.  Deplibs are now propagated whether libdir is set
1171         or not.
1172
1173 2004-09-22  Andreas Schwab  <schwab@suse.de>
1174
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:
1180
1181         * config/ltmain.in: (Un)Reverse $deplibs list at the start of the
1182         link pass in lib mode.
1183
1184 2004-09-22  Charles Wilson  <cwilson@spam.protected>
1185
1186         * ltmain.in (func_generate_dlsyms) [cygwin, mingw]: when creating
1187         a .exp file for an executable, also create a .def file, and add
1188         that file to the link command via SYMFILES.  This causes binutils
1189         to generate an .edata section, and allows self dlopening to work.
1190         * NEWS: Updated.
1191
1192         * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): better quoting for
1193         postinstall_cmds and postuninstall_cmds to allow spaces in install
1194         paths.
1195
1196         * config/ltmain.in (func_generate_dlsyms): Addresses in
1197         _preloaded_symbols[] cannot go into .rdata section if symbols are
1198         DATA imported from DLL, on windows, because runtime relocations
1199         must happen.
1200         * m4/libtool.m4 (_LT_LINKER_SHLIBS([TAGNAME])): Build exports for
1201         symbols in .rdata sections.
1202
1203 2004-09-19  Gary V. Vaughan  <gary@gnu.org>
1204
1205         The checks in assign.test are trying to catch case of this ilk:
1206         `foo=bar break', but unfortunately they also choke on `foo=bar;
1207         break' and `foo=bar && break'.  Writing a sophisticated test to
1208         catch just the intended case seems like more trouble than it's
1209         worth, but leaving the test in causes the testsuite to fail on
1210         valid m4sh output:
1211
1212         * tests/assign.test: Removed; chokes on perfectly valid shell
1213         syntax.
1214         * tests/Makefile.am (COMMON_TESTS): Remove assign.test.
1215         * tests/defs.in (scripts): Don't check the m4sh inputs, go back
1216         to checking the generated ltmain.sh script.
1217
1218 2004-09-17  Gary V. Vaughan  <gary@gnu.org>
1219
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.
1223
1224 2004-09-17  Gary V. Vaughan  <gary@gnu.org>
1225
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:
1230
1231         * libtoolize.in (func_mkdir_p): Don't fail if the directory wasn't
1232         created in dry run mode.
1233         * tests/defs (func_mkdir_p): Ditto.  We don't actually have a dry
1234         run mode for the tests, but the function is written carefully to
1235         be kept in synch and work correctly here too.
1236         * config/ltmain.in (func_mkdir_p): Ditto.  This copy of the
1237         function now only differs in its use of $echo over $ECHO.
1238         (func_extract_archive): Removed first redundant mkdir call.
1239         (func_mktempdir): New function that tries to avoid races when
1240         making temporary directories.
1241         (opt_dry_run): Set this if --dry-run is given at the CLI, or if
1242         tests/mdemo-dryrun.test has forced the value of $run.
1243         (func_mode_install): Call $MKDIR directly and error out if the
1244         directory cannot be created.
1245         (func_mode_link): Rather than copying func_mkdir_p into the
1246         wrapper script as a replacement for $MKDIR_P, we know that the
1247         script won't be called my `make -j', so write the current value of
1248         $MKDIR.
1249
1250 2004-09-17  Peter O'Gorman  <peter@pogma.com>
1251
1252         * m4/libtool.m4: remove an extra "]"
1253
1254         * m4/libtool.m4 [darwin] (_LT_LANG_CXX_CONFIG): Changes for 10.4.
1255         * config/libtool.in [darwin]: ditto.
1256
1257 2004-09-16  Gary V. Vaughan  <gary@gnu.org>
1258
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:
1263
1264         * libtoolize.in (func_mkdir_p): New slice and dice algorithm
1265         to build the directory tree one dir at a time, ignoring errors
1266         until the end incase they are transient due to a concurrent
1267         identical mkdir.
1268         * tests/defs (func_mkdir_p): Ditto.
1269         * config/ltmain.in (func_mkdir_p): Ditto, except that ltmain.in
1270         uses $echo rather than $ECHO, and uses $show and $run to interact
1271         correctly with the command line.
1272         * configure.ac (AM_INIT_AUTOMAKE): 1.8 is sufficient again.
1273         * Makefile.am (edit): Don't substitute automake's $(mkdir_p).
1274         * NEWS: Updated.
1275
1276 2004-09-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1277
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.
1285
1286 2004-09-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1287
1288         * tests/Makefile.am: Use the same CPP, F77, CXX and CXXFLAGS
1289         for the test suite.
1290
1291 2004-09-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1292
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.
1296
1297 2004-09-15  Gary V. Vaughan  <gary@gnu.org>
1298
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.
1303
1304 2004-09-14  Gary V. Vaughan  <gary@gnu.org>
1305
1306         * config/ltmain.in (func_quote_for_eval): Factor out the ugly
1307         shell meta-character quoting.  Changed all callers.
1308
1309 2004-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1310
1311         * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Simplification:
1312         distinguish between data and code symbols on every system.
1313
1314 2004-09-14  Albert Chin-A-Young  <china@thewrittenword.com>
1315
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:
1321
1322         * config/ltmain.in (func_mode_link): Pass through options needed
1323         to compile in 64-bit mode with gcc, and the SGI, Sun, HP and IBM
1324         compilers.
1325
1326 2004-09-13  Gary V. Vaughan  <gary@gnu.org>
1327
1328         * m4/libtool.m4 (_LT_CMD_GLOBALS_SYMBOLS): Fix a typo I made when
1329         applying 2004-09-11 Ralf Wildenhues.
1330
1331 2004-09-12  Brad  <brad@comstyle.com>
1332
1333         * libtool.m4: Fixes for the OpenBSD support
1334
1335 2004-09-12  Peter O'Gorman  <peter@pogma.com>
1336
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.
1344
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.
1352
1353 2004-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1354
1355         * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): The linker distinguishes
1356         data and code symbols on linux-gnu/ia64.  Fixes multiple testsuite
1357         failures.
1358         * NEWS: Updated.
1359
1360 2004-09-06  Gary V. Vaughan  <gary@gnu.org>
1361
1362         * libltdl/loaders/shl_load.c (get_vtable): Typo.
1363
1364 2004-09-06  Albert Chin-A-Young  <china@thewrittenword.com>
1365
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:
1371
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.
1375
1376 2004-09-06  Albert Chin-A-Young  <china@thewrittenword.com>
1377
1378         * Makefile.am (clean-ltmain-sh): Using '==' to test for equality
1379         in a shell script is not portable. Use '=' instead.
1380
1381 2004-09-05  Andreas Schwab  <schwab@suse.de>
1382
1383         * m4/ltdl.m4 (LT_WITH_LTDL): Remove excess quoting in argument of
1384         AC_CONFIG_SUBDIRS.
1385
1386 2004-09-05  Albert Chin-A-Young  <china@thewrittenword.com>
1387
1388         * config/ltmain.in (func_mode_link): Pass otherwise unrecognised +
1389         and - style switches to the compiler.
1390         * NEWS: Updated.
1391
1392 2004-09-05  Gary V. Vaughan  <gary@gnu.org>
1393
1394         * Makefile.am (libtool): Force libtool to be regenerated if
1395         stamp-vcl has changed.
1396
1397 2004-09-05  Albert Chin-A-Young  <china@thewrittenword.com>
1398
1399         * m4/libtool.m4, config/ltmain.in: When calling $LTCC,
1400         pass default $CFLAGS through with $LTCFLAGS.
1401
1402 2004-09-03  David Edelsohn  <dje@watson.ibm.com>
1403
1404         * config/ltmain.in (func_mode_link): Use $pic_object as
1405         $non_pic_object if $non_pic_object=none.
1406         * NEWS: Updated.
1407
1408 2004-09-03  Gary V. Vaughan  <gary@gnu.org>
1409
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.
1413
1414         From Martin Quinson <mquinson@ens-lyon.fr>
1415         * m4/libtool.m4 (_LT_SETUP, _LT_ENABLE_LOCK, LT_PATH_LD): Use
1416         AS_HELP_STRING to get rid of autoconf -Wobsolete warning
1417         messages.
1418         * m4/ltdl.m4 (LT_WITH_LTDL, _LT_ENABLE_INSTALL): Ditto.
1419         * m4/ltoptions.m4 (_LT_ENABLE_SHARED, _LT_ENABLE_STATIC)
1420         (_LT_ENABLE_FAST_INSTALL, _LT_WITH_PIC): Ditto.
1421         * TODO: Updated
1422
1423 2004-09-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1424
1425         * libltdl/slist.c (slist_cons): Don't leak the tail of a list.
1426
1427 2004-09-03  Albert Chin-A-Young  <china@thewrittenword.com>
1428
1429         * m4/libtool.m4 (_LT_ENABLE_LOCK): Reformatted.
1430
1431 2004-09-03  Gary V. Vaughan  <gary@gnu.org>
1432
1433         * HACKING: Explain how to verify detached signatures with gpg in
1434         the release announcement templates.
1435
1436         * AUTHORS: Fix typo in my address.
1437
1438 2004-09-02  Gary V. Vaughan  <gary@gnu.org>,
1439
1440         Builds of packages that use libtool and make -j produce "directory
1441         already exists warnings" for .lib directory.  Build on automake
1442         wisdom to support make -j builds where a suitable mkdir is
1443         available:
1444
1445         * configure.ac (AM_INIT_AUTOMAKE): Require 1.9, which goes to some
1446         trouble to find a $(mkdir_p) that doesn't interfere with make -j.
1447         * Makefile.am (edit): Substitute for @mkdir_p@.
1448         * config/ltmain.in (MKDIR_P): Take @mkdir_p@ value.
1449         (mkdir): Removed.
1450         (func_mkdir_p): New function to use $MKDIR_P.  Factor out all
1451         previous mkdir calls to use this function.
1452         (RM, MV): Declared as in libtoolize.in.  Changed all callers.
1453         * libtoolize.in (MKDIR_P): Take @mkdir_p@ value from automake.
1454         (func_mkdir_p): Use it, similarly to new config/ltmain.in.
1455         * tests/defs: Synchronize boiler plate code with ltmain.in.
1456         Adjust all callers.
1457         Add missing copyright preamble.
1458         * tests/demo-static.test: Add missing copyright preamble.
1459         * NEWS: Updated.
1460         Reported by Daniel Reed <n@ml.org>
1461
1462 2004-09-02  Gary V. Vaughan  <gary@gnu.org>,
1463
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.
1468
1469         * AUTHORS: Fix my email address.
1470
1471 2004-09-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1472
1473         * libltdl/ltdl.c (try_dlopen): Fix memory leak.
1474         * NEWS: Updated.
1475
1476 2004-09-02  Gary V. Vaughan  <gary@gnu.org>,
1477             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1478
1479         * libltdl/slist.c, libltdl/slist.h: Merge in changes from latest
1480         upstream.  Mostly comments, formal item boxing, a sort function,
1481         and const madness reduction.
1482         (slist_new): Removed.
1483         (slist_box, slist_unbox, slist_sort): New.
1484         (SListCompare, SListCallback): Swapped!
1485         (slist_remove, slist_find): Change order of parameters for
1486         orthogonality with slist_foreach.  Changed all callers.
1487         * libltdl/lt_dlloader.c (loader_cmp): Renamed to...
1488         (loader_callback): ...this.  Return boxed item.
1489         (lt_dlloader_remove): Adjust to new loader_callback semantics;
1490         unbox each removed item before returning.
1491         Remove unused variable.
1492         Remove const from name parameter, since the slist API cannot
1493         guarantee userdata const-ancy for its callback functions.
1494         (lt_dlloader_find): Adjust to new loader_callback semantics; need
1495         to return the contents of the boxed item.
1496         Remove const from name parameter, since the slist API cannot
1497         guarantee userdata const-ancy for its callback functions.
1498         * libltdl/lt_dlloader.h (lt_dlloader_find, lt_dlloader_remove):
1499         Adjust to new constless footprint.
1500         * libltdl/ltdl.c (ltdl_exit): The global `loaders' list is changed
1501         by `lt_dlloader_remove' while cleaning up, so the address in local
1502         variable `loader' is invalidated.  Since some loaders may be
1503         resident modules that cannot be unloaded (though we have none
1504         yet), we must save each `next' address before calling
1505         `lt_dlloader_remove'.
1506         * NEWS: Updated.
1507         * THANKS: Added Ralf.
1508
1509 2004-09-01  Gary V. Vaughan  <gary@gnu.org>
1510
1511         * libltdl/lt_dlloader.c (lt_dlloader_add): Handle malloc failure
1512         from slist_new.
1513         * libltdl/ltdl.c (loader_init): Trust lt_dlloader_add(), don't
1514         overwrite its error type, and simplify.
1515         Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1516
1517 2004-09-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1518
1519         * libltdl/slist.c (slist_new): Handle malloc failure gracefully.
1520
1521 2004-09-01  Gary V. Vaughan  <gary@gnu.org>
1522
1523         * libtoolize.in, config/ltmain.in: Add CDPATH protection to
1524         preamble.
1525         * tests/defs: Put a full m4sh.m4 style 'Be Bourne compatible'
1526         preamble in here too.
1527         * HACKING: Note that tests/defs needs synching with m4sh.m4 too.
1528         * TODO: Add new item.
1529
1530         * libltdl/ltdl.c (try_dlopen, lt_dlforeachfile): Use correct cpp
1531         macro name, LT_DLSEARCH_PATH.
1532
1533         * libltdl/ltdl.c (lt_dlexit, tryall_dlopen): Fix gcc parentheses
1534         warning.
1535         (foreach_dirinpath, try_dlopen, lt_dlpath_insertdir): Fix gcc
1536         signed vs unsigned warning.
1537         Reported by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1538
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>
1542
1543 2004-09-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1544
1545         * libltdl/loaders/preopen.c: Initialise memory in get_vtable.
1546
1547         * tests/sh.test: Look in the source tree for ltmain.sh.
1548
1549 2004-09-01  Gary V. Vaughan  <gary@gnu.org>
1550
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:
1555
1556         * config/ltmain.in (func_extract_dlsyms): Store originator as a
1557         NULL address symbol.
1558         * libltdl/ltdl.h (lt_dlsymbol): Removed.
1559         (lt_dlsymlist): Remove originator field.
1560         (LTDL_SET_PRELOADED_SYMBOLS): Adjust.
1561         * libltdl/loaders/preopen.c (vm_open, lt_dlpreload_open): Adjust
1562         for new types.
1563         (vm_sym): Skip the new originator symbol when scanning symbol
1564         names.
1565         * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Adjust preloaded symbols
1566         test file to match.
1567         * NEWS: Updated.
1568         Reported by Andreas Schwab <schwab@suse.de>
1569
1570 2004-09-01  Gary V. Vaughan  <gary@gnu.org>
1571
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.
1577
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.
1581
1582 2004-08-31  Gary V. Vaughan  <gary@gnu.org>
1583
1584         * Makefile.am (clean-ltmain-sh): Remove stale config/ltmain.sh
1585         from the build tree that were left behind by previous versions of
1586         libtool.
1587         ($top_srcdir)/stamp-vcl: Since this rule is already called on
1588         every invocation of make, hook clean-ltmain-sh in here too.
1589         Suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1590
1591 2004-08-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1592
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.
1597
1598         * libltdl/ltdl.c: Replace strdup with lt__strdup.
1599
1600 2004-08-30  Gary V. Vaughan  <gary@gnu.org>
1601
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.
1605
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.
1609
1610         * libltdl/lt_dlloader.c (lt_dlloader_remove): Since the return
1611         value of this function is often passed to free, don't declare it
1612         `const'. Responsibility for this memory is given back to the
1613         caller on return.
1614         * libltdl/lt_dlloader.h (lt_dlloader_remove): Ditto.
1615         * libltdl/ltdl.c (lt_dlexit): Adjust.
1616         * NEWS: Updated.
1617
1618 2004-08-30  Andreas Schwab  <schwab@suse.de>
1619
1620         * libltdl/ltdl.c (lt_dlexit): Remove lvalue cast.
1621
1622         * libltdl/slist.h (SListCallback): Fix missing type.
1623
1624         * config/ltmain.in: Accept --mode=relink.
1625
1626 2004-08-29  Gary V. Vaughan  <gary@gnu.org>
1627
1628         * NEWS: Updated.
1629         * configure.ac: Bumped version to 1.9c.
1630
1631         GNU libtool 1.9b was released.
1632
1633         * configure.ac: Bumped version to 1.9b.
1634         * NEWS: Updated.
1635         * INSTALL, config/config.guess, config/config.sub,
1636         config/texinfo.tex: Updated from canonical source.
1637         * Makefile.maint, HACKING: Update instructions for releasing in a
1638         VPATH build.
1639
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.
1643
1644         * NEWS: Merge changes from branch-1-5.
1645
1646         * Makefile.am (dist-hook): Always distribute just a README file,
1647         but take its contents from README-alpha for alpha releases.
1648
1649         * TODO: Reformat.  Removed some items that have been implemented.
1650
1651 2004-08-29  Gary V. Vaughan  <gary@gnu.org>
1652
1653         Add a new `-weak' flag to tell libtool when not to propogate
1654         dependency libraries from dlpreopened modules to libraries:
1655
1656         * config/ltmain.in: Support new -weak link mode option.  Adjust
1657         help message.
1658         * libltdl/Makefile.am (libltdlc_la_LDFLAGS): Use it.
1659         * doc/libtool.texi (Linking with dlopened modules): Document it.
1660         (Link mode): Mention -weak.
1661         * NEWS: Updated.
1662
1663 2004-08-29  Gary V. Vaughan  <gary@gnu.org>
1664
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'.
1668
1669 2004-08-29  Gary V. Vaughan  <gary@gnu.org>
1670
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:
1675
1676         * config/ltmain.in (func_echo, func_verbose, func_error)
1677         (func_fatal_error, func_fatal_help, func_missing_arg)
1678         (func_version, func_usage, func_help): Boiler plate shell
1679         functions mostly copied from libtoolize.in.  Changed *lots* of
1680         shell snippets to call these functions as appropriate, rather than
1681         inlining the same code over and over.
1682         (func_config, func_features, func_enable_tag, func_mode_help):
1683         Factored out from the shared option parsing loop.  Write a new
1684         shared option parser based on the one in libtoolize.in.
1685         (func_check_version_match): Factored out from global scope.
1686         (func_mode_compile, func_mode_execute, func_mode_finish)
1687         (func_mode_install, func_mode_link, func_mode_uninstall): Break
1688         each of the top level mode handlers out into a function.  Adjust
1689         main loop.
1690         (modename, prevopt, prev, optarg, show_help): Removed in the
1691         course of cleaning up the shared option parser.
1692         (opt_duplicate_deps): Use `:' and `false' instead of `yes' and `',
1693         so we can run it directly, rather than calling test.
1694
1695 2004-08-28  Gary V. Vaughan  <gary@gnu.org>
1696
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:
1700
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.
1707
1708 2004-08-27  Gary V. Vaughan  <gary@gnu.org>
1709
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:
1713
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.
1725
1726 2004-08-27  Gary V. Vaughan  <gary@gnu.org>
1727
1728         * doc/libtool.texi (Cheap tricks): Escape the `@' for texinfo.
1729
1730 2004-08-27  Gary V. Vaughan  <gary@gnu.org>
1731
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.
1735
1736 2004-08-26  Peter O'Gorman  <peter@pogma.com>
1737
1738         * config/ltmain.in [darwin]: Use the -dylib_file flag and avoid
1739         linking to so many libraries on darwin.
1740
1741         * m4/libtool.m4 [darwin]: Don't use a libname triplet, a couplet
1742         is perfectly fine.
1743
1744         * m4/ltdl.m4: Don't use the dyld loader on darwin 8 or later.
1745
1746 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
1747
1748         * config/ltmain.in (piecewise linking): Use a GNU ld script if
1749         possible.
1750         * m4/libtool.m4 (_LT_LINKER_SHLIBS): Add per-tag variable
1751         with_gnu_ld.
1752         (_LT_LANG_CXX_CONFIG): Don't set unused variable with_gnu_ldcxx.
1753
1754 2004-08-22  Gary V. Vaughan  <gary@gnu.org>
1755
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:
1760
1761         * bootstrap: Remove libltdl/config.h from previous releases.
1762         * m4/libtool.m4, m4/ltdl.m4, doc/libtool.texi: Basically, run a
1763         giant sed transformation like this:
1764         s,AC_LIB_LTDL,LTDL_INIT,g
1765         s,AC_LIBLTDL_CONVENIENCE,LTDL_CONVENIENCE,g
1766         s,AC_LIBLTDL_INSTALLABLE,LTDL_INSTALLABLE,g
1767         s,AC_WITH_LTDL,LT_WITH_LTDL,g
1768         s,AC_LTDL_ENABLE_INSTALL,_LT_ENABLE_INSTALL,g
1769         s,AC_DEPLIBS_CHECK_METHOD,_LT_CHECK_MAGIC_METHOD,g
1770         s,AC_LIBTOOL_OBJDIR,_LT_CHECK_OBJDIR,g
1771         s,AC_LTDL_OBJDIR,_LT_CHECK_OBJDIR,g
1772         s,AC_LTDL_DLPREOPEN,_LT_CHECK_DLPREOPEN,g
1773         s,AC_LIBTOOL_SYS_MAX_CMD_LEN,LT_CMD_MAX_LEN,g
1774         s,AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE,_LT_CMD_GLOBAL_SYMBOLS,g
1775         s,AC_LIBTOOL_SYS_OLD_ARCHIVE,_LT_CMD_OLD_ARCHIVE,g
1776         s,AC_PROG_LD_RELOAD_FLAG,_LT_CMD_RELOAD,g
1777         s,AC_LIBTOOL_SYS_LIB_STRIP,_LT_CMD_STRIPLIB,g
1778         s,AC_CHECK_LIBM,LT_LIB_M,g
1779         s,AC_LTDL_DLLIB,LT_LIB_DLLOAD,g
1780         s,AC_LIBTOOL_COMPILER_OPTION,_LT_COMPILER_OPTION,g
1781         s,AC_LIBTOOL_PROG_CC_C_O,_LT_COMPILER_C_O,g
1782         s,AC_LIBTOOL_PROG_COMPILER_NO_RTTI,_LT_COMPILER_NO_RTTI,g
1783         s,AC_LIBTOOL_PROG_COMPILER_PIC,_LT_COMPILER_PIC,g
1784         s,AC_LIBTOOL_SYS_HARD_LINK_LOCKS,_LT_COMPILER_FILE_LOCKS,g
1785         s,AC_LTDL_DLSYM_USCORE,LT_FUNC_DLSYM_USCORE,g
1786         s,AC_LIBTOOL_LINKER_OPTION,_LT_LINKER_OPTION,g
1787         s,AC_LIBTOOL_PROG_LD_SHLIBS,_LT_LINKER_SHLIBS,g
1788         s,AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH,_LT_LINKER_HARDCODE_LIBPATH,g
1789         s,AC_PATH_MAGIC,_LT_PATH_MAGIC,g
1790         s,AC_PATH_TOOL_PREFIX,_LT_PATH_TOOL_PREFIX,g
1791         s,AC_PROG_LD,LT_PATH_LD,g
1792         s,AC_PROG_LD_GNU,_LT_PATH_LD_GNU,g
1793         s,AC_PROG_NM,LT_PATH_NM,g
1794         s,AC_LTDL_SYS_DLOPEN_DEPLIBS,LT_SYS_DLOPEN_DEPLIBS,g
1795         s,AC_LIBTOOL_DLOPEN_SELF,LT_SYS_DLOPEN_SELF,g
1796         s,AC_LIBTOOL_POSTDEP_PREDEP,_LT_SYS_HIDDEN_LIBDEPS,g
1797         s,AC_LTDL_SYSSEARCHPATH,LT_SYS_DLSEARCH_PATH,g
1798         s,AC_LTDL_SHLIBEXT,LT_SYS_MODULE_EXT,g
1799         s,AC_LTDL_SHLIBPATH,LT_SYS_MODULE_PATH,g
1800         s,AC_LTDL_SYMBOL_USCORE,LT_SYS_SYMBOL_USCORE,g
1801         s,AC_LIBTOOL_SYS_DYNAMIC_LINKER,_LT_SYS_DYNAMIC_LINKER,g
1802         s,_LT_AC_TAGVAR,_LT_TAGVAR,g
1803         s,_LT_AC_SYS_COMPILER,_LT_TAG_COMPILER,g
1804         s,_LT_AC_PROG_ECHO_BACKSLASH,_LT_PROG_ECHO_BACKSLASH,g
1805         s,_LT_AC_SYS_LIBPATH_AIX,_LT_SYS_MODULE_PATH_AIX,g
1806         s,_LT_AC_SHELL_INIT,_LT_SHELL_INIT,g
1807         s,_LT_AC_LOCK,_LT_ENABLE_LOCK,g
1808         s,_LT_AC_CHECK_DLFCN,_LT_HEADER_DLFCN,g
1809         s,_LT_AC_TRY_DLOPEN_SELF,_LT_TRY_DLOPEN_SELF,g
1810         s,LT_AC_PROG_EGREP,_LT_DECL_EGREP,g
1811         s,LT_AC_PROG_SED,_LT_DECL_SED,g
1812         * doc/libtool.texi (Autoconf macros): Document exported macros.
1813         * libtoolize.in: Compare ltdl.m4 serial numbers for LTDL_INIT
1814         instead of newly obsoleted AC_LIB_LTDL.
1815         (func_scan_files): Also set seen_ltdl for LTDL_INIT and
1816         LT_WITH_LTDL.
1817
1818 2004-08-12  Peter O'Gorman  <peter@pogma.com>
1819
1820         * m4/libtool.m4 [GNU/linux] (AC_DEPLIBS_CHECK_METHOD): Cleanup,
1821         thanks to Daniel Reed.
1822
1823 2004-08-11  Daniel Reed  <djr@redhat.com>
1824
1825         * tests/demo-nopic.test: Do not run on x86_64 or s390*
1826
1827 2004-08-06  Gary V. Vaughan  <gary@gnu.org>
1828
1829         * libltdl/ltdl.c (lt_dlforeachfile): LT_SYS_LIBSEARCH_PATH is not
1830         an environment variable, it is an actual path.
1831
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>
1835
1836 2004-08-05  Gary V. Vaughan  <gary@gnu.org>
1837
1838         * bootstrap: Run the bootstrap rules from a file named Makefile,
1839         copied from Makefile.am for fresh checkouts.
1840
1841 2004-08-05  Alexandre Duret-Lutz  <adl@gnu.org>
1842
1843         * m4/libtool.m4 (_LT_PROG_LTMAIN): Require ltmain.sh using
1844         using Autoconf's new AC_REQUIRE_AUX_FILE.
1845
1846 2004-08-05  Gary V. Vaughan  <gary@gnu.org>
1847
1848         * Makefile.am ($(top_srcdir)/config/ltmain.sh): Depends on
1849         Makefile.
1850         (timestamp): Factor out timestamp setting and edit it based on the
1851         version number, so that it is empty for release versions.
1852         ($(top_srcdir)/config/ltmain.sh): Use it.
1853         (libtoolize): Ditto.
1854
1855         * Makefile.am (libtool): Depends on ltmain.sh.
1856         (libtoolize): Set and substitute TIMESTAMP.
1857
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 :-(
1861
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.
1868
1869 2004-08-04  Peter O'Gorman  <peter@pogma.com>
1870
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>.
1875
1876 2004-08-03  Jacob Meuser  <jakemsr@jakemsr.com>
1877
1878         * ltmain.in: Allow some static libraries to be used in generating a
1879         shared library on NetBSD and OpenBSD. match-pattern_regex decides
1880         which are good.
1881
1882 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
1883
1884         * m4/libtool.m4 [darwin]: Don't use -all_load.
1885
1886 2004-08-01  Maciej W. Rozycki  <macro@linux-mips.org>
1887
1888         * m4/libtool.m4 (LT_AC_PROG_SED): Set SED when running from cache as
1889         well.
1890
1891 2004-07-31  Gary V. Vaughan  <gary@gnu.org>
1892
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:
1899
1900         * libltdl/Makefile.am (EXTRA_DIST): Add configure.ac.
1901         (nobase_ltdldata_DATA): Change back to libltdl's own
1902         configure.ac.
1903
1904 2004-07-30  Gary V. Vaughan  <gary@gnu.org>
1905
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:
1922
1923         * Makefile.am (edit): New common sed substitutions for files now
1924         generated by make instead of config.status.
1925         (CLEANFILES): Clean new tmp files.
1926         (EXTRA_DIST): Add ltmain.sh.
1927         (vcl-tmp): Reinstated.
1928         (m4/ltversion.m4, config/ltmain.sh): New rules.  Generate from
1929         here instead of config.status.
1930         (libtoolize): Ditto.
1931         (libtool): Call config.status to regenerate if necessary.
1932         (dist-hook): Removed.
1933         * config/ltmain.in: Moved here from top_srcdir.
1934         * README-alpha: Update instructions to check AS_SHELL_SANITIZE is
1935         up to date.
1936         * bootstrap: Rewritten.  Generate m4/ltversion.m4 and
1937         config/ltmain.sh because configure depends on them.
1938         * configure.ac (AC_CONFIG_SRCDIR): Use libtoolize.in now that
1939         ltmain.in has moved.
1940         (AC_CONFIG_FILES): Don't generate distributed files,
1941         config/ltmain.sh and libtoolize from config.status.  We have make
1942         rules to do that now.
1943
1944 2004-07-30  Peter O'Gorman  <peter@pogma.com>
1945
1946         * m4/libtool.m4, ltmain.in: readd the comments that I erased.
1947
1948         * ltmain.in [darwin]: We already had a module var, there can be
1949         only one.
1950
1951         * m4/libtool.m4, ltmain.in: autoconf now says the best thing to do
1952         with CDPATH is to (unset CDPATH) >/dev/null 2>&1 && unset CDPATH,
1953         so do it.
1954
1955 2004-07-29  Gary V. Vaughan  <gary@gnu.org>
1956
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!
1962
1963         * tests/tagtrace.test: Skip this test when running a VPATH build
1964         against a read-only source tree (as in distcheck for example),
1965         since autoconf wants to write temporary files in $top_srcdir
1966         otherwise.
1967
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.
1974
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.
1978
1979         * configure.ac (AC_INIT): Revert an accidental commit from my
1980         testing of package_revision.
1981
1982 2004-07-29  Alexandre Duret-Lutz  <adl@gnu.org>
1983
1984         * doc/libtool.texi (Tags): Document CC.
1985         * m4/libtool.m4 (_LT_SETUP): Register CC as supported tag so that
1986         Automake uses it.
1987
1988 2004-07-28  Gary V. Vaughan  <gary@gnu.org>
1989
1990         Fix a long-standing bug where macro_version was always empty in
1991         the generated m4/ltversion.m4.  Except for CVS revisions:
1992
1993         * ltmain.in (package_revision): Don't try to deduce it from
1994         TIMESTAMP, since that is empty for release versions; simply
1995         substitute it...
1996         * configure.ac (package_revision): ...from here, having
1997         precalculated it before resetting TIMESTAMP for release versions.
1998         * bootstrap: Force regeneration of m4/ltversion.m4, but retain
1999         timestamps if there is no change to the content.
2000
2001 2004-07-28  Gary V. Vaughan  <gary@gnu.org>
2002
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:
2008
2009         * libtoolize.in: Include latest CVS autoconf AS_SHELL_SANITIZE
2010         expansion to make various shells fully bourne compatible.
2011         * ltmain.in: Ditto.
2012         * m4/libtool.m4 (AC_PATH_TOOL_PREFIX): Remove spurious quotes, the
2013         RHS of = assignment is not IFS split.
2014         (_LT_LANG_CXX_CONFIG): Ditto.
2015         (AC_LIBTOOL_POSTDEP_PREDEP): Ditto.
2016
2017 2004-07-27  Gary V. Vaughan  <gary@gnu.org>
2018
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:
2024
2025         * Makefile.am (vcl.tmp): Removed.
2026         (stamp-vcl): Adopt former vcl.tmp target rules.
2027
2028 2004-07-25  Gary V. Vaughan  <gary@gnu.org>
2029
2030         * ltmain.in: Make sure that dependency libraries of -dlpreopened
2031         libraries are propogated properly.
2032
2033 2004-07-23  Joe Orton  <joe@manyfish.co.uk>
2034
2035         * libtool.m4: Treat bsdi5* like bsdi4*.
2036
2037 2004-07-22  Peter O'Gorman  <peter@pogma.com>
2038
2039         * ltmain.in [darwin](func_extract_archives): $SED not sed.
2040
2041         * ltmain.in [darwin](func_extract_archives): Clean up last commit
2042         a little, some suggestions are from Albert Chin, those that are
2043         broken are mine.
2044
2045         * libltdl/Makefile.am, libltdl/loaders/Makefile.am: Look for
2046         included files in the right places.
2047
2048 2004-07-18  Peter O'Gorman  <peter@pogma.com>
2049
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.
2056
2057 2004-07-18  Greg Eisenhauer  <eisen@cc.gatech.edu>
2058
2059         * libltdl/loaders/Makefile.am: Use AM_MAKEFLAGS not MAKEFLAGS.
2060
2061 2004-07-18  Peter O'Gorman  <peter@pogma.com>
2062
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.
2066
2067 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2068
2069         * libltdl/lt__private.h (lt_dlhandle_struct): Renamed to
2070         lt__handle to better reflect the naming scheme.
2071         * libltdl/ltdl.h (lt_dlhandle): Be truly opaque with a void *.
2072         * libltdl/lt_dlloader.c (lt_dlloader_remove): Party to
2073         lt__private.h, so use internal lt__handle instead of opaque
2074         lt_dlhandle.
2075         * libltdl/ltdl.c (LT_DLGET_FLAG, LT_DLSET_FLAG): Add a cast to
2076         internal lt__handle type.
2077         (try_dlopen, tryall_dlopen, load_deplibs, unload_deplibs): Ditto.
2078         (lt_dlexit, lt_dlclose, lt_dlsym): Use lt__handle to iterate
2079         throught the handle list.
2080         (try_dlopen): Use lt__zalloc instead of MALLOC and memset.
2081         * libltdl/ltdl.h (lt_dlcaller_id): Be truly opaque with a void *.
2082         (lt_dlhandle_interface): New callback type for filtering handles
2083         according to the interface they present.
2084         * libltdl/ltdl.c (lt_dlcaller_register): Take an id and an
2085         interface check callback, and generate a caller_id.
2086         (iterator): New static variable for the use of...
2087         (lt_dlhandle_first): New function.  Set the iterator for
2088         subsequent calls to lt_dlhandle_next.
2089         (lt_dlhandle_next): Either work as before when iterator is unset,
2090         or else skip handles that fail the interface check in iterator set
2091         by lt_dlhandle_first.
2092         * libltdl/ltdl.h (lt_dlhandle_first): Declaration.
2093         * doc/libtool.texi (User defined module data): Document the new
2094         APIs.
2095         * NEWS: Updated.
2096
2097 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2098
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:
2103
2104         * libltdl/slist.h, libltdl/slist.c: New files implementing a
2105         generic singly linked list container ADT.  The ADT is purely
2106         internal, and none of its API's are visible from an installed
2107         libltdl.
2108         * libltdl/lt_dlloader.h (lt_dlloader): Removed next field again
2109         :-) Renamed to lt_dlvtable for API.  Changed all callers.
2110         (lt_dlloader_get): New function to turn an lt_dlloader into its
2111         associated lt_dlvtable.
2112         (lt_dlloader_add): Removed unused data parameter.  The caller
2113         data belongs to (and is set by) the loader itself, not the
2114         loader's client.  Changed all callers.
2115         (lt_dlloader_name, lt_dlloader_data): Removed.  Use
2116         lt_dlloader_get instead!
2117         * libltdl/lt__private.h: Include slist.h.
2118         (lt__alloc_die_callback): Add missing LT_SCOPE to declaration.
2119         (lt_dlhandle_struct): Use lt_dlvtable instead of opaque
2120         lt_dlloader.
2121         * libltdl/ltdl.c (lt_dlexit): Rewritten for the new loader API.
2122         (loaders, lt_dlloader_add, lt_dlloader_remove, lt_dlloader_next,
2123         lt_dlloader_find): Moved from here...
2124         * libltdl/lt_dlloader.c ((loaders, lt_dlloader_add,
2125         lt_dlloader_remove, lt_dlloader_next, lt_dlloader_find): ...to
2126         here.  And rewritten in terms of new SList interface.
2127         * libltdl/ltdl.c (lt_dlexit, tryall_dlopen): Rewritten in terms of
2128         new lt_dlloader interface.
2129         * libltdl/Makefile.am (libdlloader_la_SOURCES): Add slist.h and
2130         slist.c.  Move lt_dlloader.h from here...
2131         (pkginclude_HEADERS): ...to here.
2132         (libltdl_la_SOURCES): Add lt_dlloader.c and lt_dlloader.h.
2133
2134 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2135
2136         Collapse two almost identical structures into one:
2137
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.
2143
2144 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2145
2146         A cleaner way to access the private fields of an lt_dlhandle
2147         than my move of the module field into lt_dlinfo:
2148
2149         * libltdl/ltdl.c (lt_caller_data, lt_dlhandle_struct): Move from
2150         here...
2151         * libltdl/lt__private.h (lt_caller_data, lt_dlhandle_struct):
2152         ...to here.  And put the module field back here...
2153         * libltdl/ltdl.h (lt_dlinfo): ...instead of here.
2154         * libltdl/loaders/loadlibrary.c (vm_open): Adjust.
2155
2156 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2157
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!
2162
2163 2004-07-15  Gary V. Vaughan  <gary@gnu.org>
2164
2165         This pervasive changeset makes two intertwined deep changes to the
2166         operation of libtool (neither would work alone).  First, there is
2167         a new feature that allows libraries to preopen modules.  This
2168         entails a backwards incompatible change to the libltdl API for
2169         separating out the preloaded symbol lists by owner.  Second, in
2170         the tradition of "eating our own dogfood", libltdl now preloads
2171         its own dlloaders.  The internal API for dlloaders has also had to
2172         change in a backwards incompatible way in support of the new
2173         library preloading feature.  If you don't use preloaded libraries,
2174         you needn't change your project sources, though you will need to
2175         recompile against the new libltdl.  The API changes are mostly
2176         confined to dlloaders, so you probably needn't worry about those
2177         (unless you have written a custom loader that you want libltdl to
2178         use):
2179
2180         * configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
2181         * libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
2182         * libltdl/loaders: New directory for module loaders, to simplify
2183         Makefile rules, and to give the loaders themselves names that are
2184         unique in the first few characters.
2185         * libtoolize.in (func_copy_all_files): Copy recursively to pick up
2186         the loaders directory contents.
2187         * libltdl/loaders/Makefile.am: New file.  Move module building
2188         rules to here...
2189         * libltdl/Makefile.am: ...from here.
2190         (VERSION_INFO): Bumped version info to signify interface changes.
2191         (libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
2192         appropriately for each library.
2193         * libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
2194         libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
2195         libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
2196         libltdl/loader-shl_load.c: Moved from here...
2197         * libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
2198         libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
2199         libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
2200         libltdl/loaders/shl_load.c: ...to here.
2201         (get_vtable): New entry function for each.
2202         * libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
2203         (symlist_chain): ...a new structure which maps lists of preloaded
2204         symbols from the object that loads them.
2205         (lt_dlpreload_open): New function to automatically open all
2206         preloaded modules belonging to a named object (ORIGINATOR).
2207         * libltdl/lt__alloc.c (lt__zalloc): New function to return a block
2208         of zeroed out new memory.
2209         * libltdl/lt__alloc.h (lt__zalloc): Prototype it.
2210         * libltdl/lt__private.h (lt__alloc_die_callback): Add missing
2211         prototype.
2212         (lt__error_strings): Make this opaque to callers.
2213         * libltdl/lt_error.c (lt__error_strings): Move the implementation
2214         to here.
2215         * libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
2216         make originator focused preloading possible.  *BREAKS BACKWARDS
2217         COMPATIBILITY*
2218         (lt_dlloader_add): Take advantage of new fields to simplify
2219         paramater list.
2220         * libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
2221         (LT_CONC): Fix it to work from within macros.
2222         * libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
2223         dlloader loading.
2224         (get_vtable, preloaded_symbols): Point these at the preopen.c
2225         symbols to bootstrap the loader chain.
2226         (lt_dlinit): Load the preopen dlloader manually, and then use it
2227         to load any other preloaded dlloaders.
2228         (lt_dlloader_add): Simplify parameter list. Populate new
2229         fields. Chain new loaders according to priority field.
2230         * libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
2231         (lt_dlpreload_callback_func): Type of a callback for automatic
2232         lt_dlpreload_open loading.
2233         (LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
2234         symbols from the "@PROGRAM@" originator.
2235         * tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
2236         * tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
2237         * ltmain.in: Don't spew spurious warnings when dlopening and
2238         dlpreopening modules.
2239         (func_generate_dlsyms): Factored out from multiple copies in the
2240         rest of the code. Generate originator keyed symbol lists.
2241         (func_extract_archives): Also factored.  Extract the contents of
2242         convenience archives for linking with dependent libraries when
2243         --whole-archive is not available.
2244         [darwin]: Don't try to link $old_library unless it exists, and
2245         $lib is a bundle.
2246         * m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
2247         loading libraries/apis rather that stopping when an acceptable one
2248         is discovered.
2249         (LT_DLLOADERS): New variable for holding dlloaders that can be
2250         preloaded.
2251         * doc/libtool.texi: Document interface changes.
2252         * NEWS: Updated.
2253
2254 2004-07-12  Peter O'Gorman  <peter@pogma.com>
2255
2256         * m4/libtool.m4 [darwin]: Set whole_archive_flag_spec to '' for xlc,
2257         or it does not pass it's tests. xlc passes -noall_load (the default)
2258         and when -all_load is also specified Apple's /usr/bin/libtool barfs
2259         and dies.
2260
2261 2004-07-07  Gary V. Vaughan  <gary@gnu.org>
2262
2263         * libltdl/ltdl.h (lt_dlinfo): Move private module field to here...
2264         * libltdl/ltdl.c (lt_dlhandle_struct): ...from here.  Changed all
2265         callers.
2266         * libltdl/loader-loadlibrary.c (sys_wll_open): Use new inteface to
2267         scan loaded handle->info.module fields for previously loaded
2268         modules.
2269         * doc/libtool.texi (User defined module data): Document changes to
2270         the interface.
2271         * NEWS: Updated.
2272         Reported by Chuck Wilson <cwilson@ece.gatech.edu>
2273
2274 2004-07-07  Brad  <brad@comstyle.com>
2275
2276         * m4/libtool.m4: Fixes for the OpenBSD support
2277
2278 2004-06-24  Noah Misch  <noah@cs.caltech.edu>
2279
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.
2283
2284 2004-06-21  Gary V. Vaughan  <gary@gnu.org>
2285
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.
2289
2290 2004-06-21  Peter O'Gorman  <peter@pogma.com>
2291
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. :(
2299
2300 2004-06-21  Gary V. Vaughan  <gary@gnu.org>
2301
2302         From Ralf Wildenhues <Ralf.Wildenhues@gmx.de>:
2303         * libtoolize.in: Quote $# to make sh.test happy again.
2304
2305         * m4/ltdl.m4 (AC_WITH_LTDL): Remove redundant AC_REQUIRE calls.
2306         Either set variables to allow a client to link with the installed
2307         libltdl, or else compile a local libltdl as a convenience library.
2308         * libtoolize.in (opt_ltdl): Removed in favour of...
2309         (ltdldir): ...this, which is defaulted to "libltdl" or can be set
2310         by the user with an argument to --ltdl.
2311         (Main): Use it!
2312         * doc/libtool.texi (Distributing libltdl): Improved documentation
2313         on libltdl.
2314         (Invoking libtoolize): Document new optional --ltdl target
2315         directory argument.
2316
2317 2004-06-17  Gary V. Vaughan  <gary@gnu.org>
2318
2319         * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [darwin*]: Fix a typo
2320         in allow_undefined_flag: s,${Wl},${wl},g
2321
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>
2328
2329 2004-06-16  Brad  <brad@comstyle.com>
2330
2331         * m4/libtool.m4: More improvements to OpenBSD support.
2332         * NEWS: Updated.
2333
2334 2004-06-16  Gary V. Vaughan  <gary@gnu.org>
2335
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:
2341
2342         * libltdl/configure.ac: New file, based on configure.ac.
2343         * libltdl/Makefile.am (AC_LOCAL_AMFLAGS): Use our own m4
2344         directory.
2345         (ltdldata_DATA): List *all* the files that libtoolize --ltdl will
2346         install.
2347
2348 2004-06-16  Gary V. Vaughan  <gary@gnu.org>
2349
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:
2356
2357         * Makefile.am (pkgmacro_DATA): Renamed to aclocal_DATA, so m4
2358         files are installed to $prefix/share/aclocal again.
2359         (install-data-local): Don't remove just installed macros!
2360         * libtoolize.in (pkgmacrodir): Renamed to aclocaldir.
2361         (func_copy_some_files): New function factored out of...
2362         (func_copy_all_files): ...here.  Adjust to use func_copy_some_files.
2363         (re_pkgaux_files): Renamed to glob_pkgaux_files, since it is not
2364         a regular expression.
2365         (re_pkgmagro_files): Replaced with...
2366         (pkgmacro_files): ...a colon delimited list of libtool installed
2367         m4 files from aclocaldir.
2368         (Main): Copy macro files from aclocaldir again.
2369         * NEWS: Updated.
2370
2371 2004-05-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
2372
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.
2375
2376 2004-05-21  Gary V. Vaughan  <gary@gnu.org>
2377
2378         * tests/tagtrace.test: Forgot to add this file to the repository
2379         for Alexandre's 2004-05-16 patch below.
2380
2381 2004-05-18  Peter O'Gorman  <peter@pogma.com>
2382
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.
2385
2386 2004-05-16  Alexandre Duret-Lutz  <adl@gnu.org>
2387
2388         * doc/libtool.texi (Invoking libtool): Mention --tag=TAG.
2389         (Tags, Trace interface): New nodes.
2390         * m4/libtool.m4 (LT_SUPPORTED_TAG): New macro.
2391         (_LT_LANG): Call it.
2392         * tests/tagtrace.test: New file.
2393         * tests/Makefile.am
2394         (TESTS): Add tagtrace.test.
2395         * tests/defs: Define AUTOCONF.
2396
2397 2004-05-14  Mike Gorchak  <lestat@i.com.ua>
2398
2399         * ltmain.in: Add new qnx version type support.
2400         * m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Use it.  Set
2401         ldqnx.so linker type.
2402         (AC_DEPLIBS_CHECK_METHOD): QNX6 uses GNU C++, with deplib
2403         checking, so use pass_all.
2404         (AC_LIBTOOL_PROG_COMPILER_PIC): Use -shared for QNX.
2405         (_LT_LANG_CXX_CONFIG): QNX can make shared libraries.
2406         * m4/ltdl.m4 (AC_LTDL_SYS_DLOPEN_DEPLIBS): QNX opens deplibs on
2407         dlopen.
2408         * NEWS: Updated.
2409
2410 2004-05-05  Peter O'Gorman  <peter@pogma.com>
2411
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.
2415
2416 2004-04-22  Gary V. Vaughan  <gary@gnu.org>
2417
2418         * libltdl/argz.h: Moved from here...
2419         * libltdl/argz_.h: ...to here, so as not to shadow system
2420         argz.h when we `#include <argz.h>' for example.
2421         #include stdlib.h and sys/types.h to ensure we get a size_t
2422         definition.
2423         * libltdl/argz.c (HAVE_CONFIG_H): Set it up how ltdl likes it when
2424         used by another client.
2425         * m4/argz.m4: New file.
2426         (gl_FUNC_ARGZ): Try to find an error_t definition, and a system
2427         argz.h.
2428         * m4/ltdl.m4: Use it.
2429         (AC_LTDL_FUNC_ARGZ): Removed.
2430         * libltdl/lt__glibc.h: #include <argz.h> to pick up either the
2431         system argz.h or our libltdl/argz.h if necessary.
2432         * libltdl/Makefile.am (libltdl_la_SOURCES): Move argz.h from
2433         here...
2434         (ltdldata_DATA): ...here. Along with argz.c.
2435         (argz.h): Generate from argz_.h if the system file is missing.
2436         Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2437
2438 2004-04-22  Gary V. Vaughan  <gary@gnu.org>
2439
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.
2444
2445         * libltdl/lt_mutex.c, libltdl/lt_mutex.h: Removed.
2446         * libltdl/Makefile.am (pkginclude_HEADERS): Removed lt_mutex.h.
2447         (libltdl_la_SOURCES): Removed lt_mutex.c and lt_mutex.h.
2448         * libltdl/ltdl.h: Don't include lt_mutex.h.
2449         * libltdl/lt__private.h (LT__MUTEX_GETERROR, LT__MUTEX_SETERROR)
2450         (LT__MUTEX_SETERRORSTR): Renamed to...
2451         (LT__GETERROR, LT__SETERROR, LT__SETERRORSTR): ...this.  Changed
2452         all callers.
2453         (LT__MUTEX_LOCK, LT__MUTEX_UNLOCK, lt_dlmutex_lock)
2454         (lt_dlmutex_unlock, lt_dlmutex_seterror, lt_dlmutex_geterror):
2455         Removed.  Changed all callers.
2456         * doc/libtool.texi (Thread Saftey in libltdl):
2457         * NEWS: Updated.
2458
2459 2004-04-19  Gary V. Vaughan  <gary@gnu.org>
2460
2461         * m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Detect Intel C++ compiler
2462         version more idiomatically.
2463
2464 2004-04-19  Albert Chin-A-Young  <china@thewrittenword.com>
2465
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.
2469
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.
2474
2475         * m4/libtool.m4: Use cc rather than ld to created
2476         a shared library on Tru64 UNIX.
2477
2478         * m4/libtool.m4: Use cc rather than ld to created
2479         a shared library on IRIX.
2480
2481         * libltdl/loader-shl_load.c: Fix typos during reorg.
2482
2483 2004-04-19  Alexandre Duret-Lutz  <adl@gnu.org>
2484
2485         * doc/libtool.texi (LT_INIT): Properly display options in a table.
2486
2487 2004-04-19  Gary V. Vaughan  <gary@gnu.org>
2488
2489         * m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Intel C++ compiler 8.0 and
2490         newer adds predep_objects and postdep_objects itself, so don't
2491         duplicate them in $archive_cmds and $archive_expsym_cmds.
2492         * NEWS: Updated.
2493         Reported by Roberto Bagnara <bagnara@cs.unipr.it>
2494
2495 2004-04-17  Peter O'Gorman  <peter@pogma.com>
2496
2497         * libltdl/loader-dyld.c: Fix compilation issues. Set Original author
2498         to me.
2499
2500 2004-04-17  Todd Vierling  <tv@duh.org>,
2501         Peter O'Gorman  <peter@pogma.com>
2502
2503         * m4/libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Use sysctl to get the
2504         max cmd length on BSD* and darwin. Make sure that there is a safety
2505         factor too.
2506
2507 2004-04-15  Scott James Remnant  <scott@netsplit.com>
2508
2509         * m4/libtool.m4 (_LT_LANG_DEFAULT_CONFIG): Remove code to handle 'none'
2510         and 'all' options, this now always assumes automatic mode as that
2511         works so well.
2512         (_LT_LANG_DEFAULT): Remove definition
2513         * m4/ltoptions.m4: Remove 'no-lang', 'auto-lang' and 'all-lang' options.
2514         * configure.ac: Invoke LT_LANG for each desired supported language.
2515         * doc/libtool.texi: Remove documentation for the LT_INIT options,
2516         rewrite LT_LANG documentation.
2517
2518 2004-04-14  Alexandre Duret-Lutz  <adl@gnu.org>
2519
2520         * bootstrap: Delete acinclude.m4.
2521
2522 2004-04-14  Gary V. Vaughan  <gary@gnu.org>
2523
2524         * libtoolize.in (configure_ac): Don't complain about the lack of
2525         aclocal.m4.
2526         Reported by Alexandre Duret-Lutz <adl@src.lip6.fr>
2527
2528 2004-04-13  Gary V. Vaughan  <gary@gnu.org>
2529
2530         * m4/ltdl.m4 (AC_LIB_LTDL): Remove AC_REPLACE_FUNCS for memmove
2531         and strcpy.
2532
2533         * libltdl/lt__pre89.h, libltdl/memcpy.c, libltdl/memmove.c,
2534         libltdl/strchr.c, libltdl/strcmp.c, libltdl/strrchr.c: Remove
2535         half-assed pre-c89 support entirely.
2536         * libltdl/lt__private.h: Don't refer to lt__pre89.h.
2537         * libltdl/Makefile.am (ltdldata_DATA): Remove references to
2538         deleted files.
2539         * NEWS: Mention it.
2540
2541         * libltdl/lt__pre89.h, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/argz.c,
2542         libltdl/argz.h, libltdl/lt__glibc.h, libltdl/lt_dlloader.h,
2543         libltdl/lt__dirent.c, libltdl/lt__dirent.h, libltdl/lt__private.h,
2544         libltdl/lt__alloc.c, libltdl/lt__alloc.h, libltdl/lt_system.h,
2545         libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
2546         libltdl/loader-dyld.c,  libltdl/loader-loadlibrary.c,
2547         libltdl/loader-shl_load.c, libltdl/lt_error.h, libltdl/lt_mutex.h:
2548         Autoconf either defines to 1 or undefs the discovery macros it
2549         puts in config.h, and many (non-GNU) compilers throw a spurious
2550         warning when testing an #undef macro with #if.  For consistency,
2551         while we are touching all these lines, use defined(MACRO) style
2552         throughout.
2553         Reported by Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
2554
2555 2004-04-13  Gary V. Vaughan  <gary@gnu.org>
2556
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:
2561
2562         * libltdl/Makefile.am (libltdl_la_SOURCES): Add loader-preopen
2563         module.
2564         * m4/ltdl.m4 (AC_LTDL_DLLIB): Use AC_LIBOBJ to add appropriate
2565         loaders to libltdl.
2566         * libltdl/lt_system.h (LT_SCOPE): Moved to here.
2567         * libltdl/ltdl.h (lt_dlloader, lt_user_data, lt_module)
2568         (lt_module_open, lt_module_close, lt_find_sym, lt_dlloader_exit)
2569         (struct lt_user_dlloader, lt_dlloader_next, lt_dlloader_find)
2570         (lt_dlloader_name, lt_dlloader_data, lt_dlloader_add)
2571         (lt_dlloader_remove): Moved declarations...
2572         * libltdl/lt_loader.h: ...to here.
2573         * libltdl/ltdl.c: Include lt_loader.h.  Move loader implementation
2574         code from here...
2575         * libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
2576         libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
2577         libltdl/loader-loadlibrary.c, libltdl/loader-preopen.c,
2578         libltdl/loader-shl_load.c: ...to here.
2579         * tests/cdemo/Makefile.am, tests/demo/Makefile.am,
2580         tests/depdemo/Makefile.am, tests/f77demo/Makefile.am,
2581         tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am,
2582         tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (AM_CPPFLAGS):
2583         Add -I$(top_srcdir)/../.. so that libltdl include files can be
2584         written as #include <libltdl/lt_dlloader.h> and found correctly.
2585
2586 2004-04-13  Gary V. Vaughan  <gary@gnu.org>
2587
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:
2594
2595         * libltdl/Makefile.am (pkginclude_HEADERS): Install lt_error.h and
2596         lt_mutex.h to $includedir/libltdl.
2597         (libltdl_la_SOURCES): Build lt_error and lt_mutex objects.
2598         * libltdl/ltdl.h (LT_SCOPE): Moved from here...
2599         * libltdl/lt_system.h (LT_SCOPE): ...to here.
2600         * libltdl/ltdl.c (lt_dlerror_strings, LT_DLSTRERROR): Moved from
2601         here...
2602         * libltdl/lt__private.h (lt__error_strings, LT__STRERROR): ...to
2603         here as additional internal interfaces to lt_error.  Changed all
2604         callers.
2605         * libltdl/ltdl.c (LT_DLMUTEX_LOCK, LT_DLMUTEX_UNLOCK)
2606         (LT_DLMUTEX_SETERROR, LT_DLMUTEX_GETERROR, lt_dlmutex_lock_func)
2607         (lt_dlmutex_unlock_func, lt_dlmutex_geterror_func)
2608         (lt_dllast_error): Moved from here...
2609         (LT__MUTEX_LOCK, LT__MUTEX_UNLOCK, LT__MUTEX_SETERRORSTR)
2610         (LT__MUTEX_GETERROR, lt__mutex_lock_func, lt__mutex_unlock_func)
2611         (lt__mutex_geterror_func, lt__last_error): ...to here as
2612         additional internal interfaces to lt_mutex.  Changed all callers.
2613         (LT_MUTEX_SETERROR): Take an errorcode rather than a string.
2614         Changed all callers.
2615         * libltdl/ltdl.c, libltdl/ltdl.h (lt_dlmutex_register): Moved from
2616         here...
2617         * libltdl/lt_mutex.c, libltdl/lt_mutex.h (lt_dlmutex_register):
2618         ...to here. New files.
2619         * libltdl/ltdl.c, libltdl/ltdl.h (lt_dladderror, lt_dlseterror)
2620         (lt_dlerror_table):
2621         Moved from here...
2622         * libltdl/lt_error.c, libltdl/lt_error.h (lt_dladderror)
2623         (lt_dlseterror, lt_dlerror_table): ...to here. New files.
2624
2625 2004-04-13  Scott James Remnant  <scott@netsplit.com>
2626
2627         * Makefile.am (XDELTA_OPTIONS): Remove --pristine as that
2628         generates huge xdeltas.
2629
2630 2004-04-08  Gary V. Vaughan  <gary@gnu.org>
2631
2632         * libltdl/ltdl.c (argz_append, argz_create_sep, argz_insert)
2633         (argz_next, argz_stringify): Move from here...
2634         * libltdl/argz.c: New file. ...to here.
2635         * libltdl/lt__glibc.h: New file. Rename global symbols into the
2636         lt__ namespace.
2637         * libltdl/lt__private.h: Include lt__glibc.h.
2638         * libltdl/Makefile.am (libltdl_la_SOURCES): Add new files.
2639         (AM_CPPFLAGS): Add -DLTDL.
2640         * libltdl/argz.h (argz_append, argz_create_sep, argz_insert)
2641         (argz_next, argz_stringify): New file. Declare argz functions
2642         here, including lt__glibc.h when LTDL is defined to rename global
2643         symbols for libltdl.
2644         * m4/ltdl.m4 (AC_LTDL_FUNC_ARGZ): Add argz to AC_LIBOBJ if any of
2645         our argz_* functions are missing from the system libraries.
2646
2647         * libltdl/ltdl.c: Move standard headers and preprocessor guards
2648         from here...
2649         * libltdl/lt__private.h: ...to here.  New file to declare ltdl's
2650         internal interfaces.
2651         * libltdl/ltdl.c: Include lt__private.h.
2652         * m4/ltdl.m4 (AC_LIB_LTDL): Add lt_dirent to AC_LIBOBJ if all of
2653         opendir, readdir and closedir are missing.
2654         (AC_CHECK_HEADERS): Remove assert.h, ctype.h, errno.h, malloc.h,
2655         stdio.h and stdlib.h; these headers are all available in standard
2656         c89 environments and newer.
2657         * libltdl/lt__private.h: Include them here unconditionally.
2658         * libltdl/lt__dirent.c (opendir, readdir, closedir): New file.
2659         Windows dirent emulation functions moved to here...
2660         * libltdl/ltdl.c (opendir, readdir, closedir): ...from here.
2661         * libltdl/lt__dirent.h: New file.  Rename the global symbols from
2662         lt__dirent.c into the lt__ namespace so they don't clash with
2663         other libraries.
2664
2665 2004-04-08  Gary V. Vaughan  <gary@gnu.org>
2666
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:
2671
2672         * libltdl/lt__pre89.h: New file.  Rename all the symbols from
2673         LTLIBOBJS into the lt__ namespace so that they don't clash with
2674         other libraries.
2675         * libltdl/ltdl.c (rpl_memcpy, rpl_memmove, rpl_strchr, rpl_strcmp)
2676         (rpl_strrchr): Moved from here...
2677         * libltdl/memcpy.c (memcpy): ...to here, and fixed void *
2678         dereference bug...
2679         * libltdl/memmove.c (memmove): ...to here, and fixed void *
2680         dereference bug...
2681         * libltdl/strchr.c (strchr): ...to here...
2682         * libltdl/strcmp.c (strcmp): ...here...
2683         * libltdl/strrchr.c (strrchr): ...and here.
2684         * libltdl/Makefile.am (libltdl_la_SOURCES): Add lt__pre89.h.
2685         (libltdl_la_LIBADD, libltdlc_la_LIBADD): Add $(LTLIBOBJS).
2686         (ltdldata_DATA): Add replacement sources files.
2687         * m4/ltdl.m4 (AC_LIB_LTDL): Do careful config.h and LTLIBOBJ
2688         setting for missing pre89 functions.
2689
2690 2004-04-08  Gary V. Vaughan  <gary@gnu.org>
2691
2692         * libltdl/ltdl.h (LT_PARAMS): Removed.  Changed all users to
2693         ANSI prototypes.
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.
2697
2698 2004-04-08  Fredrik Estreen  <estreen@algonet.se>
2699
2700         * m4/ltdl.m4: Rename shrext to shrext_cmds here too.
2701
2702 2004-04-06  Gary V. Vaughan  <gary@gnu.org>
2703
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:
2708
2709         * doc/libtool.texi (Libltdl interface): Remove lt_dlmalloc,
2710         lt_dlrealloc and lt_dlfree references.  The memory management
2711         layer used by libltdl is now private.
2712         * libltdl/lt_system.h: New installed header for system portability
2713         abstraction.
2714         * libltdl/ltdl.h: Use it.
2715         * libltdl/lt__alloc.c, libltdl/lt__alloc.h: New module above
2716         system portability layer to abstract ltdl's memory management.
2717         * libltdl/ltdl.c: Use lt__alloc.h.
2718         (closedir): Use free.
2719         (opendir): Use malloc/free.
2720         (lt__xalloc_die_callback): Report memory failures through
2721         lt_dlerror.
2722         (lt_dlinit): Use it to initialise memory management.
2723         (LT_DLMALLOC, LT_DLREALLOC, LT_DLFREE, LT_EMALLOC, LT_EREALLOC)
2724         (rpl_strdup, rpl_realloc, lt_estrdup, lt_emalloc, lt_erealloc):
2725         Removed in favour of...
2726         (lt__strdup, lt__memdup, MALLOC, REALLOC, FREE): ...these calls
2727         from libltdl/lt__alloc.h.  Changed all callers.
2728         (rpl_argz_append, rpl_argz_create_sep, rpl_argz_insert): As part
2729         of the portability layer, these functions no longer use libltdl
2730         memory management API.
2731         (free_vars): Factored out.
2732         (LT_DLMEM_REASSIGN): While redoing memory handling, renamed...
2733         * libltdl/lt__alloc.h (MEMREASSIGN): ...to this.
2734         * libltdl/Makefile.am (AUTOMAKE_OPTIONS): Let automake track
2735         dependencies automatically.
2736         (pkgincludedir): Override from parent package's setting.
2737         (pkginclude_HEADERS): Install lt_system.h.
2738         (libltdl_la_SOURCES): Add new files.
2739         * NEWS: Updated.
2740         Reported by Dalibor Topic <robilad@kaffe.org>
2741
2742 2004-04-01  Peter O'Gorman  <peter@pogma.com>
2743
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.
2746
2747         * NEWS: Add a news item about xlc support that I forgot yesterday.
2748
2749 2004-03-31  Peter O'Gorman  <peter@pogma.com>
2750
2751         * m4/libtool.m4, ltmain.in (darwin): Support IBM's xlc and xlc++.
2752
2753 2004-03-31  Gary V. Vaughan  <gary@gnu.org>
2754
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.
2761
2762 2004-03-30  Gary V. Vaughan  <gary@gnu.org>
2763
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.
2767
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.
2773
2774 2004-03-29  Gary V. Vaughan  <gary@gnu.org>
2775
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.
2784
2785         * Makefile.am (pkgmacro_DATA): Install ltoptions.m4.
2786
2787         * libltdl/Makefile.am (AM_CPPFLAGS): Also check $top_builddir for
2788         config.h.
2789         (ltdl.o): config.h is in $top_builddir.
2790
2791 2004-03-24  Scott James Remnant  <scott@netsplit.com>
2792
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.
2797
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.
2809
2810         * libltdl/ltdl.c (sys_dl_open): Don't load libraries with global
2811         symbol resolution.
2812         * NEWS: Updated.
2813
2814 2004-03-24  Albert Chin-A-Young  <china@thewrittenword.com>
2815
2816         * m4/libtool.m4: Add new variable, inherit_rpath, if the
2817         RPATHs of the libraries being linked are inherited in
2818         the output file. For systems with a linker exhibiting
2819         this feature, programs/libraries must be relinked at
2820         installation time.
2821
2822         * m4/libtool.m4: When linking convenience libraries on Solaris
2823         with the Sun C++ compiler, pass convenience libraries through
2824         to the linker with -Qoption between allextract/defaultextract.
2825         The Sun C++ compiler bundles -Qoption arguments so
2826         convenience libraries are linked with defaultextract
2827         otherwise.
2828         * tagdemo/Makefile.am, tagdemo/main.cpp, tagdemo/conv.h,
2829         tagdemo/conv.cpp: Augment tagdemo test to link a convenience
2830         library with a libtool library.
2831
2832         * ltmain.in: Piecewise linking doesn't work when the output
2833         file is an absolute path, use the basename only instead.
2834
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.
2842
2843 2004-03-24  Scott James Remnant  <scott@netsplit.com>
2844
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.
2848
2849 2004-03-22  Scott James Remnant  <scott@netsplit.com>
2850
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.
2854
2855 2004-03-21  Scott James Remnant  <scott@netsplit.com>
2856
2857         * libltdl/Makefile.am (libltdl_la_LDFLAGS): Increment CURRENT
2858         and AGE of libltdl, warranted by the addition of lt_dlhandle_find()
2859         since 1.5.2.
2860
2861 2004-03-21  Scott James Remnant  <scott@netsplit.com>
2862
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.
2868
2869         * m4/libtool.m4 (_LT_CONFIG): Renamed AC_LIBTOOL_CONFIG to _LT_CONFIG
2870         which is more consistent with our own namespace and gets us further out
2871         of Autoconf's.
2872         (_LT_LIBTOOL_TAGS): Output available_tags variable based entirely
2873         on the value of _LT_TAGS.
2874         (_LT_COPYING): Call _LT_LIBTOOL_TAGS to output available tags,
2875         always append tag configuration if the tag is available.
2876         (LT_LANG): New macro to enable support for a language that accepts
2877         tag names (eg. "CXX") or human language names (eg. "C++").
2878         (_LT_LANG): Internal support macro for above that appends the
2879         tag to _LT_TAGS and calls the appropriate config macro.
2880         (LT_INIT): Ensure that LT_LANG is not called before LT_INIT.
2881         (AC_LIBTOOL_TAGS): Removed, call LT_LANG for each language now.
2882         (_LT_AC_TAG_CHECK): Removed, _LT_LANG handles duplicate calls.
2883         (_LT_LANG_DEFAULT_CONFIG): Macro to set initial language support
2884         based on options passed to LT_INIT.
2885         (_LT_SETUP): Call _LT_LANG_DEFAULT_CONFIG.
2886         (_LT_AC_TAG_CONFIG): Removed, handled by _LT_LANG_DEFAULT_CONFIG.
2887         (_LT_AC_LANG_CXX, _LT_AC_LANG_F77, _LT_AC_LANG_GCJ): Removed,
2888         automatic language support inclusion now handled by
2889         _LT_LANG_DEFAULT_CONFIG.
2890         (AC_LIBTOOL_CXX): Obsolete macro, update to LT_LANG(C++).
2891         (AC_LIBTOOL_F77): Obsolete macro, update to LT_LANG(Fortran 77).
2892         (AC_LIBTOOL_GCJ): Obsolete macro, update to LT_LANG(Java).
2893         (AC_LIBTOOL_LANG_C_CONFIG_: Removed.
2894         (_LT_AC_LANG_C_CONFIG): Renamed to _LT_LANG_C_CONFIG, call
2895         _LT_CONFIG instead of AC_LIBTOOL_CONFIG.
2896         (_LT_SETUP): Replace call to AC_LIBTOOL_LANG_C_CONFIG with call to
2897         new _LT_LANG_C_CONFIG macro.
2898         (AC_LIBTOOL_LANG_CXX_CONFIG): Removed.
2899         (_LT_AC_LANG_CXX_CONFIG): Renamed to _LT_LANG_CXX_CONFIG, call
2900         _LT_CONFIG instead of AC_LIBTOOL_CONFIG.
2901         (AC_LIBTOOL_LANG_F77_CONFIG): Removed.
2902         (_LT_AC_LANG_F77_CONFIG): Renamed to _LT_LANG_F77_CONFIG, call
2903         _LT_CONFIG instead of AC_LIBTOOL_CONFIG.
2904         (AC_LIBTOOL_LANG_GCJ_CONFIG): Removed.
2905         (_LT_AC_LANG_GCJ_CONFIG): Renamed to _LT_LANG_GCJ_CONFIG, call
2906         _LT_CONFIG instead of AC_LIBTOOL_CONFIG.
2907         (AC_LIBTOOL_LANG_RC_CONFIG): Removed.
2908         (_LT_AC_LANG_RC_CONFIG): Renamed to _LT_LANG_RC_CONFIG, call
2909         _LT_CONFIG instead of AC_LIBTOOL_CONFIG.
2910         (LT_AC_PROG_GCJ): Renamed to LT_PROG_GCJ.
2911         (LT_AC_PROG_RC): Renamed to LT_PROG_RC.
2912         * m4/ltoptions.m4: Define new 'no-lang', 'auto-lang' and 'all-lang'
2913         options which set the default for _LT_LANG_DEFAULT_CONFIG.
2914         * m4/lt~obsolete.m4: Removed AC_LIBTOOL_CONFIG, _LT_AC_LANG_C_CONFIG,
2915         _LT_AC_LANG_GCJ_CONFIG, _LT_AC_LANG_RC_CONFIG; all of which are no
2916         long referenced in any way.
2917         * configure.ac: Enable all languages.
2918         * tests/cdemo/configure.ac, tests/demo/configure,ac,
2919         tests/depdemo/configure.ac, tests/f77demo/configure.ac,
2920         tests/mdemo/configure.ac, tests/pdemo/configure,ac,
2921         tests/tagdemo/configure.ac: Remove calls to AC_LIBTOOL_TAGS,
2922         the default 'auto-lang' mode now does the right thing.
2923         * doc/libtool.texi (The LT_INIT macro): Add documentation for
2924         new LT_INIT options and the LT_LANG macro, replacing the old
2925         documentation of AC_LIBTOOL_TAGS which is no more.
2926         * NEWS: Updated.
2927
2928 2004-03-17  Scott James Remnant  <scott@netsplit.com>
2929
2930         * m4/libtool.m4: Removed AC_BEFORE references to AC_LIBTOOL_SETUP
2931         which is no more.
2932         * m4/lt~obsolete.m4: As AC_LIBTOOL_SETUP is no longer referenced,
2933         it can be removed from this file.  Remove _AC_PROG_LIBTOOL also.
2934
2935 2004-03-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2936
2937         * m4/libtool.m4: Remove newlines from lt_ld_extra, so
2938         variable can safely be stored in config.cache.
2939
2940 2004-03-14  Michael Pruett  <michael@68k.org>
2941
2942         * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS0 [irix]: Define
2943         archive_expsym_cmds so that --export-symbols will work.
2944
2945 2004-03-11  Peter O'Gorman  <peter@pogma.com>
2946
2947         * ltmain.in (link_all_deplibs,darwin): Link libraries in the
2948         correct order. Bug from Zachary Pincus <zpincus@stanford.edu>.
2949
2950 2004-03-14  Scott James Remnant  <scott@netsplit.com>
2951
2952         * m4/ltmain.in: Only check precious_files_regex if it is not empty.
2953
2954 2004-03-14  Gary V. Vaughan  <gary@gnu.org>
2955
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>
2959
2960 2004-03-13  Gary V. Vaughan  <gary@gnu.org>
2961
2962         * doc/libtool.texi (Using Automake): Cite correct Automake version
2963         for -dlopen quoting.
2964         (Autoconf and LTLIBOBJS): Cite correct Autoconf versions
2965         throughout.
2966         (Distributing libltdl): Use AM_CPPFLAGS; INCLUDES is deprecated.
2967         From Alexandre Duret-Lutz  <adl@src.lip6.fr>
2968
2969 2004-03-05  David Edelsohn  <edelsohn@gnu.org>
2970
2971         * m4/libtool.m4: Disable building static libraries if building
2972         shared libraries on AIX 5L.
2973
2974 2004-03-05  Gary V. Vaughan  <gary@gnu.org>
2975
2976         * libtoolize.in: Remove --ltdl-tar.  It doesn't work with the
2977         current implementation, and seems more or less pointless.
2978         * doc/libtool.texi (Invoking libtoolize): Updated.
2979         * NEWS: Updated.
2980
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.
2985
2986 2004-03-02  Gary V. Vaughan  <gary@gnu.org>
2987
2988         * bootstrap: Prune out my arch mirror dir before running
2989         amok through the tree with 'rm -rf'!
2990
2991 2004-03-02  Patrick Welche  <prlw1@newn.cam.ac.uk>
2992
2993         * doc/libtool.texi (LT_INIT): Dumb typos fixed.
2994
2995 2004-02-23  Gary V. Vaughan  <gary@gnu.org>
2996
2997         * ltmain.in <install mode>: Add missing --help doc for
2998         -inst-prefix option.
2999
3000         * ltmain.in <link mode>: Add missing --help doc for -shrext
3001         option.
3002
3003         * ltmain.in (IFS): Move '\n' to beginning of IFS so that emacs
3004         doesn't offer to strip trailing ' \t' on every save.
3005
3006         * ltmain.in: Add missing --help doc for --preserve-dup-deps.
3007
3008 2004-02-22  Gary V. Vaughan  <gary@gnu.org>
3009
3010         * Makefile.maint (web-manual): Generate the web manual carefully
3011         so that links will still work when it is uploaded to gnu.org.
3012         * README-alpha: Note that this rule should be used at release
3013         time.
3014
3015 2004-02-20  Gary V. Vaughan  <gary@gnu.org>
3016
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])':
3021
3022         * m4/libtool.m4 (AC_PROG_LIBTOOL, _AC_PROG_LIBTOOL)
3023         (AC_LIBTOOL_SETUP): Removed.  Added AU_DEFUNs.
3024         (LT_INIT): Replace with an Autoconf like interface which accepts a
3025         version number as a minimum required libtool release at configure
3026         time.
3027         * m4/ltoptions.m4: New file inspired by automake/m4/amoptions.m4,
3028         which additionally flags an error if the configuring libtool
3029         macros are not new enough according to LT_INIT.
3030         (LT_OPTION_DEFINE): New macro to declare option handlers.
3031         (dlopen, win32-dll, shared, disable-shared, static)
3032         (disable-static, fast-install, disable-fast-install, pic-only)
3033         (no-pic): Newly LT_OPTION_DEFINEd option handlers that use...
3034         (_LT_ENABLE_SHARED, _LT_ENABLE_STATIC, _LT_ENABLE_FAST_INSTALL)
3035         (_LT_WITH_PIC, _LT_WIN32_DLL): New macros to handle
3036         LT_LIBTOOL_INIT options...
3037         * m4/libtool.m4 (AC_ENABLE_SHARED, AC_ENABLE_STATIC)
3038         (AC_ENABLE_FAST_INSTALL, AC_LIBTOOL_DLOPEN, AC_LIBTOOL_WIN32_DLL):
3039         ...to replace these user interface macros, now defined as
3040         AU_DEFUNs.
3041         (AC_DISABLE_SHARED, AC_DISABLE_STATIC, AC_DISABLE_FAST_INSTALL):
3042         Removed.  No longer required with LT_INIT_LIBTOOL interface.
3043         Added AU_DEFUNs.
3044         (AM_ENABLE_SHARED, AM_DISABLE_SHARED, AM_ENABLE_STATIC)
3045         (AM_DISABLE_STATIC): Changed AU_DEFUNs to match new interface.
3046         (_LT_SETUP): Internal to LT_INIT, replaces AC_LIBTOOL_SETUP.
3047         * m4/lt~obsolete.m4 (AC_LIBTOOL_SETUP, _AC_PROG_LIBTOOL)
3048         (_LT_PROG_LTMAIN):  More AC_DEFUNs that have been retracted.
3049         * configure.ac: Use new interface.
3050         * doc/libtool.texi: Document new interface.
3051         * NEWS: Updated.
3052
3053 2004-02-18  Gary V. Vaughan  <gary@gnu.org>
3054
3055         * commit (SHELL): Set it explicitly, incase some madman is using
3056         tcsh as their login shell :-b
3057
3058 2004-02-15  Scott James Remnant  <scott@netsplit.com>
3059
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.
3065
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.
3069
3070 2004-02-15  Peter O'Gorman  <peter@pogma.com>
3071
3072         * m4/libtool.m4, ltmain.in: Rename shrext to shrext_cmds.
3073
3074 2004-02-13  Scott James Remnant  <scott@netsplit.com>
3075
3076         * ltmain.in, libtoolize.in, commit, config/mailnotify: Correctly
3077         quote usage of $basename and $dirname to avoid (unlikely) path
3078         expansion.
3079
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.
3085
3086         * tests/cdemo/configure.ac: Drop AC_PREREQ back to 2.54, this
3087         was debris from Gary's cvsapply going mad and wasn't backed
3088         out.
3089
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.
3093
3094 2004-02-13  Gary V. Vaughan  <gary@gnu.org>
3095
3096         * commit (MKSTAMP): Look for mkstamp in the right place.
3097
3098 2004-02-12  Scott James Remnant  <scott@netsplit.com>
3099
3100         * Makefile.maint, Makefile: Move rules intended for Libtool
3101         maintainers only out of the Makefile we distribute and into one
3102         that we only need keep in CVS.
3103         * README-alpha: Add -fMakefile.maint to the instructions where
3104         needed.
3105
3106 2004-02-12  Albert Chin-A-Young  <china@thewrittenword.com>
3107         Scott James Remnant  <scott@netsplit.com>
3108
3109         * ltmain.in: Fix typo: duplcations -> duplications,
3110         Fix indentation of a handful of badly indented blocks,
3111         Fix last remaining use of 'grep' to $GREP,
3112         Remove unnecessary trailing slash where we break a line on a
3113         command separator.
3114         * m4/libtool.m4: Also remove unnecessary trailing slash where
3115         we break a line on a command separator.
3116
3117 2004-02-12  Scott James Remnant  <scott@netsplit.com>
3118
3119         * m4/ltoptions.m4: This got committed by an over-keen Gary,
3120         but the support for this isn't ready yet and if aclocal decides
3121         to m4_include this (which it will) you'll get a non-functioning
3122         libtool.  Removed.
3123
3124         * ltmain.in: Remove duplicated version checking block.
3125
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.
3129
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.
3134
3135         * config/mailnotify (func_sendmail): Look for sendmail in a
3136         couple of common non-PATH locations as well.
3137
3138         * ltmain.in: Fix typo: macro's -> macros.
3139
3140         * ltmain.in: Correct definition of basename sed expression to
3141         not include single quotes.
3142
3143 2004-02-12  Gary V. Vaughan  <gary@gnu.org>
3144
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.
3148
3149 2004-02-12  Albert Chin-A-Young  <china@thewrittenword.com>,
3150             Gary V. Vaughan  <gary@gnu.org>
3151
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.
3160
3161 2004-02-12  Gary V. Vaughan  <gary@gnu.org>
3162
3163         * Makefile.am (EXTRA_DIST): Remove config/mailnotify after all; it
3164         is of no use in a distribution tarball.
3165
3166 2004-02-11  Gary V. Vaughan  <gary@gnu.org>
3167
3168         * commit: Fix cut-n-paste error.
3169
3170         * commit: Completely change CVS/Root->name sed script to actually
3171         work when :ext: is not shown.
3172
3173         * commit: Improve CVS/Root->name sed script to work when :ext: is
3174         not shown.
3175
3176 2004-02-11  Albert Chin-A-Young  <china@thewrittenword.com>
3177
3178         * m4/libtool.m4: Fix typo: testring -> teststring.
3179
3180 2004-02-11  Gary V. Vaughan  <gary@gnu.org>
3181
3182         * commit: Mail a nicer commit notification.
3183
3184 2004-02-10  Gary V. Vaughan  <gary@gnu.org>
3185
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.
3190
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.
3195
3196 2004-02-06  Gary V. Vaughan  <gary@gnu.org>
3197
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.
3201
3202         * m4/ltversion.in: New file to capture what version number macros
3203         are being used.
3204         * Makefile.am (m4/ltversion.m4): New rule to create it from
3205         m4/ltversion.in.
3206         (nodist_pkgmacro_DATA): Add m4/ltversion.m4.
3207         (EXTRA_DIST): Add m4/ltversion.in.
3208         * m4/libtool.m4 (AC_LIBTOOL_SETUP): AC_REQUIRE LTVERSION_VERSION
3209         from ltversion.m4.
3210         * bootstrap: Call the Makefile.am to create an initial
3211         m4/ltversion.m4.
3212         * ltmain.in: Diagnose version mismatches of various flavours.
3213         * TODO: Remove mismatch item.
3214         * NEWS: Updated.
3215
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>
3221
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.
3225
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.
3231
3232         * m4/libtool.m4 (AC_PROVIDE_IFELSE): Removed.  We now require
3233         Autoconf 2.58, which ships this macro anyway.
3234
3235         * Makefile.am: Comment typo.
3236
3237         * m4/libtool.m4 (LT_PREREQ): Declare the minimum release number
3238         that is required for the calling code.
3239         * doc/libtool.texi (AC_PROG_LIBTOOL): Document it.
3240         * NEWS: Updated.
3241
3242 2004-02-05  Peter O'Gorman  <peter@pogma.com>
3243
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.
3247
3248 2004-02-04  Peter O'Gorman  <peter@pogma.com>
3249
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>.
3253
3254 2004-02-03  Scott James Remnant  <scott@netsplit.com>
3255
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.
3262
3263 2003-02-03  Scott James Remnant  <scott@netsplit.com>
3264
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.
3269
3270 2004-01-31  Peter O'Gorman  <peter@pogma.com>
3271
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>.
3275
3276 2004-01-27  Scott James Remnant  <scott@netsplit.com>
3277
3278         This fixes release procedure problems discovered whilst making
3279         the 1.5.2 release.
3280
3281         * Makefile.am (cvs-dist): Because we check whether ChangeLog
3282         has been committed, this rule can't be run with uncommitted
3283         source so we can't run 'commit' and don't need to run
3284         'make dist' a second time.  Fix CVS tag as it should be
3285         "release-X" not "Release-X".
3286         (cvs_commit): New rule for the cvs-release chain that runs
3287         'commit'
3288         (cvs-release): Depend on cvs-commit, depend on deltas instead of
3289         cvs-diff and xdelta.
3290         (cvs-diff): Removed, replaced with delta-diff.
3291         (delta-diff): Unpack and diff the old and new tarballs rather
3292         than using CVS, so we get a genuinely complete diff.
3293         (xdelta): Removed, replaced with delta-xdelta.
3294         (got-xdelta): New rule for improved reading.
3295         (delta-xdiff): Copied and cleaned up version of old xdelta rule.
3296         (deltas): Depends on delta-diff and delta-xdelta (make deltas).
3297         (cvs-news): Don't depend on timestamps, cvs-dist itself does now.
3298         (prev-tarball): This is the only place we need a LASTRELEASE check
3299         so copy the code here and remove the CHECK_RELEASE variable.
3300         (new-tarball): Check there's a new tarball (did cvs-dist work?)
3301         (FETCHFILES): Remove obsolete libltdl mentions.
3302         * README-alpha: Update CVS instructions as everything's changed
3303         on Savannah.
3304         (Release procedure): Update NEWS and ChangeLog after changing
3305         the version number (both times); Run 'make fetch' after running
3306         'configure' (difficult to do it beforehand); Require 'commit'
3307         before 'make cvs-dist' as that checks ChangeLog is committed;
3308         'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE
3309         to make instead of OLDVERSION (and it's mandatory); Clean up
3310         uploading paragraph; Clearer announcement sending instruction;
3311         Removed ftp-upload@gnu.org mail as that's not necessary now;
3312         Make web page updating instructions a bit clearer; Add an instruction
3313         to update the manual for non-alphas.
3314         (Alpha release note template): Add a Subject; update CVS instructions.
3315         (Full release note template): Add a Subject; update CVS instructions.
3316         * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk
3317         about bz2 files in our release announcements; remove old reference
3318         to OLDVERSION.
3319
3320 2004-01-25  Scott James Remnant  <scott@netsplit.com>
3321
3322         * NEWS: Include 1.5.2 release information.
3323
3324 2004-01-22  Gary V. Vaughan  <gary@gnu.org>
3325
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:
3330
3331         * libltdl/Makefile.am (libltdl_la_SOURCES, libltdlc_la_SOURCES):
3332         Add ltdl.h.
3333         (ltdldatadir): New variable for installation directory of
3334         libtoolize --ltdl files.
3335         (ltdldata_DATA): Tell automake what files to copy there at install
3336         time (and remove at unistall time!).
3337         (local-install-files): Removed.  This hack is not required
3338         anymore, the automake generated install rules are much more
3339         advanced than this.
3340         * Makefile.am (install-data-hook, uninstall-local): Removed.
3341         Libltdl files for libtoolize are installed by their own Makefile
3342         now.
3343
3344 2004-01-22  Jeff Squyres  <jsquyres@lam-mpi.org>
3345
3346         * m4/libtool.m4 (AC_LIBTOOL_PROG_CC_C_O): Some compilers
3347         (e.g. Intel Linux icc compiler) write temporary files to the current
3348         directory. These compilers do support -c and -o simultaneously but
3349         wrongly fail the test due to the failure to create temporary
3350         files. It is incorrect to penalize compilers which write temporary
3351         files to the current directory so the 'chmod -w .' is therefore
3352         removed.
3353
3354 2004-01-22  Gary V. Vaughan  <gary@gnu.org>
3355
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>
3366
3367 2004-01-21  Nick Hudson  <skrll@netbsd.org>
3368
3369         * m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [netbsd*]: Remove
3370         gratuitous ${libname}${release}${shared_ext} from
3371         library_names_spec.
3372
3373 2004-01-21  Peter O'Gorman  <peter@pogma.com>
3374
3375         * m4/libtool.m4 (AC_PROG_LD_RELOAD_FLAG): On darwin change the
3376         reload_cmds to use $CC, otherwise ld will thin out any fat
3377         objects.
3378
3379 2004-01-18  Benjamin Reed  <ranger@befunk.com>
3380
3381         * ltmain.in: Fix handling of frameworks in search paths.  Also
3382         a one-liner fix to eval shrext in the libtool library search.
3383
3384 2004-01-16  Gary V. Vaughan  <gary@gnu.org>
3385
3386         * configure.ac (AM_INIT_AUTOMAKE): Require 1.8 for bootstrap, or
3387         else aclocal.m4 is huge, and m4 directory is not distributed.
3388
3389         * configure.ac (AC_CONFIG_HEADERS): Create config.h in
3390         $top_srcdir.
3391         * m4/ltdl.m4 (AC_LIB_LTDL): Run AC_CONFIG_HEADERS for the user if
3392         necessary. Calculate filename from first argument to
3393         AC_CONFIG_HEADERS, and substitute as CONFIG_H.
3394         * libltdl/Makefile.am (AM_CPPFLAGS): Make sure we are searching in
3395         $top_srcdir for headers.
3396         (DEFS): Override the default HAVE_CONFIG_H with the config.h
3397         filename.
3398         (ltdl.lo): Reference config.h via $(CONFIG_H).
3399         * libltdl/ltdl.c (HAVE_CONFIG_H): Ditto.
3400
3401 2004-01-15  Scott James Remnant  <scott@netsplit.com>
3402
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.
3408
3409 2004-01-12  Gary V. Vaughan  <gary@gnu.org>
3410
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.
3416
3417 2004-01-13  Peter O'Gorman  <peter@pogma.com>
3418
3419         * m4/libtool.m4: Quote shrext as it is evaled in ltmain.
3420
3421 2004-01-11  Scott James Remnant  <scott@netsplit.com>
3422
3423         * ltmain.in: new -precious-files-regex link mode option
3424         to prevent removal of matching files from the temporary
3425         output directory.
3426         (Debian Bug #221420)
3427         * doc/libtool.texi: document the new option.
3428         * NEWS: announce the new option.
3429
3430 2004-01-11  Gary V. Vaughan  <gary@gnu.org>
3431
3432         * libtoolize.in (func_copy_all_files): s/xfunc_copy/Xfunc_copy.
3433         Now the test can actually succeed sometimes.
3434
3435 2004-01-09  Gary V. Vaughan  <gary@gnu.org>
3436
3437         * libtoolize.in: Break out of the command argument parse loop when
3438         -- is encountered.
3439
3440 2004-01-08  Gary V. Vaughan  <gary@gnu.org>
3441
3442         * libtoolize.in (func_copy_all_files): s/test "x/test "X/ to keep
3443         tests/sh.test happy.
3444
3445 2004-01-07  Gary V. Vaughan  <gary@gnu.org>
3446
3447         * Makefile.am (aclocal_macros, aclocal_DATA): Removed.
3448         (EXTRA_DIST): Remove m4 macro files; they are automatically
3449         added by automake.
3450         (pkgmacrodir): Where to install libtool macro files.
3451         (pkgmacro_DATA): List installable libtool macro files.
3452         (install-data-local): Remove previous versions of ltdl.m4 and
3453         libtool.m4 from their old location.
3454         * libtoolize.in: Use new pkgmacrodir installed macros when
3455         libtoolizing a project.  Treat libtool.m4 and ltdl.m4 specially,
3456         and func_serial_update() any other files from pkgmacrodir.
3457         (pkgmacrodir): Where to find installed libtool macro files.
3458         (aclocaldir): Removed.
3459         (func_copy_all_files): Add an optional callback parameter to
3460         control how files are copied.  If the callback is passed, don't
3461         tell it whether it can copy or not.
3462         (func_serial): Exchange parameters and make macro_regex optional,
3463         so that this function can be used to extract serial numbers from
3464         files with the traditional /^# serial [1-9][0-9]*$/ syntax.
3465         Changed all callers.
3466         (func_serial_update): Make macro_regex optional last parameter, so
3467         that this function can be used as a callback for
3468         func_copy_all_files().  Changed all callers.
3469         * m4/ltsugar.m4: Add a serial number.
3470
3471 2004-01-07  Gary V. Vaughan  <gary@gnu.org>
3472
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:
3485
3486         * m4/ltsugar.m4:  New file.  Macros that are useful outside the
3487         context of libtool.  Initially, contains some generalised list
3488         management macros, and the scaffolding for dictionary type data
3489         storage and retrieval.
3490         * Makefile.am (aclocal_macros): Install ltsugar.m4.
3491         * m4/libtool.m4 (_LT_DECL): Mark a shell variable for export to
3492         the libtool script, along with a comment, and hints for quoting
3493         and renaming.
3494         (_LT_TAGDECL): Similarly mark a tagged shell variable for export
3495         in each tag.
3496         (lt_decl_tag_varnames, lt_decl_quote_varnames)
3497         (lt_decl_dquote_varnames, lt_decl_varnames_tagged)
3498         (lt_decl_all_varnames):  New utility macros for managing lists of
3499         shell variable names from _LT_DECL and _LT_TAGDECL.
3500         (_LT_CONFIG_STATUS_DECLARATIONS, _LT_CONFIG_STATUS_DECLARE):
3501         Expand to correctly quoted variable declarations in config.status
3502         from all marked shell variables.
3503         (_LT_LIBTOOL_DECLARE): Expand to commented and quoted variable
3504         declaration for libtool tag section.
3505         (_LT_LIBTOOL_CONFIG_VARS, _LT_LIBTOOL_TAG_VARS): Pass all marked
3506         variables to _LT_LIBTOOL_DECLARE.
3507         (_LT_CONFIG_COMMANDS): Use _LT_CONFIG_STATUS_DECLARATIONS and
3508         friends to generate all the variable passing shell code for
3509         config.status, to get marked variables from libtool.m4 into
3510         libtool itself eventually.
3511         (AC_LIBTOOL_CONFIG): Generate marked variable code for libtool tag
3512         configuration.  Changed all client macros to mark variables
3513         suitably rather than the hand pasting that was necessary
3514         previously.
3515         (AC_PROG_SED): Renamed from LT_AC_PROG_SED.
3516         (LT_AC_PROG_SED): Wrap AC_PROG_SED, and mark shell variables for
3517         propogation to the libtool script.
3518
3519 2004-01-07  Gary V. Vaughan  <gary@gnu.org>
3520
3521         * libtoolize.in (seen_gettext): Removed unused variable.
3522
3523 2004-01-06  Gary V. Vaughan  <gary@gnu.org>
3524
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>
3528
3529         * NEWS: Note libtoolize changes.
3530
3531         * ChangeLog.2003: New file, containing all the ChangeLog entries
3532         from 2003.  Trimmed ChangeLog accordingly.
3533
3534         * ltmain.in: Output 2004 in the copyright from libtool --version.
3535
3536 2004-01-03  Stefan Nordhausen  <nordhaus@informatik.hu-berlin.de>
3537         Scott James Remnant  <scott@netsplit.com>
3538
3539         * ltmain.in: Don't use the mkdir -p option when creating a
3540         temporary output directory so a symlink attack can't be used to
3541         arbitrarily chmod other directories on the system if libtool
3542         gets run as root.
3543
3544 2004-01-02  Peter O'Gorman  <peter@pogma.com>
3545
3546         * m4/libtool.m4: Ensure that ${ZSH_VERSION+set} is properly escaped.
3547
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.
3551
3552 2004-01-02  Scott James Remnant  <scott@netsplit.com>
3553
3554         * .cvsignore: Ignore stamp-vcl created by the Makefile.
3555
3556 2004-01-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
3557         Joe Orton  <joe@manyfish.co.uk>
3558
3559         * m4/libtool.m4 (AC_LIBTOOL_CONFIG): Add extra blackslash
3560         in front of all the inner double-quotes as this is removed
3561         on Solaris, IRIX and AIX leading to broken definitions
3562         in config.status.
3563
3564 2004-01-02  Scott James Remnant  <scott@netsplit.com>
3565
3566         * NEWS: Next release will be in 2004.
3567
3568 Continued in ChangeLog.2003
3569 -- 
3570   Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
3571   2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
3572
3573   This file is part of GNU Libtool.
3574
3575 Copying and distribution of this file, with or without modification,
3576 are permitted in any medium without royalty provided the copyright
3577 notice and this notice are preserved.  This file is offered as-is,
3578 without warranty of any kind.