mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-11-21 01:40:57 +08:00
846 lines
33 KiB
Plaintext
846 lines
33 KiB
Plaintext
From nobody Tue Oct 7 19:29:17 1997
|
|
X-From-Line: gord@gnu.org Wed Oct 08 00:03:13 1997
|
|
Return-Path: <gord@gnu.org>
|
|
Delivered-To: gord@trick.profitpress.com
|
|
Received: (qmail 13926 invoked from network); 8 Oct 1997 00:03:12 -0000
|
|
Received: from localhost (HELO bambam.m-tech.ab.ca) (127.0.0.1)
|
|
by localhost with SMTP; 8 Oct 1997 00:03:12 -0000
|
|
X-POP3-Rcpt: gord@bambam
|
|
Received: from mescaline.gnu.org (root@mescaline.gnu.org [158.121.106.21]) by m-tech.ab.ca (8.6.12/8.6.9) with ESMTP id LAA01054 for <gord@m-tech.ab.ca>; Tue, 7 Oct 1997 11:58:02 -0600
|
|
Received: from listserv.ucalgary.ca by mescaline.gnu.org (8.8.5/8.6.12GNU) with SMTP id NAA18464 for <bug-libtool@gnu.ai.mit.edu>; Tue, 7 Oct 1997 13:53:36 -0400
|
|
Received: from ts3-port-52.acs.ucalgary.ca by listserv.ucalgary.ca (AIX 3.2/UCB 5.64/4.03)
|
|
id AA15145; Tue, 7 Oct 1997 11:53:10 -0600
|
|
Received: (qmail 11153 invoked by uid 1001); 7 Oct 1997 17:52:59 -0000
|
|
Sender: gord@trick.profitpress.com
|
|
To: Akim Demaille <demaille@inf.enst.fr>
|
|
Cc: bug-libtool@gnu.org
|
|
Subject: Re: Shared libs before installation
|
|
References: <qylg1qstg1o.fsf@gargantua.enst.fr>
|
|
X-Attribution: Gord
|
|
Mime-Version: 1.0 (generated by tm-edit 7.92)
|
|
Content-Type: text/plain; charset=US-ASCII
|
|
From: Gordon Matzigkeit <gord@m-tech.ab.ca>
|
|
Date: 07 Oct 1997 11:52:59 -0600
|
|
In-Reply-To: Akim Demaille's message of 26 Sep 1997 14:28:51 +0200
|
|
Message-Id: <86201xcves.fsf@trick.profitpress.com>
|
|
X-Mailer: Gnus v5.4.42/Emacs 19.34
|
|
Xref: trick.profitpress.com mail.libtool:570
|
|
Lines: 41
|
|
X-Gnus-Article-Number: 4 Mon Nov 2 17:16:26 1998
|
|
|
|
Hi!
|
|
|
|
>>>>> Akim Demaille writes:
|
|
|
|
AD> We once talked about this, but let's do it again :)
|
|
|
|
Okay! ;)
|
|
|
|
AD> I know this is the kind of things version numbers should
|
|
AD> solve. Nevertheless, to avoid having quickly too big a version
|
|
AD> number, the version should be set right before a _public_
|
|
AD> distribution (correct?). Not when sharing with
|
|
AD> testers/maintainers.
|
|
|
|
AD> But then they are most likely to link with an old installed
|
|
AD> version of the .so, failing to compile correctly.
|
|
|
|
Actually, you may consider having *huge* version numbers for testers,
|
|
and using tiny ones for public releases.
|
|
|
|
For testing releases use a major version corresponding with the
|
|
current date: -version-info 19971007
|
|
|
|
Then for the public release, figure out what has actually changed
|
|
since last time: -version-info 3:0:1
|
|
|
|
The huge test release major numbers will guarantee that every new test
|
|
release will require relinking, but the public versions will be
|
|
smarter and possibly backwards-compatible.
|
|
|
|
AD> I am no system guy, so I may say stupid things :)
|
|
|
|
Nothing stupid. These are legitimate questions that I will have to
|
|
answer eventually in the documentation.
|
|
|
|
Thanks for your questions,
|
|
|
|
--
|
|
Gord Matzigkeit | Proudly running pieces of the GNU operating system.
|
|
gord@m-tech.ab.ca | Jacques Cousteau loved programming in assembler.
|
|
|
|
From nobody Wed Oct 15 00:04:31 1997
|
|
X-From-Line: coolo@itm.mu-luebeck.de Wed Oct 15 00:11:44 1997
|
|
Return-Path: <coolo@itm.mu-luebeck.de>
|
|
Delivered-To: gord@trick.profitpress.com
|
|
Received: (qmail 4396 invoked from network); 15 Oct 1997 00:11:42 -0000
|
|
Received: from localhost (HELO bambam.m-tech.ab.ca) (127.0.0.1)
|
|
by localhost with SMTP; 15 Oct 1997 00:11:42 -0000
|
|
X-POP3-Rcpt: gord@bambam
|
|
Received: from itm.mu-luebeck.de (wotan.itm.mu-luebeck.de [141.83.21.121]) by m-tech.ab.ca (8.6.12/8.6.9) with ESMTP id MAA12037 for <gord@m-tech.ab.ca>; Tue, 14 Oct 1997 12:59:53 -0600
|
|
Received: from buri.itm.mu-luebeck.de (coolo@buri [141.83.21.130]) by itm.mu-luebeck.de (8.8.7/8.7.1) with ESMTP id UAA12900 for <gord@m-tech.ab.ca>; Tue, 14 Oct 1997 20:54:08 +0200 (MET DST)
|
|
From: Stephan Kulow <coolo@itm.mu-luebeck.de>
|
|
Received: (from coolo@localhost)
|
|
by buri.itm.mu-luebeck.de (8.8.4/8.8.4)
|
|
id UAA01692 for gord@m-tech.ab.ca; Tue, 14 Oct 1997 20:55:19 +0200
|
|
Message-Id: <199710141855.UAA01692@buri.itm.mu-luebeck.de>
|
|
Subject: Re: dlopen [was: libs dependencies]
|
|
To: gord@m-tech.ab.ca (Gordon Matzigkeit)
|
|
Date: Tue, 14 Oct 1997 20:55:19 +0200 (MET DST)
|
|
In-Reply-To: <86wwjg1av8.fsf@trick.profitpress.com> from "Gordon Matzigkeit" at Oct 14, 97 12:02:35 pm
|
|
Content-Type: text
|
|
Xref: trick.profitpress.com mail.libtool:589
|
|
Lines: 89
|
|
X-Gnus-Article-Number: 5 Mon Nov 2 17:16:26 1998
|
|
|
|
>
|
|
> Hi!
|
|
>
|
|
> >>>>> Stephan Kulow writes:
|
|
>
|
|
> I think we've adequately discussed your library dependencies, but I
|
|
> wanted to comment on the dlopen support that you mention below:
|
|
>
|
|
> SK> BTW: I made some efforts to use the dlopen support in libtool. I
|
|
> SK> think, it works the way I tried it. I link staticly, if dlfcn.h
|
|
> SK> or libdl is not supported. For this I patched libtool.m4 to
|
|
> SK> support this. I had to remove the --enable-shared/static options
|
|
> SK> and replaced it with --disable-dlopen option, since it looks
|
|
> SK> somewhat strange, if you have --enable-shared in a package, where
|
|
> SK> you do not expect libs.
|
|
>
|
|
> Yes, you are right. When I fully support dlopen emulation, I will
|
|
> need to make a configure flag that can turn things on and off.
|
|
>
|
|
> SK> We create a binary, that loads libraries, that contain C++
|
|
> SK> classes derived from a specific class. So, it's not necessary,
|
|
> SK> that the binary knows, which "applets" are there while compile
|
|
> SK> time.
|
|
>
|
|
> Okay, this makes sense. This is why I generate the `symbol file' when
|
|
> -export-dynamic is given, which contains a list of symbols mapped to
|
|
> pointers in a C source file.
|
|
>
|
|
> Your solution is acceptable, and if it works for your application,
|
|
> congratulations! As I've said before, my eventual solution will be
|
|
> generic and application-independent: I will write a true dlopen
|
|
> implementation that uses a libtool `symbol file' to resolve pointers
|
|
> rather than dynamic loading of code.
|
|
>
|
|
> The C++ portion of this will need to understand name mangling, which
|
|
> is probably why you chose the easier way, of making your dlopening
|
|
> application-specific.
|
|
You say, you will write code? I tried to imagine a solution without
|
|
new code, but I failed. So you write a new linker or just a library,
|
|
that I can use in my own code?
|
|
>
|
|
> SK> This is somewhat a problem and I don't know a solution, how to
|
|
> SK> solve this. So, I added a header file, that contains all
|
|
> SK> currently known modules and this is only used, if no dlopen is
|
|
> SK> available.
|
|
>
|
|
> Okay, I think I understand. You are saying that when dlopen is not
|
|
> available, you emulate it by knowing in advance which modules have
|
|
> been linked into the executable (SANE calls this `preloading'), and
|
|
> changing your application to refer to specific C++ modules.
|
|
Yes. I have to know while compilation time of the binary, which libraries
|
|
get linked.
|
|
>
|
|
> As I've said above, when I release DLD 4.0 I'll let you know, but
|
|
> until then, your application-specific preloading is acceptable, and
|
|
> the Right Thing To Do.
|
|
Thanks, it's a pleasure to hear such comments ;)
|
|
>
|
|
> SK> Thanks for writing libtool, Stephan
|
|
>
|
|
> My pleasure! Thanks for using it, :)
|
|
BTW: Perhaps you remember, I once contacted you because of some problems
|
|
with C++ and static objects in shared libs. I found out (or read in a
|
|
news group), that most compilers on such plattforms do some magic before
|
|
calling the linker. So, what libtool have to do to support such plattforms
|
|
(Solaris, FreeBSD and perhaps some more), is to call the compiler and not
|
|
the linker to create C++ shared libs.
|
|
CC (under Solaris) has the same options then the linker, but should create
|
|
correct libraries.
|
|
Currently I set CC to CXX before I run AM_PROG_LIBTOOL to let libtool
|
|
find the correct linker options for the C++ compiler instead of the C
|
|
compiler.
|
|
|
|
I just wanted to let you know, what I found out. I thought about patching
|
|
libtool to have better support for C++, but this would mean some drastic
|
|
changes, so I left it up to you ;)
|
|
|
|
Greets, Stephan
|
|
|
|
--
|
|
Stephan Kulow (coolo@kde.org)
|
|
Student of medical CS
|
|
Medical University of Luebeck
|
|
|
|
GCS/M/MD d-x s++: a-- C+++$ ULS+++ P--- L++ E W- N- o? K--? w
|
|
!O-- !M !V PS++ !PE Y PGP++ t+ 5 X+ !R tv+ b+ DI? D- G e+>$
|
|
h--(++) r y
|
|
|
|
|
|
From nobody Thu Aug 20 09:31:03 1998
|
|
X-From-Line: gord@gnu.org Wed Aug 05 11:02:23 1998
|
|
Return-Path: <gord@gnu.org>
|
|
Delivered-To: gord@trick.fig.org
|
|
Received: (qmail 6829 invoked from network); 5 Aug 1998 11:02:23 -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; 5 Aug 1998 11:02:23 -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 EAA09526 for <gord@m-tech.ab.ca>; Wed, 5 Aug 1998 04:59:58 -0600
|
|
Received: from uranus.ubs.com by mescaline.gnu.org (8.8.5/8.6.12GNU) with ESMTP id HAA22473 for <bug-libtool@gnu.org>; Wed, 5 Aug 1998 07:00:29 -0400
|
|
From: alois.camenzind@ubs.com
|
|
Received: by uranus.ubs.com; id MAA10838; Wed, 5 Aug 1998 12:56:10 +0200 (MET DST)
|
|
Received: from <alois.camenzind@ubs.com> (svscan [192.168.85.11]) by uranus via smap (V2.1)
|
|
id xma010753; Wed, 5 Aug 98 12:55:53 +0200
|
|
Received: from localhost by svscan.ubinet.ubs.com (SMI-8.6/SMI-SVR4)
|
|
id MAA01005; Wed, 5 Aug 1998 12:58:25 +0200
|
|
Received: from localhost (root@localhost)
|
|
by svcastor.flur.zuerich.ubs.ch (8.8.6 (PHNE_12836)/8.8.6) with SMTP id MAA21146
|
|
for bug-libtool@gnu.org; Wed, 5 Aug 1998 12:58:23 +0200 (METDST)
|
|
X-OpenMail-Hops: 2
|
|
Date: Wed, 5 Aug 1998 12:58:13 +0200
|
|
Message-Id: <5499F13A@MHS>
|
|
Subject: libtool bug/problem
|
|
MIME-Version: 1.0
|
|
TO: bug-libtool@gnu.org
|
|
Content-Type: multipart/mixed; boundary="MimeMultipartBoundary"
|
|
Xref: trick.fig.org libtool:1548
|
|
Lines: 171
|
|
X-Gnus-Article-Number: 6 Mon Nov 2 17:16:26 1998
|
|
|
|
--MimeMultipartBoundary
|
|
Content-Type: text/plain; charset=US-ASCII; name="PUBLIC:"
|
|
Content-Disposition: inline; filename="PUBLIC:"
|
|
Content-Transfer-Encoding: 7bit
|
|
|
|
Hi
|
|
|
|
I'd like to use libtool (ltmain.sh (GNU libtool) 1.2 togheter with the SUN C++
|
|
compiler (CC: WorkShop Compilers 4.2 30 Oct 1996 C++ 4.2) on Solaris 5.5.1.
|
|
|
|
Everything works good except if I'm trying to use C++ templates in my code and
|
|
put this in a shared library. The linker is afterwards always complaining
|
|
about missing references. The problem occurs because libtool renames
|
|
the object
|
|
files from xxx.o to xxx.lo. The SUN C++ compiler builds for himself a
|
|
Template.DB
|
|
and this somehow doens't match anymore with the object file.
|
|
|
|
Have you ever heard of this problem and do you eventually allready have
|
|
a solution?
|
|
|
|
I search in Deja News but couldn't find anything.
|
|
A solution I could think of would be to rename the xxx.lo file back to
|
|
xxx.o before
|
|
the linking phase.
|
|
|
|
Thanks for any hints.
|
|
|
|
ciao
|
|
Alois
|
|
|
|
--MimeMultipartBoundary--
|
|
From nobody Wed Oct 14 17:08:59 1998
|
|
X-From-Line: gord@mescaline.gnu.org Mon Oct 05 20:10:38 1998
|
|
Return-Path: <gord@mescaline.gnu.org>
|
|
Delivered-To: gord@trick.fig.org
|
|
Received: (qmail 2026 invoked from network); 5 Oct 1998 20:10:30 -0000
|
|
Received: from gen2-93ip34.cadvision.com (HELO bambam.m-tech.ab.ca) (209.91.93.34)
|
|
by ip223.net247210.cr.sk.ca with SMTP; 5 Oct 1998 20:10:30 -0000
|
|
Received: from mescaline.gnu.org (gateway [10.0.0.1])
|
|
by bambam.m-tech.ab.ca (8.8.7/8.8.7) with ESMTP id OAA31749
|
|
for <gord@m-tech.ab.ca>; Mon, 5 Oct 1998 14:13:57 -0600
|
|
Received: from proxy.grad.kiev.ua (grad-UTC-28k8.ukrtel.net [195.5.25.54])
|
|
by mescaline.gnu.org (8.9.1a/8.9.1) with ESMTP id PAA26247
|
|
for <bug-libtool@gnu.org>; Mon, 5 Oct 1998 15:57:59 -0400
|
|
Received: from Shevchenko.Kiev.UA (cam [10.0.0.50])
|
|
by proxy.grad.kiev.ua (8.8.8/8.8.7) with ESMTP id WAA07178
|
|
for <bug-libtool@gnu.org>; Mon, 5 Oct 1998 22:56:50 +0300 (EEST)
|
|
(envelope-from Ruslan@Shevchenko.Kiev.UA)
|
|
Sender: rssh@proxy.grad.kiev.ua
|
|
Message-ID: <3619242C.C441DA29@Shevchenko.Kiev.UA>
|
|
Date: Mon, 05 Oct 1998 22:55:24 +0300
|
|
From: Ruslan Shevchenko <Ruslan@Shevchenko.Kiev.UA>
|
|
Reply-To: rssh@grad.kiev.ua
|
|
X-Mailer: Mozilla 4.05 [en] (X11; I; FreeBSD 2.2.5-STABLE i386)
|
|
MIME-Version: 1.0
|
|
To: bug-libtool@gnu.org
|
|
Subject: C++ libs on Solaris 2.6 with Sun CC 4.2
|
|
Content-Type: multipart/mixed; boundary="------------48AE685394F01B5105112CF0"
|
|
Lines: 109
|
|
Xref: trick.fig.org libtool:1646
|
|
|
|
This is a multi-part message in MIME format.
|
|
--------------48AE685394F01B5105112CF0
|
|
Content-Type: text/plain; charset=us-ascii
|
|
Content-Transfer-Encoding: 7bit
|
|
|
|
envirowment:
|
|
|
|
uname -a:
|
|
|
|
SunOS satory 5.6 Generic_105181-06 sun4u sparc SUNW,Ultra-4
|
|
|
|
Sun CC 4.1
|
|
|
|
libtool 1.2
|
|
|
|
Problem:
|
|
|
|
building of shared libraries not supported.
|
|
(output of simple conffigure is attached.)
|
|
|
|
and in reality, the process of linking CC library is different,
|
|
becouse generation of templates can be doing on stage of linking.
|
|
|
|
In general, command for linking is
|
|
CC -xar -o$(LIBNAME) $(CXXFLAGS) $(OBJECTS)
|
|
|
|
If anybody will tell me, from what I must begin, I will help to
|
|
add such support.
|
|
|
|
Thanks.
|
|
|
|
|
|
--
|
|
@=
|
|
//RSSH
|
|
mailto:Ruslan@Shevchenko.Kiev.UA
|
|
|
|
CORBA in Ukraine & ex-USSR: http://www.corbadev.kiev.ua
|
|
--------------48AE685394F01B5105112CF0
|
|
Content-Type: text/plain; charset=us-ascii; name="errs"
|
|
Content-Transfer-Encoding: 7bit
|
|
Content-Disposition: inline; filename="errs"
|
|
|
|
creating cache ./config.cache
|
|
checking host system type... sparc-sun-solaris2.6
|
|
checking target system type... sparc-sun-solaris2.6
|
|
checking build system type... sparc-sun-solaris2.6
|
|
checking for a BSD compatible install... config/install-sh -c
|
|
checking whether build environment is sane... yes
|
|
checking whether make sets ${MAKE}... yes
|
|
checking for working aclocal... found
|
|
checking for working autoconf... found
|
|
checking for working automake... found
|
|
checking for working autoheader... found
|
|
checking for working makeinfo... missing
|
|
checking for c++... no
|
|
checking for g++... no
|
|
checking for gcc... no
|
|
checking for CC... CC
|
|
checking whether the C++ compiler (CC ) works... yes
|
|
checking whether the C++ compiler (CC ) is a cross-compiler... no
|
|
checking whether we are using GNU C++... no
|
|
checking how to run the C++ preprocessor... CC -E
|
|
checking for ranlib... ranlib
|
|
checking for gcc... no
|
|
checking for cc... cc
|
|
checking whether the C compiler (cc ) works... yes
|
|
checking whether the C compiler (cc ) is a cross-compiler... no
|
|
checking whether we are using GNU C... no
|
|
checking for non-GNU ld... /usr/ucb/ld
|
|
checking if the linker (/usr/ucb/ld) is GNU ld... no
|
|
checking for BSD-compatible nm... /usr/ccs/bin/nm -p
|
|
checking whether ln -s works... yes
|
|
checking whether we are using GNU C... no
|
|
checking for cc option to produce PIC... -KPIC
|
|
checking if cc PIC flag -KPIC works... no
|
|
checking if cc static flag -Bstatic works... -Bstatic
|
|
checking if the linker (/usr/ucb/ld) is GNU ld... no
|
|
checking whether the linker (/usr/ucb/ld) supports shared libraries... yes
|
|
checking command to parse /usr/ccs/bin/nm -p output... yes
|
|
checking how to hardcode library paths into programs... immediate
|
|
checking for /usr/ucb/ld option to reload object files... -r
|
|
checking dynamic linker characteristics... solaris2.6 ld.so
|
|
checking if libtool supports shared libraries... no
|
|
checking whether to build shared libraries... no
|
|
checking whether to build static libraries... yes
|
|
checking for objdir... .libs
|
|
creating libtool
|
|
checking for a BSD compatible install... config/install-sh -c
|
|
CPPFLAGS= -I/usr/local/include
|
|
checking for OB/CORBA.h... yes
|
|
|
|
checking for JTC/JTC.h... yes
|
|
checking for OB/CosNaming.h... yes
|
|
checking for nanosleep in -lposix4... yes
|
|
solaris2.6
|
|
checking for socket in -lsocket... yes
|
|
updating cache ./config.cache
|
|
creating ./config.status
|
|
creating Makefile
|
|
creating src/Makefile
|
|
creating include/Makefile
|
|
creating tests/Makefile
|
|
creating tests/naming/Makefile
|
|
creating include/SyntaxShugarConfig.h
|
|
include/SyntaxShugarConfig.h is unchanged
|
|
|
|
--------------48AE685394F01B5105112CF0--
|
|
|
|
From nobody Wed Oct 14 17:11:47 1998
|
|
X-From-Line: gord@mescaline.gnu.org Tue Oct 13 18:11:55 1998
|
|
Return-Path: <gord@mescaline.gnu.org>
|
|
Delivered-To: gord@trick.fig.org
|
|
Received: (qmail 694 invoked from network); 13 Oct 1998 18:11:25 -0000
|
|
Received: from gen2-93ip34.cadvision.com (HELO bambam.m-tech.ab.ca) (209.91.93.34)
|
|
by ip223.net247210.cr.sk.ca with SMTP; 13 Oct 1998 18:11:25 -0000
|
|
Received: from mescaline.gnu.org (gateway [10.0.0.1])
|
|
by bambam.m-tech.ab.ca (8.8.7/8.8.7) with ESMTP id MAA30151
|
|
for <gord@m-tech.ab.ca>; Tue, 13 Oct 1998 12:14:55 -0600
|
|
Received: from proxy.grad.kiev.ua (grad-UTC-28k8.ukrtel.net [195.5.25.54])
|
|
by mescaline.gnu.org (8.9.1a/8.9.1) with ESMTP id NAA14314
|
|
for <bug-libtool@gnu.org>; Tue, 13 Oct 1998 13:56:26 -0400
|
|
Received: from Shevchenko.Kiev.UA (cam [10.0.0.50])
|
|
by proxy.grad.kiev.ua (8.8.8/8.8.7) with ESMTP id UAA04080
|
|
for <bug-libtool@gnu.org>; Tue, 13 Oct 1998 20:54:29 +0300 (EEST)
|
|
(envelope-from Ruslan@Shevchenko.Kiev.UA)
|
|
Sender: rssh@proxy.grad.kiev.ua
|
|
Message-ID: <3623937C.7E903DF8@Shevchenko.Kiev.UA>
|
|
Date: Tue, 13 Oct 1998 20:53:00 +0300
|
|
From: Ruslan Shevchenko <Ruslan@shevchenko.kiev.ua>
|
|
Reply-To: rssh@grad.kiev.ua
|
|
X-Mailer: Mozilla 4.05 [en] (X11; I; FreeBSD 2.2.5-STABLE i386)
|
|
MIME-Version: 1.0
|
|
To: bug-libtool@gnu.org
|
|
Subject: overriding ARFLAGS.
|
|
Content-Type: multipart/mixed; boundary="------------E06156B73BE5D4D4AD2BF900"
|
|
Xref: trick.fig.org libtool:1683
|
|
Lines: 221
|
|
X-Gnus-Article-Number: 7 Mon Nov 2 17:16:26 1998
|
|
|
|
This is a multi-part message in MIME format.
|
|
--------------E06156B73BE5D4D4AD2BF900
|
|
Content-Type: text/plain; charset=koi8-r
|
|
Content-Transfer-Encoding: 7bit
|
|
|
|
As I noted few days ago, the process of building a library (static or
|
|
shared)
|
|
with C++ can include addition steps, such as template instaniation.
|
|
|
|
In libtool AR can be overrided from configure ${AR}, but ${ARFLAGS}
|
|
(cru)
|
|
is hardcoded into ltconfig.sh
|
|
|
|
setting ${ARFLAGS} as variable (or cru if "$ARFLAGS" is empty ) actually
|
|
enable
|
|
building of templated C++ variables (static only yet) by overriding AR
|
|
and ARFLAGS
|
|
from configure.
|
|
|
|
So, I attached to this messages diff, which change cru to ${ARFLAGS} in
|
|
ltconfig.in (and therefore in ltconfig)
|
|
|
|
Also, I think somewhere in documentation must exists the next note
|
|
about
|
|
Sun Solaris Workshop:
|
|
/--------
|
|
When you want build libraries with implicit templates instaniated in,
|
|
You must puss to ltconfig next envirowmnent variables:
|
|
AR=CC
|
|
ARFLAGS=$CXXFLAGS -xar -o
|
|
----------/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--
|
|
@=
|
|
//RSSH
|
|
mailto:Ruslan@Shevchenko.Kiev.UA
|
|
|
|
CORBA in Ukraine & ex-USSR: http://www.corbadev.kiev.ua
|
|
--------------E06156B73BE5D4D4AD2BF900
|
|
Content-Type: text/plain; charset=koi8-r; name="libtool.diff"
|
|
Content-Transfer-Encoding: 7bit
|
|
Content-Disposition: inline; filename="libtool.diff"
|
|
|
|
Only in libtool-1.2-patched: Makefile
|
|
Only in libtool-1.2-patched: config.cache
|
|
Only in libtool-1.2-patched: config.log
|
|
Only in libtool-1.2-patched: config.status
|
|
Common subdirectories: libtool-1.2/demo and libtool-1.2-patched/demo
|
|
Common subdirectories: libtool-1.2/doc and libtool-1.2-patched/doc
|
|
Only in libtool-1.2-patched: libtool
|
|
Only in libtool-1.2-patched: libtoolize
|
|
diff -c libtool-1.2/ltconfig libtool-1.2-patched/ltconfig
|
|
*** libtool-1.2/ltconfig Fri Mar 20 10:00:29 1998
|
|
--- libtool-1.2-patched/ltconfig Tue Oct 13 20:01:31 1998
|
|
***************
|
|
*** 89,95 ****
|
|
--- 89,101 ----
|
|
with_gcc=no
|
|
with_gnu_ld=no
|
|
|
|
+ if test "x$ARFLAGS" = x
|
|
+ then
|
|
+ ARFLAGS=cru
|
|
+ fi
|
|
+
|
|
old_AR="$AR"
|
|
+ old_ARFLAGS="$ARFLAGS"
|
|
old_CC="$CC"
|
|
old_CFLAGS="$CFLAGS"
|
|
old_CPPFLAGS="$CPPFLAGS"
|
|
***************
|
|
*** 320,326 ****
|
|
esac
|
|
|
|
# Determine commands to create old-style static archives.
|
|
! old_archive_cmds='$AR cru $oldlib$oldobjs'
|
|
old_postinstall_cmds='chmod 644 $oldlib'
|
|
old_postuninstall_cmds=
|
|
|
|
--- 326,332 ----
|
|
esac
|
|
|
|
# Determine commands to create old-style static archives.
|
|
! old_archive_cmds='$AR $ARFLAGS $oldlib$oldobjs'
|
|
old_postinstall_cmds='chmod 644 $oldlib'
|
|
old_postuninstall_cmds=
|
|
|
|
***************
|
|
*** 732,738 ****
|
|
case "$host_os" in
|
|
aix3*)
|
|
allow_undefined_flag=unsupported
|
|
! archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR cru $lib $objdir/$soname'
|
|
# Note: this linker hardcodes the directories in LIBPATH if there
|
|
# are no directories specified by -L.
|
|
hardcode_minus_L=yes
|
|
--- 738,744 ----
|
|
case "$host_os" in
|
|
aix3*)
|
|
allow_undefined_flag=unsupported
|
|
! archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR $ARFLAGS $lib $objdir/$soname'
|
|
# Note: this linker hardcodes the directories in LIBPATH if there
|
|
# are no directories specified by -L.
|
|
hardcode_minus_L=yes
|
|
***************
|
|
*** 745,757 ****
|
|
|
|
aix4*)
|
|
allow_undefined_flag=unsupported
|
|
! archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
;;
|
|
|
|
amigaos*)
|
|
! archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR cru $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)'
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_minus_L=yes
|
|
;;
|
|
--- 751,763 ----
|
|
|
|
aix4*)
|
|
allow_undefined_flag=unsupported
|
|
! archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR $ARFLAGS $lib $objdir/$soname'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
;;
|
|
|
|
amigaos*)
|
|
! archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR $ARFLAGS $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)'
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_minus_L=yes
|
|
;;
|
|
diff -c libtool-1.2/ltconfig.in libtool-1.2-patched/ltconfig.in
|
|
*** libtool-1.2/ltconfig.in Wed Mar 11 18:10:51 1998
|
|
--- libtool-1.2-patched/ltconfig.in Tue Oct 13 20:44:56 1998
|
|
***************
|
|
*** 320,331 ****
|
|
esac
|
|
|
|
# Determine commands to create old-style static archives.
|
|
! old_archive_cmds='$AR cru $oldlib$oldobjs'
|
|
old_postinstall_cmds='chmod 644 $oldlib'
|
|
old_postuninstall_cmds=
|
|
|
|
# Set a sane default for `AR'.
|
|
test -z "$AR" && AR=ar
|
|
|
|
# If RANLIB is not set, then run the test.
|
|
if test "${RANLIB+set}" != "set"; then
|
|
--- 320,332 ----
|
|
esac
|
|
|
|
# Determine commands to create old-style static archives.
|
|
! old_archive_cmds='$AR $ARFLAGS $oldlib$oldobjs'
|
|
old_postinstall_cmds='chmod 644 $oldlib'
|
|
old_postuninstall_cmds=
|
|
|
|
# Set a sane default for `AR'.
|
|
test -z "$AR" && AR=ar
|
|
+ test -z "$ARFLAGS" && ARFLAGS=cru
|
|
|
|
# If RANLIB is not set, then run the test.
|
|
if test "${RANLIB+set}" != "set"; then
|
|
***************
|
|
*** 732,738 ****
|
|
case "$host_os" in
|
|
aix3*)
|
|
allow_undefined_flag=unsupported
|
|
! archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR cru $lib $objdir/$soname'
|
|
# Note: this linker hardcodes the directories in LIBPATH if there
|
|
# are no directories specified by -L.
|
|
hardcode_minus_L=yes
|
|
--- 733,739 ----
|
|
case "$host_os" in
|
|
aix3*)
|
|
allow_undefined_flag=unsupported
|
|
! archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR $ARFLAGS $lib $objdir/$soname'
|
|
# Note: this linker hardcodes the directories in LIBPATH if there
|
|
# are no directories specified by -L.
|
|
hardcode_minus_L=yes
|
|
***************
|
|
*** 745,757 ****
|
|
|
|
aix4*)
|
|
allow_undefined_flag=unsupported
|
|
! archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
;;
|
|
|
|
amigaos*)
|
|
! archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR cru $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)'
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_minus_L=yes
|
|
;;
|
|
--- 746,758 ----
|
|
|
|
aix4*)
|
|
allow_undefined_flag=unsupported
|
|
! archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR $ARFLAGS $lib $objdir/$soname'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
;;
|
|
|
|
amigaos*)
|
|
! archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR $ARFLAGS $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)'
|
|
hardcode_libdir_flag_spec='-L$libdir'
|
|
hardcode_minus_L=yes
|
|
;;
|
|
Common subdirectories: libtool-1.2/tests and libtool-1.2-patched/tests
|
|
|
|
--------------E06156B73BE5D4D4AD2BF900--
|
|
|
|
From nobody Wed Oct 14 16:56:33 1998
|
|
X-From-Line: gord@gnu.org Thu Aug 06 20:23:55 1998
|
|
Return-Path: <gord@gnu.org>
|
|
Delivered-To: gord@trick.fig.org
|
|
Received: (qmail 1251 invoked from network); 6 Aug 1998 20:23:54 -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; 6 Aug 1998 20:23:54 -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 OAA21853 for <gord@m-tech.ab.ca>; Thu, 6 Aug 1998 14:21:27 -0600
|
|
Received: from juliet.wcom.com by mescaline.gnu.org (8.8.5/8.6.12GNU) with SMTP id QAA20365 for <bug-libtool@gnu.org>; Thu, 6 Aug 1998 16:21:44 -0400
|
|
Received: from moloko.wcom.com by juliet with ESMTP; Thu, 6 Aug 1998 15:17:19 -0500
|
|
Received: from pinebilly.wcom.com (pinebilly.wcom.com [159.98.206.11]) by moloko.wcom.com (8.8.8/8.8.8)
|
|
with SMTP id PAA27920 for <bug-libtool@gnu.org>; Thu, 6 Aug 1998 15:17:18 -0500 (CDT)
|
|
X-Report-Problems-With-Moloko-To: brandon.black@wcom.com
|
|
X-If-you-can-read-this-you-are-too-close: :)
|
|
Date: Thu, 6 Aug 1998 15:17:11 -0500 (CDT)
|
|
From: Ron Romero <ron.romero@wcom.com>
|
|
Sender: rdromero@pinebilly.wcom.com
|
|
Reply-To: ron.romero@wcom.com
|
|
To: bug-libtool@gnu.org
|
|
Subject: libtool Doesn't Export C++ Methods on AIX
|
|
Message-ID: <Pine.A41.3.96.980806150532.36284A-100000@pinebilly.wcom.com>
|
|
MIME-Version: 1.0
|
|
Content-Type: TEXT/PLAIN; charset=US-ASCII
|
|
Xref: araguaia.dcc.unicamp.br libtool-cxx:8
|
|
Lines: 26
|
|
X-Gnus-Article-Number: 8 Wed Nov 4 08:08:35 1998
|
|
|
|
I'm trying to use libtool with C++ programs, and found that libtool
|
|
wouldn't put any C++ methods into the shared library. When I looked
|
|
into it, I found that the nm command used to create the export list
|
|
doesn't pass a -C flag. On AIX, the -C flag says to leave C++ names
|
|
mangled. Since the function names weren't mangled, the sed line
|
|
didn't recognize them as functions, so they weren't put into the .exp
|
|
file. I found that I could fix the problem by adding a -C flag to
|
|
ac_cv_path_NM in config.guess. I suppose the configure script should
|
|
check for that and do it automatically.
|
|
|
|
I'm running libtool version 1.2 on an AIX 4.2 box
|
|
(powerpc-ibm-aix4.2.1.0).
|
|
|
|
I have some test files that I can give to anyone who wants to test
|
|
this. And I can test potential fixes on my machine.
|
|
|
|
|
|
Thank you,
|
|
|
|
Ron Romero
|
|
ron.romero@wcom.com
|
|
Object Developer
|
|
WorldCom, Inc.
|
|
|
|
From libtool-request@gnu.org Wed Jun 9 13:20 EST 1999
|
|
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 NAA03816
|
|
for <oliva@amazonas.dcc.unicamp.br>; Wed, 9 Jun 1999 13:20:28 -0300 (EST)
|
|
Received: from mescaline.gnu.org (mescaline.gnu.org [158.121.106.21])
|
|
by grande.dcc.unicamp.br (8.9.1/8.9.1) with ESMTP id NAA01398
|
|
for <oliva@dcc.unicamp.br>; Wed, 9 Jun 1999 13:19:57 -0300 (EST)
|
|
Received: (from slist@localhost)
|
|
by mescaline.gnu.org (8.9.1a/8.9.1) id MAA06914
|
|
for oliva@dcc.unicamp.br; Wed, 9 Jun 1999 12:23:06 -0400
|
|
Received: from pen.sentuny.com.au (pen.sentuny.com.au [203.12.98.6])
|
|
by mescaline.gnu.org (8.9.1a/8.9.1) with SMTP id MAA05773
|
|
for <libtool@gnu.org>; Wed, 9 Jun 1999 12:16:37 -0400
|
|
Received: (qmail 6298 invoked by uid 1000); 9 Jun 1999 16:16:33 -0000
|
|
Received: from localhost (sendmail-bs@127.0.0.1)
|
|
by localhost with SMTP; 9 Jun 1999 16:16:32 -0000
|
|
Resent-Date: Wed, 9 Jun 1999 12:23:06 -0400
|
|
Date: Thu, 10 Jun 1999 02:16:32 +1000 (EST)
|
|
From: "Ron O'Hara" <rono@sentuny.com.au>
|
|
To: libtool@gnu.org
|
|
Subject: AIX, C++, shared multi-thread libraries and libtool
|
|
X-Gnus-Mail-Source: file:/n/mail.spool/oliva
|
|
Message-ID: <Pine.LNX.3.96.990610004224.22907O-100000@pen.sentuny.com.au>
|
|
MIME-Version: 1.0
|
|
Resent-Message-ID: <"MVHQY2.0.OQ1.hDfNt"@mescaline.gnu.org>
|
|
Resent-From: libtool@gnu.org
|
|
X-Mailing-List: <libtool@gnu.org> archive/latest/1500
|
|
X-Loop: libtool@gnu.org
|
|
Precedence: list
|
|
Resent-Sender: libtool-request@gnu.org
|
|
Content-Type: TEXT/PLAIN; charset=US-ASCII
|
|
X-Content-Length: 857
|
|
Xref: saci.lsd.dcc.unicamp.br libtool-cxx:9
|
|
Lines: 28
|
|
X-Gnus-Article-Number: 9 Fri Jun 25 20:06:59 1999
|
|
|
|
|
|
AIX, C++, shared multi-thread libraries and libtool
|
|
|
|
Ughh ... what a combination
|
|
|
|
Anyway... it appears that for AIX4.2.1.0 creating shared libraries is very
|
|
tricky. You must use the 'makeC++SharedLib_r' script that IBM supplies.
|
|
Not the xlC_r compiler as libtool does.
|
|
|
|
In addition, I kept getting unresolved symbols when linking against my own
|
|
libraries. I needed to set 'always_export_symbols=yes' even though the
|
|
-bexpall flag is supposed to fix that..
|
|
|
|
To do that I had to edit 'ltconfig.in' (about line 1262 for libtool-1.3.2)
|
|
and set it always on - regardless of the host_os version.
|
|
|
|
I can now get it all to link, but this is sure an ugly monster !! and the
|
|
executable files are definitely HUGE
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------
|
|
email: rono@sentuny.com.au
|
|
BH: (GMT) +353 21 281469
|
|
Mobile: +61 419 873 801
|
|
|
|
From marcusd@cathcart.sysc.pdx.edu Fri Jun 18 17:46 EST 1999
|
|
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 RAA19966
|
|
for <oliva@amazonas.dcc.unicamp.br>; Fri, 18 Jun 1999 17:46:53 -0300 (EST)
|
|
Received: from cathcart.sysc.pdx.edu (cathcart.sysc.pdx.edu [131.252.30.67])
|
|
by grande.dcc.unicamp.br (8.9.1/8.9.1) with ESMTP id RAA20228
|
|
for <oliva@dcc.unicamp.br>; Fri, 18 Jun 1999 17:46:47 -0300 (EST)
|
|
Received: (from marcusd@localhost)
|
|
by cathcart.sysc.pdx.edu (8.9.3/8.9.3/Debian/GNU) id NAA30172;
|
|
Fri, 18 Jun 1999 13:50:02 -0700
|
|
To: Alexandre Oliva <oliva@dcc.unicamp.br>
|
|
Cc: libtool@gnu.org
|
|
Subject: Re: constructors in HPUX/SOM shared libraries
|
|
References: <199905161700.LAA01572@pojoaque.santafe.edu> <ord7zsc7h1.fsf@lua.lbi.dcc.unicamp.br>
|
|
From: marcusd@cathcart.sysc.pdx.edu (Marcus G. Daniels)
|
|
Date: 18 Jun 1999 13:50:01 -0700
|
|
In-Reply-To: Alexandre Oliva's message of "23 May 1999 09:10:18 -0300"
|
|
X-Gnus-Mail-Source: file:/n/mail.spool/oliva
|
|
Message-ID: <rfik8t1mdxi.fsf@cathcart.sysc.pdx.edu>
|
|
User-Agent: Gnus/5.070084 (Pterodactyl Gnus v0.84) Emacs/20.3.10
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=us-ascii
|
|
X-Content-Length: 1653
|
|
Xref: saci.lsd.dcc.unicamp.br libtool-cxx:10
|
|
Lines: 68
|
|
X-Gnus-Article-Number: 10 Fri Jun 25 20:06:59 1999
|
|
|
|
>>>>> "AO" == Alexandre Oliva <oliva@dcc.unicamp.br> writes:
|
|
|
|
AO> IMO, the way to go is to try to use gcc -shared to create shared
|
|
AO> libraries, because then gcc's collect2 will (is supposed to?) take
|
|
AO> care of the magic for constructors to run.
|
|
|
|
Unfortunately, it doesn't. Of course, with glibc or Solaris, a GNU
|
|
as/ld equipped GCC will do the job:
|
|
|
|
marcusd@cathcart[~] $ cat constructor.c
|
|
void tryme (void) __attribute__ ((constructor));
|
|
|
|
void
|
|
tryme (void)
|
|
{
|
|
printf ("constructor\n");
|
|
}
|
|
|
|
marcusd@cathcart[~] $ cat test-constructor.c
|
|
#include <dlfcn.h>
|
|
|
|
main ()
|
|
{
|
|
void *handle = dlopen ("./libconstructor.so", RTLD_GLOBAL | RTLD_LAZY);
|
|
printf ("%p\n", handle);
|
|
printf ("main\n");
|
|
}
|
|
|
|
marcusd@cathcart[~] $ gcc -fPIC -c constructor.c
|
|
marcusd@cathcart[~] $ gcc -shared constructor.o -o libconstructor.so
|
|
marcusd@cathcart[~] $ gcc test-constructor.c -ldl
|
|
marcusd@cathcart[~] $ ./a.out
|
|
constructor
|
|
0x80496a8
|
|
main
|
|
|
|
However, the equivalent on HPsUX fails:
|
|
|
|
mgd@pajarito[~] $ cat test-constructor.c
|
|
#include <dl.h>
|
|
#define SHL_FLAGS (BIND_IMMEDIATE | BIND_NONFATAL | DYNAMIC_PATH)
|
|
main ()
|
|
{
|
|
shl_t handle;
|
|
|
|
handle = shl_load ("./libconstructor.sl", SHL_FLAGS, 0L);
|
|
printf ("%x\n", handle);
|
|
|
|
printf ("main\n");
|
|
}
|
|
|
|
mgd@pajarito[~] $ gcc -c -fPIC constructor.c
|
|
mgd@pajarito[~] $ gcc -fPIC -shared constructor.o -o libconstructor.sl
|
|
mgd@pajarito[~] $ gcc test-constructor.c -ldld
|
|
mgd@pajarito[~] $ ./a.out
|
|
7b031748
|
|
main
|
|
|
|
However, there is a flag to the HP linker that provides the needed
|
|
feature:
|
|
|
|
mgd@pajarito[~] $ gcc -Wl,+I,tryme -fPIC -shared constructor.o -o libconstructor.sl
|
|
mgd@pajarito[~] $ ./a.out
|
|
constructor
|
|
7b031748
|
|
main
|
|
|
|
|