| 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 |
| |
| |