Skip to content
Back to formatted view

Raw Message

Message-ID: <450c2cfd-ac4e-a7d0-83d7-cf22cdde9525@gmail.com>
Date: 2019-04-26T12:42:33Z
From: Tomas Kalibera
Subject: configure script issue with -flto with recent gcc and system ar/ranlib
In-Reply-To: <393de1b8-52b4-e35c-f1a3-4b550967875c@tkoenig.net>

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