Thanks for your help:

Here are some results; First in terminal:

belinda:~ marcgirondot$ locate libjvm.dylib
/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/itms/java/lib/server/libjvm.dylib /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/server/libjvm.dylib
/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/libjvm.dylib
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/server/libjvm.dylib
/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/server/libjvm.dylib
/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/server/libjvm.dylib

Now in R as non-root:

> Sys.getenv()
DYLD_FALLBACK_LIBRARY_PATH
/Library/Frameworks/R.framework/Resources/lib:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/server

The path of DYLD_FALLBACK_LIBRARY_PATH is wrong. This folder does not exist.

And in R as root
> Sys.getenv()
DYLD_FALLBACK_LIBRARY_PATH
/Library/Frameworks/R.framework/Resources/lib:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/server

The path is correct

Strange... but no solution still

Marc


Le 31/01/2018 à 14:39, Keith O'Hara a écrit :
Seems odd that R can’t find libjvm outside of sudo.

 From R, run

Sys.getenv()

and check your DYLD_LIBRARY_PATH and DYLD_FALLBACK_LIBRARY_PATH variables. 
Should be ‘[..]/Home/jre/lib/server’ in there somewhere. Check those paths for 
libjvm.dylib

On Jan 31, 2018, at 8:17 AM, Marc Girondot <marc.giron...@u-psud.fr> wrote:

Sorry... bad news. It works only if R is ran as root. If R is ran as non-root 
user:

library(rJava)
Erreur : package or namespace load failed for ‘rJava’:
  .onLoad a échoué dans loadNamespace() pour 'rJava', détails :
   appel : dyn.load(file, DLLpath = DLLpath, ...)
   erreur : impossible de charger l'objet partagé 
'/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so,
 6): Library not loaded: @rpath/libjvm.dylib
   Referenced from: 
/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so
   Reason: image not found

I will continue to investigate.

Sorry for this wrong news !

Marc


Le 31/01/2018 à 14:03, Marc Girondot via R-SIG-Mac a écrit :
I have found a solution based on the proposition of Keith. Thanks a lot

############

First I have made some cleaning because I had pieces of clang in many places.

Then with a clean version I installed clang-4.0.0-darwin15.6-Release.tar.gz 
using the version in
http://r.research.att.com/libs/clang-4.0.0-darwin15.6-Release.tar.gz

Note that it produced an error at the end when I run the command:
sudo tar xvzf clang-4.0.0-darwin15.6-Release.tar.gz -C /
The error is:
tar: Error exit delayed from previous errors.

But it seems to be ok

then I create the link as propose by Keith:
cd /usr/local/lib
sudo ln -s /usr/local/clang4/lib/libomp.dylib libomp.dylib

And it works perfectly if the install.packages("rJava") is ran as root: sudo R

######################

Now, let try with clang 5.0.1 from homebrew.

First I delete all tracks of previous installation of clang4:
sudo cd <folder where is clang-4.0.0-darwin15.6-Release.tar.gz)>
# I use this trick to enter the root password firsttime; after it does not ask 
within the loop
for file in $(tar tfz clang-4.0.0-darwin15.6-Release.tar.gz); do
    sudo rm -f /$file;
done

# Remove empty _folders_ associated with the binary
for file in $(tar tfz clang-4.0.0-darwin15.6-Release.tar.gz); do
    sudo rmdir -p /$file;
done

Then I install llvm with homebrew:
brew install llvm

in /usr/local/opt/llvm/lib there is no libomp.dylib but libgomp.dylib and 
libiomp5.dylib. I don't know if I can use it instead of libomp.dylib.

But I see one in:
/Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libomp.dylib

Better to use this one:
cd /usr/local/lib
sudo ln -s 
/Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libomp.dylib 
libomp.dylib


And the compilation ran correctly.

Thanks a lot !

Marc

Le 31/01/2018 à 11:52, Keith O'Hara a écrit :
Sorry, ignore the installation question, I missed the ‘brew install’ line.

Try adding a symbolic link from the brew install of libomp to /usr/local/lib.



On Jan 31, 2018, at 5:38 AM, Keith O'Hara <keith.oh...@nyu.edu> wrote:

Apple’s LLVM doesn’t support OpenMP, which explains the second error.

How did you install clang-5.0.1? If you installed using MacPorts, then you 
might need to create a symbolic link to libomp in /usr/local/lib. Check if the 
following exists:

/opt/local/lib/libomp/libomp.dylib



On Jan 31, 2018, at 5:22 AM, Marc Girondot via R-SIG-Mac 
<r-sig-mac@r-project.org> wrote:

Dear Experts,

I use now r-3.5 devel as it is stable (from http://r.research.att.com , version 
(2018/01/30, r74185) ) but I have a problem with compilation of rJava package.

In short (all the explanations are bellow):

If I use clang 4.0.0 from here: http://r.research.att.com/libs/, I get this 
error: ld: library not found for -lomp

