Commit Graph

341 Commits

Author SHA1 Message Date
Peter Rosin
a93b848108 Copy over DLL_EXPORT handling from C to C++ for non-GCC on w32.
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [mingw, cygwin, os2]
[pw32, cegcc]: Copy over the DLL_EXPORT handling from C to C++.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-09-17 22:25:45 +02:00
Ralf Wildenhues
9797b616fc Merge branch 'lto'
* lto:
  LTO: consistently accept -fwhopr* and -flto* for GCC.
2010-09-17 21:48:00 +02:00
Ralf Wildenhues
d4bf222845 LTO: consistently accept -fwhopr* and -flto* for GCC.
* libltdl/config/ltmain.m4sh (func_mode_link): Accept -fwhopr*.
* libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Also match
-flto*.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-09-17 21:47:18 +02:00
Gary V. Vaughan
a3ecc5f26f Remove obsolete .cvs ignore files.
* .cvsignore, doc/.cvsignore, libltdl/.cvsignore,
libltdl/config/.cvsignore, libltdl/loaders/.cvsignore,
libltdl/m4/.cvsignore, tests/.cvsignore,
tests/cdemo/.cvsignore, tests/demo/.cvsignore,
tests/depdemo/l1/.cvsignore, tests/depdemo/l2/.cvsignore,
tests/depdemo/l3/.cvsignore, tests/depdemo/l4/.cvsignore,
tests/f77demo/.cvsignore, tests/fcdemo/.cvsignore,
tests/mdemo/.cvsignore, tests/mdemo2/.cvsignore,
tests/pdemo/.cvsignore, tests/tagdemo/.cvsignore: Deleted. Even
when using savannah's CVS readonly mirror there's no way to commit
back to the real repo, so this files are not worth maintaining
or keeping around.
2010-09-16 09:05:28 +07:00
Ralf Wildenhues
594b9203db Fix AC_NO_EXECUTABLES test failure on IRIX 6.5.
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [irix]: Cache result
of link check for -Wl,-exported_symbol.
* tests/no-executables.at (AC_NO_EXECUTABLES): Set
lt_cv_irix_exported_symbol, to avoid link check.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-09-12 15:40:29 +02:00
Jürgen Reuter
60e961d061 Initial support for the NAG Fortran compiler on GNU/Linux.
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux] <nagfor>:
New set of entries, for NAG Fortran 5.1 and 5.2.
* NEWS: Update.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-09-12 12:26:18 +02:00
Ralf Wildenhues
3a94f44686 Merge branch 'lto'
* lto:
  Support GCC LTO on GNU/Linux.
  Disable GCC LTO for verbose library extraction.
  Save and restore CFLAGS properly inside libtool.m4 macros.
2010-09-12 10:59:01 +02:00
Peter Rosin
89819ce23b Adjust naming of MSVC import libraries.
* libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [mingw, cygwin]
[pw32, cegcc] <cl*, library_names_spec>: Adjust naming of the
import library from foo-<major-version>.lib to foo.dll.lib, to
avoid clashes with the static library for unversioned libraries.
(_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [mingw, cygwin, pw32]
[cegcc] <cl*, archive_expsym_cmds>: Explicitely name the import
library to match the above.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-09-07 18:31:18 +02:00
Peter Rosin
25d44a7ae0 Convert POSIX file names to toolchain format for MSVC
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG)
[cygwin, mingw, pw32, cegcc] <cl*, postlink_cmds>: Make
sure the -outputresource: file name for the manifest tool is
in w32 format.
<cl*, archive_expsym_cmds>: Likewise for the MSVC command file
containing the exports and the output file name.
* libltdl/config/ltmain.m4sh (func_mode_link): Precalculate the
toolchain format of the output_objdir file name and store it in
the tool_output_objdir variable. Also replace any occurrence of
@TOOL_OUTPUT@ in postlink_cmds with the toolchain version of the
@OUTPUT@ content.
* doc/libtool.texi (libtool script content): Update description
of postlink_cmds to mention @TOOL_OUTPUT@.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-09-07 07:04:49 +02:00
Peter Rosin
d243a1ec53 Use func_to_tool_file instead of fix_srcfile_path.
* libltdl/config/ltmain.m4sh (func_mode_compile): Replace the
fix_srcfile_path hook with a call to func_to_tool_file.
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin,mingw,pw32]
[cegcc]: Drop fix_srcfile_path.
* doc/libtool.texi (libtool script contents): Likewise.
* NEWS: Mention that fix_srcfile_path has been replaced.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-09-06 10:40:25 +02:00
Peter Rosin
375a576d09 Add file name conversion from $build to toolchain.
* configure.ac: Ensure to_tool_file_cmd is available to Makefile.
* libltdl/m4/libtool.m4 (_LT_PATH_CONVERSION_FUNCTIONS): Add
cache variable lt_cv_to_tool_file_cmd that describes how to
convert file names from $build to toolchain format.
* libltdl/config/ltmain.m4sh (func_to_tool_file): New function
that utilizes the above.
* Makefile.am: Ensure to_tool_file_cmd is included in
TEST_ENVIRONMENT so that it is passed to (old testsuite) tests.
* testsuite.at: Ensure to_tool_file_cmd is passed as a variable
setting on the configure line for (new testsuite) tests.
* doc/libtool.texi (libtool script content): Update with
to_tool_file_cmd description.
(Cygwin to MinGW Cross): Update to mention lt_cv_to_tool_file_cmd.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-09-06 08:23:52 +02:00
Ralf Wildenhues
327f014068 Merge branch 'master' into lto 2010-09-02 21:06:43 +02:00
Peter Rosin
185a2f71d0 Dump archiver output to the log when testing @file support.
* libltdl/m4/libtool.m4 (_LT_PROG_AR): Redirect stdout to config.log
when testing for @file support.
Suggested by Ralf Wildenhues.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-08-31 19:04:22 +02:00
Peter Rosin
34f87a6b07 Silence archiver output when testing @file support.
* libltdl/m4/libtool.m4 (_LT_PROG_AR): Redirect stdout and stderr
to the bit bucket when testing for @file support.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-08-31 13:38:47 +02:00
Ralf Wildenhues
b81fd4ef00 Support GCC LTO on GNU/Linux.
* libltdl/config/ltmain.m4sh (func_mode_link): Allow through
flags matching -O*, -flto*, -fwhopr, -fuse-linker-plugin.
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Drop symbols
starting with __gnu_lto.
(_LT_LINKER_SHLIBS) [linux] <archive_cmds, archive_expsyms_cmds>:
Add $pic_flag for GCC.
(_LT_LANG_CXX_CONFIG) [linux] <archive_cmds, archive_expsyms_cmds>:
Likewise.
(_LT_SYS_HIDDEN_LIBDEPS): Ignore files matching *.lto.o.
* NEWS: Update.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-29 17:31:57 +02:00
Ralf Wildenhues
ada610770b Disable GCC LTO for verbose library extraction.
* libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Temporarily
append -fno-lto or -fno-whopr to CFLAGS if CC or CFLAGS (which
are substituted with the per-language variables here) contain
-flto or match -fwhopr*, respectively.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-29 17:30:19 +02:00
Ralf Wildenhues
bf1d52eb53 Save and restore CFLAGS properly inside libtool.m4 macros.
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Use different
temporary variables for saved and restored values of $LIBS,
$CFLAGS, to avoid overlap with the *_CONFIG macros.
(_LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG)
(_LT_LANG_GCJ_CONFIG, _LT_LANG_RC_CONFIG): Also save and restore
$CFLAGS, and override it with per-language flags, so that in
case output_verbose_link_cmd uses $CFLAGS, the right flags are
used.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-29 17:28:29 +02:00
Charles Wilson
ae96006169 Merge branch 'sysroot'
* sysroot:
  Minor sysroot fixups.
2010-08-28 20:16:02 -04:00
Charles Wilson
83f5d15c88 Minor sysroot fixups.
* libltdl/m4/libtool.m4 (_LT_WITH_SYSROOT): Fix typo.
* tests/sysroot.at: Search also for crt0.o to accommodate cygwin.

Signed-off-by: Charles Wilson <libtool@cwilson.fastmail.fm>
2010-08-28 20:15:09 -04:00
Charles Wilson
fdd882b95b Merge remote branch 'origin/master' 2010-08-28 17:41:32 -04:00
Ralf Wildenhues
6df45ac3ae Fix symlist variable path to use _WIN32 instead of __WINDOWS__.
* libltdl/config/ltmain.m4sh, libltdl/libltdl/lt_system.h,
libltdl/m4/libtool.m4, tests/demo/foo.h, tests/pdemo/foo.h:
Change __WINDOWS__ to _WIN32.
Report by Charles Wilson.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-28 17:30:01 +02:00
Ralf Wildenhues
877260ff04 Add $pic_flag to archive_cmds and archive_expsym_cmds.
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS)
<archive_cmds, archive_expsym_cmds>
[GNU ld, netbsd]: Add $pic_flag if ELF.
[GNU ld, solaris]: Likewise.
[GNU ld, default case]: Likewise.
[!GNU ld, freebsd, dragonfly]: Add $pic_flag.
[!GNU ld, GCC, hpux9]: Add $pic_flag.
[!GNU ld, GCC, hpux10]: Replace -fPIC with $pic_flag
[!GNU ld, GCC, hpux11, !hppa*64]: Replace -fPIC with $pic_flag.
[!GNU ld, GCC, irix5, irix6, nonstopux]: Add $pic_flag.
[!GNU ld, GCC, osf4, osf5]: Likewise.
[!GNU ld, GCC, solaris]: Likewise.
(_LT_LANG_CXX_CONFIG) <archive_cmds, archive_expsym_cmds>
[hpux9]: Add $pic_flag if $GXX.
[hpux10, hpux11, !hppa*64]: Replace -fPIC with $pic_flag.
[irix5, irix6]: Add $pic_flag if $GXX.
[osf4, osf5]: Likewise.
[solaris]: Add $pic_flag if $GXX and not GCC 2.7.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-28 15:43:52 +02:00
Ralf Wildenhues
5b79e16a32 Uniform const'ness of symlist variable lt_preloaded_symbols.
On some systems, lt_preloaded_symbols may not be declared
const due to relocation issues.  C99 requires qualification to
match for compatible declarations, so ensure we declare
const'ness in the same way everywhere; link-time optimization
may otherwise rightfully complain about inconsistencies.
Since ltdl.h may not depend upon config.h, rely on system
defines for choosing const'ness.

