[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
FYI: libtool--devo--1.0--patch-60
From: |
Gary V. Vaughan |
Subject: |
FYI: libtool--devo--1.0--patch-60 |
Date: |
Mon, 17 May 2004 18:43:25 +0100 (BST) |
User-agent: |
mailnotify/0.3 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Applied to HEAD.
- --
Gary V. Vaughan ())_. address@hidden,gnu.org}
Research Scientist ( '/ http://tkd.kicks-ass.net
GNU Hacker / )= http://www.gnu.org/software/libtool
Technical Author `(_~)_ http://sources.redhat.com/autobook
_________________________________________________________
This patch notification generated by tlaapply version 0.5
http://tkd.kicks-ass.net/arch/address@hidden/cvs-utils--tla--1.0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (Darwin)
iD8DBQFAqPm9FRMICSmD1gYRAnttAKCWz0ufpJZkyxx/VmmX2bR0v1V+hgCgjTlE
v94KvATJafRqQGnVFcGG9jc=
=NyRF
-----END PGP SIGNATURE-----
* looking for address@hidden/libtool--devo--1.0--patch-59 to compare with
* comparing to address@hidden/libtool--devo--1.0--patch-59
M ChangeLog
M doc/libtool.texi
M m4/libtool.m4
M tests/Makefile.am
M tests/defs
* modified files
Index: Changelog
from Alexandre Duret-Lutz <address@hidden>
* doc/libtool.texi (Invoking libtool): Mention --tag=TAG.
(Tags, Trace interface): New nodes.
* m4/libtool.m4 (LT_SUPPORTED_TAG): New macro.
(_LT_LANG): Call it.
* tests/tagtrace.test: New file.
* tests/Makefile.am
(TESTS): Add tagtrace.test.
* tests/defs: Define AUTOCONF.
--- orig/doc/libtool.texi
+++ mod/doc/libtool.texi
@@ -92,6 +92,7 @@
* Inter-library dependencies:: Libraries that depend on other libraries.
* Dlopened modules:: @code{dlopen}ing libtool-created libraries.
* Using libltdl:: Libtool's portable @code{dlopen} wrapper
library.
+* Trace interface:: Libtool's trace interface.
* Troubleshooting:: When libtool doesn't work as advertised.
* Maintaining:: Information used by the libtool maintainer.
* GNU Free Documentation License:: License for this manual.
@@ -141,7 +142,12 @@
Including libtool in your package
* Invoking libtoolize:: @code{libtoolize} command line options.
-* Autoconf and LTLIBOBJS:: Autoconf automates LTLIBOBJ generation.
+* Autoconf and LTLIBOBJS:: Autoconf automates LTLIBOBJS generation.
+
+Using libtool with other languages
+
+* C++ libraries::
+* Tags:: Using Tags.
Library interface versions
@@ -165,15 +171,11 @@
* Libltdl interface:: How to use libltdl in your programs.
* Modules for libltdl:: Creating modules that can be @code{dlopen}ed.
-* Thread Saftey in libltdl:: Registering callbacks for multi-thread safety.
+* Thread Safety in libltdl:: Registering callbacks for multi-thread safety.
* User defined module data:: Associating data with loaded modules.
* Module loaders for libltdl:: Creating user defined module loaders.
* Distributing libltdl:: How to distribute libltdl with your package.
-Using libtool with other languages
-
-* C++ libraries::
-
Troubleshooting
* Libtool test suite:: Libtool's self-tests.
@@ -202,7 +204,7 @@
* References:: Finding more information.
* Compilers:: Creating object files from source files.
* Reloadable objects:: Binding object files together.
-* Multiple dependencies:: Removing duplicate dependent libraries.
+* Multiple dependencies:: Removing duplicate dependent libraries.
* Archivers:: Programs that create static archives.
@end detailmenu
@@ -1148,6 +1150,9 @@
Delete uninstalled libraries or executables.
@end table
address@hidden address@hidden
+Use configuration variables from tag @var{tag} (@pxref{Tags}).
+
@item --preserve-dup-deps
Do not remove duplicate dependencies in libraries. When building packages
with static libraries, the libraries may depend circularly on each other
@@ -2167,6 +2172,7 @@
@menu
* C++ libraries::
+* Tags::
@end menu
@node C++ libraries
@@ -2206,6 +2212,44 @@
compiled with the C++ compiler for static C++ objects to be properly
initialized.
address@hidden Tags
address@hidden Tags
address@hidden tag names
address@hidden language names
address@hidden inferring tags
+
+Libtool supports multiple languages through the use of tags. Technically
+a tag corresponds to a set of configuration variables associated with a
+language. These variables tell @command{libtool} how it should create
+objects and libraries for each language.
+
+Tags are defined at @command{configure}-time for each language activated
+in the package (see @code{LT_LANG} in @ref{LT_INIT}). Here is the
+correspondence between language names and tags names.
+
address@hidden {Windows Resource} {Tag name}
address@hidden Language name @tab Tag name
address@hidden C @tab
address@hidden C++ @tab CXX
address@hidden Java @tab GCJ
address@hidden Fortran 77 @tab F77
address@hidden Windows Resource @tab RC
address@hidden multitable
+
address@hidden tries to automatically infer which tag to use from
+the compiler command being used to compile or link. If it can't infer
+a tag, then it defaults to the configuration for the @code{C} language.
+
+The tag can also be specified using @command{libtool}'s
address@hidden@var{tag}} option (@pxref{Invoking libtool}). It is a good
+idea to do so in @file{Makefile} rules, because that will allow users to
+substitute the compiler without relying on @command{libtool} inference
+heuristics. Note that there is no tag for @code{C} because that is
+the default configuration.
+
+Finally, the set of tags available in a particular project can be
+retrieved by tracing for the @code{LT_SUPPORTED_TAG} macro (@pxref{Trace
+interface}).
@node Versioning
@chapter Library interface versions
@@ -2928,7 +2972,7 @@
@menu
* Libltdl interface:: How to use libltdl in your programs.
* Modules for libltdl:: Creating modules that can be @code{dlopen}ed.
-* Thread Saftey in libltdl:: Registering callbacks for multi-thread safety.
+* Thread Safety in libltdl:: Registering callbacks for multi-thread safety.
* User defined module data:: Associating data with loaded modules.
* Module loaders for libltdl:: Creating user defined module loaders.
* Distributing libltdl:: How to distribute libltdl with your package.
@@ -2960,7 +3004,7 @@
@noindent
Note that libltdl is not well tested in a multithreaded environment,
-though the intention is that it should work (@pxref{Thread Saftey
+though the intention is that it should work (@pxref{Thread Safety
in libltdl, , Using libtldl in a multi threaded environment}). It was
reported that @sc{gnu}/Linux's glibc 2.0's @code{dlopen} with
@samp{RTLD_LAZY} (which libltdl uses by default) is not thread-safe,
@@ -3251,7 +3295,7 @@
@end example
address@hidden Thread Saftey in libltdl
address@hidden Thread Safety in libltdl
@section Using libtldl in a multi threaded environment
Libltdl provides a wrapper around whatever dynamic run-time object
@@ -3785,6 +3829,31 @@
@end example
address@hidden Trace interface
address@hidden Libtool's trace interface
address@hidden trace interface
address@hidden autoconf traces
+
+This section describes macros whose sole purpose is to be traced using
+Autoconf's @code{--trace} option (@pxref{autoconf Invocation, , The
+Autoconf Manual, autoconf, The Autoconf Manual}) to query the Libtool
+configuration of a project. These macros are called by Libtool
+internals and should never be called by user code; they should only be
+traced.
+
address@hidden LT_SUPPORTED_TAG (@var{tag})
+This macro is called once for each language enabled in the package. Its
+only argument, @var{tag}, is the tag-name corresponding to the language
+(@pxref{Tags}).
+
+You can therefore retrieve the list of all tags enabled in a project
+using the following command:
address@hidden
+autoconf --trace 'LT_SUPPORTED_TAG:$1'
address@hidden example
address@hidden defmac
+
+
@node Troubleshooting
@chapter Troubleshooting
@cindex troubleshooting
@@ -4270,7 +4339,7 @@
* References:: Finding more information.
* Compilers:: Creating object files from source files.
* Reloadable objects:: Binding object files together.
-* Multiple dependencies:: Removing duplicate dependent libraries.
+* Multiple dependencies:: Removing duplicate dependent libraries.
* Archivers:: Programs that create static archives.
@end menu
--- orig/m4/libtool.m4
+++ mod/m4/libtool.m4
@@ -554,6 +554,14 @@
])# _LT_CONFIG
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+# autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
# C support is built-in for now
m4_define([_LT_LANG_C_enabled], [])
m4_define([_LT_TAGS], [])
@@ -577,7 +585,8 @@
# ------------------
m4_define([_LT_LANG],
[m4_ifdef([_LT_LANG_]$1[_enabled], [],
- [m4_append([_LT_TAGS], [$1 ])dnl
+ [LT_SUPPORTED_TAG([$1])dnl
+ m4_append([_LT_TAGS], [$1 ])dnl
m4_define([_LT_LANG_]$1[_enabled], [])dnl
_LT_LANG_$1_CONFIG($1)])dnl
])# _LT_LANG
--- orig/tests/Makefile.am
+++ mod/tests/Makefile.am
@@ -12,7 +12,7 @@
COMMON_TESTS = \
assign.test link.test link-2.test nomode.test \
- quote.test sh.test suffix.test \
+ quote.test sh.test suffix.test tagtrace.test \
cdemo-static.test cdemo-make.test cdemo-exec.test \
demo-static.test demo-make.test demo-exec.test \
demo-inst.test demo-unst.test \
--- orig/tests/defs
+++ mod/tests/defs
@@ -19,6 +19,7 @@
make="${MAKE-make}"
SHELL="${CONFIG_SHELL-/bin/sh}"
MKDIR="${MKDIR-mkdir}"
+AUTOCONF="${AUTOCONF-autoconf}"
if echo a | (grep -E '(a|b)') >/dev/null 2>&1; then
EGREP='grep -E'
- FYI: libtool--devo--1.0--patch-60,
Gary V. Vaughan <=