* notes.texi: Platform-specific configuration notes.
* doc/libtool.texi: Include as section.
* bootstrap, doc/Makefile.am: build also as notes.txt and distribute.
Gary V. Vaughan [Mon, 4 Apr 2005 17:30:46 +0000 (17:30 +0000)]
Under certain circumstances, not all of the macro files were
copied into the destination directory. This changeset fixes
that bug:
* libtoolize.m4sh (func_serial_update): Renamed local variable
`my_update_p' to `my_serial_update_p', and initialise it correctly
even when the destination file is not yet there.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Gary V. Vaughan [Mon, 4 Apr 2005 17:16:48 +0000 (17:16 +0000)]
* libtoolize.m4sh (pkgvdatadir): Renamed from this...
(_lt_pkgvdatadir): ...to this.
* tests/testsuite.at (LT_AT_LIBTOOLIZE): The `-I' option is no
longer supported by libtoolize. Set _lt_pkgvdatadir in the
environment of the invocation instead.
* tests/template.at: New Autotest tests for C++ with templates.
First test provided by Markus Christen <markus@igc.phys.chem.ethz.ch>.
* tests/Makefile.am, tests/testsuite.at: Use and distribute.
Gary V. Vaughan [Mon, 4 Apr 2005 12:12:25 +0000 (12:12 +0000)]
Getting the value of ltdldatafiles from a submake was not
portable, and had problems with GNU make-3.80 at least. This
changeset pulls the installation rules for libtoolize's copy of
the libltdl sources out of libltdl/Makefile.am so that
ltdldatafiles is defined in the same Makefile that uses it. Also,
this makes a start at cleaning up libltdl/Makefile.am so that it
is useful in a package that uses `libtoolize --ltdl':
* libltdl/loaders/Makefile.am: Removed entirely.
* libltdl/Makefile.am (dlopen.la, dld_link.la, dyld.la)
(load_add_on.la, loadlibrary.la, shl_load.la): All built from here
now that the loaders submake has gone.
(show-ltdldatafiles): Removed. No longer required.
(ltdldatadir, ltdldatafiles, install-local): Moved from here...
* Makefile.am (ltdldatadir, ltdldatafiles, install-local): ..to
here.
(libtoolize): Substitute $(ltdldatafiles) directly without calling
make to get the value from libltdl/Makefile.
Gary V. Vaughan [Fri, 1 Apr 2005 15:03:23 +0000 (15:03 +0000)]
* Makefile.am (libtoolize): Substitute $(nobase_pkgvdata_DATA).
pkgvmacro_DATA is no longer set in the makefile.
* libtoolize.m4sh (func_massage_pkgvmacro_DATA): Use it and, for
consistency, renamed from this...
(func_massage_nobase_pkgvdata_DATA): ...to this. Adjust all
callers.
Gary V. Vaughan [Fri, 1 Apr 2005 12:27:56 +0000 (12:27 +0000)]
Fix problems with serial comparison sed scripts, and factor out
common code from similar serial comparison functions:
* libtoolize.m4sh (func_keyword_update): Common code factored out
of func_ltmain_update and func_config_update.
(func_ltmain_update, func_config_update): Adjust, and fix sed
expressions to not use unportable ? modifier.
(func_install_update): New serial number based file updater keyed
off 'scriptversion' variable in install-sh. Adjust all callers.
Gary V. Vaughan [Fri, 1 Apr 2005 12:23:55 +0000 (12:23 +0000)]
Most of the hair introduced ostensibly to enable testing of
uninstalled libtoolize isn't necessary if we allow overriding of
the libtool master copy directory:
* configure.ac (pkvmacrodir): No need to substitute this.
* Makefile.am (edit): No need to substitute pkgvmacrodir.
(dist_pkgvdata_DATA): Use nobase_ prefix so that these files are
installed to $(pkgvdatadir)/config.
(pkgvmacro_DATA): Renamed to...
(nobase_pkgvdata_DATA): ...this, so that files are installed to
$(pkgvdatadir)/m4.
(install-data-hook): Adjust.
* libtoolize.m4sh: Remove -I processing.
(func_filename_path_search): No longer required without -I.
Adjust all callers.
(pkgvltdldirs, pkgvmacrodirs): Deleted.
(pkgvdatadir): Allow overriding from the environment so that we
can write tests for uninstalled libtoolize.
(func_serial_update, func_ltmain_update, func_config_update):
Rename srcdirs parameter to srcdir, and don't call the path_search
function anymore. Adjust all callers.
(--install): Don't blindly copy all config files.
Gary V. Vaughan [Thu, 24 Mar 2005 13:15:54 +0000 (13:15 +0000)]
* libtoolize.m4sh: Fix a typo, s/pkgvltdldirs/pkgvdatadirs/.
When using -I to test an uninstalled libtoolize, we need to add
the config subdirectory to the search path so that ltmain.sh can
be found in the source tree.
Gary V. Vaughan [Thu, 24 Mar 2005 13:05:03 +0000 (13:05 +0000)]
* libtoolize.m4sh (func_copy_some_files): IFS needs to be set to
path delimiter for all inner loop iterations.
Once a matching file has been copied, no need to keep searching
the path for another -- move on to the next file!
Gary V. Vaughan [Thu, 24 Mar 2005 11:38:25 +0000 (11:38 +0000)]
As a prerequisite for being able to test an uninstalled libtoolize
for copying files correctly from the source tree, we must know
exactly which files should be copied by the --ltdl option to avoid
accidentally picking up compilation objects and other noise when
$builddir == $srcdir:
* libltdl/loaders/Makefile.am (ltdldatadir, ltdldatafiles)
(install-data-local): Removed...
* libltdl/Makefile.am (ltdldatafiles): ...and consolidated here.
(show-ltdldatafiles): New rule...
* Makefile.am (ltdldatafiles, libtoolize): ...used to substitute
exactly which files are installed by libtoolize --ltdl.
(edit): Move pkgvmacro_DATA substitution expression...
(libtoolize): ...to here.
* libtoolize.m4sh: Use func_copy_some_files() instead of
func_copy_all_from_path() to copy the --ltdl option installed
files.
(pkgvltdldirs): New path variable to search for files installed by
--ltdl option.
(func_massage_pkgvltdl_files): New function to calculate the list
of ltdl installation files.
Ralf Wildenhues [Tue, 22 Mar 2005 07:39:44 +0000 (07:39 +0000)]
* m4/libtool.m4 (_LT_LINKER_SHLIBS) [solaris]: Use ${wlarc}
and set to empty when using $LD for linking. Fixes regression
introduced in 2004-11-17.
Reported by Ralf Menzel <menzel@ls6.cs.uni-dortmund.de> and
Пухальский Юрий Андреевич <pooh@cryptopro.ru>.
Ralf Wildenhues [Mon, 21 Mar 2005 17:59:39 +0000 (17:59 +0000)]
* m4/libtool.m4 (_LT_SETUP, _LT_LANG_CXX_CONFIG, * _LT_LANG_F77_CONFIG):
For matching compiler names: Pick only first word, allow leading white
space..
* tests/sh.test: ..and test for missing `*' at end of patterns.
Peter Ekberg [Sun, 20 Mar 2005 07:15:21 +0000 (07:15 +0000)]
* m4/libtool.m4 (_LT_LINKER_SHLIBS) [ irix5, irix6, nonstopux ]:
Test if it is possible to use the -exports_file linker option on
irix with gcc, as the gcc specs file may include a -hidden_symbol
option that is clashing with the -exports_file option.
See this gcc bugzilla entry for further details:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15288
* THANKS: Update.
Peter O'Gorman [Fri, 18 Mar 2005 15:32:14 +0000 (15:32 +0000)]
* m4/libtool.m4: The compiler can be a program name with args, so
always check cc_basename against compiler name and a wildcard.
Also, drop unnecessary quotes in `case' argument.
Ralf Wildenhues [Wed, 16 Mar 2005 17:27:35 +0000 (17:27 +0000)]
* config/general.m4sh: unconditionally set IFS, and set it
to the one true right sequence: space, tab, newline.
* m4/libtool.m4: remove IFS setting and as_* namespace infringement.
Gary V. Vaughan [Tue, 15 Mar 2005 11:49:59 +0000 (11:49 +0000)]
* libtoolize.m4sh (func_massage_pkgvmacro_DATA): New function
to calculate the macro filenames to be copied by libtoolize.
* Makefile.am (edit): Substitute pkgvmacro_DATA.
Gary V. Vaughan [Tue, 15 Mar 2005 11:47:36 +0000 (11:47 +0000)]
* bootstrap: Need to generate tests/package.m4 from Makefile.am
before generating tests/testsuite from tests/Makefile.am, or
else bootstrap of a fresh checkout fails.
Per Bothner [Sat, 12 Mar 2005 08:49:04 +0000 (08:49 +0000)]
Allow special characters in source file names. Will break unless
`-o target' is also given, which must not contain special characters.
En passant, fix source file quoting broken for cygwin/MSVC.
Gary V. Vaughan [Thu, 10 Mar 2005 17:25:29 +0000 (17:25 +0000)]
* libltdl/Makefile.am (install-data-local): Don't force v7 tar
format with the `o' flag in create mode.
Set the umask to 0 when untarring to avoid copied files taking
their mode from the installer's umask.
* libltdl/loaders/Makefile.am (install-data-local): Ditto.
* libtoolize.m4sh (func_copy_cb): Ditto.
Ignore errors from failed `cd' in the tar processes, since we
may be running in dryrun mode.
Reported by Noah Misch <noah@cs.caltech.edu>,
Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG)
[irix*, osf*]: Output -update_registry information to
${output_objdir} directory, not ${objdir}. ${output_objdir}
will work when a project has a single Makefile and performs
builds in subdirectories. ${objdir} expects the source in
the current directory, breaking single-Makefile builds.
Gary V. Vaughan [Wed, 2 Mar 2005 10:36:43 +0000 (10:36 +0000)]
* libtoolize.m4sh (func_copy_cb): Use tar chof to avoid symlink
attacks.
* libltdl/Makefile.am, libltdl/loaders/Makefile.am
(install-data-local): Ditto.
Gary V. Vaughan [Sun, 27 Feb 2005 21:19:51 +0000 (21:19 +0000)]
In branch-2-0 (and in time, others) ltversion.m4 has a dot
delimited serial number that didn't used to be processed
correctly by libtoolize. This changeset fixes that, and
leverages those changes to check versions of ltmain.sh and
config.sub, config.guess before overwriting when --force is
not given:
* libtoolize.m4sh: Don't overwrite pkgaux files with --force
unless --install is given too.
(func_serial): Fix underquoting in regexp.
(func_serial_max): New function to compare serial numbers.
(func_serial_update_check): New function factored out of
func_serial_update().
(func_serial_update): Bail if SRCFILE is missing.
Don't display both 'already up to date' and 'use --force to
update' messages for the same file.
Use func_serial_max to cope with `.' delimited serial numbers.
(func_ltmain_update): Use func_serial_update_check and
func_serial_max to do version checking with $package_revision.
(func_config_update): Ditto with $timestamp.
Gary V. Vaughan [Sun, 27 Feb 2005 00:00:42 +0000 (00:00 +0000)]
* libltdl/Makefile.am (install-data-local): cd to $(srcdir) before
tarring up the files for installation to $(DESTDIR)$(ltdldatadir).
Don't remove the destination directory, since that interacts badly
with the multi-Makefile installation.
* libltdl/loaders/Makefile.am (install-data-local): Ditto.
Gary V. Vaughan [Sat, 26 Feb 2005 14:44:34 +0000 (14:44 +0000)]
I assume that it is okay to have undefined symbols in convenience
libraries that will be used as modules -- the pic objects are
built normally, and are not expected to resolve all their symbols
until they are linked into a library; convenience libraries are
then rolled using 'ar' and 'ranlib' (or equivalent) which also do
not check whether symbols are resolved. We now build each of the
loaders as a convenience library module under these assumptions,
and link libltdl.la with selected modules, at which time all of
the symbols *are* resolved:
* TODO: Remove item addressed by this changeset.
* libltdl/Makefile.am (lib_LTLIBRARIES): Remove libdlloader.la.
(libdlloader_la_SOURCES): Declaration removed. Changed all
clients. Source files..
(libltdl_la_SOURCES): ...added back in here.
(libdlloader_LDFLAGS, libdlloader_la_LIBADD): Removed.
(libltdl_la_LIBADD): Remove libdlloader.la; add $(LTLIBOBJS).
* libltdl/loaders/Makefile.am: Removed all references to
libdlloader.la.
Peter O'Gorman [Fri, 25 Feb 2005 14:19:58 +0000 (14:19 +0000)]
* m4/libtool.m4 (_LT_LINKER_SHLIBS): The Portland group's
compiler does not pass --whole-archive. Move gnu ld check for
the flag to the top so it can be overridden.
(_LT_LANG_CXX_CONFIG, _LT_COMPILER_PIC): Unset
whole_archive_flag_spec for the portland group's c++ compiler too.
Reported by Jeff Squyres <jsquyres@lam-mpi.org>
Gary V. Vaughan [Wed, 23 Feb 2005 14:40:38 +0000 (14:40 +0000)]
Preserving the installed timestamps for libltdl sources from
`libtoolize --ltdl --copy' is pointless if they are not preserved
from the libtool source tree at install time:
* libltdl/Makefile.am, libltdl/loaders/Makefile.am
(nobase_ltdldata_DATA): Renamed to...
(ltdldatafiles): ...this.
(install-data-local): New rule to install libltdl tree with tar to
preserve timestamps.
Gary V. Vaughan [Tue, 22 Feb 2005 15:27:07 +0000 (15:27 +0000)]
Using `libtoolize --copy --ltdl' was not preserving timestamps, so
parts of the autoconf bootstrap would be rerun spuriously after
the files had been copied into the source tree:
* libtoolize.m4sh (TAR): New default tar command.
(func_copy_cb): Move the core copying internals to here, using
$TAR to transfer files if possible when --copy was specified.
(func_copy): Adjust to call func_copy_cb.
* TODO: Remember to refactor this fix in due course.
Reported by Jeff Squyres <jsquyres@lam-mpi.org>
Peter O'Gorman [Mon, 21 Feb 2005 13:47:45 +0000 (13:47 +0000)]
* config/ltmain.m4sh (func_extract_archives) [darwin]: This didn't
actually work on a real fat archive, should do now.
* tests/functests.at [darwin]: remove darwin fat tests which
did not actually work.
Ralf Wildenhues [Fri, 4 Feb 2005 14:51:53 +0000 (14:51 +0000)]
* tests/Makefile.am, tests/testsuite.at, tests/stresstest.at:
New test. Stresses several combinations of link flags and
path specifications. Uses several data types to test linkage
against symbols in all kinds of (e.g., ELF) sections.
Reid Spencer [Thu, 3 Feb 2005 16:31:02 +0000 (16:31 +0000)]
* config/ltmain.m4sh (func_generate_dlsyms): Fix broken subdir
path computation, exposed by using `-dlopen self'. Fix broken
sed script exposed by additionally using `-export-symbols FILE'.
Peter O'Gorman [Thu, 3 Feb 2005 03:53:12 +0000 (03:53 +0000)]
* config/ltmain.m4sh [darwin]: Don't add installed libs to
temp_rpath when building executables on darwin, or other systems
which use hardcode_automatic. It may break our wrapper scripts.
Ralf Wildenhues [Mon, 31 Jan 2005 17:30:47 +0000 (17:30 +0000)]
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Unicos 9 sed rejects
empty parentheses as in 's/x()/1/'.
(_LT_COMPILER_PIC) [unicos*]: wl=-Wl,.
* tests/sh.test: Not all sed's like '/.*n.*/' (Unicos 9 sed
loops endlessly).
Ralf Wildenhues [Mon, 31 Jan 2005 16:17:06 +0000 (16:17 +0000)]
* config/ltmain.m4sh, m4/libtool.m4: Change `( cmd ) 2>/dev/null' to
`{ cmd; } 2>/dev/null', when cmd has no side effects and might be a
builtin. Note that it is unspecified whether cmd will run within a
subshell (e.g. Bourne shells) or within the current shell (most modern
shells).
Ralf Wildenhues [Mon, 24 Jan 2005 13:28:47 +0000 (13:28 +0000)]
* m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Define Bourne and XSI
variants of new function func_stripname for stripping literal
prefixes and suffixes.
* config/ltmain.m4sh (all over): Use func_stripname.
Ralf Wildenhues [Mon, 24 Jan 2005 07:45:35 +0000 (07:45 +0000)]
* tests/defs.m4sh: Extract $build from $LIBTOOL.
(func_configure): Pass --host if $host != $build.
(func_exec): Try executing cross-compiled binaries (e.g. i686 -> i386),
but SKIP rather than FAIL.
* tests/depdemo-relink.test: Do not try to access possibly non-
existent files. SKIP rather than FAIL or PASS falsely when
cross-compiling.
Ralf Wildenhues [Mon, 24 Jan 2005 07:42:31 +0000 (07:42 +0000)]
* m4/libtool.m4 (_LT_SETUP) [mingw, cygwin, pw32, os2]:
Add _LT_DECLs for host_os, build_alias, build and build_os.
host_os and build were used in a few occasions in ltmain.m4sh
and affect above-mentioned systems, the others are added for
symmetry and in order to be able to detect cross-compiling.
Peter O'Gorman [Sun, 16 Jan 2005 14:07:35 +0000 (14:07 +0000)]
* config/ltmain.m4sh (func_mode_link): Don't pass through
compiler-like thread flags when using $LD to do the linking.
Use compiler_flags instead.
Reported by Mark_Andrews@isc.org.
Peter O'Gorman [Sun, 16 Jan 2005 12:26:45 +0000 (12:26 +0000)]
* m4/libtool.m4 (LT_CMD_MAX_LEN) [osf]: On Tru64 there could
be a kernel panic when testing the maximum command line length
if exec_disable_arg_limit=1. Don't do the tests to figure it
out on *-osf*.
Reported by Dr. Hans Ekkehard Plesser
<hans.ekkehard.plesser@umb.no>