* NEWS: Update.
* doc/libtool.texi (Dlpreopening): Document this issue.
* libltdl/config/ltmain.m4sh (func_generate_dlsyms):
[__WINDOWS__, __CYGWIN__, _WIN32_WCE]: Define LT_DLSYM_CONST
according to system defines.  Remove old shell cruft.  Use
LT_DLSYM_CONST for lt_${my_prefix}_LTX_preloaded_symbols.
* libltdl/libltdl/lt_system.h (LT_DLSYM_CONST): Likewise,
define LT_DLSYM_CONST according to system defines.
* tests/demo/foo.h (LT_DLSYM_CONST): Likewise.
* tests/pdemo/foo.h (LT_DLSYM_CONST): Likewise.
* tests/demo/dlmain.c (lt_dlsymlist): Use LT_DLSYM_CONST.
* tests/pdemo/longer_file_name_dlmain.c (lt_dlsymlist):
Likewise.
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Likewise
for configure test code.
* libltdl/ltdl.c (preloaded_symbols): Use LT_DLSYM_CONST.
* libltdl/ltdl.h (LTDL_SET_PRELOADED_SYMBOLS): Likewise.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-28 14:51:36 +02:00
Ralf Wildenhues
7f9878d026 Fix response file test for unreliable exit status of IRIX ar.
* libltdl/m4/libtool.m4 (_LT_PROG_AR): IRIX ar will not fail
over a command-line argument specifying a nonexistent file (such
as `@FILE'), so ensure failure with a reponse file containing
a nonexistent file.  Also, use lt_* variable prefix for
temporary variables.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-28 12:22:36 +02:00
Ralf Wildenhues
2680f79c22 Fix AC_LANG_PROGRAM warnings from git Autoconf.
* libltdl/m4/libtool.m4 (_LT_SYS_MODULE_PATH_AIX): Fix
underquoted AC_LANG_PROGRAM call.
(LT_PROG_AR): Use AC_LANG_PROGRAM.
(_LT_LINKER_SHLIBS) [irix, GCC]: Use the right source for the
given language.
* NEWS: Update.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-28 11:34:24 +02:00
Ralf Wildenhues
8f5c58990d Merge branch 'sysroot'
* sysroot:
  Add ChangeLog entries for the sysroot branch.
  fix AIX testsuite regression
  fix --mode=finish
  improve code for sysroot --mode=finish
  add libtool --mode=finish mode for sysroot
  reorganize parsing of --mode=finish arguments
  fix sysroot handling for deplibs of preopened libtool libs
  fix sysroot tests to pass on Fedora 13
  initial version of the NEWS entry
  add sysroot test
  emit sysrooted paths when installing .la files
  process postdeps to include sysrooted paths
  handle sysrooted paths when reading dependencies to la files
  teach libtool -L= and -R=
  add --with-sysroot
  handle sysroot flags
2010-08-28 10:39:40 +02:00
Charles Wilson
ac40b5f37a [cygwin|mingw|cross-compile]: Path conversion support.
* configure.ac: Ensure to_host_file_cmd is available to Makefile.
* TODO: Document QoI issue with file name conversion functions.
* libltdl/m4/libtool.m4 (_LT_PATH_CONVERSION_FUNCTIONS): New function
sets libtool variable $to_host_file_cmd, and employs cache.
(_LT_SETUP): Require it.
* tests/testsuite.at: Ensure to_host_file_cmd is passed as a
variable setting on the configure line for (new testsuite) tests.
* Makefile.am (TESTS_ENVIRONMENT): Ensure to_host_file_cmd is
included so that it is passed to (old testsuite) tests.
* libltdl/config/general.m4sh: Define $lt_sed_naive_backslashify here.
* libltdl/config/ltmain.m4sh ($to_host_file_cmd, $to_host_path_cmd):
New variables.
(func_cygpath): New function.
(func_init_to_host_path_cmd): New function.
(func_to_host_path): Renamed to...
(func_to_host_file): Refactored to... (now uses $to_host_file_cmd).
(func_convert_core_file_wine_to_w32): Here. New function.
(func_convert_core_msys_to_w32): Here. New function.
(func_convert_file_check): Here. New function.
(func_convert_file_noop): Here. New function.
(func_convert_file_msys_to_w32): Here. New function.
(func_convert_file_cygwin_to_w32): Here. New function.
(func_convert_file_nix_to_w32): Here. New function.
(func_convert_file_msys_to_cygwin): New function.
(func_convert_file_nix_to_cygwin): New function.
(func_to_host_pathlist): Renamed to...
(func_to_host_path): Refactored to... (now uses $to_host_path_cmd
and func_init_to_host_path_cmd).
(func_convert_path_check): Here. New function.
(func_convert_path_front_back_pathsep): Here. New function.
(func_convert_core_path_wine_to_w32): Here. New function.
(func_convert_path_noop): Here. New function.
(func_convert_path_msys_to_w32): Here. New function.
(func_convert_path_cygwin_to_w32): Here. New function.
(func_convert_path_nix_to_w32): Here. New function.
(func_convert_path_msys_to_cygwin): New function.
(func_convert_path_nix_to_cygwin): New function.

Signed-off-by: Charles Wilson <libtool@cwilson.fastmail.fm>
2010-08-28 03:32:31 -04:00
Charles Wilson
f8640925f8 Fix syntax for cygwin-cross
libltdl/m4/argz.m4: Add quotes around variable, which
may contain the multiword value 'guessing no'.

Signed-off-by: Charles Wilson <libtool@cwilson.fastmail.fm>
2010-08-23 01:53:08 -04:00
Ralf Wildenhues
92d24b3d80 configure: use Autobuild AB_INIT if available.
* configure.ac: Call AB_INIT if it is defined, with
$autobuild_mode as argument, to be set at configure time.
Set AB_VERSION to the Libtool version string.
* HACKING: Update.
* libltdl/m4/.gitignore: Ignore autobuild.m4.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-22 20:35:06 +02:00
Paolo Bonzini
2bde23f84f Merge remote branch 'origin/master' into sysroot
* libltdl/config/ltmain.m4sh (func_mode_finish): Use sed_make_literal_regex.
2010-08-22 09:40:32 +02:00
Peter Rosin
66ce911b33 Allow the use of a listing file if the archiver supports it.
* libltdl/m4/libtool.m4 (_LT_CMD_OLD_ARCHIVE): Move detection
of a suitable archiver...
(_LT_PROG_AR): ...to here. New macro, also detect if the
archiver supports a listing file with the new variable
archiver_list_spec.
* libltdl/config/ltmain.m4sh: If the archiver supports a listing
file, use it when max_cmd_len is exceeded.  This is needed for
tool chains such as MSVC which do not support piece by piece
linking (-r -o).
* doc/libtool.texi (libtool script contents): Update with
archiver_list_spec description.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-08-13 13:11:54 +02:00
Paolo Bonzini
d77a3a5124 process postdeps to include sysrooted paths
* libltdl/m4/libtool.m4 (_LT_FUNC_STRIPNAME_CNF): New (from Charles Wilson).
(_LT_SYS_HIDDEN_LIBDEPS): Require it.  Use func_stripname_cnf to convert
sysroot (-L= and -R=) usage in postdeps.  Adjust the code because -L, -R
and -l flags will now always be separated from the rest of the argument.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
Signed-off-by: Charles Wilson <libtool@cwilson.fastmail.fm>
2010-08-11 14:43:03 -04:00
Paolo Bonzini
3334f7ed58 add --with-sysroot
* libltdl/m4/libtool.m4 (_LT_HOST_NONCANONICAL, _LT_WITH_SYSROOT): New.
(LT_SETUP): Require _LT_WITH_SYSROOT.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
2010-08-11 14:43:03 -04:00
Ralf Wildenhues
b7b0e70e98 Avoid unwanted error message in configure output.
* libltdl/m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH): Try print
in subshell, so eventual `print: not found' is hidden reliably.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-07 19:20:57 +02:00
Ralf Wildenhues
2fc264a8e2 Fix AC_NO_EXECUTABLES test failure on AIX.
* libltdl/m4/libtool.m4 (_LT_SYS_MODULE_PATH_AIX): Wrap link
test in AC_CACHE_VAL, using cache variable $lt_cv_aix_libpath.
* tests/no-executables.at (AC_NO_EXECUTABLES): Preset it, to
avoid link test.
Bug report by Rainer Tammer.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-06 22:03:19 +02:00
Paolo Bonzini
a107f18041 fix bug in postdeps computation
* libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Actually concatenate
$prev and $p.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
2010-08-01 10:23:16 +02:00
Peter Rosin
0656b19eb9 Make preloading heed libname_spec.
Fixes testsuite failure for lt_dladvise.at on MSYS/MSVC.

* libltdl/ltdl.c (libprefix): New static variable describing
the prefix of static archives.
(try_dlopen): Use libprefix.
* libltdl/m4/ltdl.m4 (_LTDL_SETUP): Export prefix of static
archives to config.h. Also fix assignment of LTDLOPEN to be more
efficient and less error prone while at it.
2010-07-08 18:12:02 +02:00
Gary V. Vaughan
8c4dae1232 Fix a spurious trailing space and a botched merge.
* libltdl/m4/libtool.m4 (_LT_PROG_FUNCTION_REPLACE): Remove
spurious trailing space.
* ChangeLog: Reorder to match commit order after botched
merge.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-07-08 20:36:39 +07:00
Gary V. Vaughan
de8a0992b2 Rename _LT_PROG_XSI_REPLACE macro to _LT_PROG_FUNCTION_REPLACE.
* libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Rename to
_LT_PROG_REPLACE_SHELLFNS.
(_LT_PROG_XSI_REPLACE): Rename to _LT_PROG_FUNCTION_REPLACE.
(_LT_PROG_FUNCTION_REPLACE): Change decorator comment to use
'Extended shell' rather than 'XSI' on successful replacement.
* libltdl/config/general.m4sh (func_dirname, func_basename)
(func_dirname_and_basename, func_stripname): Change decorator
comment to use 'extended shell' rather than 'XSI' on fallback
implementations.
* libltdl/config/getopt.m4sh (func_split_short_opt)
(func_split_long_opt): Ditto.
* libltdl/config/ltmain.m4sh (func_append, func_append_quoted)
(func_arith, func_len, func_lo2o, func_xform): Ditto.
* tests/getopt-m4sh.at (_LT_AT_XSI_FUNC_EXTRACT): Rename to
_LT_AT_EXTENDED_SHELL_FUNC_EXTRACT.
(_LT_AT_EXTENDED_SHELL_FUNC_EXTRACT): Change regular expression to
match new replacable function decorator comments.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-07-08 20:20:24 +07:00
Gary V. Vaughan
94d129e2e3 Tidy m4 comment header underline.
* libltdl/m4/libtool.m4 (_LT_CHECK_SHAREDLIB_FROM_LINKLIB): Make
sure hyphens in function name comment header underline line up.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-07-07 15:02:07 +07:00
Charles Wilson
e83da49a1f [cygwin|mingw] fix dlpreopen with --disable-static
* libltdl/config/general.m4sh (func_tr_sh): New function.
* libltdl/config/ltmain.m4sh (func_generate_dlsyms) [cygwin|mingw]:
Obtain DLL name corresponding to import library by using value
stored in unique variable libfile_$(transliterated implib name).
If that fails, use $sharedlib_from_linklib_cmd to extract DLL
name from import library directly. Also, properly extract dlsyms
from the import library.
(func_mode_link) [cygwin|mingw]: Prefer to dlpreopen DLLs
over static libs when both are available.  When dlpreopening
DLLs, use linklib (that is, import lib) as dlpreopen file,
rather than DLL. Store name of associated la file in
unique variable libfile_$(transliterated implib name)
for later use.
(func_win32_libid): Accomodate pei-i386 import libs
as well as pe-i386.
(func_cygming_dll_for_implib): New function.
(func_cygming_dll_for_implib_fallback): New function.
(func_cygming_dll_for_implib_fallback_core): New function.
(func_cygming_gnu_implib_p): New function.
(func_cygming_ms_implib_p): New function.
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Adjust sed
expressions for lt_cv_sys_global_symbol_to_c_name_address and
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
as trailing space after module name is optional.
(_LT_LINKER_SHLIBS) [cygwin|mingw][C++]:
Set exclude_expsyms correctly for $host. Simplify regular
expression in export_symbols_cmds.
(_LT_LINKER_SHLIBS) [cygwin|mingw|pw32][C]: Set exclude_expsyms
correctly for $host. Enable export_symbols_cmds to identify
DATA exports by _nm_ prefix.
(_LT_CHECK_SHAREDLIB_FROM_LINKLIB): New macro sets
sharedlib_from_linklib_cmd variable.
(_LT_DECL_DLLTOOL): New macro ensures DLLTOOL is always set.
2010-07-07 00:42:00 -04:00
Peter Rosin
0b56641c03 Support for response files with $NM.
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS)
<nm_file_list_spec>: New tag variable. Set it to '@' if input
files can be passed to $NM in a file named with the '@' option.
* libltdl/config/ltmain.m4sh (func_mode_link): When
nm_file_list_spec is nonempty, use it to avoid skipped_export.
* doc/libtool.texi (libtool script contents): Document
new variable.
2010-07-05 07:09:07 +02:00
Peter Rosin
3ab9879a99 Don't trigger file name expansion when embedding manifests.
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS)
[ cygwin, mingw, cegcc ] <cl*>: Remove all spaces in the
case statement of postlink_cmds to make file name expansion
more unlikely.
(_LT_LANG_CXX_CONFIG): Likewise, but also add the missing |.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-07-02 08:17:19 +02:00
Peter Rosin
c20dbb8781 For MSVC, embed the manifest as a resource in the executable.
Fixes a lot of testsuite failures with MSVC 2003 (v8.0) and
above (and perhaps also MSVC .Net) related to running programs
that have been moved (e.g. installed) without their manifests
also having been moved.

