[Rcpp-devel] Attribute does not compile with 'compileAttributes' but with 'sourceCpp'

Dominick Samperi djsamperi at gmail.com
Fri Nov 1 20:33:00 CET 2013


My original attempt to update to Mavericks failed (unrelated hardware
issue), and this
may have actually worked in my favor. It forced me to install Mac OS X 10.8
from
scratch, a "clean" install, that I later upgraded to Mavericks. If you
upgraded from
an existing configuration you may have old tools (like llvm-g++-4.2) laying
around
that could cause problems.


On Fri, Nov 1, 2013 at 3:02 PM, Simon Zehnder <szehnder at uni-bonn.de> wrote:

> I read through all the thread answers and my variables in the Makeconf are
> the same alsso I installed the Xcode Command Line Tools for Mavericks. Are
> there any other apps and libs that have been to be updated? (I do not use
> brew). What remains is the following:
>
> Compiling Rcpp give the pointer exception (when calling
> compileAttributes), also encountered in the thread you referred to.
>
> Compiling Rcpp and adding the flag “-headerpad_max_install_names” lets the
> compileAttributes function do its work without any exception. My next guess
> is: possibly the gettext library…
>
> Best
>
> Simon
>
> On 01 Nov 2013, at 19:20, Dominick Samperi <djsamperi at gmail.com> wrote:
>
> > In your original post you mention the "pointer being freed was not
> allocated" error message. I have just tracked this down in another context
> (Octave
> > under Mac OS X). In my case the error occurs on the dlopen() call for
> > an R package shared library. The fix was to make sure all apps and libs
> > are updated after moving to Mavericks. See the thread in rcppoctave-users
> > list for a blow-by-blow description.
> >
> >
> > On Fri, Nov 1, 2013 at 1:11 PM, Simon Zehnder <szehnder at uni-bonn.de>
> wrote:
> > You are right, working with apple and C++ is often a mess. Up to now,
> llvm does not yet support openmp. It is coming but I do not see it fully
> implemented before next summer. If I want to use openmp I have thus to rely
> on the gcc which brings a lot of problems with it and from what I read on
> the R-lists most of the Mac Users suffer. I guess that this time a
> reinstall of R was unavoidable for most of us. I thought about using the
> xcrun —find gcc/g++ etc. to get what is needed in a Makevars but this does
> not give anything so far.
> >
> >
> > On 01 Nov 2013, at 17:50, Dominick Samperi <djsamperi at gmail.com> wrote:
> >
> > > With Apple moving from gcc/g++ to LLVM/clang++ I guess it makes sense
> > > for R/Rcpp to use the LLVM/clang++ tool chain eventuallly, but I don't
> know
> > > if there are plans to do this. Otherwise, the R community would need to
> > > support "MACtools" following the model provided by "Rtools" under
> Windows...
> > >
> > >
> > > On Fri, Nov 1, 2013 at 12:12 PM, Simon Zehnder <szehnder at uni-bonn.de>
> wrote:
> > > Hi Dominick,
> > >
> > > I did install files from brew but instead used the gcc from
> http://hpc.sourceforge.net
> > >
> > >
> > > On 01 Nov 2013, at 16:55, Dominick Samperi <djsamperi at gmail.com>
> wrote:
> > >
> > > > If you depend on tools installed using brew, you might want to try
> > > > removing those that were installed before the Mavericks update,
> > > > using:
> > > > rm -rf /usr/local/Cellar
> > > > brew prune
> > > > brew doctor
> > > > brew install <what-you-need>
> > > >
> > > >
> > > > On Fri, Nov 1, 2013 at 11:19 AM, Simon Zehnder <szehnder at uni-bonn.de>
> wrote:
> > > > Point landing J.J.!
> > > >
> > > > I already compiled a new R when Mavericks came out with a newly
> installed a gcc-4.8.2, that I can load via environment modules. I also
> installed the Xcode Command Line Tools for Mavericks.
> > > >
> > > > I now reinstalled Rcpp with the gcc-4.8.2 and threw away all object
> and shared-object files in my /src/ folder of my package. The problem
> remains. Is there something special I can look for in my Makeconf file?
> What is so different about ‘compileAttributes’ in contrast to ‘sourceCpp’
> or a usual package compilation via R CMD INSTALL? Does compileAttributes
> uses some additional flags and/or libraries?
> > > >
> > > > Best
> > > > Simon
> > > >
> > > >
> > > >
> > > > On 01 Nov 2013, at 15:56, JJ Allaire <jj.allaire at gmail.com> wrote:
> > > >
> > > > > Are you by any chance on OS X Mavericks? I had one other user
> report this specific error on Mavericks and it seemed to be related to the
> use of different compilers (and thus different heaps) within the same
> compilation (there is exposure to this with the changes made by Apple to
> the toolchain in Mavericks).
> > > > >
> > > > > J.J.
> > > > >
> > > > >
> > > > > On Fri, Nov 1, 2013 at 10:01 AM, Simon Zehnder <
> szehnder at uni-bonn.de> wrote:
> > > > > Dear Rcpp::Users and Rcpp::Devels,
> > > > >
> > > > > I get a weird exception when I try to compile an attribute in one
> of my packages:
> > > > >
> > > > > compileAttributes("/Users/simonzehnder/git/mmstruct/mmstruct/")
> > > > > R(6256,0x7fff79ad9310) malloc: *** error for object
> 0x7fff7ac48330: pointer being freed was not allocated
> > > > > *** set a breakpoint in malloc_error_break to debug
> > > > > Abort trap: 6
> > > > >
> > > > > If I instead use the sourceCpp function all works fine:
> > > > >
> > > > >
> sourceCpp("/Users/simonzehnder/git/mmstruct/mmstruct/src/testing.cpp”)
> > > > > testfunction_cc(c(0,0,0), list(trades = rnorm(10), T = 360))
> > > > > [1] 0.000000e+00 3.509927e-05 1.169976e-05
> > > > >
> > > > > The function in my file is actually pretty simple (and its the
> only one):
> > > > >
> > > > > #include<Rcpp.h>
> > > > >
> > > > > // [[Rcpp::export]]
> > > > >
> > > > > Rcpp::NumericVector testfunction_cc(Rcpp::NumericVector par,
> > > > >         Rcpp::List list)
> > > > > {
> > > > >     const unsigned int K        = par.size();
> > > > >     Rcpp::NumericVector trades  = list["trades"];
> > > > >     const unsigned int T        = list["T"];
> > > > >     double tmp = mean(trades)/T;
> > > > >     std::vector<double> startp(K);
> > > > >     startp[0] = 0.0;
> > > > >     startp[1] = tmp * 0.75/2;
> > > > >     startp[2] = tmp * 0.25/2;
> > > > >
> > > > >     return Rcpp::wrap(startp);
> > > > > }
> > > > >
> > > > > At this moment I am a little perplexed. Where should I search for
> a possible error? What are things to try out?
> > > > >
> > > > > Best
> > > > >
> > > > > Simon
> > > > >
> > > > > _______________________________________________
> > > > > Rcpp-devel mailing list
> > > > > Rcpp-devel at lists.r-forge.r-project.org
> > > > >
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
> > > > >
> > > >
> > > > _______________________________________________
> > > > Rcpp-devel mailing list
> > > > Rcpp-devel at lists.r-forge.r-project.org
> > > >
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
> > > >
> > >
> > >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20131101/e653625f/attachment.html>


More information about the Rcpp-devel mailing list