[R-SIG-Mac] [Caution: Message contains Suspicious URL content] R 3.0.1 build from sources: Wrong library paths

Simon Zehnder szehnder at uni-bonn.de
Fri Sep 13 09:29:04 CEST 2013


Anirban,

that is great news! I was always struggling around to get gcc (>=4.7) run on my Mac and to compile R with this compiler. If now the more Mac-friendly compiler has implemented OpenMP 3.1 this struggling has finally an end. As soon as I have finished my PhD I will take this route and use the (maybe at this future point in time no more experimental) clang compiler. 

Thank you very much for these good news!

Best

Simon

On Sep 13, 2013, at 8:52 AM, Anirban MUKHERJEE <anirbanm at smu.edu.sg> wrote:

> Hi Simon,
> 
> On a related note, there has been progress on openmp in llvm/clang:
> 
> http://www.phoronix.com/scan.php?page=news_item&px=MTQ0NjQ
> 
> http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-August/065169.html
> 
> http://clang-omp.github.io/
> 
> That might be an alternative route to consider if needed. Clang (I have not openmp/clang) usually builds easily on Mac OS.
> 
> Best, Anirban
> 
> On Sep 13, 2013, at 2:16 AM, Simon Zehnder <szehnder at uni-bonn.de> wrote:
> 
>> Simon,
>> 
>> I found the fix: I needed the configure option --with-included-gettext. This is now the whole sequence of processes I did: 
>> 
>> 1. Install XCode (newest version)
>> 2. Install Command Line Tools (in XCode) 
>> 3. On the shell I used sudo xcodebuild -license
>> 4. I installed MacTex and MacPorts
>> 5. In MacPorts I installed the ports: gcc48 (GCC 4-8-1 Compiler), valgrind-devel, gettext
>> 6. I had to remove /usr/local/bin and /usr/local/sbin from my PATH variable, as these folders do not exist.
>> 7. I had to add /usr/texbin to the PATH variable for R to find the pdflatex command. 
>> 8. Then I installed the Oracle JDK and added this to the config.site file in the R-3.0.1 folder: 
>> JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/HomeJAVA_CPPFLAGS="-I/${JAVA_HOME}/include -I/${JAVA_HOME}/include/darwin"
>> JAVA_LD_LIBRARY_PATH="${JAVA_HOME}/jre/lib/server"
>> JAVA_LIBS="-L/${JAVA_HOME}/jre/lib/server -ljvm"
>> 9. On the shell I used:
>> export LANG=en_US.UTF-8
>> export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig:/usr/lib/pkgconfig
>> 10. In a '~/Downloads/build' folder run:
>> ../R-3.0.1/configure --bindir=/usr/bin --sbindir=/usr/bin --with-system-zlib --enable-memory-profiling --with-blas="-framework Accelerate" --with-lapack --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib --with-valgrind-instrumentation=2 OBJC="clang" LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include --with-included-gettext
>> 11. make && make check && sudo make install 
>> 12. I run on the shell (do not know why --bindir and --sbindir didn't make it) 
>> sudo ln -s /Library/Frameworks/R.framework/Resources/bin/R /usr/bin/R
>> 13. I had to add 
>> export LANG=en_US.UTF-8 in .profile
>> (defaults write org.R-project.R force.LANG en_US.UTF-8 did not work, did it several times with reopening the terminal)
>> 
>> I installed the packages nloptr (this still worked) and Rcpp (this worked now as well - the ld error: library not found: lintel, has gone)
>> 
>> So far this works quite nice. If there are some updates on stability I let you know. 
>> 
>> My config.log can be seen here: 
>> 
>> https://gist.github.com/anonymous/6541684 
>> 
>> 
>> Thanks again for your help!
>> 
>> Simon
>> 
>> On Sep 12, 2013, at 5:16 PM, Simon Zehnder <szehnder at uni-bonn.de> wrote:
>> 
>>> Simon,
>>> 
>>> thanks for the help. This did make the work. I wonder why the --bindir and --sbindir options during configure did not let that happen. 
>>> 
>>> R runs on my system and here is what I precisely did:
>>> 
>>> 1. Install XCode (newest version)
>>> 2. Install Command Line Tools (in XCode) 
>>> 3. On the shell I used sudo xcodebuild -license
>>> 4. I installed MacTex and MacPorts
>>> 5. In MacPorts I installed the ports: gcc48 (GCC 4-8-1 Compiler), valgrind-devel, gettext
>>> 6. I had to remove /usr/local/bin and /usr/local/sbin from my PATH variable, as these folders do not exist.
>>> 7. I had to add /usr/texbin to the PATH variable for R to find the pdflatex command. 
>>> 8. Then I installed the Oracle JDK and added this to the config.site file in the R-3.0.1 folder: 
>>> JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/HomeJAVA_CPPFLAGS="-I/${JAVA_HOME}/include -I/${JAVA_HOME}/include/darwin"
>>> JAVA_LD_LIBRARY_PATH="${JAVA_HOME}/jre/lib/server"
>>> JAVA_LIBS="-L/${JAVA_HOME}/jre/lib/server -ljvm"
>>> 9. On the shell I used:
>>> export LANG=en_US.UTF-8
>>> export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig:/usr/lib/pkgconfig
>>> 10. In a '~/Downloads/build' folder run:
>>> ../R-3.0.1/configure --bindir=/usr/bin --sbindir=/usr/bin --with-system-zlib --enable-memory-profiling --with-blas="-framework Accelerate" --with-lapack --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib --with-valgrind-instrumentation=2 OBJC="clang" LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include
>>> 11. make && make check && sudo make install 
>>> 12. I run on the shell (do not know why --bindir and --sbindir didn't make it) 
>>> sudo ln -s /Library/Frameworks/R.framework/Resources/bin/R /usr/bin/R
>>> 13. I had to add 
>>> export LANG=en_US.UTF-8 in .profile
>>> (defaults write org.R-project.R force.LANG en_US.UTF-8 did not work, did it several times with reopening the terminal)
>>> 
>>> All seemed to work fine. I installed the package nloptr (which did not install in my last R app) and it did compile without a hassle (that's great!). But then with Rcpp I got the error: ld: library not found for -lintl. I looked into the files of the gcc48 of MacPorts under /opt/local/lib and I have three libraries in there: libintl.8.dylib, libintl.a, libintl.la. I do not know though if this error wrong linking via R's environment variables or I miss an export in my .profile. 
>>> 
>>> I also have now a warning when using MacPorts, which is already reported: http://openradar.appspot.com/11894054
>>> 
>>> Here is my config.log
>>> 
>>> https://gist.github.com/anonymous/6539093
>>> 
>>> and here the output from Sys.getenv():
>>> 
>>> https://gist.github.com/anonymous/6539133
>>> 
>>> So, I cannot tell, if this should be considered a stable build on the Mac. But maybe everything can be solved quite easily. 
>>> 
>>> 
>>> Best
>>> 
>>> Simon
>>> 
>>> 
>>> On Sep 12, 2013, at 2:54 PM, Simon Urbanek <simon.urbanek at r-project.org> wrote:
>>> 
>>>> 
>>>> On Sep 12, 2013, at 5:50 AM, Simon Zehnder wrote:
>>>> 
>>>>> I compiled R and made a check-all without errors (only for the PDF manuals - but this is ok). Then I used
>>>>> 
>>>>> sudo make install 
>>>>> 
>>>>> to install it to the R.framework. Now, when I want to use R on the shell no command can be found, as the installation has not installed the binaries in /usr/bin. If I try to change my PATH variable and add /Library/Frameworks/R.framework/Ressources/bin it does not change a thing, I still get the error: -bash: R: command not found. The only thing to make it work is to go into the folder /Libraries/Frameworks/R.framework/Ressources/bin/ and start it via ./R.
>>>>> 
>>>> 
>>>> What the CRAN installer does is essentially
>>>> 
>>>> sudo ln -s /Library/Frameworks/R.framework/Resources/bin/R /usr/bin/R
>>>> 
>>>> Obviously, changing the PATH works as well  - make sure you check the value of PATH in the session you're running (bash uses a cached lookup, but recent versions should have no trouble re-trying after PATH changes) -- assuming running
>>>> /Libraries/Frameworks/R.framework/Ressources/bin/R
>>>> works. If it doesn't then maybe check the version symlinks.
>>>> 
>>>> Re you earlier post - FSF builds of gcc don't support ObjC with Apple runtime, so you have to use Apple's clang (as you did). In my tests few months ago gcc 4.7/4.8 was too unreliable - it was miscompiling R so things were breaking randomly at run-time. If your build seems reliable, please share with use the exact version and settings.
>>>> 
>>>> Thanks,
>>>> Simon
>>>> 
>>>> 
>>>>> I remember no such behaviour for prior builds of R. It seems Mac has changed something since my last compilation of R sources. 
>>>>> 
>>>>> Can anyone help?
>>>>> 
>>>>> Best
>>>>> 
>>>>> Simon
>>>>> 
>>>>> On Sep 12, 2013, at 10:49 AM, Simon Zehnder <szehnder at uni-bonn.de> wrote:
>>>>> 
>>>>>> I did some progress on my problem: 
>>>>>> 
>>>>>> Using LDFLAGS and CPPFLAGS on the shell instead of in the config.site file changes the directories and make can find all the libraries. 
>>>>>> 
>>>>>> The next thing that came up, was the Mac-specific Cocoa issue. When I compile R sources with OBJC="gcc -arch x86_64" I get the following outputs: 
>>>>>> 
>>>>>> config.log: https://gist.github.com/anonymous/6534550
>>>>>> 
>>>>>> make.log: https://gist.github.com/anonymous/6534560
>>>>>> 
>>>>>> with errors starting in line 883 of the make.log. So it seems the gcc cannot handle the .m files properly. 
>>>>>> 
>>>>>> Then I used OBJC="clang" and I get the following output:
>>>>>> 
>>>>>> config.log: https://gist.github.com/anonymous/6534614
>>>>>> 
>>>>>> make.log: https://gist.github.com/anonymous/6534606
>>>>>> 
>>>>>> Here I get (see line 879 in the make.log) some weird warning. I know these are only warnings, they do not influence the way R works later on, but I am interested why gcc cannot handle the Cocoa files at all and clang has these warnings.
>>>>>> 
>>>>>> 
>>>>>> Best
>>>>>> 
>>>>>> Simon
>>>>>> 
>>>>>> 
>>>>>> On Sep 11, 2013, at 11:08 PM, Simon Zehnder <szehnder at uni-bonn.de> wrote:
>>>>>> 
>>>>>>> Dear R-Users and R-Devels,
>>>>>>> 
>>>>>>> I made a brand new install of Mac OS X Mountain Lion 10.8.4 on a new hard drive and want to build R from sources. As I use OpenMP 3.1 in my C++ extensions I used MacPorts to get the gcc48 compiler collection. Installation run without a hassle and I set the mp-gcc48 active. 
>>>>>>> 
>>>>>>> I downloaded the R-3.0.1 tar.gz and extracted it. Then I changed the config.site to the following:
>>>>>>> 
>>>>>>> https://gist.github.com/anonymous/6529767
>>>>>>> 
>>>>>>> Furthermore I had to change my PATH variable in the .profile as it included /usr/local/bin:/usr/local/sbin and I have not such a folder in my /usr. 
>>>>>>> 
>>>>>>> Now when I run configure I get the following config.log
>>>>>>> 
>>>>>>> https://gist.github.com/anonymous/6529743
>>>>>>> 
>>>>>>> with the warning:  "ld: warning: directory not found for option '-L/usr/local/lib' "on line 217. This warning becomes an error if running the make command. I still see the C linker using -L/usr/local/lib which does not exist. I changed the LDFLAGS in the config.site to -L/opt/local/lib but Rs configure script seems to be very resistant to my new proposal. 
>>>>>>> 
>>>>>>> I need some help. How should I proceed? Which FLAGS can change the directory the make script searches for libraries? What configure options should be used with R-3.0.1 on OS X 10.8.4 using gcc-4.8.1?    
>>>>>>> 
>>>>>>> 
>>>>>>> Best
>>>>>>> 
>>>>>>> Simon
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> R-SIG-Mac mailing list
>>>>>>> R-SIG-Mac at r-project.org
>>>>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>>> 
>>>>>> _______________________________________________
>>>>>> R-SIG-Mac mailing list
>>>>>> R-SIG-Mac at r-project.org
>>>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>> 
>>>>> _______________________________________________
>>>>> R-SIG-Mac mailing list
>>>>> R-SIG-Mac at r-project.org
>>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>> 
>>>>> 
>>>> 
>>> 
>>> _______________________________________________
>>> R-SIG-Mac mailing list
>>> R-SIG-Mac at r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>> 
>> _______________________________________________
>> R-SIG-Mac mailing list
>> R-SIG-Mac at r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
> 



More information about the R-SIG-Mac mailing list