/docs/MyDocs

To get this branch, use:
bzr branch http://darksoft.org/webbzr/docs/MyDocs

« back to all changes in this revision

Viewing changes to Administration/Linux/packaging/autotools/libtool-missing_so.html

  • Committer: Suren A. Chilingaryan
  • Date: 2009-04-09 03:21:08 UTC
  • Revision ID: csa@dside.dyndns.org-20090409032108-w4edamdh4adrgdu3
import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
2
 
 
3
<html>
 
4
 
 
5
<head>
 
6
<title>GNU Libtool and the missing .so extension</title>
 
7
<link rel="stylesheet" type="text/css" href="debian.css">
 
8
<meta name="author" content="Scott James Remnant">
 
9
<meta name="copyright" content="Copyright &copy; 2004 Scott James Remnant">
 
10
</head>
 
11
 
 
12
<body>
 
13
<h1>GNU Libtool and the missing <code>.so</code> extension</h1>
 
14
<p>
 
15
GNU Libtool supports an extremely wide variety of different platforms,
 
16
some of which do not use the <code>.so</code> extension for shared
 
17
libraries you might be used to on the Linux platform.
 
18
</p>
 
19
 
 
20
<p>
 
21
The decision as to which extension is correct for your system is made
 
22
during your package's <code>configure</code> script during the
 
23
<code>AC_PROG_LIBTOOL</code> macro.  The correct result for Debian
 
24
systems is always &ldquo;<code>.so</code>&rdquo;.
 
25
</p>
 
26
 
 
27
<p>
 
28
If you've been directed to read this page then this isn't being
 
29
correctly chosen, and most likely no shared extension has been
 
30
chosen at all.
 
31
</p>
 
32
 
 
33
<p>
 
34
This is almost certainly not caused by incorrect detection of your
 
35
system, but by a bad update of the Libtool code within your package.
 
36
The <code>AC_PROG_LIBTOOL</code> macro is responsible for detecting
 
37
your system and generating a working <code>libtool</code> script for it.
 
38
It does this by attaching blocks of variables to the top and bottom of
 
39
the <code>ltmain.sh</code> file in your source package.
 
40
</p>
 
41
 
 
42
<p>
 
43
The <code>ltmain.sh</code> file is placed there and updated using the
 
44
<code>libtoolize</code> tool in the Libtool package.  However, the
 
45
<code>AC_PROG_LIBTOOL</code> macro code doesn't get updated with this
 
46
tool.  It's contained in the <code>libtool.m4</code> file in your
 
47
<code>/usr/share/aclocal</code> directory; <code>aclocal</code>,
 
48
a tool that comes with GNU Automake, identifies all the macros your
 
49
<code>configure.in</code> file uses and concatenates all the files
 
50
together into the <code>aclocal.m4</code> in your source package which
 
51
is then used by the <code>autoconf</code> tool to generate your final
 
52
<code>configure</code> script.
 
53
</p>
 
54
 
 
55
<p>
 
56
If <code>ltmain.sh</code> is updated, but the required chain of steps
 
57
to update the <code>configure</code> script to use the
 
58
<code>AC_PROG_LIBTOOL</code> macro code from the same version are not
 
59
performed, problems can occur.  If the variable name <code>ltmain.sh</code>
 
60
expects is different from the one generated, the resulting
 
61
<code>libtool</code> script will not function correctly.
 
62
</p>
 
63
 
 
64
<p>
 
65
The most common visible effect of this mismatch is that your shared
 
66
libraries will be generated without the correct file extension.
 
67
</p>
 
68
 
 
69
<p>
 
70
In order to cure this problem for your package you will need to update
 
71
the version of Libtool it uses.  <a href="libtool-updating.html">This
 
72
document</a> explains how to do that.
 
73
</p>
 
74
 
 
75
<address>
 
76
Copyright &copy; 2004 Scott James Remnant &lt;<a href="mailto:scott@netsplit.com">scott@netsplit.com</a>&gt;.
 
77
<hr>
 
78
Permission is hereby granted, free of charge, to any person obtaining
 
79
a copy of this document (the
 
80
"Document"), to deal in the Document without restriction, including
 
81
without limitation the rights to use, copy, modify, merge, publish,
 
82
distribute, sublicense, and/or sell copies of the Document, and to
 
83
permit persons to whom the Document is furnished to do so, subject to
 
84
the following conditions:<br>
 
85
<br>
 
86
The above copyright notice and this permission notice shall be
 
87
included in all copies or substantial portions of the Document.<br>
 
88
<br>
 
89
THE DOCUMENT IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
90
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
91
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 
92
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
 
93
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
 
94
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 
95
WITH THE DOCUMENT OR THE USE OR OTHER DEALINGS IN THE DOCUMENT.
 
96
</address>
 
97
</body>
 
98
 
 
99
</html>