libtool/mail/deplibs

611 lines
26 KiB
Plaintext

From nobody Wed Oct 14 16:45:01 1998
X-From-Line: ian@cygnus.com Fri Apr 17 23:33:18 1998
Return-Path: <ian@cygnus.com>
Delivered-To: gord@trick.profitpress.com
Received: (qmail 23427 invoked from network); 17 Apr 1998 23:33:17 -0000
Received: from unknown (HELO bambam.m-tech.ab.ca) (127.0.0.1)
by 127.0.0.1 with SMTP; 17 Apr 1998 23:33:17 -0000
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
Received: from subrogation.cygnus.com (subrogation.cygnus.com [192.80.44.76])
by tweedledumb.cygnus.com (8.8.5/8.8.5) with ESMTP id QAA18613;
Fri, 17 Apr 1998 16:18:12 -0400 (EDT)
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
Date: Fri, 17 Apr 1998 16:18:11 -0400
Message-Id: <199804172018.QAA08387@subrogation.cygnus.com>
From: Ian Lance Taylor <ian@cygnus.com>
To: gord@profitpress.com
CC: bug-libtool@gnu.org
In-reply-to: <86k98oh6fy.fsf@trick.profitpress.com> (message from Gordon
Matzigkeit on 17 Apr 1998 08:24:33 -0600)
Subject: Re: libtool on cygwin32
Xref: trick.profitpress.com mail.libtool:1335
Lines: 30
X-Gnus-Article-Number: 2 Mon Nov 2 17:17:55 1998
From: Gordon Matzigkeit <gord@profitpress.com>
Date: 17 Apr 1998 08:24:33 -0600
>>>>> Ian Lance Taylor writes:
[...]
ILT> So, my choices are to use -no-undefined -lbfd everywhere, or to
ILT> use it only on Windows.
Would `-avoid-deps' (a proposed flag) give you what you want?
default = record inter-library dependencies on all platforms, if
possible.
-no-undefined = the dependency info provided is complete. Build
shared libraries on AIX and windows.
-avoid-deps = implies `-no-undefined'. However, avoid recording
inter-library dependencies unless they are required for building a
shared library.
Yes, that sounds like it will do what I need.
Somebody someday may want to record some library dependencies but not
others, in which case you would want
-avoid-deps -lfoo -no-avoid-deps -lbar
Ian
From nobody Wed Oct 14 16:45:40 1998
X-From-Line: ian@cygnus.com Mon Apr 27 16:24:19 1998
Return-Path: <ian@cygnus.com>
Delivered-To: gord@trick.profitpress.com
Received: (qmail 136 invoked from network); 27 Apr 1998 16:24:18 -0000
Received: from unknown (HELO bambam.m-tech.ab.ca) (127.0.0.1)
by localhost with SMTP; 27 Apr 1998 16:24:18 -0000
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
Received: from subrogation.cygnus.com (subrogation.cygnus.com [192.80.44.76])
by tweedledumb.cygnus.com (8.8.5/8.8.5) with ESMTP id LAA02934;
Mon, 27 Apr 1998 11:48:04 -0400 (EDT)
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
Date: Mon, 27 Apr 1998 11:48:03 -0400
Message-Id: <199804271548.LAA01776@subrogation.cygnus.com>
From: Ian Lance Taylor <ian@cygnus.com>
To: gord@m-tech.ab.ca
CC: robbe@orcus.priv.at, bug-libtool@gnu.org
In-reply-to: <86bttpvbqd.fsf@trick.profitpress.com> (message from Gordon
Matzigkeit on 25 Apr 1998 15:21:30 -0600)
Subject: Re: libtool 1.2: Why no inter-lib dependencies on ELF?
Xref: trick.profitpress.com mail.libtool:1388
Lines: 27
X-Gnus-Article-Number: 3 Mon Nov 2 17:17:55 1998
From: Gordon Matzigkeit <gord@m-tech.ab.ca>
Date: 25 Apr 1998 15:21:30 -0600
There are still some unresolved issues (see
http://www.profitpress.com/libtool/deplibs.html). Full inter-library
dependency support is scheduled for libtool 1.3, though, and should
appear in the next beta-testing release.
I read that page, and here are a few quick notes.
1) On any platform which does not require -fpic you can link
static libraries into shared libraries. These platforms include
AIX, Irix 5/6, and Windows.
2) On any functioning ELF platform you can include code which was not
compiled with -fpic in a shared library, and you can link with a
static library when creating a shared library. You say that Solaris
won't let you link a shared library against a static one, but it
appears to work for me. What type of test are you using?
3) On SunOS you can not correctly link a static library into a shared
library. It will mostly work, but I believe that certain operations,
such as overriding a shared library function in the main executable,
will fail.
Ian
From nobody Wed Oct 14 16:48:43 1998
X-From-Line: gord@gnu.org Thu Sep 10 04:39:20 1998
Return-Path: <gord@gnu.org>
Delivered-To: gord@trick.fig.org
Received: (qmail 30644 invoked from network); 10 Sep 1998 04:39:18 -0000
Received: from gen2-93ip34.cadvision.com (HELO bambam.m-tech.ab.ca) (209.91.93.34)
by cs366707-a.cgmo1.ab.wave.home.com with SMTP; 10 Sep 1998 04:39:18 -0000
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
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
Received: from fuzzylog.simple.dallas.tx.us (dal-tsa11-49.cyberramp.net [207.158.111.49])
by mailhost.cyberramp.net (8.9.1a/8.9.1/ler-980825-0832-PM) with ESMTP id XAA13581;
Wed, 9 Sep 1998 23:37:41 -0500 (CDT)
Received: from scooby (scooby [192.168.1.3])
by fuzzylog.simple.dallas.tx.us (8.8.8/8.8.8) with SMTP id XAA27692;
Wed, 9 Sep 1998 23:37:38 -0500 (CDT)
Date: Wed, 9 Sep 1998 23:37:38 -0500 (CDT)
From: Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
To: Libtool Bugs <bug-libtool@gnu.org>
Subject: Late-binding looses space efficiency ...
Message-ID: <Pine.SO4.4.02.9809092322490.808-100000@scooby.simple.dallas.tx.us>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Xref: trick.fig.org libtool:1605
Lines: 27
X-Gnus-Article-Number: 4 Mon Nov 2 17:17:55 1998
On most systems, libtool does not supply the dependency libraries (-llib) when
it creates the shared library in spite of these being supplied on the libtool
command line. The ImageMagick package uses quite a few dependency libraries.
The ImageMagick library uses these libraries directly but utilities built
using the ImageMagick library only link against these libraries because the
ImageMagick library demands it.
Through testing we have found that if the 'ltconfig' archive_cmds definition
is ammended to include $deplibs that linked programs become much smaller (1/3
to 1/4 the original size). This appears to be because more code is included
in the shared library itself, avoiding the need for this to be part of the
program.
The distributed 'ltconfig' only supplies $deplibs for systems matching osf3* |
osf4*. Is there a reason why $deplibs is not supplied for all systems that can
support inter-library dependencies? Reducing overall package size is highly
desireable in order to reduce disk-space consumption and binary distribution
size.
Thanks,
Bob
======================================
Bob Friesenhahn
bfriesen@simple.dallas.tx.us
http://www.cyberramp.net/~bfriesen
From nobody Wed Oct 14 16:52:40 1998
X-From-Line: ddj@hks.net Thu Sep 17 21:29:13 1998
Return-Path: <ddj@hks.net>
Delivered-To: gord@trick.fig.org
Received: (qmail 22994 invoked by uid 1003); 17 Sep 1998 21:29:12 -0000
Delivered-To: jana-profitpress-gord@profitpress.com
Received: (qmail 22991 invoked from network); 17 Sep 1998 21:29:11 -0000
Received: from dali.hks.net (ddj@208.203.175.210)
by cs366707-a.cgmo1.ab.wave.home.com with SMTP; 17 Sep 1998 21:29:11 -0000
Received: (from ddj@localhost)
by dali.hks.net (8.8.5/8.8.5) id RAA04020;
Thu, 17 Sep 1998 17:26:28 -0400
Received: from BatMail.robin.v2.15.CUILIB.3.45.SNAP.NOT.LINKED.dali..none..ix86.Linux
via MS.5.6.dali.(none).ix86_Linux;
Thu, 17 Sep 1998 17:26:27 -0400 (EDT)
Message-ID: <oq0Lu3Jz000185PkIG@hks.net>
Date: Thu, 17 Sep 1998 17:26:27 -0400 (EDT)
From: Doug DeJulio <ddj@hks.net>
To: gord@profitpress.com
Subject: Re: Libtool Inter-library Dependencies
Xref: trick.fig.org libtool:1611
Lines: 32
X-Gnus-Article-Number: 5 Mon Nov 2 17:17:55 1998
I read your discussion of why libtool can't handle inter-library
dependencies and how people might be able to help fix this. I found
an error in item #1 of "The Solution". I quote:
> Finally, there are some systems which won't even allow you to link a
> shared library against a static one:
> Solaris 2.x
This is only true in most cases. If all of the accessed individual
object files in the static library *could* have been put in a shared
library, things will work just fine. It's not the type of library
that matters, but the type of object files.
Our commercial product includes a library and a few
dynamically-loadable modules that make that library accessible to
various interpretetd languages (TCL, Perl, PHP3 and Python at the
moment, with more coming). We don't distribute a shared library
anymore because when we did this caused a ton of trouble (most people
just couldn't get it configured correctly). I haven't yet found a
platform on which linking dynamically-loadable object file against a
static "ar" archive containing relocatable object files causes any
trouble (and we support SCO, Digital Unix, SCO, Solaris, Linux, and
FreeBSD, so this isn't because of narrow experience).
So, the main point is that just deciding whether it'll work based on
looking at the library file will in some cases fail when it should
have succeeded (and the software we sell is such a case).
--
Doug DeJulio | mailto:ddj@hks.net
HKS, Incorporated | http://www.hks.net/
From gord@trick.fig.org Wed Nov 4 16:50 EDT 1998
Received: from grande.dcc.unicamp.br (grande.dcc.unicamp.br [143.106.7.8])
by amazonas.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id QAA12687
for <oliva@amazonas.dcc.unicamp.br>; Wed, 4 Nov 1998 16:50:18 -0200 (EDT)
Received: from cabler.cableregina.com (ip2.net20483142.cr.sk.ca [204.83.142.2])
by grande.dcc.unicamp.br (8.8.5/8.8.5) with SMTP id QAA03463
for <oliva@dcc.unicamp.br>; Wed, 4 Nov 1998 16:50:12 -0200 (EDT)
Received: from [24.72.10.223] by cabler.cableregina.com
(SMTPD32-4.0) id A25C7D0074; Wed, 04 Nov 1998 12:52:12 -0600
Received: (qmail 1392 invoked by uid 1001); 4 Nov 1998 18:51:16 -0000
To: "Gary V. Vaughan" <gvaughan@oranda.demon.co.uk>
Cc: Ian Lance Taylor <ian@cygnus.com>, tanner@gmx.de, oliva@dcc.unicamp.br,
bug-libtool@gnu.org
Subject: Re: Inter-library dependencies in libtool
References: <199811040125.UAA01678@subrogation.cygnus.com> <3640381C.725FC8F2@oranda.demon.co.uk>
X-Attribution: Gord
Mime-Version: 1.0 (generated by tm-edit 7.106)
From: Gordon Matzigkeit <gord@trick.fig.org>
Date: 04 Nov 1998 12:51:11 -0600
In-Reply-To: "Gary V. Vaughan"'s message of Wed, 04 Nov 1998 11:18:52 +0000
Message-ID: <86af27qokg.fsf@trick.fig.org>
X-Mailer: Gnus v5.5/Emacs 20.2
Content-Type: text/plain; charset=US-ASCII
X-Content-Length: 2911
Xref: araguaia.dcc.unicamp.br libtool-deplibs:6
Lines: 80
X-Gnus-Article-Number: 6 Thu Nov 5 08:41:15 1998
Hi!
>>>>> Gary V Vaughan writes:
GVV> Ian Lance Taylor wrote:
>> This kind of goes to the heart of libtool. libtool wants to
>> present a particular interface for using shared libraries.
GVV> Is that an "official" design goal?
Yes. From the manual:
1. The system must be as elegant as possible.
The main power of libtool is that it blurs the distinction between
static archives (`.a' files) and shared libraries, by providing an
interface that unifies the two into a new beast, the `.la' file. This
is the reason why libtool caught on: you can write Makefile rules that
work for both shared and static libraries.
>> In order to do this, it assumes that the system supports certain
>> capabilities. One of those is that the system can support
>> undefined symbols in shared libraries.
To add to this point: or the system can link shared libraries against
one another (deplibs).
GVV> My understanding was that libtool wants to provide a single
GVV> interface for the building of shared libraries, particularly so
GVV> that a developer can use libtool in a Makefile (*without* all of
GVV> the system dependant rules that used to me necessary) and get
GVV> shared libraries on all of libtool's supported platforms using
GVV> the same build rules.
Both your understandings are correct.
>> That means that on systems which do not permit shared libraries to
>> have undefined symbols--AIX and Windows--libtool doesn't really
>> work.
I would state this somewhat differently: on those platforms, libtool
works (it can still build static libraries), but it doesn't shine.
>> [[snip]] In other words, the interface which libtool presents is
>> deficient. It does not successfully hide the system on which it
>> is running, and it forces the code which calls libtool to make
>> adjustments.
Exactly.
I believe the correct way to solve this problem is to.... (drum roll)
use inter-library dependencies!
If `deplibs' is set, then the library has undefined symbols. If it
isn't set, then we could assume it has no undefined symbols.
So, using `-lanything' on the .la creation line would be a synonym for
`-allow-undefined', and having no `-l' flags would be a synonym for
`-no-undefined'.
>> Of course even that will not make Windows DLLs identical to ELF
>> shared libraries. ELF shared libraries permit the main program to
>> override a symbol in the shared library, and Windows DLLs do not.
I'd just as soon cross that bridge when we come to it, unless you have
any real-world examples that demand more control over whether or not
DLLs are built.
In any event, this is more incentive for Thomas Tanner's patches to
restrict the symbol table, so that people don't get bitten by
namespace clashes.
Thanks for your comments,
--
Gordon Matzigkeit <gord@fig.org> //\ I'm a FIG (http://www.fig.org/)
Lovers of freedom, unite! \// I use GNU (http://www.gnu.org/)
From ian@cygnus.com Wed Nov 4 17:16 EDT 1998
Received: from grande.dcc.unicamp.br (grande.dcc.unicamp.br [143.106.7.8])
by amazonas.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id RAA17371
for <oliva@amazonas.dcc.unicamp.br>; Wed, 4 Nov 1998 17:15:59 -0200 (EDT)
Received: from tweedledumb.cygnus.com (tweedledumb.cygnus.com [192.80.44.1])
by grande.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id RAA04425
for <oliva@dcc.unicamp.br>; Wed, 4 Nov 1998 17:15:45 -0200 (EDT)
Received: from subrogation.cygnus.com (subrogation.cygnus.com [192.80.44.76])
by tweedledumb.cygnus.com (8.8.5/8.8.5) with ESMTP id OAA16598;
Wed, 4 Nov 1998 14:17:48 -0500 (EST)
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
Date: Wed, 4 Nov 1998 14:17:48 -0500
Message-Id: <199811041917.OAA02450@subrogation.cygnus.com>
From: Ian Lance Taylor <ian@cygnus.com>
To: gord@trick.fig.org
CC: gvaughan@oranda.demon.co.uk, tanner@gmx.de, oliva@dcc.unicamp.br,
bug-libtool@gnu.org
In-reply-to: <86af27qokg.fsf@trick.fig.org> (message from Gordon Matzigkeit on
04 Nov 1998 12:51:11 -0600)
Subject: Re: Inter-library dependencies in libtool
X-Content-Length: 1774
Xref: araguaia.dcc.unicamp.br libtool-deplibs:7
Lines: 43
X-Gnus-Article-Number: 7 Thu Nov 5 08:41:16 1998
From: Gordon Matzigkeit <gord@trick.fig.org>
Date: 04 Nov 1998 12:51:11 -0600
I believe the correct way to solve this problem is to.... (drum roll)
use inter-library dependencies!
If `deplibs' is set, then the library has undefined symbols. If it
isn't set, then we could assume it has no undefined symbols.
So, using `-lanything' on the .la creation line would be a synonym for
`-allow-undefined', and having no `-l' flags would be a synonym for
`-no-undefined'.
This sounds reasonable. Of course, -allow-undefined should remain a
possible option even if there are no -l options. I guess
-no-undefined could be an error check, but it wouldn't have much
functional use.
>> Of course even that will not make Windows DLLs identical to ELF
>> shared libraries. ELF shared libraries permit the main program to
>> override a symbol in the shared library, and Windows DLLs do not.
I'd just as soon cross that bridge when we come to it, unless you have
any real-world examples that demand more control over whether or not
DLLs are built.
In any event, this is more incentive for Thomas Tanner's patches to
restrict the symbol table, so that people don't get bitten by
namespace clashes.
What I'm talking about is not namespace clashes, but rather the
ability to override a particular function from a shared library. For
example, I can write my own version of malloc and free, and libc.so on
an ELF system will use them rather than the malloc and free linked
into the library.
I don't think there is anything libtool can do about this. It's
something that is very useful when dealing with preexisting shared
libraries, but is not particularly useful when dealing with shared
libraries you build yourself.
Ian
From gord@mescaline.gnu.org Thu Nov 5 15:32 EDT 1998
Received: from grande.dcc.unicamp.br (grande.dcc.unicamp.br [143.106.7.8])
by amazonas.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id PAA10607
for <oliva@amazonas.dcc.unicamp.br>; Thu, 5 Nov 1998 15:32:00 -0200 (EDT)
Received: from mescaline.gnu.org (mescaline.gnu.org [158.121.106.21])
by grande.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id PAA22399
for <oliva@dcc.unicamp.br>; Thu, 5 Nov 1998 15:31:57 -0200 (EDT)
Received: from hades.aethos.co.uk (hades.aethos.co.uk [195.171.18.1] (may be forged))
by mescaline.gnu.org (8.9.1a/8.9.1) with ESMTP id MAA01615
for <bug-libtool@gnu.org>; Thu, 5 Nov 1998 12:37:11 -0500
Received: from zeus.aethos.co.uk (zeus.aethos.co.uk [193.164.192.100])
by hades.aethos.co.uk (8.8.5/8.8.5) with ESMTP id RAA28242;
Thu, 5 Nov 1998 17:37:46 GMT
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
Message-ID: <3641E0DF.A8F92E78@oranda.demon.co.uk>
Date: Thu, 05 Nov 1998 17:31:11 +0000
From: "Gary V. Vaughan" <gvaughan@oranda.demon.co.uk>
Organization: Aethos Communication Systems ltd.
X-Mailer: Mozilla 4.5 [en] (WinNT; I)
X-Accept-Language: en
MIME-Version: 1.0
To: Alexandre Oliva <oliva@dcc.unicamp.br>
CC: Ian Lance Taylor <ian@cygnus.com>, tanner@gmx.de, gord@trick.fig.org,
bug-libtool@gnu.org
Subject: Re: Inter-library dependencies in libtool
References: <199811041854.NAA02418@subrogation.cygnus.com> <364183EF.9F15E7D6@oranda.demon.co.uk> <orhfweny1t.fsf@araguaia.dcc.unicamp.br>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=us-ascii
X-Content-Length: 3787
Xref: araguaia.dcc.unicamp.br libtool-deplibs:8
Lines: 87
X-Gnus-Article-Number: 8 Sat Nov 7 05:46:44 1998
If I may be permitted to quote you gratuitously... I think there are two
problems here, and solving the first will keep most people happy most of
the time.
In order of progressive difficulty...
1. COMPILE TIME LTLIBRARIES
***************************
Alexandre Oliva wrote:
>
> [[1.1]] the programmer knows that his library is completely
> self-contained, it does not depend on any external symbols
> (-no-undefined)
1.2) The link mode command line to libtool contains no -l options,
which implies your fallback method (try to link a shared library
as if `-no-undefined' had been specified, or if that fails build
only a static library).
1.3) The programmer knows that resolving all of the symbols in his
library requires linking deplibs, and is able to specify all of
them on the link line (some if these may be installed .la files
which have deplibs of their own which libtool must also link
with).
> [[1.4]] the programmer knows that there may be symbols in his library
> that are going to be supplied by another library, which [[is]]
> unknown in advance. If such dependencies exist, they have to
> be resolved at program-linking time (-allow-undefined == default)
In the future maybe libtool will be able to do a two stage link
for platforms which can't do `-allow-undefined', the first link
to find which symbols are unresolved, the second against a
temporarily generated set of stubs... I'm not sure whether the
stage 2 lib can then resolve its stubbed functions against a
different library when it is subsequently linked into an
executable? Perhaps I am reiterating Ian's idea about stubbing
on broken platforms?
In the present, broken platforms will have to manage with static
libraries in this case.
2. RUNTIME LTLIBRARIES
**********************
> [[2.1]] the programmer needs a library foo that is completely
> self-contained, so that he can be sure that dlopen(foo) works,
> and just adding -lfoo *after* the library is installed will be
> fine (-self-contained ?)
2.2) The programmer needs a library that can be dlopened, but which
can have all of its symbols resolved at link time with deplibs.
A small amount of magic in the form a .c and .h distributed with
libtool (as suggested by Gord) is enough to make sure deplibs
are dlopened if necessary and then the library itself is loaded.
At best, this will only be supported on platforms for which
libtool can generate shared libraries, perhaps only a (large)
subset of those.
2.3) The programmer needs a library that can be dlopened, and
doesn't know at link time how all of the symbols will be resolved.
A (small) subset of the platforms for which libtool can generate
shared libraries, will be handled by the aforementioned magic.
For the unhandled cases dld will be required.
> [[2.4]] although a library is not going to be self-contained,
> [[snip]] the platform does not support libraries with undefined
> symbols, a shared library is badly needed, [[This will]] require
> dld.
NOTE: in the above, I am assuming that
all-supported-platforms >= (large) >= (small) > no-platforms
I don't see any need to add anymore command line switches, except
perhaps to tell libtool whether this is a compile time or runtime
library, but even that may prove unnecessary.
The line between 1.3 and 1.4 could probably use some clarification; what
if the link line includes several deplibs, but some symbols are
still unresolved? 1.4? Maybe... what if the platform doesn't support
`-no-undefined'? Perhaps there is a 1.3.5? In any case, for maximum
portability, we want to keep the number of cases of 1.4 to a minimum.
Cheers,
Gary.
From wmperry@aventail.com Sun Nov 1 01:03 EDT 1998
Received: from grande.dcc.unicamp.br (grande.dcc.unicamp.br [143.106.7.8])
by amazonas.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id BAA29973
for <oliva@amazonas.dcc.unicamp.br>; Sun, 1 Nov 1998 01:03:04 -0200 (EDT)
Received: from slow.bp.aventail.com (vina05.cntwk.net [207.205.120.131])
by grande.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id BAA10397
for <oliva@dcc.unicamp.br>; Sun, 1 Nov 1998 01:02:59 -0200 (EDT)
Received: from kramer-fast.bp.aventail.com (kramer-fast.bp.aventail.com [192.168.200.2])
by slow.bp.aventail.com (8.8.5/8.8.5) with ESMTP id SAA31093;
Sat, 31 Oct 1998 18:03:52 -0800
Received: (from wmperry@localhost)
by kramer-fast.bp.aventail.com (8.8.5/8.8.5) id WAA21542;
Sat, 31 Oct 1998 22:04:49 -0500
Sender: wmperry@aventail.com
To: Gordon Matzigkeit <gord@trick.fig.org>
Cc: Alexandre Oliva <oliva@dcc.unicamp.br>
Subject: Re: libtool 1.2 problems...
References: <199810251708.MAA02237@kramer-fast.bp.aventail.com> <oryapxaste.fsf@araguaia.dcc.unicamp.br> <86zpac2z99.fsf@trick.fig.org>
Errors-to: wmperry@aventail.com
Reply-to: wmperry@aventail.com
X-Face: O~Rn;(l][/-o1sALg4A@xpE:9-"'IR[%;,,!m7</SYF`{vYQ(&RI1&EiH[FvT;J}@f!4kfz
x_!Y#=y{Uuj9GvUi=cPuajQ(Z42R[wE@{G,sn$qGr5g/wnb*"*ktI+,CD}1Z'wxrM2ag-r0p5I6\nA
[WJopW_J.WY;
Mime-Version: 1.0 (generated by tm-edit 7.108)
From: wmperry@aventail.com (William M. Perry)
Date: 31 Oct 1998 22:04:49 -0500
In-Reply-To: Gordon Matzigkeit's message of "31 Oct 1998 15:32:50 -0600"
Message-ID: <867lxgazam.fsf@kramer-fast.bp.aventail.com>
X-Mailer: Gnus v5.6.8/XEmacs 21.0 - "Pyrenean-pre6"
Content-Type: text/plain; charset=US-ASCII
X-Content-Length: 2306
Xref: araguaia.dcc.unicamp.br libtool-deplibs:9
Lines: 66
X-Gnus-Article-Number: 9 Fri Nov 20 23:23:12 1998
Gordon Matzigkeit <gord@trick.fig.org> writes:
> >>>>> Alexandre Oliva writes:
>
> AO> I can understand why we'd want all that stuff on systems with
> AO> brain-damaged dynamic linkers or such, but on Linux? Gord?
>
> No specific reason. I was trying to implement something that would
> work on all platforms, including Linux.
>
> >> I think optionally having a PUBLIC_API preprocessor macro or
> >> something might be handy.
>
> AO> Thomas Tanner has recently submitted a patch that implements
> AO> that, I think. I still couldn't find the time to look carefully
> AO> at the patch, but, from the text description, it looks like
> AO> that's exactly what it does.
>
> I think it's a good idea to be able to specify global symbols
> explicitly. That's part of the glibc versioning system that I was
> alluding to earlier.
>
> If you look at the `--version-script' option to GNU ld
> ((ld.info)Version Script.), then you'll see more details.
To restrict globally visible symbols, here's the info I've got. :) i've
been using this for quite a while in our server product. All hail the
NSA.
Linux: '--retain-symbols-file <FILENAME>' , with all the symbols you want
exported in <FILENAME>
OSF1: '-hidden -exported_symbol "symname-or-wildcardspec"'
AIX: you just restrict what you but in the export list you pass to
-bE:<FILENAME>.
HP/UX: '+e symname' on the link line for each exported symbol you want
Solaris: create a map file for the linker that looks like:
{
global:
symname1;
symname2;
symname3;
local:
*;
}
And use -M <MAPFILE> on the link line.
BSD/OS 3.x is the only system I couldn't find a way to support this symbol
hiding on. But you might be able to do it better with BSD/OS 4.x now that
they have finally moved to elf.
BTW: What are the subscription directions for libtool-bugs or a general
discussion list for stuff like this? I've had lots of experience over the
last 3 years with dynamic loading on various platforms, and would love to
get libtool to the point where I could use it for all of our products here
at aventail. Less stuff for me to officially maintain. :)
I'd also like to see DLD 4.x eventually so that I can just support it and
ditch all the crufty junk we are using right now. :) Abstraction good.
-Bill P.