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

From: Jiri Masik (masik@fzu.cz)
Date: Fri Oct 22 2004 - 15:25:44 MEST


Hi Ricardo,

you should add fortran library -lg2c which is part of your compiler
suite. 
cheers

Jiri

Ricardo Eusebi <eusebi@fnal.gov> writes:

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