Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

objtool crashes when using x86 IAS #1207

Closed
arndb opened this issue Dec 3, 2020 · 3 comments
Closed

objtool crashes when using x86 IAS #1207

arndb opened this issue Dec 3, 2020 · 3 comments
Labels
[BUG] linux A bug that should be fixed in the mainline kernel. [FIXED][LINUX] 5.11 This bug was fixed in Linux 5.11 Reported upstream This bug was filed on LLVM’s issue tracker, Phabricator, or the kernel mailing list. [TOOL] objtool warning is produced by the kernel's objtool

Comments

@arndb
Copy link

arndb commented Dec 3, 2020

I get lots of objtool crashes on clang-11 and clang-12 building x86 randconfig kernels when using the integrated assembler

Segmentation fault (core dumped)
make[4]: *** [/git/arm-soc/scripts/Makefile.build:283: kernel/entry/common.o] Error 139
make[4]: *** Deleting file 'kernel/entry/common.o'
make[4]: Target '__build' not remade because of errors.
make[3]: *** [/git/arm-soc/scripts/Makefile.build:500: kernel/entry] Error 2
Segmentation fault (core dumped)
make[5]: *** [/git/arm-soc/scripts/Makefile.build:283: arch/x86/kernel/apic/apic.o] Error 139
make[5]: *** Deleting file 'arch/x86/kernel/apic/apic.o'
make[5]: Target '__build' not remade because of errors.
make[4]: *** [/git/arm-soc/scripts/Makefile.build:500: arch/x86/kernel/apic] Error 2
arch/x86/kernel/signal.o: warning: objtool: __setup_rt_frame()+0x478: call to memset() with UACCESS enabled
Segmentation fault (core dumped)
make[4]: *** [/git/arm-soc/scripts/Makefile.build:283: arch/x86/kernel/smp.o] Error 139
make[4]: *** Deleting file 'arch/x86/kernel/smp.o'
Segmentation fault (core dumped)
make[3]: *** [/git/arm-soc/scripts/Makefile.build:283: kernel/softirq.o] Error 139
make[3]: *** Deleting file 'kernel/softirq.o'
make[4]: Target '__build' not remade because of errors.
make[3]: *** [/git/arm-soc/scripts/Makefile.build:500: arch/x86/kernel] Error 2
arch/x86/ia32/ia32_signal.o: warning: objtool: ia32_setup_rt_frame()+0x1de: call to memset() with UACCESS enabled
make[3]: Target '__build' not remade because of errors.

email report https://lore.kernel.org/lkml/CAK8P3a20LXgEQkYSpbFFrJs1mdg19W72dp3pbebH9Pkpib2g-g@mail.gmail.com/T/
example .config https://pastebin.com/e4Kr9mWq

@nickdesaulniers nickdesaulniers added [BUG] Untriaged Something isn't working [TOOL] objtool warning is produced by the kernel's objtool Reported upstream This bug was filed on LLVM’s issue tracker, Phabricator, or the kernel mailing list. labels Dec 3, 2020
@nickdesaulniers
Copy link
Member

@nickdesaulniers nickdesaulniers added [BUG] linux A bug that should be fixed in the mainline kernel. [PATCH] Exists There is a patch that fixes this issue and removed [BUG] Untriaged Something isn't working labels Dec 11, 2020
fengguang pushed a commit to 0day-ci/linux that referenced this issue Dec 15, 2020
The Clang assembler likes to strip section symbols, which means objtool
can't reference some text code by its section.  This confuses objtool
greatly, causing it to seg fault.

The fix is similar to what was done before, for ORC reloc generation:

  e81e072 ("objtool: Support Clang non-section symbols in ORC generation")

Factor out that code into a common helper and use it for static call
reloc generation as well.

Reported-by: Arnd Bergmann <arnd@kernel.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Link: ClangBuiltLinux#1207
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
@nathanchance
Copy link
Member

@nathanchance nathanchance added [FIXED][LINUX] 5.11 This bug was fixed in Linux 5.11 and removed [PATCH] Exists There is a patch that fixes this issue labels Jan 4, 2021
@nickdesaulniers
Copy link
Member

