[Ifeffit] Compiling Ifeffit wrapper, Athena, etc on AMD64 Linux Box

Matt Newville newville at cars.uchicago.edu
Thu Dec 9 11:19:50 CST 2004


Jake, Carlo, Bruce,

I think Carlo is essentially correct, and have no experience with
64bit linux either, so I'm not sure where the actual problem lies.

As far as I understand, all the dynamic libraries would have to
decide on basic stuff like how many bytes an 'int' uses, or at
least know whether 'int' in some library meant 32bitInt or
64bitInt.   So some questions for Jake would be:
 1. does command-line 'ifeffit' work?  Does it start up, does it 
    read data, does it plot data?   If not, perl is not the issue.
    I think perl's Makefile.PL will try to run ifeffit, so my 
    guess is that ifeffit does work, at least some ;).

 2. If ifeffit does run, do a 'ldd /usr/local/bin/ifeffit' (or
    whereever else ifeffit got installed to).  This will report 
    the dynamic libraries that ifeffit will try to load.  Many of 
    those will also be loaded by the perl library (Ifeffit.so), 
    so that might give a hint of where to look for 32bit v 64bit
    libraries.  If you ever get a perl Ifeffit.so to compile, you 
    could run ldd on that too.

 3. Did you compile a dynamic PGPLOT  library? That is, is ifeffit
    linking with libpgplot.so or libpgplot.a?  If the ldd command 
    above lists libpgplot.so, then find and delete that file, and 
    rebuild Ifeffit to use the static libpgplot.a.

 4. Do you know that perl is not the problem?  Do the perl/Tk 
    demos work? 

Other than that, I'd google search, especially on the 'bad value 
collect2':

> > /usr/local/lib/libifeffit.a: 
> > could not read symbols: Bad value collect2: ld returned 1 exit status

I don't know where that's coming from.  Could be related to the
64bit X11 libraries, but also might be fortran related....

> > I've edited the Makefile in the horae-046 directory where ifeffit_wrap.c and
> > ifeffit_wrap.o are located to append -fPIC following the call to gcc, producing:

I'm not sure adding the -fPIC should be necessary.  Whether this
is needed seems to depend on gcc versions and other painfully
weird things.

Sorry for not being able to help more than that.  On the bright
side, there will be several happy people when you figure it out!

--Matt





More information about the Ifeffit mailing list