<div dir="ltr"><br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Dominick Samperi</b> <span dir="ltr"><<a href="mailto:djsamperi@gmail.com">djsamperi@gmail.com</a>></span><br>
Date: 30 October 2013 20:10<br>Subject: Re: Apple Blues<br>To: Renaud Gaujoux <<a href="mailto:renaud@mancala.cbio.uct.ac.za">renaud@mancala.cbio.uct.ac.za</a>><br><br><br><div dir="ltr">We are pretty much back to where we were some weeks ago. Remember<div>
the trivial change that I made to Rcpp that caused it to fail with the</div><div>pointer error, by adding a function that was not even called?</div>
<div><br></div><div>Well, I just did the same with Octave 3.6.4 (the latest Homebrew</div><div>version, not the ancient MacPorts version), and now I get that pointer</div><div>error! Just drop the attached files into the Rcpp/src directory and the</div>

<div>build will fail due to memory corruption.</div><div><br></div><div>So the previous theory (old Octave version) is wrong, and once again</div><div>I suspect that there is an issue with static initializers…</div><div>
<br>
</div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Oct 30, 2013 at 12:07 PM, Dominick Samperi <span dir="ltr"><<a href="mailto:djsamperi@gmail.com" target="_blank">djsamperi@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I am not familiar with what mkoctfile does, and I suspect it may<div>be the source of the problem. Can you provide some background</div>

<div>on what this does?</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Wed, Oct 30, 2013 at 12:04 PM, Dominick Samperi <span dir="ltr"><<a href="mailto:djsamperi@gmail.com" target="_blank">djsamperi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr">I built R using clang/clang++/gfortran-4.2(from Simon of R core) and<div>installed Rcpp using the same tools, and</div><div>there were no obvious problems.</div><div><br></div><div>There was a problem with RcppOctave/src/modules/Makefile.in.</div>



<div>I've attached my work-around.</div><div><br></div><div>When I try to install RcppOctave with Octave 3.6.4</div><div>I get the familiar issue:</div><div><br></div><div><div>clang++ -arch x86_64 -std=c++11 -I/Users/dsamperi/bin/R-clang/R.framework/Resources/include -DNDEBUG `"/Users/dsamperi/bin/R-clang/R.framework/Resources/bin/Rscript" -e "Rcpp:::CxxFlags()"` -DOCT_POST_3_4_0=1 -I"/usr/local/Cellar/octave/3.6.4/include/octave-3.6.4/octave" -I"/usr/local/Cellar/octave/3.6.4/include/octave-3.6.4/octave/../" -I"/usr/local/Cellar/octave/3.6.4/include/octave-3.6.4/octave/octave" -I/usr/local/include -I"/Users/dsamperi/bin/R-clang/R.framework/Versions/3.0/Resources/library/Rcpp/include"   -fPIC  -g -O2  -c rcpp_octave.cpp -o rcpp_octave.o</div>



<div>clang++ -arch x86_64 -std=c++11 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/lib -o RcppOctave.so conversion.o rcpp_octave.o /Users/dsamperi/bin/R-clang/R.framework/Versions/3.0/Resources/library/Rcpp/lib/libRcpp.a -L/usr/local/Cellar/octave/3.6.4/lib/octave/3.6.4 -L/usr/local/Cellar/octave/3.6.4/lib -loctinterp -loctave -lcruft -F/Users/dsamperi/bin/R-clang/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation</div>



<div>installing to /Users/dsamperi/bin/R-clang/R.framework/Versions/3.0/Resources/library/RcppOctave/libs</div><div>** R</div><div>** demo</div><div>** inst</div><div>** preparing package for lazy loading</div><div>** help</div>



<div>R(45582) malloc: *** error for object 0x1058257c0: pointer being freed was not allocated</div><div>*** set a breakpoint in malloc_error_break to debug</div><div>/Users/dsamperi/bin/R-clang/R.framework/Resources/bin/INSTALL: line 34: 45581 Done                    echo 'tools:::.install_packages()'</div>