HJL posted a patch for GAS to omit STT_SECTION symbols as well: https://sourceware.org/pipermail/binutils/2020-December/114671.html

fengguang pushed a commit to 0day-ci/linux that referenced this issue Feb 16, 2021
commit 44f6a7c upstream.

The Clang assembler likes to strip section symbols, which means objtool
can't reference some text code by its section.  This confuses objtool
greatly, causing it to seg fault.

The fix is similar to what was done before, for ORC reloc generation:

  e81e072 ("objtool: Support Clang non-section symbols in ORC generation")

Factor out that code into a common helper and use it for static call
reloc generation as well.

Reported-by: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Link: ClangBuiltLinux#1207
Link: https://lkml.kernel.org/r/ba6b6c0f0dd5acbba66e403955a967d9fdd1726a.1607983452.git.jpoimboe@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
woodsts pushed a commit to woodsts/linux-stable that referenced this issue Feb 17, 2021
commit 44f6a7c upstream.

The Clang assembler likes to strip section symbols, which means objtool
can't reference some text code by its section.  This confuses objtool
greatly, causing it to seg fault.

The fix is similar to what was done before, for ORC reloc generation:

  e81e072 ("objtool: Support Clang non-section symbols in ORC generation")

Factor out that code into a common helper and use it for static call
reloc generation as well.

Reported-by: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Link: ClangBuiltLinux/linux#1207
Link: https://lkml.kernel.org/r/ba6b6c0f0dd5acbba66e403955a967d9fdd1726a.1607983452.git.jpoimboe@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
cythe pushed a commit to cythe/linux that referenced this issue Feb 24, 2021
The Clang assembler likes to strip section symbols, which means objtool
can't reference some text code by its section.  This confuses objtool
greatly, causing it to seg fault.

The fix is similar to what was done before, for ORC reloc generation:

  e81e072 ("objtool: Support Clang non-section symbols in ORC generation")

Factor out that code into a common helper and use it for static call
reloc generation as well.

Reported-by: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Link: ClangBuiltLinux#1207
Link: https://lkml.kernel.org/r/ba6b6c0f0dd5acbba66e403955a967d9fdd1726a.1607983452.git.jpoimboe@redhat.com
tobetter pushed a commit to tobetter/linux that referenced this issue Mar 3, 2021
commit 44f6a7c upstream.

The Clang assembler likes to strip section symbols, which means objtool
can't reference some text code by its section.  This confuses objtool
greatly, causing it to seg fault.

The fix is similar to what was done before, for ORC reloc generation:

  e81e072 ("objtool: Support Clang non-section symbols in ORC generation")

Factor out that code into a common helper and use it for static call
reloc generation as well.

Reported-by: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Link: ClangBuiltLinux#1207
Link: https://lkml.kernel.org/r/ba6b6c0f0dd5acbba66e403955a967d9fdd1726a.1607983452.git.jpoimboe@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
it-is-a-robot pushed a commit to openeuler-mirror/kernel that referenced this issue Mar 10, 2021
stable inclusion
from stable-5.10.17
commit 2b02985bf83e6da9d9165c5f2165af1b97d76edf
bugzilla: 48169

--------------------------------

commit 44f6a7c upstream.

The Clang assembler likes to strip section symbols, which means objtool
can't reference some text code by its section.  This confuses objtool
greatly, causing it to seg fault.

The fix is similar to what was done before, for ORC reloc generation:

  e81e072 ("objtool: Support Clang non-section symbols in ORC generation")

Factor out that code into a common helper and use it for static call
reloc generation as well.

Reported-by: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Link: ClangBuiltLinux/linux#1207
Link: https://lkml.kernel.org/r/ba6b6c0f0dd5acbba66e403955a967d9fdd1726a.1607983452.git.jpoimboe@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
Acked-by: Xie XiuQi <xiexiuqi@huawei.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[BUG] linux A bug that should be fixed in the mainline kernel. [FIXED][LINUX] 5.11 This bug was fixed in Linux 5.11 Reported upstream This bug was filed on LLVM’s issue tracker, Phabricator, or the kernel mailing list. [TOOL] objtool warning is produced by the kernel's objtool
Projects
None yet
Development

No branches or pull requests

3 participants