/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 Development/packaging/general/linking/libtool-missing_so.html

  • Committer: Suren A. Chilingaryan
  • Date: 2017-04-03 02:45:17 UTC
  • Revision ID: csa@suren.me-20170403024517-dwzj0z0k1cmhxm7u
Restructuring, OpenShift, Ansible, Git

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>