Re: [PATCH 00/10] objtool: Honey, I shrunk the instruction

From: Damian Tometzki
Date: Wed Feb 08 2023 - 15:22:13 EST


On Wed, 08. Feb 18:17, Peter Zijlstra wrote:
> Hi,
>
> Boris complained he could no longer build allyesconfig on his 32G desktop
> machine without having OOM terminate either objtool or chrome.
>
> After talking about these patches on IRC, Nathan mentioned the linux-clang CI
> was also having trouble of recent, and these patches appear to make it happy
> again.
>
> In total these patches shrink an allyesconfig run by about 6G:
>
> pre: 5:58.22 real, 226.69 user, 131.22 sys, 26221520 mem
> post: 5:03.34 real, 210.75 user, 88.80 sys, 20241232 mem
>
> Also at:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/log/?h=objtool/core
>
Hello Peter,

with clang-17 the build failed:
In file included from weak.c:10:
In file included from /home/damian/kernel/linux/tools/objtool/include/objtool/objtool.h:13:
/home/damian/kernel/linux/tools/objtool/include/objtool/elf.h:88:86: error: '_Static_assert' with no message is a C2x extension [-Werror,-Wc2x-extensions]
static_assert(offsetof(struct reloc, rela.r_offset) == offsetof(struct reloc, offset));
^
, ""
In file included from arch/x86/special.c:4:
In file included from /home/damian/kernel/linux/tools/objtool/include/objtool/special.h:10:
In file included from /home/damian/kernel/linux/tools/objtool/include/objtool/check.h:11/home/damian/kernel/linux/tools/objtool/include/objtool/elf.h:
In file included from :89:86: error: '_Static_assert' with no message is a C2x extension [-Werror,-Wc2x-extensions]
/home/damian/kernel/linux/tools/objtool/include/objtool/arch.h:11:
In file included from static_assert(offsetof(struct reloc, rela.r_addend) == offsetof(struct reloc, addend));
^
, ""
/home/damian/kernel/linux/tools/objtool/include/objtool/objtool.h:13:
/home/damian/kernel/linux/tools/objtool/include/objtool/elf.h:88:86: error: '_Static_assert' with no message is a C2x extension [-Werror,-Wc2x-extensions]
static_assert(offsetof(struct reloc, rela.r_offset) == offsetof(struct reloc, offset));
^
, ""
/home/damian/kernel/linux/tools/objtool/include/objtool/elf.h:89:86: error: '_Static_assert' with no message is a C2x extension [-Werror,-Wc2x-extensions]
static_assert(offsetof(struct reloc, rela.r_addend) == offsetof(struct reloc, addend));
^
, ""
2 errors generated.
In file included from builtin-check.c:10:
In file included from /home/damian/kernel/linux/tools/objtool/include/objtool/objtool.h:13:
/home/damian/kernel/linux/tools/objtool/include/objtool/elf.h:88:86: error: '_Static_assert' with no message is a C2x extension [-Werror,-Wc2x-extensions]
static_assert(offsetof(struct reloc, rela.r_offset) == offsetof(struct reloc, offset));
...

Best regards
Damian