Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3036fbe6-3cb7-5358-75ed-2fe421f6f7aa@molgen.mpg.de>
Date: Tue, 14 Jul 2020 15:40:45 +0200
From: Paul Menzel <pmenzel@...gen.mpg.de>
To: Sedat Dilek <sedat.dilek@...il.com>
Cc: Sami Tolvanen <samitolvanen@...gle.com>,
 Masahiro Yamada <masahiroy@...nel.org>, Will Deacon <will@...nel.org>,
 Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
 "Paul E. McKenney" <paulmck@...nel.org>, Kees Cook <keescook@...omium.org>,
 Nick Desaulniers <ndesaulniers@...gle.com>,
 Clang-Built-Linux ML <clang-built-linux@...glegroups.com>,
 Kernel Hardening <kernel-hardening@...ts.openwall.com>,
 linux-arch@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
 linux-kbuild <linux-kbuild@...r.kernel.org>,
 LKML <linux-kernel@...r.kernel.org>, linux-pci@...r.kernel.org,
 x86@...nel.org
Subject: Re: [PATCH 00/22] add support for Clang LTO

Dear Sedat,


Am 14.07.20 um 14:35 schrieb Sedat Dilek:
> On Tue, Jul 14, 2020 at 2:16 PM Paul Menzel <pmenzel@...gen.mpg.de> wrote:

>> Am 13.07.20 um 01:34 schrieb Sami Tolvanen:
>>> On Sat, Jul 11, 2020 at 9:32 AM Paul Menzel <pmenzel@...gen.mpg.de> wrote:
>>>> Thank you very much for sending these changes.
>>>>
>>>> Do you have a branch, where your current work can be pulled from? Your
>>>> branch on GitHub [1] seems 15 months old.
>>>
>>> The clang-lto branch is rebased regularly on top of Linus' tree.
>>> GitHub just looks at the commit date of the last commit in the tree,
>>> which isn't all that informative.
>>
>> Thank you for clearing this up, and sorry for not checking myself.
>>
>>>> Out of curiosity, I applied the changes, allowed the selection for i386
>>>> (x86), and with Clang 1:11~++20200701093119+ffee8040534-1~exp1 from
>>>> Debian experimental, it failed with `Invalid absolute R_386_32
>>>> relocation: KERNEL_PAGES`:
>>>
>>> I haven't looked at getting this to work on i386, which is why we only
>>> select ARCH_SUPPORTS_LTO for x86_64. I would expect there to be a few
>>> issues to address.
>>>
>>>>>     arch/x86/tools/relocs vmlinux > arch/x86/boot/compressed/vmlinux.relocs;arch/x86/tools/relocs --abs-relocs vmlinux
>>>>> Invalid absolute R_386_32 relocation: KERNEL_PAGES
>>>
>>> KERNEL_PAGES looks like a constant, so it's probably safe to ignore
>>> the absolute relocation in tools/relocs.c.
>>
>> Thank you for pointing me to the right direction. I am happy to report,
>> that with the diff below (no idea to what list to add the string), Linux
>> 5.8-rc5 with the LLVM/Clang/LTO patches on top, builds and boots on the
>> ASRock E350M1.
>>
>> ```
>> diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
>> index 8f3bf34840cef..e91af127ed3c0 100644
>> --- a/arch/x86/tools/relocs.c
>> +++ b/arch/x86/tools/relocs.c
>> @@ -79,6 +79,7 @@ static const char * const
>> sym_regex_kernel[S_NSYMTYPES] = {
>>           "__end_rodata_hpage_align|"
>>    #endif
>>           "__vvar_page|"
>> +       "KERNEL_PAGES|"
>>           "_end)$"
>>    };
>> ```
> 
> What llvm-toolchain and version did you use?

See above. ;-) Clang 1:11~++20200701093119+ffee8040534-1~exp1 from 
Debian experimental and the build command below.

     make bindeb-pkg -j32 ARCH=i386 LLVM=1

> Can you post your linux-config?

Sure. Attached.

     $ grep _LTO config-5.8.0-rc5-00107-g5b634a79fc2fa
     CONFIG_LTO=y
     CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
     # CONFIG_LTO_NONE is not set
     CONFIG_LTO_CLANG=y


Kind regards,

Paul

View attachment "config-5.8.0-rc5-00107-g5b634a79fc2fa" of type "text/plain" (142605 bytes)

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.