Changes for darwin building. Warn if linking against libs linked
with -module. Use module_cmds if available and building a module,
move convenience double lib check,
* libltdl/ltdl.c: ltdl support for darwin (first blush)
* libltdl/README: note that darwin is supported
* ltdl.m4: Changes for darwin, and for new shrext
* libtool.m4: Changed the way darwin builds stuff (make check passes)
added module_cmds, module_expsym_cmds and hardcode_automatic and put
them in the libtool script. check for zsh's removal of escapes. Allow
libraries to be stripped on darwin.
* TODO: Remove the todo about zsh's removal of excapes. note that zsh
echo works perfectly well, eval is screwed up. Seems to be fixed in
latest zsh.
* THANKS: added self :)
* f77demo/configure.ac: Use config.h or it doesn't work.
(--version): Mention only the most recent copyright year.
* libtoolize.in (--help): Show mailing-address for bug reports.
(--version): Mention only the most recent copyright year.
to use with uninstalled executables on cygwin/mingw.
Make sure that --mode=clean gets shell wrapper and
binary wrapper. When sourcing the shell wrapper,
invoke using a terminal `.' on cygwin/mingw to
avoid the automatic append-.exe behavior.
a patch by Ross Alexander <ross.alexander@uk.neceur.com>.
Credit to Ross! Use +b to hardcode library runtime path.
Add new variable, $hardcode_libdir_flag_spec_ld, that
is equivalent to $hardcode_libdir_flag_spec but is used
when ld is used for linking. This works around having to
set wl=''.
"-shrext" option so that is works properly under Darwin.
Modify the processing of 'gcc -print-search-dirs' under
Darwin to make it behave like GNU gcc does.
(AC_LIBTOOL_CONFIG): Single quote $shrext.
* ltimain.in: Expand shared_ext just before it is used
so that it can be conditional on the value of $module.
* ltmain.in: New link option -shrext.
* libtool.m4 (AC_LIBTOOL_CONFIG): New libtool variable shrext.
(AC_LIBTOOL_SYS_DYNAMIC_LINKER): Replace all hard coded shared
library file name extensions in library_names_spec and
soname_spec with $shrext.
* doc/libtool.texi (Link mode): Document it.
via $compiler_flags in order to pass architecture information to
the linker (e.g. 32 vs 64-bit). This may also be accomplished via
-Wl,-mfoo but this is not reliable with gcc because gcc may use
-mfoo to select a different linker, different libraries, etc, while
-Wl,-mfoo simply passes -mfoo to the linker. If there is a better
solution, please let me know what it is.
versions of mingw and cygwin.
(AC_LIBTOOL_POSTDEP_PREDEP): new function.
moved the "find hidden library dependencies" code here
from AC_LIBTOOL_LANG_CXX_CONFIG. Attempted to make it
multi-tag compatible, but currently only CXX calls it.
(AC_LIBTOOL_LANG_CXX_CONFIG): set
enable_shared_with_satic_runtimes to 'no' by default
Set it to 'yes' for cygwin, mingw, pw32. Replace
"find hidden library dependencies" code with a call
to the new function AC_LIBTOOL_POSTDEP_PREDEP.
Consolidate cygwin and mingw/pw32 stanzas.
(AC_LIBTOOL_LANG_F77_CONFIG): set
enable_shared_with_static_runtimes to 'no' by default
(AC_LIBTOOL_CONFIG): add
enable_shared_with_static_runtimes to the list of variables
to write into ltmain.sh; include it in the libtool script
template as allow_libtool_libs_with_static_runtimes.
(AC_LIBTOOL_PROG_LD_SHLIBS): set
enable_shared_with_static_runtimes to 'no' by default
Set it to 'yes' for cygwin, mingw, pw32.
(AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE): only put cr in regexp
if the build_os is mingw, not host_os
* ltmain.in (case deplibs_check_method): for all appropriate
cases, if allow_libtool_libs_with_static_runtimes, then remove
predeps and postdeps from the list of dependencies that must
be checked for "dynamicness". For the "none" case, the
presence of compiler-generated postdeps and predeps should
not trigger "inter-library dependencies not supported" error.
(initial setup after arg processing): on cygwin/mingw, allow
compiler-generated dependent libs to be duplicated without
elimination.
(initial search loop for deplibs): if the deplib in question
is a libtool lib, then if
allow_libtool_libs_with_static_runtimes then parse the .la file.
If the .la file only has an "old_library", add the deplib
directly to the deplibs list (-lstdc++) and DON'T use the .la
file; this allows the (case deplibs_check_method) change above
to take effect.
* ltmain.in (for pass in $passes loop): remove predeps,
postdeps, and compiler_lib_search_path from dependency_libs.
staging area (e.g. 'make install DESTDIR=...')
* libtool.m4 (AC_LIBTOOL_LANG_CXX_CONFIG): restore setting
allow_undefined_flag=unsupported for cygwin and mingw.
(AC_LIBTOOL_PROG_LD_SHLIBS): ditto, for both "normal" gcc/ld
and for the (unmaintained?) MSVC case.
* doc/libtool.texi (Install mode): document new
-inst-prefix option.
echo. (AC_DEPLIBS_CHECK_METHOD): use new shell function
win32_libid on w32 platforms
* ltmain.in: add new section for shell functions. Add
win32_libid() shell function.
* f77demo/Makefile.am: add -no-undefined flag
* ltdl.c (realloc): Remove custom realloc. (#define
rpl_realloc realloc) and comment out later code for custom
realloc. You can't define your own malloc unless you know
enough about the malloc in use to be able to tell how big
the src ptr is. The disabled code incorrectly used the
*destination* ptr to decide how much to copy. This
sometimes results in out-of-bound accesses which cause
segfaults. This is a quick hack for now; we may want
something cleaner later. (tryall_dlopen_module): check to
be sure (dirname_len > 0) before testing first character
against '/'. (try_dlopen): check for feof(file) in read
loop -- otherwise infloop?
-brtl special-case code for AIX never gets triggered because
were are being too specific about how we search for -brtl.
Use case statement to avoid this. Remove extraneous
semicolon.
* ltmain.in: Recognize the IBM xlc compiler.
failure in three depdemo-make tests. For some reason the linker
tries to find the dependent libraries using the library search
path before it has read the libraries specified with absolute
paths in the full commandline. This patch add -L's for each of
the dependent library directories so that they can be resolved.
1003.1-2001 says that "sort +2" is supposed to sort the file
named "+2". An example host that behaves like this is
textutils 2.0.21 with _POSIX2_VERSION=200112.
* THANKS: Added Rob Collins and Chuck Wilson for their cygwin
work.
From Robert Collins <robert.collins@itdomain.com.au>:
* configure.ac (AC_EXEEXT): Needed for DOSish systems.
* libtool.m4 (shlibpath_overrides_runpath) [cygwin]: Set to yes
when compiling with gcc.
(lt_prog_compiler_pic) [cygwin]: No longer needs the -DDLL_EXPORT
hack, so we just say the pic is the default.
(AC_LIBTOOL_PROG_LD_SHLIBS) [cygwin]: Extract symbols from a
library normally.
[cygwin]: Declare C++ compiler characterisics for g++, taking into
account the new auto-import support in cygwin ld.
* ltmain.in (specialdeplibs) [cygwin]: Be careful about
eliminating duplicate -lgcc's from the link line.
[cygwin]: Be smarter about .exe suffixes.
* demo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Support
DOSish systems properly.
* depdemo/configure.ac (AC_EXEEXT, AC_LIBTOOL_WIN32_DLL): Ditto.
* demo/Makefile.am (deplibs-check): Allow for .exe suffix. Use
hell_static instead of hell.static for multi-`.' inhibited OSes.
* tests/demo-exec.test: Ditto.
* tests/demo-inst.test: Ditto.
* demo/foo.h [cygwin]: Sanitize cygwin dll support.
* demo/foo.c (_LIBFOO_COMPILATION_): No longer required.
* demo/hello.c (_LIBFOO_COMPILATION_): Ditto.
* depdemo/Makefile.am (bin_PROGRAMS): Use depdemo_static instead
of depdemo.static for multi-`.' inhibited OSes.
* tests/depdemo-exec.test: Ditto.
* tests/depdemo-inst.test: Ditto.
* mdemo/Makefile.am (bin_PROGRAMS): Ditto for mdemo.static.
* tests/dryrun.test: Ditto.
* tests/mdemo-exec.test: Ditto.
* tests/mdemo-inst.test: Ditto.
* tests/build-relink.test: Be careful about possible .exe
suffixes.
* tests/noinst-link.test: Allow for .exe suffix.
2001-10-24 H.J. Lu <hjl@gnu.org>
* ltmain.sh: Allow link against an archive when building a
shared library.
* libtool.m4 (lt_cv_deplibs_check_method): Always use
file_magic for Linux ELF.
there is no need for us to preset it anymore.
Be careful not to set IFS="${IFS}$PATH_SEPARATOR" for PATH
splitting, otherwise spaces in directory names will be lost.
Use $PATH_SEPARATOR... don't rely on $ac_path_separator, which was
an autoconf internal until just now, when it disappeared!
* ltmain.in: Default IFS once, at the start.
Reported by Akim Demaille <akim@epita.fr>
character in `test "X...'.
Beef up the `test' tests to also check `test -.' and `test ! -.'
phrases for compliance.
* ltmain.in: Fix quoting problems uncovered by the new tests.
* ltmain.in (pic_mode): Added missing quotes around shell
variable in "if test" conditional.
From Peter Moulder <pmoulder@longford.csse.monash.edu.au>
* ltmain.in (xform): Add support for pre-processed
(e.g. `*.{i,ii}' sources).
* THANKS: Added Albert Chin-A-Young.
lt_cv_sys_global_symbol_to_c_name_address to be a sed expression
for mangling the output of the symbol pipe into a brace delimited
C declaration of symbol name and address.
* ltmain.in: Use it to generate the fooS.c symbol name
Reported by Albert Chin-A-Young <china@thewrittenword.com>
* libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [openbsd]: Improved
support for various openbsd platforms.
(AC_LIBTOOL_PROG_LD_SHLIBS): Ditto.
* ltmain.in: Ditto,
original mergepoint:
2000-06-04 Mark Mitchell <mark@codesourcery.com>
* ltcf-c.sh (archive_cmds, archive_expsym_cmds) [solaris,
with_gcc]: Use `gcc -shared' to build a shared library.
2001-06-04 John David Anglin <dave@hiauly1.hia.nrc.ca>
* ltcf-c.sh (archive_cmd) [hpux, with_gcc]: Use gcc to link shared
archives.
2001-05-28 Simon Patarin <simon.patarin@inria.fr>
* ltcf-cxx.sh (osf3/osf4/osf5): Support creation of C++ shared
libraries when using g++ with native linker.
2001-05-28 Albert Chin <china@thewrittenword.com>
* ltconfig.in (version_type, soname_spec) [aix4* | aix5*]: Use
linux-style versioning, and remove trailing .o from soname_spec.
2001-05-22 Alexandre Oliva <aoliva@redhat.com>
* ltcf-cxx.sh (allow_undefined_flag, no_undefined_flag)
[aix4*|aix5*]: Prepend blank.
2001-05-20 Alexandre Oliva <aoliva@redhat.com>
* ltconfig.in: Fix sh.test regression introduced in previous patch.
* ltconfig.in (lt_cv_sys_max_cmd_len): Improve test to work better
in case of non-built-in echo. Set bounds correctly.
* ltcf-cxx.sh (allow_undefined_flag) [aix4* | aix5*]: Fix quote
error.
* ltmain.in (exec_cmd): New variable. Don't exec programs within
the big `case'; set the variable instead, and exec the cmd
afterwards, so that the shell gets a chance to clean up here-doc
files.
* NEWS: Update.
2001-05-16 Alan Modra <amodra@one.net.au>
* libtool.m4 (lt_cv_deplibs_check_method): pass_all for hppa*-linux.
2001-05-03 Andreas Jaeger <aj@suse.de>, Andreas Schwab <schwab@suse.de>
* ltmain.in (relink_command): Arrange for wrapper script to save
output to a variable and display it only if relinking fails.
* ltmain.in (ILD): tidy up, add comments, remove dead code,
merge duplicate code
* ltmain.in (ILD): don't touch newdependency_libs after scan or
dlopen pass
* ltmain.in (ILD): don't dlpreopen dependency_libs of a dlopened
module (remove absolutely wrong quick hack)
* ltmain.in (ILD): remove wrong comments about duplicate removal
* ltmain.in (ILD): build a static-only module if it has
static libraries in its dependencies (so that libltdl can
safely load dependency_libs)
* ltmain.in (argument parsing): prefix comparsions of -l args with X,
replace -lc with `-framework System' _after_ the ILD passes
* ltmain.in (argument parsing): support dl[pre]open
for both .o and .lo files
* ltmain.in (deplibs_check): use portable test syntax
* ltmain.in (help): document -prefer-[non-]pic flags
* ltmain.in: improve readablity by adding some comments,
rename uninst_* to notinst_* (more adequate name)
test suite, Yay!
From Albert Chin-A-Young <china@thewrittenword.com>
* ltmain.in: `test -L' is not portable, and infact breaks uninstall
mode on Solaris. Fallback to `test -h' and finally `test -f',
but be careful not to let the failure status cause libtool to
stop.
* ltmain.in (clean,uninstall): test -e is not portable. Well,
neither is -L, but I'm hoping that redirecting error messages
to /dev/null and relying on non-zero exit status will work okay
on the few hosts that don't support -L.
* tests/depdemo-dups.test: Removed, as part of the patch
reversion below.
* ltmain.in: Revert my change from 2001-03-31. Although it
was technically correct, it opens a whole can of worms we don't
want to deal with right now.
hardcodes the library path and adds versioning. Other small
fixes.
* ltmain.in: Fixed special cases for libc and libm on Rhapsody and
Darwin. One of them was misplaced. Added version_type case for
Rhapsody and Darwin, named "darwin".
from libtool link lines -- duplicates are somtimes necessary
to satisfy inter-library dependencies, and never cause link to
fail even if they are spurious.
* tests/depdemo-dups.test: New file. Make sure this bug doesn't
creep back in again!
* tests/Makefile.am (TESTS): Use the new test above.
to the following: libFOO.a (static lib), libFOO.dll.a (import
lib), cygFOO-version.dll (dll). Update postinstall_cmds and
postuninstall_cmds to reflect this.
* ltmain.in: Generate installed .la files with dlnames set to
../bin/cygFOO-version.dll for normal dlls. dlls for modules
remain with the .la file.
below can detect preopened library deplibs correctly in libltdl,
we need to ensure that libtool library deplibs are also preloaded
into the binary for that phase to work.
* libtool.m4 (pw32): Initial support for pw32, assuming that
libtool's behaviour in this environment is identical to under
cygwin.
* ltmain.in (pw32): ditto.
* NEWS: Updated.
from ltconfig, so that ltmain.sh and then libtool are
generated at configure time.
* Makefile.am: Don't generate ltmain.sh or ltconfig anymore.
* bootstrap: ltconfig is no more!
* configure.in: Call AC_PROG_LIBTOOL directly.
(AC_OUTPUT): Generate tmain.sh.
* libtool.m4: Don't build an argument list for ltconfig.
(_LT_AC_LTCONFIG_HACK): Refactoring of the former contents of
ltconfig.in to take advantage of the m4 macros from autoconf.
* ltmain.in: Don't do a version check against ltconfig.
* tests/assign.test: Remove reference to ltconfig.
* tests/hardcode.test: ditto.
* tests/sh.test: ditto.
hardcode_into_libs=all. 2000-09-03's patch was wrong.
* ltmain.in: Likewise.
* tests/build-relink.test, tests/build-relink2.test: Adjust.
* mdemo/Makefile.am (lib_LTLIBRARIES): Move libsub.la before
libfoo2.la, so that they're installed in the right order.