PowerPC64 future proof kernel toc, revised for lld

Alexey Kardashevskiy aik at ozlabs.ru
Fri Mar 12 14:45:13 AEDT 2021



On 12/03/2021 10:32, Michael Ellerman wrote:
> Alan Modra <amodra at gmail.com> writes:
>> On Wed, Mar 10, 2021 at 01:44:57PM +0100, Christophe Leroy wrote:
>>>
>>> Le 10/03/2021 à 13:25, Alan Modra a écrit :
>>>> On Wed, Mar 10, 2021 at 08:33:37PM +1100, Alexey Kardashevskiy wrote:
>>>>> One more question - the older version had a construct "DEFINED (.TOC.) ?
>>>>> .TOC. : ..." in case .TOC. is not defined (too old ld? too old gcc?) but the
>>>>> newer patch seems assuming it is always defined, when was it added? I have
>>>>> the same check in SLOF, for example, do I still need it?
>>>>
>>>> .TOC. symbol support was first added 2012-11-06, so you need
>>>> binutils-2.24 or later to use .TOC. as a symbol.
>>>>
>>>
>>> As of today, minimum requirement to build kernel is binutils 2.23, see https://urldefense.proofpoint.com/v2/url?u=https-3A__www.kernel.org_doc_html_latest_process_changes.html-23current-2Dminimal-2Drequirements&d=DwIDAw&c=jf_iaSHvJObTbx-siA1ZOg&r=uzpscot8Q8p-51o1Gp1vnzKV94bfny2qmUdVe821lv0&m=SYi605mn0I1hf1QoHuvHXtS_Z-R6JJHbzS34cEtV2Tk&s=47ckf3yxVcP6RwRb8D9viYOQSWpf6rXrnWj4YM4OTJ0&e=
>>
>> Yes, and arch/powerpc/Makefile complains about 2.24.  So for powerpc
>> that means you need to go to at least 2.25.
> 
> Not quite. It only complains for little endian builds, and only if you
> have stock 2.24, it will allow a 2.24.<something>.
> 
> I do most of my builds with 2.34, so I have no issue with newer
> binutils. But we try not to increase the minimum version too rapidly to
> accommodate folks using older and/or "Enterprise" distros that are stuck
> on old toolchains.
> 
> I think we are within our rights to increase the minimum requirement for
> powerpc builds, if it brings advantages we can identify.
> 
> The way to do that would be to add a new check in our arch Makefile that
> rejects the older versions.

The upstream llvm just learnt to handle the .TOC. symbol in linker 
scripts so we may delay the future for a bit longer :) @dja wanted 
upstream llvm anyway and the currently supported llvm 10.xx is not much 
value for our experiments.

https://github.com/llvm/llvm-project/commit/e4f385d89448393b4d213339bbbbbbaa42b49489



-- 
Alexey


More information about the Linuxppc-dev mailing list