libtool-patches
[Top][All Lists]
Advanced

[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'




reply via email to

[Prev in Thread] Current Thread [Next in Thread]