[Rd] configure script issue with -flto with recent gcc and system ar/ranlib
tom@@@k@||ber@ @end|ng |rom gm@||@com
Fri Apr 26 14:42:33 CEST 2019
On 4/25/19 6:11 PM, Thomas König wrote:
> Hi Tomas,
>> On 4/23/19 2:59 PM, Thomas König wrote:
>>> 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
>> 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) 18.104.22.16880828-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.
ln -s /usr/lib64/gcc/x86_64-suse-linux/8/liblto_plugin.so
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.
More information about the R-devel