You're right!
Thanks to everybody here, and I am sorry for that "non-sense" bug report!


Ricardo



On 9/5/05, Thomas Lumley <tlumley@u.washington.edu> wrote:
> 
> 
> >
> > In some machines I don't get the segmentation fault problem, but I don't 
> get the
> > message "Just a simple test" either (when using "cg" as the subroutine's 
> name).
> > I believe this is bug in R because if I change my C interface again to 
> return a
> > 0 instead of a R_NilValue, and then use it with another C program wich 
> loads the
> > dynamic library amd call the function simple_program(), everything work
> > perfectly.
> >
> 
> I don't think it is an R bug. I think it is because there is already a
> Fortran function called cg in R. The fact that changing the name matters
> suggest that you have a linking problem, and this turns out to be the
> case.
> 
> When I try running your code under gdb in R as Peter Dalgaard suggested
> (after editing it to use R's macros for calling fortran from C instead of
> "cfortran.h" which I don't have), I get
> 
> > .Call("simple_program")
> Calling the function...
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x081604e5 in cg_ (nm=0x9e5dda4, n=0xbfefccfc, ar=0xbfefcce8, ai=0x89a826,
> wr=0x9e5dda4, wi=0x9790cc0, matz=0x56090a0, zr=0x80992d4, zi=0x0,
> fv1=0x0,
> fv2=0x9e745f8, fv3=0x89a810, ierr=0x706d6973) at eigen.f:3416
> 3416 IERR = 10 * N
> Current language: auto; currently fortran
> 
> 
> That is, your program is calling the Fortran subroutine CG in eigen.f,
> rather than your CG.
> 
> There should be some set of linker flags that makes sure your definition
> of CG is used, but I don't know what it would be (and it's probably very
> platform dependent)
> 
> -thomas
> 
> 
> 
>

	[[alternative HTML version deleted]]

