Resolved problem with revoIPC 1.0-3 and new g++

Few days ago I had a installation problem package revoIPC 1.0-3 and doSMP 1.0.1. When I was compiled revoIPC 1.0-3, compilator returned this error:

g++ -I/usr/local/lib64/R/include  -I/usr/local/include   -I . -fpic
-g -O2 -c interface.cc -o interface.o
In file included from ./boost/interprocess/detail/

utilities.hpp:29:0,
                from ./boost/interprocess/mapped_region.hpp:20,
                from
./boost/interprocess/detail/managed_open_or_create_impl.hpp:17,
                from boost/interprocess/managed_mapped_file.hpp:20,
                from queue.h:17,
                from interface.cc:3:
./boost/interprocess/detail/iterators.hpp:352:15: error: reference
‘m_value’ cannot be declared ‘mutable’ [-fpermissive]
make: *** [interface.o] Błąd 1
ERROR: compilation failed for package ‘revoIPC’

Rich Calaway from revolutionanalytics.com helped me quickly and sent solution. The patch with fix this problem is a:

“… go to src/boost/interprocess/detail/iterators.hpp and comment out lines 341-353”

Thanks for this advice we can compile revoIPC 1.0-3 and use it in with doSMP 1.0.1. Just one thinks, if we use doSMP 1.0.1 in new revoIPC 1.0-4 and we try execute this program:

rmSessions(all.names = TRUE)
w <- startWorkers(2)
registerDoSMP(w)
foreach(i=1:3) %dopar% sqrt(i)

R return this error:

> foreach(i=1:3) %dopar% sqrt(i)  *** caught segfault ***
address 0x7fd0e562f58c, cause ‘memory not mapped’ Traceback:
 1: .Call(“returnResult”, q, t$task, serialize(res, NULL))
 2: ipcTaskReturnResult(taskq, taskchunk, resultchunk)
 3: doSMP:::workerLoop(qname, rank, verbose, out)
aborting …

Rich Calaway helped me fixed this problem to. I don’t check it but if someone want to use revoIPC 1.0-4 must:

“… remove the PKG_CPPFLAGS=-DNDEBUG line from Makevars.in in the src directory.”

Good luck.

2 thoughts on “Resolved problem with revoIPC 1.0-3 and new g++

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.