[omniORB] Seg. Faults on Irix 6.5

James Riden jamesr@harlequin.co.uk
Thu, 20 May 1999 08:51:27 +0100


At 01:36 PM 5/19/99 -0400, ryan.tecco wrote:
>
>On Tue, 18 May 1999, James Riden wrote:
> 
>> If it runs properly after this, this is a known problem, and I think
>> someone has produced a patch for it. I can't remember where offhand, or
>> even if it comes with v 2.7.1.
>> 
>> try :
>> 
>> http://www.uk.research.att.com/omniORB/archives/1998-08/0045.html
>> 
>> plus, make sure that you have all the necessary patches to the C++
>> compiler & runtime.  
>
>What exactly are those patches? Anything outside of a standard install of
>Irix 6.5?

Ryan,

I believe that IRIX 6.5, instead of having many patches to apply, as with
IRIX 6.3/6.4, has a stream of maintenance releases.  However I don't think
the C++ compiler counts as part of the OS, so there are a few patches to 
that.

Here's some stuff about a working machine with the 7.2.1 C++ compiler &
runtime :

machine% uname -a
IRIX machine 6.5 05190004 IP32

machine% versions -b | grep MIPSpro
I  patchSG0002992       10/12/98  Patch SG0002992: MIPSpro 7.2.1 Compiler
Back-end #1
I  patchSG0003022       10/12/98  Patch SG0003022: MIPSpro 7.2.1 Fortran90
Front-End #1
I  patchSG0003048       10/12/98  Patch SG0003048: MIPSpro 7.2.1 C++
front-end rollup #1
I  patchSG0003077       10/12/98  Patch SG0003077: MIPSpro 7.2.1 C
front-end rollup #1

I think maybe with the 7.2 compiler you might need to apply a patch to 
the run-time as well.  Your systems administrator should be able to point
you to the patch list on the SGI website, and apply any you need.

>And I don't know if the problem is with omniNames, because the first echo
>example doesn't use the name service... unless perhaps it always loads up
>omniNames. Let me know!

Sorry, omniNames was just an example.  Here's a reprise with eg1 :

machine% cd omniORB_2.7.1/src/examples/echo
machine% gnumake export
<snip>

+ CC -o eg1 -n32 -float -ansi -LANG:exceptions=ON -woff 3303,1110,1182
-L../../../lib/mips_irix_6.5_n32 eg1.o ../../../stub/echoSK.o 
../../../stub/echoDynSK.o -lomniORB2 -lomniDynamic2 -lomnithread -lpthread
-ltcpwrapGK -lomniORB2 -lomnithread

<snip>
machine% eg1
Segmentation fault (core dumped)         (look familiar ?)

try again :

machine% CC -o eg1 -n32 -float -ansi -LANG:exceptions=ON -woff 3303,1110,1182
-L../../../lib/mips_irix_6.5_n32 eg1.o ../../../stub/echoSK.o 
../../../stub/echoDynSK.o -lomniORB2 -lomniDynamic2 -lomnithread  -ltcpwrapGK 
-lomniORB2 -lomnithread -lpthread

(this should be all on one line)

machine% eg1
I said,"Hello!". The Object said,"Hello!"
machine% 

Note the -lpthread comes after any mentions of -lomnithread  .  I think this
is what makes the difference - it may or may not be to do with the order of
initialisation of statics in the different libraries. Should I add this to all
the mips_irix_6.X_n32.mk ? (if I can work out the correct gnumake runes that 
is ;)  I could also add some of this to the FAQ / IRIX release notes if anyone
thinks it worthwhile.  Someone tell me if I've got anything particularly 
wrong.


  cheers,
    James

-- 
"I hear they're hiring down at McDonalds. Enjoy your new job flipping
burgers. "
   from the C++ FAQ lite, section 10.10