<div>     45582 Abort trap: 6           | R_DEFAULT_PACKAGES= LC_COLLATE=C "${R_HOME}/bin/R" $myArgs --slave --args ${args}</div></div></div><div><div><div class="gmail_extra"><br><br>
<div class="gmail_quote">On Wed, Oct 30, 2013 at 1:32 AM, Dominick Samperi <span dir="ltr"><<a href="mailto:djsamperi@gmail.com" target="_blank">djsamperi@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>A little more searching revealed that llvm-g++</div><div>and llvm-gcc are part of LLVM releases 2.9 and</div>



<div>earlier, see...</div><a href="http://llvm.org/releases/download.html#3.3" target="_blank">http://llvm.org/releases/download.html#3.3</a><br>
<div><br></div><div>It seems like Mac OS X users of R will have to</div><div>use a specific toolchain for all apps that need to</div><div>link against each other, and this is especially true</div><div>for RcppOctave…</div>




<div><br></div><div>And the easiest toolchain to use under Mac OS X is</div><div>the one specified by Apple! (Unfortunately this does</div><div>not solve the Fortran problem.)</div><div><br></div></div><div>
<div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Wed, Oct 30, 2013 at 1:11 AM, Dominick Samperi <span dir="ltr"><<a href="mailto:djsamperi@gmail.com" target="_blank">djsamperi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr">Hello Renaud,<div><br></div><div>I just tried unsuccessfully to upgrade my Apple desktop to</div><div>Mac OS X 10.9 (Mavericks), but due to a few technical</div><div>problems I had to backtrack to the previous version </div>





<div>10.8 for now. </div><div><br></div><div>After restoring from backups and checking</div><div>that everything works, I discovered that RcppOctave</div><div>does not install. I get the same invalid malloc error that</div>





<div>I was getting before. But this time I have not used</div><div>MacPorts at all, only Homebrew, and the version of</div><div>Octave is 3.6.4 as it should be.</div><div><br></div><div>(I am downloading source, not using install.packages(), because</div>





<div>the latter tends to download old archives.)</div><div><br></div><div>Indeed, with my fresh install of Mac OS X, with the</div><div>command line tools and Xcode installed, R does not</div><div>issue the correct command: R CMD config CXX</div>





<div>returns: llvm-g++-4.2 -arch x86_64.</div><div><br></div><div>But there is no llvm-g++-4.2, only /usr/bin/g++ (version</div><div>4.2.1) and /usr/bin/gcc (version 4.2.1). I tried to work-around</div><div>this problem by defining symbolic links llvm-g++-4.2 and</div>





<div>llvm-gcc-4.2 pointing to these files, but this does not work.</div><div><br></div><div>There are a couple of open issues:</div><div>1. Apple no longer ships binaries named llvm-g++-4.2 and</div><div>   llvm-gcc-4.2 (only g++ and gcc).</div>





<div>2. Apple no longer supports Fortran at all (the R core team</div><div>    provides gfortran-4.2…see R Mac OS FAQ).</div><div>3. 'brew install octave' does not show you what it is doing,</div><div>   and I think it may be using clang instead of gcc, clang++</div>





<div>   instead of g++.</div><div>4. The segfault error when I try to install RcppOctave is</div><div>    probably due to compiler version incompatibilities, either</div><div>    gcc-4.2 vs gcc-4.2.1, or more likely, gcc-4.2.1 vs clang, etc.</div>





<div><br></div><div>Thus under Mac OS X the correct long-term solution is to</div><div>stop using gcc/g++ and follow Apple in using clang/clang++.</div><div>In the mean time, Apple will make life difficult for people who</div>





<div>continue to use gcc/g++/gfortran! (There is an open source </div><div>project to write an LLVM Fortran front-end, but I don't know </div><div>what the status of that project is.)</div><span><font color="#888888"><div>




<br></div><div>Dominick<br>
</div><div><br></div></font></span></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>


</div></div></div><br></div>