[Rd] configure script issue with -flto with recent gcc and system ar/ranlib

Tomas Kalibera 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:
>>> 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)
> 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 

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.


> Regards
>     Thomas

More information about the R-devel mailing list