On 4/25/19 6:11 PM, Thomas König wrote:
Hi Tomas,

On 4/23/19 2:59 PM, Thomas König wrote:
Hi,

there can be an issue with recent gcc where the system-installed "ar"
and "ranlib" commands cannot handle LTO binaries.  On compilation, this
manifests itself with error messages claiming that they need extra
plugins.

Thanks for the report. What was the version of binutils on the system with this problem? On my Ubuntu 18.04 I can use the binutils version of "ar" and "ranlib" with --enable-lto without problems.  I read that with recent binutils (2.25?), the LTO plugin should be loaded automatically, so one does not have to use the wrappers anymore.

This was with, on x86_64-pc-linux-gnu,

GNU ar (GNU Binutils; openSUSE Leap 42.3) 2.31.1.20180828-19

and, on powerpc64le-unknown-linux-gnu,

GNU ar version 2.27-34.base.el7

both with a recent gcc 9.0.1 snapshot.

Thanks. I can reproduce with Leap 42.3 and gcc-8, the binutils ar fails with errors "plugin needed to handle lto object". This is because "ar" cannot find the LTO plugin liblto_plugin.so. The plugin needs to be in directory /usr/lib/bfd-plugins for ar/nm/ranlib to find it. On 42.3, gcc installation fails to create that directory and link its plugin there. I read that the problem is fixed in Leap 45. To work this around in Leap 42.3, one may build R using the wrappers (AR=gcc-ar RANLIB=gcc-ranlib NM=gcc-nm) or create the link.

mkdir /usr/lib/bfd-plugins
ln -s /usr/lib64/gcc/x86_64-suse-linux/8/liblto_plugin.so /usr/lib/bfd-plugins

Similar wrappers exist also for LLVM, but I read that LLVM installation on Leap 42.3 links its plugin properly from /usr/lib/bfd-plugins.

Best
Tomas


Regards

    Thomas

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to