OS: CentOS-7
ROOT: 5.28
CERNLIB: 2005 with all latest paches from CERNLIB build instructions for Linux (x86-64)
Hi folks,
This one’s a bit of a long shot as it’s not really ROOT related, but I’ve seen previous threads that indicate there may be expertise here, and I’m out of other options, so here goes:
I’m trying to compile a c++ application that will call Fortran routines dependant on CERNLIB. (I believe to provide routines to interface with ZEBRA files and hbooks and such.)
The application as a whole is a framework that compiles ‘user tools’ into objects, builds a shared library from those objects, and then dynamically links the resulting library of tools into the framework. The Fortran routines are generally called by the user tools.
Currently the application compiles and links fine, but when I try to run the resulting application I get the following error:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LOCB/LOCF: address 0x7fb881fd3200 exceeds the 32 bit address space
or is not in the data segments
This may result in program crash or incorrect results
Therefore we will stop here
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
I’ve managed to compile a minimal standalone application that does essentially the same thing by defining a function that calls fortran/cernlib, building it into a shared library, then building a small caller that pulls that function in by linking against the shared library. That works just fine, so something is clearly different when things scale up to the larger framework.
With a bit of help from some experts I’ve been told that the issue is our framework depends on boost, which results in its shared libraries being built in GNU/Linux mode, whereas the working standalone builds in SYSV mode. To be honest, that information is rather above my head, so I’m not sure how to proceed with it.
Has anyone in the ROOT team had experience linking against libraries with CERNLIB dependencies? Is this something that can be worked around? Am I over-complicating the issue?
Any help much appreciated.
Marcus