1 From nobody Wed Oct 14 16:45:01 1998
2 X-From-Line: ian@cygnus.com Fri Apr 17 23:33:18 1998
3 Return-Path: <ian@cygnus.com>
4 Delivered-To: gord@trick.profitpress.com
5 Received: (qmail 23427 invoked from network); 17 Apr 1998 23:33:17 -0000
6 Received: from unknown (HELO bambam.m-tech.ab.ca) (127.0.0.1)
7 by 127.0.0.1 with SMTP; 17 Apr 1998 23:33:17 -0000
8 Received: from tweedledumb.cygnus.com (gateway.m-tech.ab.ca [10.0.0.1]) by bambam.m-tech.ab.ca (8.8.5/8.6.9) with ESMTP id OAA06912 for <gord@profitpress.com>; Fri, 17 Apr 1998 14:17:39 -0600
9 Received: from subrogation.cygnus.com (subrogation.cygnus.com [192.80.44.76])
10 by tweedledumb.cygnus.com (8.8.5/8.8.5) with ESMTP id QAA18613;
11 Fri, 17 Apr 1998 16:18:12 -0400 (EDT)
12 Received: (ian@localhost) by subrogation.cygnus.com (950413.SGI.8.6.12/8.6.4) id QAA08387; Fri, 17 Apr 1998 16:18:11 -0400
13 Date: Fri, 17 Apr 1998 16:18:11 -0400
14 Message-Id: <199804172018.QAA08387@subrogation.cygnus.com>
15 From: Ian Lance Taylor <ian@cygnus.com>
16 To: gord@profitpress.com
17 CC: bug-libtool@gnu.org
18 In-reply-to: <86k98oh6fy.fsf@trick.profitpress.com> (message from Gordon
19 Matzigkeit on 17 Apr 1998 08:24:33 -0600)
20 Subject: Re: libtool on cygwin32
21 Xref: trick.profitpress.com mail.libtool:1335
23 X-Gnus-Article-Number: 2 Mon Nov 2 17:17:55 1998
25 From: Gordon Matzigkeit <gord@profitpress.com>
26 Date: 17 Apr 1998 08:24:33 -0600
28 >>>>> Ian Lance Taylor writes:
32 ILT> So, my choices are to use -no-undefined -lbfd everywhere, or to
33 ILT> use it only on Windows.
35 Would `-avoid-deps' (a proposed flag) give you what you want?
37 default = record inter-library dependencies on all platforms, if
40 -no-undefined = the dependency info provided is complete. Build
41 shared libraries on AIX and windows.
43 -avoid-deps = implies `-no-undefined'. However, avoid recording
44 inter-library dependencies unless they are required for building a
47 Yes, that sounds like it will do what I need.
49 Somebody someday may want to record some library dependencies but not
50 others, in which case you would want
51 -avoid-deps -lfoo -no-avoid-deps -lbar
55 From nobody Wed Oct 14 16:45:40 1998
56 X-From-Line: ian@cygnus.com Mon Apr 27 16:24:19 1998
57 Return-Path: <ian@cygnus.com>
58 Delivered-To: gord@trick.profitpress.com
59 Received: (qmail 136 invoked from network); 27 Apr 1998 16:24:18 -0000
60 Received: from unknown (HELO bambam.m-tech.ab.ca) (127.0.0.1)
61 by localhost with SMTP; 27 Apr 1998 16:24:18 -0000
62 Received: from tweedledumb.cygnus.com (gateway.m-tech.ab.ca [10.0.0.1]) by bambam.m-tech.ab.ca (8.8.5/8.6.9) with ESMTP id JAA21924 for <gord@m-tech.ab.ca>; Mon, 27 Apr 1998 09:42:43 -0600
63 Received: from subrogation.cygnus.com (subrogation.cygnus.com [192.80.44.76])
64 by tweedledumb.cygnus.com (8.8.5/8.8.5) with ESMTP id LAA02934;
65 Mon, 27 Apr 1998 11:48:04 -0400 (EDT)
66 Received: (ian@localhost) by subrogation.cygnus.com (950413.SGI.8.6.12/8.6.4) id LAA01776; Mon, 27 Apr 1998 11:48:03 -0400
67 Date: Mon, 27 Apr 1998 11:48:03 -0400
68 Message-Id: <199804271548.LAA01776@subrogation.cygnus.com>
69 From: Ian Lance Taylor <ian@cygnus.com>
71 CC: robbe@orcus.priv.at, bug-libtool@gnu.org
72 In-reply-to: <86bttpvbqd.fsf@trick.profitpress.com> (message from Gordon
73 Matzigkeit on 25 Apr 1998 15:21:30 -0600)
74 Subject: Re: libtool 1.2: Why no inter-lib dependencies on ELF?
75 Xref: trick.profitpress.com mail.libtool:1388
77 X-Gnus-Article-Number: 3 Mon Nov 2 17:17:55 1998
79 From: Gordon Matzigkeit <gord@m-tech.ab.ca>
80 Date: 25 Apr 1998 15:21:30 -0600
82 There are still some unresolved issues (see
83 http://www.profitpress.com/libtool/deplibs.html). Full inter-library
84 dependency support is scheduled for libtool 1.3, though, and should
85 appear in the next beta-testing release.
87 I read that page, and here are a few quick notes.
89 1) On any platform which does not require -fpic you can link
90 static libraries into shared libraries. These platforms include
91 AIX, Irix 5/6, and Windows.
93 2) On any functioning ELF platform you can include code which was not
94 compiled with -fpic in a shared library, and you can link with a
95 static library when creating a shared library. You say that Solaris
96 won't let you link a shared library against a static one, but it
97 appears to work for me. What type of test are you using?
99 3) On SunOS you can not correctly link a static library into a shared
100 library. It will mostly work, but I believe that certain operations,
101 such as overriding a shared library function in the main executable,
106 From nobody Wed Oct 14 16:48:43 1998
107 X-From-Line: gord@gnu.org Thu Sep 10 04:39:20 1998
108 Return-Path: <gord@gnu.org>
109 Delivered-To: gord@trick.fig.org
110 Received: (qmail 30644 invoked from network); 10 Sep 1998 04:39:18 -0000
111 Received: from gen2-93ip34.cadvision.com (HELO bambam.m-tech.ab.ca) (209.91.93.34)
112 by cs366707-a.cgmo1.ab.wave.home.com with SMTP; 10 Sep 1998 04:39:18 -0000
113 Received: from mescaline.gnu.org (gateway [10.0.0.1]) by bambam.m-tech.ab.ca (8.8.5/8.6.9) with ESMTP id WAA26741 for <gord@m-tech.ab.ca>; Wed, 9 Sep 1998 22:38:15 -0600
114 Received: from mailhost.cyberramp.net (root@mailhost.cyberramp.net [207.158.64.11]) by mescaline.gnu.org (8.8.5/8.6.12GNU) with ESMTP id AAA11165 for <bug-libtool@gnu.org>; Thu, 10 Sep 1998 00:38:17 -0400
115 Received: from fuzzylog.simple.dallas.tx.us (dal-tsa11-49.cyberramp.net [207.158.111.49])
116 by mailhost.cyberramp.net (8.9.1a/8.9.1/ler-980825-0832-PM) with ESMTP id XAA13581;
117 Wed, 9 Sep 1998 23:37:41 -0500 (CDT)
118 Received: from scooby (scooby [192.168.1.3])
119 by fuzzylog.simple.dallas.tx.us (8.8.8/8.8.8) with SMTP id XAA27692;
120 Wed, 9 Sep 1998 23:37:38 -0500 (CDT)
121 Date: Wed, 9 Sep 1998 23:37:38 -0500 (CDT)
122 From: Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
123 To: Libtool Bugs <bug-libtool@gnu.org>
124 Subject: Late-binding looses space efficiency ...
125 Message-ID: <Pine.SO4.4.02.9809092322490.808-100000@scooby.simple.dallas.tx.us>
127 Content-Type: TEXT/PLAIN; charset=US-ASCII
128 Xref: trick.fig.org libtool:1605
130 X-Gnus-Article-Number: 4 Mon Nov 2 17:17:55 1998
132 On most systems, libtool does not supply the dependency libraries (-llib) when
133 it creates the shared library in spite of these being supplied on the libtool
134 command line. The ImageMagick package uses quite a few dependency libraries.
135 The ImageMagick library uses these libraries directly but utilities built
136 using the ImageMagick library only link against these libraries because the
137 ImageMagick library demands it.
139 Through testing we have found that if the 'ltconfig' archive_cmds definition
140 is ammended to include $deplibs that linked programs become much smaller (1/3
141 to 1/4 the original size). This appears to be because more code is included
142 in the shared library itself, avoiding the need for this to be part of the
145 The distributed 'ltconfig' only supplies $deplibs for systems matching osf3* |
146 osf4*. Is there a reason why $deplibs is not supplied for all systems that can
147 support inter-library dependencies? Reducing overall package size is highly
148 desireable in order to reduce disk-space consumption and binary distribution
154 ======================================
156 bfriesen@simple.dallas.tx.us
157 http://www.cyberramp.net/~bfriesen
159 From nobody Wed Oct 14 16:52:40 1998
160 X-From-Line: ddj@hks.net Thu Sep 17 21:29:13 1998
161 Return-Path: <ddj@hks.net>
162 Delivered-To: gord@trick.fig.org
163 Received: (qmail 22994 invoked by uid 1003); 17 Sep 1998 21:29:12 -0000
164 Delivered-To: jana-profitpress-gord@profitpress.com
165 Received: (qmail 22991 invoked from network); 17 Sep 1998 21:29:11 -0000
166 Received: from dali.hks.net (ddj@208.203.175.210)
167 by cs366707-a.cgmo1.ab.wave.home.com with SMTP; 17 Sep 1998 21:29:11 -0000
168 Received: (from ddj@localhost)
169 by dali.hks.net (8.8.5/8.8.5) id RAA04020;
170 Thu, 17 Sep 1998 17:26:28 -0400
171 Received: from BatMail.robin.v2.15.CUILIB.3.45.SNAP.NOT.LINKED.dali..none..ix86.Linux
172 via MS.5.6.dali.(none).ix86_Linux;
173 Thu, 17 Sep 1998 17:26:27 -0400 (EDT)
174 Message-ID: <oq0Lu3Jz000185PkIG@hks.net>
175 Date: Thu, 17 Sep 1998 17:26:27 -0400 (EDT)
176 From: Doug DeJulio <ddj@hks.net>
177 To: gord@profitpress.com
178 Subject: Re: Libtool Inter-library Dependencies
179 Xref: trick.fig.org libtool:1611
181 X-Gnus-Article-Number: 5 Mon Nov 2 17:17:55 1998
183 I read your discussion of why libtool can't handle inter-library
184 dependencies and how people might be able to help fix this. I found
185 an error in item #1 of "The Solution". I quote:
187 > Finally, there are some systems which won't even allow you to link a
188 > shared library against a static one:
191 This is only true in most cases. If all of the accessed individual
192 object files in the static library *could* have been put in a shared
193 library, things will work just fine. It's not the type of library
194 that matters, but the type of object files.
196 Our commercial product includes a library and a few
197 dynamically-loadable modules that make that library accessible to
198 various interpretetd languages (TCL, Perl, PHP3 and Python at the
199 moment, with more coming). We don't distribute a shared library
200 anymore because when we did this caused a ton of trouble (most people
201 just couldn't get it configured correctly). I haven't yet found a
202 platform on which linking dynamically-loadable object file against a
203 static "ar" archive containing relocatable object files causes any
204 trouble (and we support SCO, Digital Unix, SCO, Solaris, Linux, and
205 FreeBSD, so this isn't because of narrow experience).
207 So, the main point is that just deciding whether it'll work based on
208 looking at the library file will in some cases fail when it should
209 have succeeded (and the software we sell is such a case).
212 Doug DeJulio | mailto:ddj@hks.net
213 HKS, Incorporated | http://www.hks.net/
215 From gord@trick.fig.org Wed Nov 4 16:50 EDT 1998
216 Received: from grande.dcc.unicamp.br (grande.dcc.unicamp.br [143.106.7.8])
217 by amazonas.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id QAA12687
218 for <oliva@amazonas.dcc.unicamp.br>; Wed, 4 Nov 1998 16:50:18 -0200 (EDT)
219 Received: from cabler.cableregina.com (ip2.net20483142.cr.sk.ca [204.83.142.2])
220 by grande.dcc.unicamp.br (8.8.5/8.8.5) with SMTP id QAA03463
221 for <oliva@dcc.unicamp.br>; Wed, 4 Nov 1998 16:50:12 -0200 (EDT)
222 Received: from [24.72.10.223] by cabler.cableregina.com
223 (SMTPD32-4.0) id A25C7D0074; Wed, 04 Nov 1998 12:52:12 -0600
224 Received: (qmail 1392 invoked by uid 1001); 4 Nov 1998 18:51:16 -0000
225 To: "Gary V. Vaughan" <gvaughan@oranda.demon.co.uk>
226 Cc: Ian Lance Taylor <ian@cygnus.com>, tanner@gmx.de, oliva@dcc.unicamp.br,
228 Subject: Re: Inter-library dependencies in libtool
229 References: <199811040125.UAA01678@subrogation.cygnus.com> <3640381C.725FC8F2@oranda.demon.co.uk>
231 Mime-Version: 1.0 (generated by tm-edit 7.106)
232 From: Gordon Matzigkeit <gord@trick.fig.org>
233 Date: 04 Nov 1998 12:51:11 -0600
234 In-Reply-To: "Gary V. Vaughan"'s message of Wed, 04 Nov 1998 11:18:52 +0000
235 Message-ID: <86af27qokg.fsf@trick.fig.org>
236 X-Mailer: Gnus v5.5/Emacs 20.2
237 Content-Type: text/plain; charset=US-ASCII
238 X-Content-Length: 2911
239 Xref: araguaia.dcc.unicamp.br libtool-deplibs:6
241 X-Gnus-Article-Number: 6 Thu Nov 5 08:41:15 1998
245 >>>>> Gary V Vaughan writes:
247 GVV> Ian Lance Taylor wrote:
249 >> This kind of goes to the heart of libtool. libtool wants to
250 >> present a particular interface for using shared libraries.
252 GVV> Is that an "official" design goal?
254 Yes. From the manual:
256 1. The system must be as elegant as possible.
258 The main power of libtool is that it blurs the distinction between
259 static archives (`.a' files) and shared libraries, by providing an
260 interface that unifies the two into a new beast, the `.la' file. This
261 is the reason why libtool caught on: you can write Makefile rules that
262 work for both shared and static libraries.
264 >> In order to do this, it assumes that the system supports certain
265 >> capabilities. One of those is that the system can support
266 >> undefined symbols in shared libraries.
268 To add to this point: or the system can link shared libraries against
269 one another (deplibs).
271 GVV> My understanding was that libtool wants to provide a single
272 GVV> interface for the building of shared libraries, particularly so
273 GVV> that a developer can use libtool in a Makefile (*without* all of
274 GVV> the system dependant rules that used to me necessary) and get
275 GVV> shared libraries on all of libtool's supported platforms using
276 GVV> the same build rules.
278 Both your understandings are correct.
280 >> That means that on systems which do not permit shared libraries to
281 >> have undefined symbols--AIX and Windows--libtool doesn't really
284 I would state this somewhat differently: on those platforms, libtool
285 works (it can still build static libraries), but it doesn't shine.
287 >> [[snip]] In other words, the interface which libtool presents is
288 >> deficient. It does not successfully hide the system on which it
289 >> is running, and it forces the code which calls libtool to make
294 I believe the correct way to solve this problem is to.... (drum roll)
295 use inter-library dependencies!
297 If `deplibs' is set, then the library has undefined symbols. If it
298 isn't set, then we could assume it has no undefined symbols.
300 So, using `-lanything' on the .la creation line would be a synonym for
301 `-allow-undefined', and having no `-l' flags would be a synonym for
304 >> Of course even that will not make Windows DLLs identical to ELF
305 >> shared libraries. ELF shared libraries permit the main program to
306 >> override a symbol in the shared library, and Windows DLLs do not.
308 I'd just as soon cross that bridge when we come to it, unless you have
309 any real-world examples that demand more control over whether or not
312 In any event, this is more incentive for Thomas Tanner's patches to
313 restrict the symbol table, so that people don't get bitten by
316 Thanks for your comments,
319 Gordon Matzigkeit <gord@fig.org> //\ I'm a FIG (http://www.fig.org/)
320 Lovers of freedom, unite! \// I use GNU (http://www.gnu.org/)
322 From ian@cygnus.com Wed Nov 4 17:16 EDT 1998
323 Received: from grande.dcc.unicamp.br (grande.dcc.unicamp.br [143.106.7.8])
324 by amazonas.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id RAA17371
325 for <oliva@amazonas.dcc.unicamp.br>; Wed, 4 Nov 1998 17:15:59 -0200 (EDT)
326 Received: from tweedledumb.cygnus.com (tweedledumb.cygnus.com [192.80.44.1])
327 by grande.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id RAA04425
328 for <oliva@dcc.unicamp.br>; Wed, 4 Nov 1998 17:15:45 -0200 (EDT)
329 Received: from subrogation.cygnus.com (subrogation.cygnus.com [192.80.44.76])
330 by tweedledumb.cygnus.com (8.8.5/8.8.5) with ESMTP id OAA16598;
331 Wed, 4 Nov 1998 14:17:48 -0500 (EST)
332 Received: (ian@localhost) by subrogation.cygnus.com (950413.SGI.8.6.12/8.6.4) id OAA02450; Wed, 4 Nov 1998 14:17:48 -0500
333 Date: Wed, 4 Nov 1998 14:17:48 -0500
334 Message-Id: <199811041917.OAA02450@subrogation.cygnus.com>
335 From: Ian Lance Taylor <ian@cygnus.com>
336 To: gord@trick.fig.org
337 CC: gvaughan@oranda.demon.co.uk, tanner@gmx.de, oliva@dcc.unicamp.br,
339 In-reply-to: <86af27qokg.fsf@trick.fig.org> (message from Gordon Matzigkeit on
340 04 Nov 1998 12:51:11 -0600)
341 Subject: Re: Inter-library dependencies in libtool
342 X-Content-Length: 1774
343 Xref: araguaia.dcc.unicamp.br libtool-deplibs:7
345 X-Gnus-Article-Number: 7 Thu Nov 5 08:41:16 1998
347 From: Gordon Matzigkeit <gord@trick.fig.org>
348 Date: 04 Nov 1998 12:51:11 -0600
350 I believe the correct way to solve this problem is to.... (drum roll)
351 use inter-library dependencies!
353 If `deplibs' is set, then the library has undefined symbols. If it
354 isn't set, then we could assume it has no undefined symbols.
356 So, using `-lanything' on the .la creation line would be a synonym for
357 `-allow-undefined', and having no `-l' flags would be a synonym for
360 This sounds reasonable. Of course, -allow-undefined should remain a
361 possible option even if there are no -l options. I guess
362 -no-undefined could be an error check, but it wouldn't have much
365 >> Of course even that will not make Windows DLLs identical to ELF
366 >> shared libraries. ELF shared libraries permit the main program to
367 >> override a symbol in the shared library, and Windows DLLs do not.
369 I'd just as soon cross that bridge when we come to it, unless you have
370 any real-world examples that demand more control over whether or not
373 In any event, this is more incentive for Thomas Tanner's patches to
374 restrict the symbol table, so that people don't get bitten by
377 What I'm talking about is not namespace clashes, but rather the
378 ability to override a particular function from a shared library. For
379 example, I can write my own version of malloc and free, and libc.so on
380 an ELF system will use them rather than the malloc and free linked
383 I don't think there is anything libtool can do about this. It's
384 something that is very useful when dealing with preexisting shared
385 libraries, but is not particularly useful when dealing with shared
386 libraries you build yourself.
390 From gord@mescaline.gnu.org Thu Nov 5 15:32 EDT 1998
391 Received: from grande.dcc.unicamp.br (grande.dcc.unicamp.br [143.106.7.8])
392 by amazonas.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id PAA10607
393 for <oliva@amazonas.dcc.unicamp.br>; Thu, 5 Nov 1998 15:32:00 -0200 (EDT)
394 Received: from mescaline.gnu.org (mescaline.gnu.org [158.121.106.21])
395 by grande.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id PAA22399
396 for <oliva@dcc.unicamp.br>; Thu, 5 Nov 1998 15:31:57 -0200 (EDT)
397 Received: from hades.aethos.co.uk (hades.aethos.co.uk [195.171.18.1] (may be forged))
398 by mescaline.gnu.org (8.9.1a/8.9.1) with ESMTP id MAA01615
399 for <bug-libtool@gnu.org>; Thu, 5 Nov 1998 12:37:11 -0500
400 Received: from zeus.aethos.co.uk (zeus.aethos.co.uk [193.164.192.100])
401 by hades.aethos.co.uk (8.8.5/8.8.5) with ESMTP id RAA28242;
402 Thu, 5 Nov 1998 17:37:46 GMT
403 Received: from oranda.demon.co.uk (samhain.aethos.co.uk [193.164.192.38]) by zeus.aethos.co.uk with ESMTP (8.7.1/8.7.1) id RAA03467; Thu, 5 Nov 1998 17:33:25 GMT
404 Message-ID: <3641E0DF.A8F92E78@oranda.demon.co.uk>
405 Date: Thu, 05 Nov 1998 17:31:11 +0000
406 From: "Gary V. Vaughan" <gvaughan@oranda.demon.co.uk>
407 Organization: Aethos Communication Systems ltd.
408 X-Mailer: Mozilla 4.5 [en] (WinNT; I)
409 X-Accept-Language: en
411 To: Alexandre Oliva <oliva@dcc.unicamp.br>
412 CC: Ian Lance Taylor <ian@cygnus.com>, tanner@gmx.de, gord@trick.fig.org,
414 Subject: Re: Inter-library dependencies in libtool
415 References: <199811041854.NAA02418@subrogation.cygnus.com> <364183EF.9F15E7D6@oranda.demon.co.uk> <orhfweny1t.fsf@araguaia.dcc.unicamp.br>
416 Content-Transfer-Encoding: 7bit
417 Content-Type: text/plain; charset=us-ascii
418 X-Content-Length: 3787
419 Xref: araguaia.dcc.unicamp.br libtool-deplibs:8
421 X-Gnus-Article-Number: 8 Sat Nov 7 05:46:44 1998
423 If I may be permitted to quote you gratuitously... I think there are two
424 problems here, and solving the first will keep most people happy most of
427 In order of progressive difficulty...
429 1. COMPILE TIME LTLIBRARIES
430 ***************************
432 Alexandre Oliva wrote:
434 > [[1.1]] the programmer knows that his library is completely
435 > self-contained, it does not depend on any external symbols
438 1.2) The link mode command line to libtool contains no -l options,
439 which implies your fallback method (try to link a shared library
440 as if `-no-undefined' had been specified, or if that fails build
441 only a static library).
443 1.3) The programmer knows that resolving all of the symbols in his
444 library requires linking deplibs, and is able to specify all of
445 them on the link line (some if these may be installed .la files
446 which have deplibs of their own which libtool must also link
449 > [[1.4]] the programmer knows that there may be symbols in his library
450 > that are going to be supplied by another library, which [[is]]
451 > unknown in advance. If such dependencies exist, they have to
452 > be resolved at program-linking time (-allow-undefined == default)
454 In the future maybe libtool will be able to do a two stage link
455 for platforms which can't do `-allow-undefined', the first link
456 to find which symbols are unresolved, the second against a
457 temporarily generated set of stubs... I'm not sure whether the
458 stage 2 lib can then resolve its stubbed functions against a
459 different library when it is subsequently linked into an
460 executable? Perhaps I am reiterating Ian's idea about stubbing
463 In the present, broken platforms will have to manage with static
464 libraries in this case.
466 2. RUNTIME LTLIBRARIES
467 **********************
469 > [[2.1]] the programmer needs a library foo that is completely
470 > self-contained, so that he can be sure that dlopen(foo) works,
471 > and just adding -lfoo *after* the library is installed will be
472 > fine (-self-contained ?)
474 2.2) The programmer needs a library that can be dlopened, but which
475 can have all of its symbols resolved at link time with deplibs.
476 A small amount of magic in the form a .c and .h distributed with
477 libtool (as suggested by Gord) is enough to make sure deplibs
478 are dlopened if necessary and then the library itself is loaded.
479 At best, this will only be supported on platforms for which
480 libtool can generate shared libraries, perhaps only a (large)
483 2.3) The programmer needs a library that can be dlopened, and
484 doesn't know at link time how all of the symbols will be resolved.
485 A (small) subset of the platforms for which libtool can generate
486 shared libraries, will be handled by the aforementioned magic.
487 For the unhandled cases dld will be required.
489 > [[2.4]] although a library is not going to be self-contained,
490 > [[snip]] the platform does not support libraries with undefined
491 > symbols, a shared library is badly needed, [[This will]] require
494 NOTE: in the above, I am assuming that
495 all-supported-platforms >= (large) >= (small) > no-platforms
497 I don't see any need to add anymore command line switches, except
498 perhaps to tell libtool whether this is a compile time or runtime
499 library, but even that may prove unnecessary.
501 The line between 1.3 and 1.4 could probably use some clarification; what
502 if the link line includes several deplibs, but some symbols are
503 still unresolved? 1.4? Maybe... what if the platform doesn't support
504 `-no-undefined'? Perhaps there is a 1.3.5? In any case, for maximum
505 portability, we want to keep the number of cases of 1.4 to a minimum.
510 From wmperry@aventail.com Sun Nov 1 01:03 EDT 1998
511 Received: from grande.dcc.unicamp.br (grande.dcc.unicamp.br [143.106.7.8])
512 by amazonas.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id BAA29973
513 for <oliva@amazonas.dcc.unicamp.br>; Sun, 1 Nov 1998 01:03:04 -0200 (EDT)
514 Received: from slow.bp.aventail.com (vina05.cntwk.net [207.205.120.131])
515 by grande.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id BAA10397
516 for <oliva@dcc.unicamp.br>; Sun, 1 Nov 1998 01:02:59 -0200 (EDT)
517 Received: from kramer-fast.bp.aventail.com (kramer-fast.bp.aventail.com [192.168.200.2])
518 by slow.bp.aventail.com (8.8.5/8.8.5) with ESMTP id SAA31093;
519 Sat, 31 Oct 1998 18:03:52 -0800
520 Received: (from wmperry@localhost)
521 by kramer-fast.bp.aventail.com (8.8.5/8.8.5) id WAA21542;
522 Sat, 31 Oct 1998 22:04:49 -0500
523 Sender: wmperry@aventail.com
524 To: Gordon Matzigkeit <gord@trick.fig.org>
525 Cc: Alexandre Oliva <oliva@dcc.unicamp.br>
526 Subject: Re: libtool 1.2 problems...
527 References: <199810251708.MAA02237@kramer-fast.bp.aventail.com> <oryapxaste.fsf@araguaia.dcc.unicamp.br> <86zpac2z99.fsf@trick.fig.org>
528 Errors-to: wmperry@aventail.com
529 Reply-to: wmperry@aventail.com
530 X-Face: O~Rn;(l][/-o1sALg4A@xpE:9-"'IR[%;,,!m7</SYF`{vYQ(&RI1&EiH[FvT;J}@f!4kfz
531 x_!Y#=y{Uuj9GvUi=cPuajQ(Z42R[wE@{G,sn$qGr5g/wnb*"*ktI+,CD}1Z'wxrM2ag-r0p5I6\nA
533 Mime-Version: 1.0 (generated by tm-edit 7.108)
534 From: wmperry@aventail.com (William M. Perry)
535 Date: 31 Oct 1998 22:04:49 -0500
536 In-Reply-To: Gordon Matzigkeit's message of "31 Oct 1998 15:32:50 -0600"
537 Message-ID: <867lxgazam.fsf@kramer-fast.bp.aventail.com>
538 X-Mailer: Gnus v5.6.8/XEmacs 21.0 - "Pyrenean-pre6"
539 Content-Type: text/plain; charset=US-ASCII
540 X-Content-Length: 2306
541 Xref: araguaia.dcc.unicamp.br libtool-deplibs:9
543 X-Gnus-Article-Number: 9 Fri Nov 20 23:23:12 1998
545 Gordon Matzigkeit <gord@trick.fig.org> writes:
547 > >>>>> Alexandre Oliva writes:
549 > AO> I can understand why we'd want all that stuff on systems with
550 > AO> brain-damaged dynamic linkers or such, but on Linux? Gord?
552 > No specific reason. I was trying to implement something that would
553 > work on all platforms, including Linux.
555 > >> I think optionally having a PUBLIC_API preprocessor macro or
556 > >> something might be handy.
558 > AO> Thomas Tanner has recently submitted a patch that implements
559 > AO> that, I think. I still couldn't find the time to look carefully
560 > AO> at the patch, but, from the text description, it looks like
561 > AO> that's exactly what it does.
563 > I think it's a good idea to be able to specify global symbols
564 > explicitly. That's part of the glibc versioning system that I was
565 > alluding to earlier.
567 > If you look at the `--version-script' option to GNU ld
568 > ((ld.info)Version Script.), then you'll see more details.
570 To restrict globally visible symbols, here's the info I've got. :) i've
571 been using this for quite a while in our server product. All hail the
574 Linux: '--retain-symbols-file <FILENAME>' , with all the symbols you want
575 exported in <FILENAME>
577 OSF1: '-hidden -exported_symbol "symname-or-wildcardspec"'
579 AIX: you just restrict what you but in the export list you pass to
582 HP/UX: '+e symname' on the link line for each exported symbol you want
584 Solaris: create a map file for the linker that looks like:
594 And use -M <MAPFILE> on the link line.
596 BSD/OS 3.x is the only system I couldn't find a way to support this symbol
597 hiding on. But you might be able to do it better with BSD/OS 4.x now that
598 they have finally moved to elf.
600 BTW: What are the subscription directions for libtool-bugs or a general
601 discussion list for stuff like this? I've had lots of experience over the
602 last 3 years with dynamic loading on various platforms, and would love to
603 get libtool to the point where I could use it for all of our products here
604 at aventail. Less stuff for me to officially maintain. :)
606 I'd also like to see DLD 4.x eventually so that I can just support it and
607 ditch all the crufty junk we are using right now. :) Abstraction good.