[R-SIG-Mac] CRAN build of R linking to /usr/local/clang4/

Simon Urbanek @imon@urb@nek @ending from R-project@org
Sat Dec 15 03:29:42 CET 2018


Gabor,

unfortunately, I didn’t see your original e-mail. The paths are correct in libraries, e.g.:

$ otool -L /Library/Frameworks/R.framework/Resources/lib/libRblas.dylib | grep libomp
	/Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libomp.dylib (compatibility version 5.0.0, current version 5.0.0)

as well as packages:

$ otool -L BNN/libs/BNN.so | grep libomp
	/Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libomp.dylib (compatibility version 5.0.0, current version 5.0.0)

although the R binary itself was omitted. However it doesn’t actually matter, because it is always executed through the R shell wrapper which correctly prepends $R_HOME/lib which is why R works just fine.

This has nothing to do with clang4/clang6. We use clang6 to compile, it is only a matter of the location of Intel’s libomp.

Cheers,
Simon




> On Dec 14, 2018, at 6:00 PM, Gábor Csárdi <csardi.gabor using gmail.com> wrote:
> 
> Would it be possible to fix this for the builds of the upcoming release?
> 
> Thanks,
> Gabor
> On Wed, Oct 10, 2018 at 11:12 PM Gábor Csárdi <csardi.gabor using gmail.com> wrote:
>> 
>> https://cran.r-project.org/bin/macosx/tools/ suggests installing a
>> special clang6 build. OTOH, the R binary links to a library that comes
>> with CRAN's clang4 build:
>> 
>> ❯ otool -L  /Library/Frameworks/R.framework/Resources/bin/exec/R
>> /Library/Frameworks/R.framework/Resources/bin/exec/R:
>> /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libR.dylib
>> (compatibility version 3.5.0, current version 3.5.1)
>> /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> /usr/local/clang4/lib/libomp.dylib (compatibility version 5.0.0,
>> current version 5.0.0)
>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
>> version 1226.10.1)
>> 
>> Notice '/usr/local/clang4/lib/libomp.dylib' above. R seems to run
>> happily without this file, though, until you start it with lldb:
>> 
>> ❯ R -d  lldb
>> (lldb) target create "/Library/Frameworks/R.framework/Resources/bin/exec/R"
>> Current executable set to
>> '/Library/Frameworks/R.framework/Resources/bin/exec/R' (x86_64).
>> (lldb) run
>> Process 74239 launched:
>> '/Library/Frameworks/R.framework/Resources/bin/exec/R' (x86_64)
>> dyld: Library not loaded: /usr/local/clang4/lib/libomp.dylib
>>  Referenced from: /Library/Frameworks/R.framework/Resources/bin/exec/R
>>  Reason: image not found
>> Process 74239 stopped
>> * thread #1, stop reason = signal SIGABRT
>>    frame #0: 0x000000010002c9ee dyld`__abort_with_payload + 10
>> dyld`__abort_with_payload:
>> ->  0x10002c9ee <+10>: jae    0x10002c9f8               ; <+20>
>>    0x10002c9f0 <+12>: movq   %rax, %rdi
>>    0x10002c9f3 <+15>: jmp    0x10002c300               ; cerror_nocancel
>>    0x10002c9f8 <+20>: retq
>> 
>> After clang4 is installed from http://r.research.att.com/libs/
>> everything is fine.
>> 
>> Is linking to this library intentional? If yes, then maybe the web
>> could be updated to suggest installing clang6 and clang4?
>> 
>> Thanks,
>> Gabor
> 
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
> 



More information about the R-SIG-Mac mailing list