[omniORB] Makefile for AIX

Gary D. Duzan gdd0@gte.com
Tue, 12 Oct 1999 09:58:05 -0400


   Basically, exceptions just aren't caught properly when you use
shared libraries, leading to core dumps. It is a gcc bug which I
understand may get fixed sometime next year. You can use static
libraries, which appear to work since egcs 1.1.2, but then your code
essentially comes under the GPL if you distribute the resulting
binary.  (BTW, one trick I've seen to get around this is to ship a
"link kit" which does the final link of your code and the LGPLed code
as part of the installation. This is a pain, too, of course, but may
actually be legal. YMMV. IANAL.)
   I really wish gcc would work, myself; xlC can be a real pain to work
with. There was a patch to egcs 1.0 to get it working, but the patch
hasn't been maintained to work with versions since then, and I'm sure
egcs 1.0 has its own set of problems.
   Sorry.

					Gary Duzan
					GTE Laboratories



In Message <38033B5D.6AC28320@psenterprise.com> ,
   Peter Ledbrook <p.ledbrook@psenterprise.com> wrote:

=>Gary,
=>
=>What's the problem with g++ and exceptions? Are there any other known major
=>problems with the gcc/AIX combination? We support several platforms, and I
=>have to say AIX is causing the most frustration :-(
=>
=>Cheers,
=>
=>Peter
=>
=>"Gary D. Duzan" wrote:
=>
=>>    The fix listed below is correct. However, since g++ doesn't do
=>> exceptions correctly with shared libraries and threads, the point is
=>> somewhat moot.
=>>    While I'm thinking of it, there is a possible optimization for
=>> sharedlibs on AIX. Since building object files for a shared library is
=>> the same as for a static library on AIX, it would be much faster to
=>> simply copy or link to the object files created in the parent directory
=>> and use them instead of doing the exact same compile twice. I actually
=>> added rules to do this to an earlier (2.5.0?) version, and it seemed to
=>> work fine.
=>>
=>>                                         Gary Duzan
=>>                                         GTE Laboratories
=>>
=>> p.s. It might also be worth it to grab "libtool" and use it for
=>> building libraries in general. That way the libtool maintainers get to
=>> worry about all the platform issues involved and the OmniORB folks can
=>> stick to writing top-notch ORB code.
=>