RE: [ROOT] Re: relocation errors and invalid ELF error

From: Philippe Canal (pcanal@fnal.gov)
Date: Fri Oct 22 2004 - 16:50:38 MEST


Hi Ricardo,
 
I meant the fortran system library!!!!!  This would means adding to your
shared library link line -lf77 or -lg77 or something else depending on your
compiler!
 
A)  No I do not think so
B) Yes link your library against the fortran system library!
 
Cheers,
Philippe. 

  _____  

From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]
On Behalf Of Ricardo Eusebi
Sent: Friday, October 22, 2004 1:43 AM
To: Philippe Canal
Cc: 'roottalk'
Subject: [ROOT] Re: relocation errors and invalid ELF error



All the fortran libraries (hdecay/hdecay.o  hdecay/haber.o
hdecay/feynhiggs.o) are linked!!!
However when I do a grep s_wsle *  the only files that contain it are the
*.o files.  ( no fortran source file has it)
Seems to me (this may be a wild guess) that s_wsle is a reference to a
fortran built function ( like atan or so) 

So my two questions remain : 
A- is this because the fortran libraries hdecay/*.o have not been  compiled
with the Position Independent Code option ?
How do I compile with that option????

B- Is there away to circunvent this that do not require the recompilation of
root ? 

Thanks a lot

Ricardo


Philippe Canal wrote:


Hi,
 
You should link your library against the fortran library (I think this is
where s_wsle comes from).
 
Cheers,
Philippe.

  _____  

From: Ricardo Eusebi [mailto:eusebi@fnal.gov] 
Sent: Thursday, October 21, 2004 10:41 AM
To: roottalk
Cc: pcanal@fnal.gov
Subject: relocation errors and invalid ELF error


Hi,
I'm (trying to) implement a Root C++ interface to the fortran program
HDecay.
I can succesfully create  a  executable that calls the proper fortran
routines. However when trying to link to root everything seems to fail.
I took a look at  <http://root.cern.ch/root/HowtoCERNLIB.html>
http://root.cern.ch/root/HowtoCERNLIB.html but that particular case refers
to  CERN routines compiled without the option Position Independent Code
(whatever that means).

So I essentially follow the third way in the above web page up to the step 2
exclusive. I do not recompile root, nor I want to.

so when loading the libraries I get 

root [0] gSystem->Load("libHDecay.so")
(int)0
root [1] HDecay a
root [2] HDECAY_InputVars in = a.DefineInputs()
root [3] BR_HC B = a.GetHiggsBR(120,in)
/home/cdfsoft/products/root/v3_05_04dKCC_4_0/Linux+2.4/bin/root.exe:
relocation error: /mnt/autofs/misc/people/eusebi/root_macros/./libHDecay.so:
undefined symbol: read_hdec_

I thought that's because I didn't link the fortran libraries. So I added the
libraries (hdecay/*.o) in the makefile
libHDecay.so : HDecay.o  hdecay/hdecay.o  hdecay/haber.o hdecay/feynhiggs.o
HDecayDict.o  
        $(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ 

This compiles fine again, but the error in root this time is not relocation
but this :

root [0] gSystem->Load("libHDecay.so")
dlopen error: /mnt/autofs/misc/people/eusebi/root_macros/./libHDecay.so:
undefined symbol: s_wsle
Load Error: Failed to load Dynamic link library
/mnt/autofs/misc/people/eusebi/root_macros/./libHDecay.so
(int)(-1)
*** Interpreter error recovered ***


QUESTIONS : 
A- is this because the fortran libraries hdecay/*.o have not been  compiled
with the Position Independent Code option ?
How do I compile with that option????

B- Is there away to circunvent this that do not require the recompilation of
root ? At FermiLab we change root versions pretty often.

Thanks a lot

Ricardo




 




-- 

  --------------------------------------------------------------------

| Ricardo Eusebi                |   Office :  CDF trailer 168-"O"    |

| High Energy Physics           |   Phone  : (630) 840 8622          |

| University of Rochester       |   email  : eusebi@fnal.gov         |

  --------------------------------------------------------------------

|               Fermi National Accelerator Laboratory                |

|                    CDF - MS318 .  PO Box 500                       |

|                     Batavia 60510, Illinois.                       |

  --------------------------------------------------------------------

  


-- 

  --------------------------------------------------------------------

| Ricardo Eusebi                |   Office :  CDF trailer 168-"O"    |

| High Energy Physics           |   Phone  : (630) 840 8622          |

| University of Rochester       |   email  : eusebi@fnal.gov         |

  --------------------------------------------------------------------

|               Fermi National Accelerator Laboratory                |

|                    CDF - MS318 .  PO Box 500                       |

|                     Batavia 60510, Illinois.                       |

  --------------------------------------------------------------------



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET