RE: Shared object on IRIX...

From: Canal, Philippe (pcanal@fnal.gov)
Date: Fri Aug 20 1999 - 21:28:53 MEST


> Hi Rooters,
> course).  The make successfully compiles all of the object files, but when
> it attempts to link them using KCC, I keep getting protests of:
> no output from nm and
> /usr/products/IRIX6n32/root/v2_22_09/lib/libZip.so: no symbols

Hi Andrew,

This is probably due to the availability of different incompatible ABI (Application
Binary Interface) on IRIX.  You can produce executable that handle 64 or 32 bits 
pointer, and with 32 bits pointer you have a choice between a new and old 
binary interface.  The current default is to use the old 32 bits interface.

The version of ROOT that you are using is (according to the path) built as a
n32 version.  (and if this is, as I suspect, located on d02ka.fnal.gov, it is also 
built with exception enabled).

In all the recent releases built with KCC and redistributed at Fermilab  you can find 
both in the $ROOTSYS/src and $ROOTSYS/test directory, a file named 'Makefile.built'.   
This makefile contains all the information on how this release has been built 
(n32 or o32, debug or optimize, with or without exceptions, etc ...).

In order to find the proper flag for a KCC releases you need to look at the
Makefile.build file as well as the Makefile.sgikcc file that are inside a KCC
release.  The sgi, KCC makefile currently released with ROOT in the test directory is
only set to handle the old 32 ABI, without exception and with debug information.

In your case your probably need to add to CXXFLAGS the flags:
	"-n32 --exceptions "

Philippe Canal (pcanal@fnal.gov)



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:38 MET