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