code block to handle cases when wrapper script is in $objdir.
(func_emit_libtool_cwrapperexe_source): replace DEBUG() macro
with namespace-safe LTWRAPPER_DEBUGPRINTF(). Call
func_emit_libtool_wrapper_script() with appropriate filters to
embed script text in C char* static variable.
(f_e_l_c_s: main): add new option --lt-dump-script, parse argv[]
for it, and take appropriate action. Call chase_symlinks()
on argv[0], in case this.exe was launched via one. Use chased
value to determine full absolute pathname of wrapper script, in
$objdir. Unconditionally write script out to this pathname and
set permission bits. Remove extraneous ';' from debugging loop.
(f_e_l_c_s: main) [mingw]: DOS-ize $SHELL before populating
newargv[0]; if $TARGETSHELL environment variable is set, use
it instead of $SHELL and do not DOS-ize. Ensure newargv[1]
(wrapper script absolute path) uses only '/', not '\'. Make
sure to call execv() with DOS-ized $SHELL (or un-DOS-ized
$TARGETSHELL, if set)
(f_e_l_c_s: make_executable): new function
(f_e_l_c_s: chase_symlinks): new function (no-op if !S_ISLNK)
old_deplibs.
* tests/dmacks.at: Check for archives as members of static
archives. Currently XFAILS, above only eliminates one of the
two static archives.
* Makefile.am: Add test.
Reported by Daniel Macks <dmacks@netspace.org>
better portability - testing whether modules build and load
without that prefix is not the domain of this test.
Also, only run the test of the global hint with the depend
module on hosts that can compile a module without passing
-no-undefined in link mode.
visibility set according to the underlying implementation.
Here, we add lt_dlopenadvise() to allow callers to request,
among other things, local or global symbol visibility from the
underlying dlloader:
* libltdl/ltdl.c (LT_DLRESIDENT_FLAG): Removed.
(LT_DLIS_RESIDENT): Use public is_resident info field.
(LT_DLIS_SYMLOCAL, LT_DLIS_SYMGLOBAL): New macros to test for
module symbol visibility status.
(tryall_dlopen): If vtable->module_open() was able to act on
either is_symlocal or is_symglobal hints, store that in
the handle flags.
(lt_dlopenadvise): New function that works like lt_dlopen(),
but accepts an advise type to determine whether to ask
dlloaders to change default symbol visibility.
(lt_dlopen, lt_dlopenext): Just call lt_dlopenadvise() with
the correct parameters.
(lt_dladvise_init, lt_dladvise_destroy): New functions to
initialize and destroy an advise type hint.
(lt_dladvise_ext, lt_dladvise_resident, lt_dladvise_local)
(lt_dladvise_global): Set hints on an advise type.
(openadvise): Factored out of lt_dlopenadvise.
(has_library_ext): Factored out of lt_dlopenadvise.
* libltdl/ltdl.h: Declare all of the above.
(lt_dlinfo): New fields for advise hints.
* libltdl/libltdl/lt_dlloader.h (lt_module_open): Add a new
advise parameter. Adjust all callers.
(lt_dladvise): New opaque type for advise hints.
* libltdl/libltdl/lt__private.h (lt__advise): Declare
contents of opaque lt_dladvise type.
* libltdl/libltdl/lt_error.h (CONFLICTING_FLAGS): New error
for attempts to have local and global symbol visibility at the
same time.
* libltdl/loaders/dld_link.c, libltdl/loaders/dyld.c,
libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c,
libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c: Adjust.
* libltdl/loaders/dlopen.c (RTLD_LOCAL, RTLD_GLOBAL): Try to
define these symbols if the system has equivalents.
(vmopen): If unable to act on a caller request to set symbol
visibility, then unset the relevant hints in the advise type.
* tests/lt_dladvise.at: New tests for the above.
* doc/libtool.texi (Libltdl Interface): Updated.
* NEWS: Updated.
(libtool, $(srcdir)/$(m4dir)/ltversion.m4)
($(srcdir)/$(auxdir)/ltmain.sh): Updated to not depend on any
phony rules. Test `$?' for prerequisites that should always
cause us to update the target. Fixes rebuilding rules, at the
cost of sometimes updating too much with non-GNU make.
instead of SYSTEM_ARGZ_IS_BROKEN.
* libltdl/m4/argz.m4 (gl_FUNC_ARGZ): Ditto. Also, minor
stylistic improvements.
Report by Bruno Haible <bruno@clisp.org>.
in same mechanism system argz.h would have.
* libltdl/libltdl/lt__glibc.h: also detect if
SYSTEM_ARGZ_IS_BROKEN when determining whether to re#def
argz* functions.
* libltdl/m4/argz.m4 (gl_FUNC_ARGZ): add new test to check
if $host's argz facilities are known bad. Err on the side
of caution if cross-compiling.
of `inherited_linker_flags' entries from multiple deplibs, by
adding $new_inherited_linker_flags only once, only in link pass.
* tests/inherited_flags: Amend test to expose this.
* NEWS: Adjust: kill one regression, but add note about the
feature new in 1.9b.
Report by Jeff Squyres and others.
script generation from here...
(func_emit_libtool_wrapper_script): to this new function, and
write to stdout
(func_mode_link): move cwrapper source code generation from
here...
(func_emit_libtool_cwrapperexe_source): to this new function,
and write to stdout
(func_mode_link): call the two new functions and redirect
output to appropriate file.
still generates a wrapper script on systems without hardcoding.
* tests/stresstest.at: Test `-no-install'.
* THANKS: Update.
Report by Simon Josefsson.
parts of the configuration process on each invocation. Instead
of relying on a stamp file, we now compare version numbers of
generated files with the ChangeLog timestamp manually in the
affected make rules to decide whether regenerating is necessary:
* Makefile.am (EXTRA_DIST): Remove stamp-vcl.
(clean-ltmain-sh): Also remove users' obsolescent stamp-vcl.
(rebuild): Keep some common code here for...
(libtool, libltdl/m4/ltversion.m4, libltdl/config/ltmain.sh):
Rewritten to work without reference to intermediate stamp-vcl
file.
* configure.ac (CONFIG_STATUS_DEPENDENCIES): Change from
stamp-vcl to ChangeLog.
* NEWS: Removed entry saying this fix is needed.
`-export-symbols-regex ".*"' because the convenience libltdl
uses export markers and thus turns off autoexport on w32. Fixes
test failures for Cygwin and MinGW.
Bug analysis by Charles Wilson.
(_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS)
(_LT_LANG_CXX_CONFIG, _LT_SYS_HIDDEN_LIBDEPS) [ interix ]: When
matching for interix, accept version range [3-9] instead of 3.
* NEWS: Update.
Report by Martin Koeppe <mkoeppe@gmx.de>.
shared library, define appropriate macros to expand
__declspec(dllimport) on w32. Use two different main objects
and pick the right one for the link flags we are about to test.
Fixes test failure on MinGW.
matches recursive and nonrecursive libltdl setup.
* Makefile.am ($(srcdir)/libltdl/Makefile.am): Do not depend
upon the exact text of the copyright header, just copy until
the marker line. Remove the marker lines in the output, and
adjust the description for subpackage setup.
Point the user to the doc/notes.txt file. In the examples, use
`gmake' throughout to make it more obvious. Explain simpler way
to run both testsuites and either one. Referring to individual
tests needs the `tests/' prefix.
* README.alpha: Likewise.
* doc/notes.texi: Likewise, document need for GNU make.
Comment out the FreeBSD make issue for now.