[R-SIG-Mac] R 3.0.1 build from sources: Wrong library paths
Simon Zehnder
szehnder at uni-bonn.de
Thu Sep 12 20:16:02 CEST 2013
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
More information about the R-SIG-Mac
mailing list