[Rd] gomp library with Rtools212

From: Marko Robnik-Šikonja <marko.robnik_at_fri.uni-lj.si>
Date: Fri, 19 Nov 2010 16:58:40 +0100


Dear developers,

I am a maintainer of the CORElearn package which uses OpenMP multithreading to speed up some computations. When producing a new release we tested the package with the latest R 2.12.0. On Linux the package works normally. On Windows we installed a recommended version of Rtools (Rtools212) but the linker fails with the messages below.

...
g++ -I"C:/Util/R/R-2.12.0/include" -fopenmp -O2 -Wall -c trutilReg.cpp -o trutilReg.o
g++ -I"C:/Util/R/R-2.12.0/include" -fopenmp -O2 -Wall -c utils.cpp
-o utils.o

g++ -shared -s -static-libgcc -o CORElearn.dll tmp.def Rconvert.o Rfront.o binarize.o binarizeReg.o binnode.o binnodeReg.o binpart.o bintree.o bintreeReg.o c45read.o calibrate.o constrct.o constrctReg.o cost.o dataStore.o error.o estCommon.o estOrdAttr.o estimator.o estimatorReg.o expr.o exprReg.o frontend.o ftree.o kdtree.o mathutil.o menu.o model.o

modelReg.o mstring.o new_new.o nrutil.o options.o printUtil.o prune.o
pruneReg.o random.o regtree.o relieff.o rfRegularize.o rfUtil.o rndforest.o
rrelieff.o treenode.o treenodeReg.o trutil.o trutilReg.o utils.o -fopenmp

-LC:/Util/R/R-2.12.0/bin/i386 -lR

c:/util/rtools/mingw/bin/../lib/gcc/mingw32/4.5.0/libgomp.a(parallel.o):(.te xt+0x19): undefined reference to `_imp__pthread_getspecific' c:/util/rtools/mingw/bin/../lib/gcc/mingw32/4.5.0/libgomp.a(parallel.o):(.te xt+0x7a): undefined reference to `_imp__pthread_mutex_lock' c:/util/rtools/mingw/bin/../lib/gcc/mingw32/4.5.0/libgomp.a(parallel.o):(.te xt+0x9a): undefined reference to `_imp__pthread_mutex_unlock' c:/util/rtools/mingw/bin/../lib/gcc/mingw32/4.5.0/libgomp.a(parallel.o):(.te xt+0xfa): undefined reference to `_imp__pthread_getspecific' ...
hundreds of error messages follow...

On R 2.11.1 and 32 bit Windows the package worked fine. Since Rtools now uses gcc 4.5.0 and libgomp-4.5.0, which do support OpenMP, I do not know what is wrong.
In Makevars.win I use
PKG_CXXFLAGS = -fopenmp
PKG_LIBS = -fopenmp

Suspecting that errors may be caused by a wrong underscore convention I experimented with the SYMPAT variable in etc/Makeconf, but without success. My guess is that gomp library provided with Rtools212 is using a different underscore convention as the rest of the gcc. Can you suggest some solution, please?

Best regards,

Marko



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri 19 Nov 2010 - 16:03:46 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sat 20 Nov 2010 - 07:50:24 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive