Ralf Wildenhues [Sat, 18 Jun 2005 16:50:46 +0000 (16:50 +0000)]
* m4/libtool.m4 (_LT_COMPILER_BOILERPLATE, _LT_LINKER_BOILERPLATE):
New macros: save warnings and boilerplate of simple compile/link tests.
(_LT_LANG_C_CONFIG, _LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG,
_LT_LANG_GCJ_CONFIG, _LT_LANG_RC_CONFIG): Call.
(_LT_COMPILER_OPTION, _LT_LINKER_OPTION, _LT_COMPILER_C_O, ):
Fail only if nonempty warnings different from default compile/link.
Ralf Wildenhues [Fri, 17 Jun 2005 12:44:28 +0000 (12:44 +0000)]
* m4/ltsugar.m4 (lt_car, lt_cdr): New macros, clones of m4_car/m4_cdr
with the fixed semantics of Autoconf-59c CVS, in order to work with
2.59. (lt_combine): Use it.
Reported by Christoph Egger <Christoph_Egger@gmx.de>.
Ralf Menzel [Sat, 11 Jun 2005 11:12:28 +0000 (11:12 +0000)]
* m4/ltoptions.m4 (_LT_SET_OPTIONS): Loop options only if
nonempty.
* m4/ltsugar.m4 (lt_combine): Don't test against empty quotes,
test against empty arg. Fixes infinite m4 loop with CVS Autoconf.
Ralf Wildenhues [Sat, 11 Jun 2005 11:02:52 +0000 (11:02 +0000)]
* m4/libtool.m4 (_LT_COMPILER_OPTION, _LT_LINKER_OPTION): No
need for $ECHO here. Fix sed script syntax to be portable.
This should now put the pic-flag right after the last $*FLAGS
variable again, if any. Necessary for Fortran AC_FC_SRCEXT.
Ralf Wildenhues [Mon, 6 Jun 2005 16:13:23 +0000 (16:13 +0000)]
* m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS,
_LT_LANG_CXX_CONFIG): PGI also has pgf95. PGI static flag is
`-Bstatic'. Remove harmless extra comma from whole_archive output.
Ralf Wildenhues [Sun, 5 Jun 2005 17:35:11 +0000 (17:35 +0000)]
* config/ltmain.m4sh (func_mode_compile): In order to find out
about forbidden characters in output, check with grep after checking
func_quote_for_eval result. Also, warn instead of fail.
* config/general.m4sh (func_quote_for_eval, func_quote_for_expand):
Revert SunOS sh bug workaround patch from 2004-12-28 as it
triggers bugs in the Tru64 5.1B shell.
Reported by Albert Chin <libtool@mlists.thewrittenword.com> and
Nicolas Joly <njoly@pasteur.fr>.
Peter O'Gorman [Tue, 31 May 2005 03:48:21 +0000 (03:48 +0000)]
* config/ltmain.m4sh: Do not add installed static litool libraries
to convenience, they are not convenience libraries.
Reported by Chen-Mou Cheng <chenmou.cheng@gmail.com>
Alexandre Oliva [Mon, 30 May 2005 15:02:25 +0000 (15:02 +0000)]
Peter O'Gorman <peter@pogma.com>
* config/ltmain.m4sh: Don't add files with the same base name to an
archive; rename duplicates instead.
(func_extract_an_archive): Remove section to deal with duplicate
base names in an archive.
* tests/duplicate_members.test: new test.
* Makefile.am: Add new test.
Ralf Wildenhues [Sun, 15 May 2005 14:12:36 +0000 (14:12 +0000)]
* m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS,
_LT_LANG_CXX_CONFIG) [ linux ]: PGI: Backport whole_archive changes
from HEAD. Add $pic_flag to archive_cmds and archive_expsyms_cmds.
Bug reported against LAM by Troy Telford <ttelford@lnxi.com>.
* m4/ltdl.m4 (all over): Quote all arguments to AC_DEFINE and
AC_DEFINE_UNQUOTED consistently. Reported by
Michael Koch <konqueror@gmx.de>, Riccardo Mottola <zuse@libero.it>,
and Dalibor Topic <robilad@kaffe.org>.
Gary V. Vaughan [Mon, 25 Apr 2005 15:06:44 +0000 (15:06 +0000)]
Since the bootstrap process requires that several of the rules for
files generated in doc and tests already lived in
$top_srcdir/Makefile.am, along with proxy rules in sub-Makefiles,
this changeset consolidates almost everything into the top
Makefile.am, simplifying things considerably:
* doc/Makefile.am, tests/Makefile.am: Removed. All rules moved...
* Makefile.am: ...to here and adjusted to run from $top_builddir.
simplify with respect to removing much of the make recursion.
Add `doc/PLATFORMS', `doc/fdl.texi' and `doc/notes.texi'.
`defs.in' and `defs.m4sh' are in directory `tests'.
(uninstall-hook): Don't forget to uninstall libtoolize's libltdl
source tree.
(lt__cd): New make macros to work around problems with CDPATH in
some shells.
* bootstrap: Simplified dirty makefile management, and bootstrap
file creation in light of having only a single pertinent
Makefile.
* configure.ac (CONF_SUBDIRS): Add tests/ prefix to each subdir to
compensate.
(DIST_MAKEFILE_LIST): Adjust.
(AC_CONFIG_FILES): Remove doc/Makefile and tests/Makefile.
* tests/defs.m4sh (LIBTOOL, scripts): Adjust paths.
* tests/cdemo-conf.test, tests/cdemo-exec.test,
tests/cdemo-make.test, tests/cdemo-shared.test,
tests/cdemo-static.test, tests/cdemo-undef.test,
tests/demo-conf.test, tests/demo-deplibs.test,
tests/demo-exec.test, tests/demo-hardcode.test,
tests/demo-inst.test, tests/demo-make.test,
tests/demo-nofast.test, tests/demo-noinst-link.test,
tests/demo-nopic.test, tests/demo-pic.test,
tests/demo-relink.test, tests/demo-shared.test,
tests/demo-static.test, tests/demo-unst.test,
tests/depdemo-conf.test, tests/depdemo-exec.test,
tests/depdemo-inst.test, tests/depdemo-make.test,
tests/depdemo-nofast.test, tests/depdemo-relink.test,
tests/depdemo-shared.test, tests/depdemo-static.test,
tests/depdemo-unst.test, tests/f77demo-conf.test,
tests/f77demo-exec.test, tests/f77demo-make.test,
tests/f77demo-shared.test, tests/f77demo-static.test,
tests/link-2.test, tests/link.test, tests/mdemo-conf.test,
tests/mdemo-dryrun.test, tests/mdemo-exec.test,
tests/mdemo-inst.test, tests/mdemo-make.test,
tests/mdemo-unst.test, tests/mdemo2-conf.test,
tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test,
tests/objectlist.test, tests/pdemo-conf.test,
tests/pdemo-exec.test, tests/pdemo-inst.test,
tests/pdemo-make.test, tests/quote.test, tests/sh.test,
tests/suffix.test, tests/tagdemo-conf.test,
tests/tagdemo-exec.test, tests/tagdemo-make.test,
tests/tagdemo-undef.test, tests/tagtrace.test (func_cd,
func_require): Adjust paths..
* HACKING: Use lt__cd throughout.
* m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) [solaris]:
Update wl for Sun Studio f77/f90/f95. Fix whole_archive_flag_spec
for cc and f77/f90/f95 to prevent reordering in case we link with $CC.
Gary V. Vaughan [Fri, 22 Apr 2005 10:04:00 +0000 (10:04 +0000)]
The FSF are moving offices today. Changed their contact address
in all files from `59 Temple Place, Suite 330, MA 02111-1307' to
`51 Franklin Street, Fifth Floor, MA 02110-1301'.
* tests/demo-hardcode.test [solaris]: Use dumpstabs if available,
to avoid false failure caused by debug section which contains
command line (Solaris cc).
* config/ltmain.m4sh (link mode): Add to tmp_libs paths for libtool dep
libs in reverse order as well.
* tests/Makefile.am, tests/link-order.test: New test.
Gary V. Vaughan [Mon, 4 Apr 2005 17:38:14 +0000 (17:38 +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 12:29:52 +0000 (12:29 +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 13:52:36 +0000 (13:52 +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
of 'scriptversion' variable in install-sh. Adjust all callers.
Gary V. Vaughan [Thu, 24 Mar 2005 12:59:29 +0000 (12:59 +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:40:19 +0000 (07:40 +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 18:00:45 +0000 (18:00 +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:16:00 +0000 (07:16 +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:53 +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:29:47 +0000 (17:29 +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 12:56:30 +0000 (12:56 +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.
Per Bothner [Sat, 12 Mar 2005 08:50:45 +0000 (08:50 +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 20:58:06 +0000 (20:58 +0000)]
* libltdl/Makefile.am (install-data-local): Use `&&' to separate
commands so that stdin reaches the untar pracess.
* libltdl/loaders/Makefile.am (install-data-local): Ditto.
* libtoolize.m4sh (func_copy_cb): Ditto.
Gary V. Vaughan [Thu, 10 Mar 2005 16:40:19 +0000 (16:40 +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:33:56 +0000 (10:33 +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 19:35:55 +0000 (19:35 +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 [Sat, 26 Feb 2005 23:53:17 +0000 (23:53 +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 22:51:28 +0000 (22:51 +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:14:19 +0000 (14:14 +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 15:13:30 +0000 (15:13 +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 17:41:46 +0000 (17:41 +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.
Reported by Jeff Squyres <jsquyres@lam-mpi.org>