* libltdl/config/ltmain.m4sh (func_mode_link): When removing
potential output files before linking, do not remove *.gcno
profile information GCC outputs next to object files in `.libs'.
Report by Vincent Torri.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* libltdl/config/ltmain.m4sh (func_mode_link): Diagnose `-L'
without argument, and `-L path', i.e., with a space.
* tests/fail.at (Failure tests): Test for these failures.
* THANKS: Update.
Report by Olaf Lenz.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* libltdl/config/ltmain.m4sh (func_to_host_path)
[host=mingw, build!=mingw|cygwin]: check that winepath
stdout is non-empty and exit code is 0, instead of checking
stderr.
Reported by: Roumen Petrov
* libltdl/config/ltmain.m4sh (functions func_lalib_p)
(func_lalib_unsafe_p): Only read regular files and not device
files. Avoids blocking libtool executing gdb, when a
pseudo-terminal device /dev/pts/NN is given as one of the
arguments to gdb, as in:
libtool --mode=execute gdb -q -nw -i mi -tty /dev/pts/4 prog
Signed-off-by: Stas Maximov <smaximov@ieee.org>
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src):
Use NULL where appropriate. Do not compute length of arguments
needlessly.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* libltdl/config/ltmain.m4sh (func_to_host_path) [$host=mingw]:
If present, use winepath to convert from $build to $host
if $build is neither mingw (msys) nor cygwin. Use unconverted
path as fallback when conversion fails. Also update comments.
(func_to_host_pathlist) [$host=mingw]: Ditto. For fallback case,
use simplistic ':' to ';' path separator translation.
* libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src)
[file scope]: Defined all option strings in terms of macro
LTWRAPPER_OPTION_PREFIX. Similarly defined all option string
lengths in terms of macro LTWRAPPER_OPTION_PREFIX_LENGTH.
[main]: Modified option parsing algorithm to pass -- on to
target, and to not stop processing arguments when -- is seen.
Added check for unrecognized options in reserved namespace
defined by LTWRAPPER_OPTION_PREFIX.
* libltdl/config/ltmain.m4sh (func_to_native_path):
New function. If $host is mingw, and $build is mingw
or cygwin, convert path to mingw native format.
(func_to_native_pathlist): New function. Ditto, for
:-separated pathlists.
(func_emit_cwrapperexe_src) [__CYGWIN__ && __STRICT_ANSI__]:
Ensure putenv and setenv are declared. Define HAVE_SETENV.
(func_emit_cwrapperexe_src) [main]: Add new constants to
hold desired PATH settings; initialize and use functions
above to convert to $host format if necessary. Add new
command-line options --lt-env-set, --lt-env-prepend, and
--lt-env-append. No longer emit wrapper script as integral
part of launching child. Remove support for (now) unnecessary
$TARGETSHELL. Exec actual target executable directly.
(func_emit_cwrapperexe_src) [lt_setenv, lt_extend_str]
[lt_split_name_value, lt_opt_process_env_set]
[lt_opt_process_env_prepend, lt_opt_process_env_append]
[lt_update_exe_path, lt_update_lib_path]: New functions.
* libltdl/config/ltmain.m4sh (func_emit_wrapper_part1):
new function.
(func_emit_wrapper_part2): new function.
(func_emit_wrapper): delegate to new functions.
(func_emit_cwrapperexe_src) [__CYGWIN__ && __STRICT_ANSI__]:
ensure realpath is declared.
(func_emit_cwrapperexe_src): declare two different strings
to each hold part of the wrapper script content. Initialize
using new func_emit_wrapper_partX functions.
(func_emit_cwrapperexe_src) [main]: when emitting wrapper
script content, use both strings.
Reported by Yaakov Selkowitz.
* libltdl/config/general.m4sh (opt_warning): New option.
(func_warning): Only display a warning message if $opt_warning
is true.
* libtoolize.m4sh: Accept options in LIBTOOLIZE_OPTIONS
environment variable.
(--no-warn): Parse new option.
(func_serial_update_check, func_keyword_update): Use func_warning.
(func_check_macros): Bail out before style issues nags when
$opt_warning is false.
* doc/libtool.texi (Invoking Libtoolize): Document it.
* tests/libtoolize.at: Test it.
* NEWS: Updated.
* libltdl/config/ltmain.m4sh (func_mode_link): Add
$link_static_flag to compile_command and link_command only
later, instead of right after a possible compiler wrapper.
* tests/static.at (ccache -all-static): New test.
* THANKS: Update.
Report by Richard Purdie.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* libltdl/config/ltmain.m4sh(func_extract_archives): Use sed
$basename.
* tests/darwin.at: New. Check that we can built fat program,
shared library and convenience library.
* Makefile.am: Add test.
Reported by LiKai Liu <liulk@cs.bu.edu>
* libltdl/config/ltmain.m4sh (func_mode_link) <Transforming
deplibs into only shared deplibs>: Fix expr portability issues,
noted on FreeBSD. While at it, simplify and avoid forking.
Report by Bob Friesenhahn.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* libltdl/m4/libtool.m4 (_LT_CHECK_SHELL_FEATURES): Also check
for arithmetic expansion, and ${#var}.
(_LT_PROG_XSI_SHELLFNS): Define func_arith and func_len
accordingly, falling back on 'expr'. Note that the argument to
func_len may not start with a hyphen. In the pre-Posix
fallback, take care not to rely on the exit status of the
variable assignment (not portable), but set the length to
$max_cmd_len instead.
* libltdl/config/ltmain.m4sh (func_mode_link): Use func_arith
and func_len throughout for integer arithmetic, fixing
quadratical amount of counting for reloadable object and
piecewise archive linking. Change all comparisons with
max_cmd_len to test for smaller, non-equal length.
* THANKS: Update.
Suggested by Roland Mainz.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* libltdl/config/ltmain.m4sh (func_mode_compile): Avoid
redundant removal of old output files before compilation.
Do not remove $obj until we have successfully grabbed the
lockfile (in case the compiler doesn't grok `-c -o'), because
it might be identical to $output_obj.
At the end of the function, before we remove the lockfile,
update $removelist so that if the trap hits after the lockfile
has been removed, we do not accidentally remove $output_obj that
does not belong to us.
(func_write_libtool_object): Use $MV instead of mv.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* Makefile.am: Pass srcdir as an argument to mkstamp and expect only 2 fields in mkstamps output.
* clcommit.m4sh: Ditto.
* configure.ac: Ditto.
* libltdl/config/mkstamp: return a revision and date based on the number of lines which look like dates in all the ChangeLog* files in the directory we got as arg 1.
definition of func_dirname_and_basename ...
* libltdl/config/general.m4sh (func_dirname_and_basename):
... here, to use it for the other scripts that use general.m4sh
(and as portable fallback for libtool). Add marker for early
insertion of generated shell functions (into libtool, not the
other scripts) here.
Use func_dirname_and_basename to compute progname, progpath.
* libltdl/config/ltmain.m4sh (func_mode_help): Remove marker
for insertion of generated shell functions.
* tests/sh.test: Adjust function definition test to not match
function call.
New function.
* libltdl/config/ltmain.m4sh (func_mode_compile): Use it to
avoid two forks with XSI shells.
* tests/suffix.test: Also test a file with multiple dots.
func_generate_dlsyms, func_extract_an_archive,
func_extract_archives, func_mode_help): move these so they
appear after func_mode_compile.
* tests/nomode.test: Check that --mode=link --help works.
Reported by Josh Triplett <josh@freedesktop.org>
scope]: additional #includes and #defines to support...
(func_emit_cwrapperexe_src) [main]: ensure stdout is set to
binary mode for cygwin|mingw builds. Ensure temporary script
file is written in binary mode for cygwin|mingw builds.
(func_mode_link) [cygwin|mingw]: cross-build support - only
use cwrapper to generate shell wrapper if building native;
otherwise use func_emit_wrapper()
* libltdl/config/general.m4sh (func_show_eval_locale): New
function, for running commands in the user locale.
* libltdl/config/ltmain.m4sh (func_mode_compile): Use it for
compiling.
* tests/localization.at (localized compiler messages): New test.
* Makefile.am: Adjust.
Report by Bruno Haible.
arguments we have identified as shell or C wrappers.
(func_emit_wrapper): Output error message on stderr.
* tests/execute-mode.at: New file, with --mode=execute tests.
* Makefile.am: Adjust.
* NEWS: Update.
Fixes 2.2 regression. Report by Roberto Bagnara.
* libltdl/config/ltmain.m4sh (func_generate_dlsyms)
(func_extract_archives, func_mode_link): Use func_verbose
instead of func_echo for all non-warning output.
reloadable object files, avoid issuing plain `rm -f' without
further arguments, even if the line length limit is ridiculously
low as in the `Run tests with low max_cmd_len' test. This
failure is exposed on NetBSD.
Report by Patrick Welche.
New function.
(func_dirname_and_basename) <!XSI>: New function.
* libltdl/config/ltmain.m4sh (func_ltwrapper_scriptname):
Call it. Also, take advantage of missed optimization using
func_dirname's additional arguments.
(func_mode_compile): Call it.
(func_mode_install): Call it.
(func_mode_link): Call it.
need a library prefix like 'lib', such as BeOS. Fix a number
of bugs exposed by this test in order for it to pass.
Currently the prefix is hardcoded as 'lib', as I am not aware
of systems that require a different prefix:
* libltdl/loaders/preopen.c (lt_dlpreload_open): Move error
condition out of test loop to be sure that each originator is
tried, instead of erroring out if the first doesn't match.
Support passing NULL as the originator to load all preloaded
modules originating in the program itself.
* libltdl/lt_dlloader.c (lt_dlloader_dump): New debug function.
* libltdl/libltdl/lt_dlloader.h (lt_dlloader_dump): Declare it
when LT_DEBUG_LOADERS is defined at compile time.
* libltdl/ltdl.c (lt_dlinit): Dump loader list after successful
initialisation.
(tryall_dlopen): Add a new VTABLE parameter to force use of a
specific loader in preference to trying every loader in turn.
Adjust all callers.
(try_dlopen): Always see whether a module was preloaded for
module names with no directory component before searching the
filesystem for a match.
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Declare
a new global_symbol_to_c_name_address_lib_prefix variable.
(global_symbol_to_c_name_address_lib_prefix): The sed
expressions to use when a lib prefix is enforced need to be
slightly different to work with preloaded modules.
* libltdl/config/ltmain.m4sh (func_generate_dlsyms): In order
to name preloaded symbols correctly for the lookup algorithm
to work when the loaded module file must be prefixed with lib.
Use global_symbol_to_c_name_address_lib_prefix when
need_lib_prefix is other than no.
* tests/need_lib_prefix.at: New test to check for breakage on
hosts where need_lib_prefix is unknown.
* Makefile.am (TESTSUITE_AT): Add new test.
* tests/TODO: Note missing tests that would have caught some
of the latent bugs fixed by this patch.
* HACKING: Document libltdl keyword.
* NEWS: Updated.