If I use clang from xcode, I get this error: clang: error: unsupported option 
'-fopenmp'

If I use clang 5.0.1, I get this error: ld: library not found for -lomp

Any idea to have rJava in r-devel ?

Thanks a lot

Marc



First I ran:

sudo R CMD javareconf

I have the Java version     : 1.8.0_162

I need to compile it from source but it failed with clang4 reporting an error.

I try various origin of clang:

at the beginning of the compilation, it said:

checking for gcc... /usr/local/clang4/bin/clang

I tried several version of clang:

belinda:local marcgirondot$ 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
 --version
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin17.3.0
Thread model: posix
InstalledDir: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

or (same version installed by: brew install llvm )

belinda:local marcgirondot$ 
/Applications/clang+llvm-5.0.1-final-x86_64-apple-darwin/bin/clang --version
clang version 5.0.1 (tags/RELEASE_501/final)
Target: x86_64-apple-darwin17.3.0
Thread model: posix
InstalledDir: /Applications/clang+llvm-5.0.1-final-x86_64-apple-darwin/bin

or

belinda:local marcgirondot$ /usr/local/clang4/bin/clang --version
clang version 4.0.0 (tags/RELEASE_400/final)
Target: x86_64-apple-darwin17.3.0
Thread model: posix
InstalledDir: /usr/local/clang4/bin

If I use the former, I get this error:
/usr/local/clang4/bin/clang -o libjri.jnilib Rengine.o jri.o Rcallbacks.o 
Rinit.o globals.o rjava.o  -dynamiclib -framework JavaVM -fopenmp 
-L/usr/local/lib -F/Library/Frameworks/R.framework/.. -framework R -lpcre 
-llzma -lbz2 -lz -licucore -lm -liconv
ld: library not found for -lomp
clang-4.0: error: linker command failed with exit code 1 (use -v to see 
invocation)
make[2]: *** [libjri.jnilib] Error 1
make[1]: *** [src/JRI.jar] Error 2
make: *** [jri] Error 2
ERROR: compilation failed for package ‘rJava’

Then I tried more recent versions:

I make a symbolic link to clang 5.0.1 or the one within xcode:
cd /usr/local
sudo ln -s /Applications/clang+llvm-5.0.1-final-x86_64-apple-darwin clang4

I get this error: (after running sudo R and within R: install.packages("rJava")
/usr/local/clang4/bin/clang -o libjri.jnilib Rengine.o jri.o Rcallbacks.o 
Rinit.o globals.o rjava.o  -dynamiclib -framework JavaVM -fopenmp 
-L/usr/local/lib -F/Library/Frameworks/R.framework/.. -framework R -lpcre 
-llzma -lbz2 -lz -licucore -lm -liconv
ld: library not found for -lomp
clang-5.0: error: linker command failed with exit code 1 (use -v to see 
invocation)
make[2]: *** [libjri.jnilib] Error 1
make[1]: *** [src/JRI.jar] Error 2
make: *** [jri] Error 2
ERROR: compilation failed for package ‘rJava’


If I make the symbolic link to
cd /usr/local
sudo ln -s 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr
 clang4

I get this error: (after running sudo R and within R: install.packages("rJava")
/usr/local/clang4/bin/clang -o libjri.jnilib Rengine.o jri.o Rcallbacks.o 
Rinit.o globals.o rjava.o  -dynamiclib -framework JavaVM -fopenmp 
-L/usr/local/lib -F/Library/Frameworks/R.framework/.. -framework R -lpcre 
-llzma -lbz2 -lz -licucore -lm -liconv
clang: error: unsupported option '-fopenmp'
make[2]: *** [libjri.jnilib] Error 1
make[1]: *** [src/JRI.jar] Error 2
make: *** [jri] Error 2
ERROR: compilation failed for package ‘rJava’

_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-mac
_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

--
__________________________________________________________
Marc Girondot, Pr

Laboratoire Ecologie, Systématique et Evolution
Equipe de Conservation des Populations et des Communautés
CNRS, AgroParisTech et Université Paris-Sud 11 , UMR 8079
Bâtiment 362
91405 Orsay Cedex, France

Tel:  33 1 (0)1.69.15.72.30   Fax: 33 1 (0)1.69.15.73.53
e-mail: marc.giron...@u-psud.fr
Web: http://www.ese.u-psud.fr/epc/conservation/Marc.html
Skype: girondot


--
__________________________________________________________
Marc Girondot, Pr

Laboratoire Ecologie, Systématique et Evolution
Equipe de Conservation des Populations et des Communautés
CNRS, AgroParisTech et Université Paris-Sud 11 , UMR 8079
Bâtiment 362
91405 Orsay Cedex, France

Tel:  33 1 (0)1.69.15.72.30   Fax: 33 1 (0)1.69.15.73.53
e-mail: marc.giron...@u-psud.fr
Web: http://www.ese.u-psud.fr/epc/conservation/Marc.html
Skype: girondot

_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to