[R-pkg-devel] Compiling with more than one compiler in package development

Erin Hodgess erinm.hodgess at gmail.com
Fri Jan 5 05:40:58 CET 2018


Hello!

I'm not sure if this appeared, so I thought I would try again.  I am
building a package on a RedHat supercomputer, using the gcc/gfortran and
the accompanying mpi (MPICH) compilers.  Here is the Makefile:

PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)


all:  rmpigFortr.so tria.so


rmpigFortr.so:

        mpifort -fPIC   -c rmpigFortr.f90 -o    rmpigFortr.o

        mpifort -shared rmpigFortr.o -o rmpigFortr.so


tria.so:

        gfortran -m64  -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexcep\

tions -fstack-protector-strong --param=ssp-buffer-size=4
-grecord-gcc-switches \

  -m64 -mtune=generic  -c  tria.f90 -o tria.o

        gfortran -m64 -shared -L/usr/lib64/R/lib -Wl,-z,relro -o tria.so
tria.o\

 -L/usr/lib64/R/lib -lR


Here is the NAMESPACE:


# Generated by roxygen2: fake comment so roxygen2 overwrites silently.

exportPattern("^[^\\.]")

useDynLib(rmpigFortr)

useDynLib(tria)


When I build, check, and install the package, it seems to be fine.
However, I have an R function that calls that "tria" Fortran subroutine.
Here are the results:



> library(rmpigFortr)

> za <- tri(n=1000)

Error in .Fortran("tria", as.single(y), as.integer(n)) :

  "tria" not resolved from current namespace (rmpigFortr)

>

But if I type in the call to .Fortran myself, it works.


Any idea what I might be doing wrong, please?


Thanks in advance,

Sincerely,

Erin



-- 
Erin Hodgess
Associate Professor
Department of Mathematical and Statistics
University of Houston - Downtown
mailto: erinm.hodgess at gmail.com

	[[alternative HTML version deleted]]



More information about the R-package-devel mailing list