Gregory Crosswhite | 12 Nov 21:04
Gravatar

Linker?

Does anyone know here how GHC links in object files from other  
languages?  I am getting a strange issue where it seems to be getting  
the calling convention on Fortran calls wrong.

Specifically, on one computer (Gentoo Linux) I have with gcc and  
gfortran v4.4 and ghc compiled using gcc v4.3, I have no problems at  
all.

On another computer (a Mac) I have with gcc 4.0 and gfortran 4.4 and a  
binary of ghc installed (as downloaded from haskell.org), I run into  
problems.  Specifically, I noticed that the first parameter seems to  
get eaten when I declared a fortran routine as a function but not when  
I declare it as a subroutine.  So I went ahead and converted the  
fortran routines into subroutines, but then I get another crash  
elsewhere in the code where a module calls a LAPACK routine for  
reasons unknown;  I do not get this crash when running the same code  
path but called using a Python wrapper that uses gcc + gfortran + f2py  
rather than from my Haskell wrapper.

I thought that this might be a problem with mixing gcc 4.0 and  
gfortran 4.4 (and ultimately I think this might still be the case),  
but when I tried writing small test cases using *only* gcc and  
gfortran and not ghc, everything worked just fine.

Any thoughts?

- Greg

Gmane