Re: [PATCH v9 00/16] Add support for Clang LTO

Sedat Dilek
2021-01-09T16:23:03Z

On Sat, Jan 9, 2021 at 5:07 PM Josh Poimboeuf <jpoimboe@redhat.com> wrote:
>
> On Sat, Jan 09, 2021 at 04:46:21PM +0100, Sedat Dilek wrote:
> > On Sat, Jan 9, 2021 at 4:36 PM Josh Poimboeuf <jpoimboe@redhat.com> wrote:
> > >
> > > On Sat, Jan 09, 2021 at 03:54:20PM +0100, Sedat Dilek wrote:
> > > > I am interested in having Clang LTO (Clang-CFI) for x86-64 working and
> > > > help with testing.
> > > >
> > > > I tried the Git tree mentioned in [3] <jpoimboe.git#objtool-vmlinux>
> > > > (together with changes from <peterz.git#x86/urgent>).
> > > >
> > > > I only see in my build-log...
> > > >
> > > > drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: warning: objtool:
> > > > eb_relocate_parse_slow()+0x3d0: stack state mismatch: cfa1=7+120
> > > > cfa2=-1+0
> > > > drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: warning: objtool:
> > > > eb_copy_relocations()+0x229: stack state mismatch: cfa1=7+120
> > > > cfa2=-1+0
> > > >
> > > > ...which was reported and worked on in [1].
> > > >
> > > > This is with Clang-IAS version 11.0.1.
> > > >
> > > > Unfortunately, the recent changes in <samitolvanen.github#clang-cfi>
> > > > do not cleanly apply with Josh stuff.
> > > > My intention/wish was to report this combination of patchsets "heals"
> > > > a lot of objtool-warnings for vmlinux.o I observed with Clang-CFI.
> > > >
> > > > Is it possible to have a Git branch where Josh's objtool-vmlinux is
> > > > working together with Clang-LTO?
> > > > For testing purposes.
> > >
> > > I updated my branch with my most recent work from before the holidays,
> > > can you try it now? It still doesn't fix any of the crypto warnings,
> > > but I'll do that in a separate set after posting these next week.
> > >
> >
> > Thanks, Josh.
> >
> > Did you push it (oh ah push it push it really really really good...)
> > to your remote Git please :-).
>
> I thought I already pushed it pretty good ;-) do you not see it?
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jpoimboe/linux.git objtool-vmlinux
>
> d6baee244f2d — objtool: Alphabetize usage option list (3 weeks ago)
> c0b2a6a625ac — objtool: Separate vmlinux/noinstr validation config options (3 weeks ago)
> 84c53551ad17 — objtool: Enable full vmlinux validation (3 weeks ago)
> e518ac0801cd — x86/power: Support objtool validation in hibernate_asm_64.S (3 weeks ago)
> d0ac4c7301c1 — x86/power: Move restore_registers() to top of the file (3 weeks ago)
> d3389bc83538 — x86/power: Convert indirect jumps to retpolines (3 weeks ago)
> 7a974d90aa40 — x86/acpi: Support objtool validation in wakeup_64.S (3 weeks ago)
> 6693e26cd6cc — x86/acpi: Convert indirect jump to retpoline (3 weeks ago)
> 0dfb760c74d1 — x86/ftrace: Support objtool vmlinux.o validation in ftrace_64.S (3 weeks ago)
> 89a4febfd7bf — x86/xen/pvh: Convert indirect jump to retpoline (3 weeks ago)
> b62837092140 — x86/xen: Support objtool vmlinux.o validation in xen-head.S (3 weeks ago)
> 705e18481ed9 — x86/xen: Support objtool validation in xen-asm.S (3 weeks ago)
> 3548319e21b9 — objtool: Add xen_start_kernel() to noreturn list (3 weeks ago)
> 6016e8da8c3d — objtool: Combine UNWIND_HINT_RET_OFFSET and UNWIND_HINT_FUNC (3 weeks ago)
> 56d6a7aee8b1 — objtool: Add asm version of STACK_FRAME_NON_STANDARD (3 weeks ago)
> 68259d951f1a — objtool: Assume only ELF functions do sibling calls (3 weeks ago)
> 0d6c8816cf91 — x86/ftrace: Add UNWIND_HINT_FUNC annotation for ftrace_stub (3 weeks ago)
> 24d6ce8cd8f6 — objtool: Support retpoline jump detection for vmlinux.o (3 weeks ago)
> 8145ea268f16 — objtool: Fix ".cold" section suffix check for newer versions of GCC (3 weeks ago)
> b3dfca472514 — objtool: Fix retpoline detection in asm code (3 weeks ago)
> b82402fa5211 — objtool: Fix error handling for STD/CLD warnings (3 weeks ago)
> 1f02defb4b79 — objtool: Fix seg fault in BT_FUNC() with fake jump (3 weeks ago)
> 2c85ebc57b3e — Linux 5.10 (4 weeks ago)
>

I already have this one in my patch-series - I hoped you pushed
something new to your objtool-vmlinux Git branch.
That is what I mean by shortened... <jpoimboe.git#objtool-vmlinux>.

Hey, it's based on Linux v5.10 - I can test this with Linux v5.10.6 :-).

- Sedat -