* libltdl/m4/libtool.m4 (_LT_PATH_MANIFEST_TOOL): New macro
that locates the Manifest Tool (mt) and verifies that it is
indeed the manifest tool. The result is stored in the new
variable MANIFEST_TOOL.
(_LT_LINKER_SHLIBS) <postlink_cmds>: New tag variable.
[ cygwin, mingw, cegcc ] <cl*>: Embed the manifest file as a
resource. Make sure the embedding work regardless of if the
@OUTPUT@ file name includes a trailing $EXEEXT.
(_LT_LANG_CXX_CONFIG): Likewise.
(_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Require the above
_LT_PATH_MANIFEST_TOOL.
* libltdl/config/ltmain.m4sh (func_mode_link): After linking
a program, replace @OUTPUT@ in $postlink_cmds and then execute
the commands.
* doc/libtool.texi (libtool script contents): Document
new postlink_cmds variable.
(LT_INIT): Add that the MANIFEST_TOOL environment variable can
be used to override the manifest tool to use.
* tests/exeext.at: New. Make sure linking with both -o prog
and -o prog$EXEEXT works.
* Makefile.am (TESTSUITE_AT): Update.
(TESTS_ENVIRONMENT): Propagate $(MANIFEST_TOOL) to the
testsuite.
* NEWS: Add note of the new MANIFEST_TOOL environment variable.
2010-07-01 09:04:35 +02:00
Peter Rosin
1ac3ced59d Add MSVC support.
* libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER)
(_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [mingw, cygwin]: Add
support for the Microsoft C/C++ Compiler (cl) relying on help
from the compile script in Automake.
* NEWS: Add note of the above.
2010-07-01 09:04:32 +02:00
Gary V. Vaughan
d8bdf9339b Add func_append test cases for smart and retarded implementations.
* tests/getopt-m4sh.at (_LT_AT_FALLBACK_FUNC_EXTRACT): New
macro to extract a fallback function implementation from
ltmain.m4sh.
[option appending]: Use it for a test of the fallback
implementation of func_append.
[enhanced shell option appending]: And also test the enhanced
implementation.
* libltdl/config/ltmain.m4sh (func_append_quoted): Fix missing \
to escape a quoted space for eval.
* libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Fix missing $ in
dereference of func_append inline replacement for retarded
shells.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-06-30 05:12:42 +07:00
Gary V. Vaughan
6639fdbe2f Use a real XSI compliant func_split_short_opt substitution.
* libtool/m4/libtool.m4 (_LT_CHECK_SHELL_FEATURES): Remove
test ${foo:n:m} substrings, instead adding a ${foo%??} check
to the existing XSI tests.
(_LT_PROG_XSI_SHELLFNS): Remove the ${foo:n:m} based
func_split_short_opt substitution in favour of a properly
XSI compliant substitution.
Suggested by Paolo Bonzini.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-06-29 16:29:30 +07:00
Gary V. Vaughan
0da7d80909 Add func_append_quoted and do inline func_append substitutions.
* libtool/config/ltmain.m4sh: Replace all occurrences of
`foo="$foo bar"' with func_append. No decorator comment was
added since /func_append [a-zA-Z0-9_]* "/ is already an
excellent match regexp, and additional comments would only
complicate things.
(func_append_quoted): New function that quotes a value with
func_quote_for_eval before appending it.  To avoid quoting the
whitespace in the passed value, a single whitespace is added
automatically.  Changed callers where possible.
* libtool/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Perform a
`+=' implementation substitution for func_append_quoted.  More
importantly, systematically replace matching func_append calls
with inline `+=' when supported (for maximum speed), and
longhand `foo="$foo bar"' otherwise to avoid the function
overhead.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-06-28 13:48:51 +07:00
Gary V. Vaughan
448445c6f8 Add an XSI replacement for func_split_short_opt, with test cases.
* libltdl/config/getopt.m4sh (m4go_shortnoargs): Remove 'v' now
that getopt.m4sh doesn't steal that letter for the --version
short option.
* libltdl/config/ltmain.m4sh (M4SH_GETOPTS): We can now use 'v'
as a short option for '--verbose'.
* libltdl/config/getopt.m4sh (m4go_printopts): Add back in the
leading '-' for remaining non-argument short options.
(func_split_short_opt): Use the correct sed script variable.
* libltdl/m4/libtool.m4 (_LT_CHECK_SHELL_FEATURES): Also ensure
that XSI substring extraction is supported.
(_LT_PROG_XSI_SHELLFNS): Use XSI substring extraction to split
short options to avoid unnecessary forks if the host shell
supports that.
* tests/getopt-m4sh.at: New tests for getopt.m4sh coverage.
* Makefile.am (TESTSUITE_AT): Add getopt-m4sh.at.
(TESTS_ENVIRONMENT): Pass M4SH and SED for substition into the
m4sh expansion performed in tests/getopt-m4sh.at.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-06-28 05:41:36 +07:00
Gary V. Vaughan
001f756ffa Use TAB-SPACE in preference to SPACE-TAB.
* libltdl/m4/libtool.m4 (_LT_PROG_XSI_REPLACE): Some editors
might optimise away the SPACE in SPACE-TAB sequences, so use
TAB-SPACE just in case.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-06-27 17:19:35 +07:00