[Halld-offline] locf_() Warning when running hdgeant

Eugene Chudakov gen at jlab.org
Thu Oct 28 19:26:40 EDT 2010


The function locf returns the absolute address of a variable, stored in
a fixed area, as in a COMMON. It returns 4 Bytes, however on a 64-bit box
the full address ishould contain 8 Bytes. The result depends on the CPU/compiler implementation,
even if the program itself does not exceed the 4 Bytes space. For some implementations the lower 
4 Bytes define the address correctly for programs which fit into 2GB.

Some  cernlib versions (I believe coming from A.Vogt from DESY, who made a 64-bit hack) 
do a check and complain/stop if the address is long, even if the higher bits are meaningless.

BTW, locf is used by the package FFREAD, used by GEANT3.

It seems that the Jlab version does not have this check, see:
jlabl1:/apps/cernlib/BUILD/2005/src/packlib/kernlib/kerngen/ccgen/locf.c

I would suggest to get the cernlib libraries from JLab and try it.

I compiled cernlib for myself, removing the check, but keeping some other
64-bit hacks from A.Vogt. It works fine to link GEANT3. However, for
reasons unknown to me, the paw executable became crippled in comparison
with the original version, crashing on large ntuples.

Let me know it you still have trouble. I can provide my cernlib version, which
links into working GEANT3 executables.

Eugene

------------------------------------------------------
Eugene Chudakov
http://www.jlab.org/~gen
phone (757) 269 6959  fax (757) 269 6331
Thomas Jefferson National Accelerator Facility
12000 Jefferson Ave,
Newport News, VA 23606 USA

On Thu, 28 Oct 2010, Nathan Sparks wrote:

> Hi All,
>
> I recently compiled the offline software on a 64-bit linux machine with gcc 4.1.2, and using 64-bit libraries/packages (cernlib,root,etc). When I run hdgeant, I get the following warning messages repeated many times:
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> locf_() Warning: changing base from 0 to 7fff00000000!!!
> This may result in program crash or incorrect results
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> It is a 64-bit cernlib issue, but I have not been able to find a solution to it. Does anyone happen to have a solution to this problem?
>
> Regards,
> Nathan
> _______________________________________________
> Halld-offline mailing list
> Halld-offline at jlab.org
> https://mailman.jlab.org/mailman/listinfo/halld-offline
>



More information about the Halld-offline mailing list