2021-09-20 09:07:50

by Naresh Kamboju

[permalink] [raw]
Subject: x86_64: clang-10: <instantiation>:2:2: error: unknown use of instruction mnemonic without a size suffix

[Please ignore this email if it is already reported ]

Following build warnings/ errors noticed while building linux mainline
master branch
with clang-10 for x86_64 architecture.
But clang-11, clang-12 and clang-13 build pass.

<instantiation>:2:2: error: unknown use of instruction mnemonic
without a size suffix
lsl %rax, %rax
^
<instantiation>:1:1: note: while in macro instantiation
LOAD_CPU_AND_NODE_SEG_LIMIT %rax
^
<instantiation>:2:2: note: while in macro instantiation
GET_PERCPU_BASE %rax
^
/builds/linux/arch/x86/entry/entry_64.S:887:2: note: while in macro
instantiation
SAVE_AND_SET_GSBASE scratch_reg=%rax save_reg=%rbx
^
make[3]: *** [/builds/linux/scripts/Makefile.build:379:
arch/x86/entry/entry_64.o] Error 1
arch/x86/entry/entry_64_compat.o: warning: objtool: .entry.text+0x215:
can't find jump dest instruction at .entry.text+0x21a
make[3]: Target '__build' not remade because of errors.
make[2]: *** [/builds/linux/scripts/Makefile.build:540: arch/x86/entry] Error 2
make[2]: Target '__build' not remade because of errors.
make[1]: *** [/builds/linux/Makefile:1868: arch/x86] Error 2


Build config:
https://builds.tuxbuild.com/1yNlOcqNwVJJje4WbGjSV4ZeBh6/config

Reported-by: Linux Kernel Functional Testing <[email protected]>

meta data:
-----------
git_describe: v5.15-rc2
git_ref:
git_repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git_sha: e4e737bb5c170df6135a127739a9e6148ee3da82
git_short_log: e4e737bb5c17 (\"Linux 5.15-rc2\")
kconfig: [
defconfig
],
target_arch: x86_64
toolchain: clang-10

steps to reproduce:
tuxmake --runtime podman --target-arch x86_64 --toolchain clang-10
--kconfig defconfig

https://builds.tuxbuild.com/1yNlOcqNwVJJje4WbGjSV4ZeBh6/tuxmake_reproducer.sh

--
Linaro LKFT
https://lkft.linaro.org


2021-09-20 11:08:15

by Nathan Chancellor

[permalink] [raw]
Subject: Re: x86_64: clang-10: <instantiation>:2:2: error: unknown use of instruction mnemonic without a size suffix

Hi Naresh,

On Mon, Sep 20, 2021 at 08:55:46AM +0530, Naresh Kamboju wrote:
> [Please ignore this email if it is already reported ]
>
> Following build warnings/ errors noticed while building linux mainline
> master branch
> with clang-10 for x86_64 architecture.
> But clang-11, clang-12 and clang-13 build pass.
>
> <instantiation>:2:2: error: unknown use of instruction mnemonic
> without a size suffix
> lsl %rax, %rax
> ^
> <instantiation>:1:1: note: while in macro instantiation
> LOAD_CPU_AND_NODE_SEG_LIMIT %rax
> ^
> <instantiation>:2:2: note: while in macro instantiation
> GET_PERCPU_BASE %rax
> ^
> /builds/linux/arch/x86/entry/entry_64.S:887:2: note: while in macro
> instantiation
> SAVE_AND_SET_GSBASE scratch_reg=%rax save_reg=%rbx
> ^
> make[3]: *** [/builds/linux/scripts/Makefile.build:379:
> arch/x86/entry/entry_64.o] Error 1
> arch/x86/entry/entry_64_compat.o: warning: objtool: .entry.text+0x215:
> can't find jump dest instruction at .entry.text+0x21a
> make[3]: Target '__build' not remade because of errors.
> make[2]: *** [/builds/linux/scripts/Makefile.build:540: arch/x86/entry] Error 2
> make[2]: Target '__build' not remade because of errors.
> make[1]: *** [/builds/linux/Makefile:1868: arch/x86] Error 2

Thanks for the report. This is another case where the implicit switch to
the integrated assembler exposed a previously fixed issue in LLVM:

https://github.com/ClangBuiltLinux/linux/issues/1079

This cannot be fixed in the LLVM 10 branch as it is no longer updated so
if you want to keep testing with clang-10 for x86_64 on mainline, please
add 'LLVM_IAS=0' to your make command like we did in our own CI.

As a quick aside, would you mind updating my email address in your
system for reports to [email protected]? It will ensure it gets sent to
the correct inbox so that I do not miss things, as I do not use my
personal address for kernel development anymore.

Cheers,
Nathan

2021-09-20 12:06:17

by Naresh Kamboju

[permalink] [raw]
Subject: Re: x86_64: clang-10: <instantiation>:2:2: error: unknown use of instruction mnemonic without a size suffix

Hi Nathan,

On Mon, 20 Sept 2021 at 09:13, Nathan Chancellor <[email protected]> wrote:
>
> Hi Naresh,
>
> On Mon, Sep 20, 2021 at 08:55:46AM +0530, Naresh Kamboju wrote:
> > [Please ignore this email if it is already reported ]
> >
> > Following build warnings/ errors noticed while building linux mainline
> > master branch
> > with clang-10 for x86_64 architecture.
> > But clang-11, clang-12 and clang-13 build pass.
> >
> > <instantiation>:2:2: error: unknown use of instruction mnemonic
> > without a size suffix
> > lsl %rax, %rax
> > ^
> > <instantiation>:1:1: note: while in macro instantiation
> > LOAD_CPU_AND_NODE_SEG_LIMIT %rax
> > ^
> > <instantiation>:2:2: note: while in macro instantiation
> > GET_PERCPU_BASE %rax
> > ^
> > /builds/linux/arch/x86/entry/entry_64.S:887:2: note: while in macro
> > instantiation
> > SAVE_AND_SET_GSBASE scratch_reg=%rax save_reg=%rbx
> > ^
> > make[3]: *** [/builds/linux/scripts/Makefile.build:379:

> Thanks for the report. This is another case where the implicit switch to
> the integrated assembler exposed a previously fixed issue in LLVM:
>
> https://github.com/ClangBuiltLinux/linux/issues/1079
>
> This cannot be fixed in the LLVM 10 branch as it is no longer updated so
> if you want to keep testing with clang-10 for x86_64 on mainline, please
> add 'LLVM_IAS=0' to your make command like we did in our own CI.

We will update our gitlab pipeline CI configs with 'LLVM_IAS=0'.

>
> As a quick aside, would you mind updating my email address in your
> system for reports to [email protected]? It will ensure it gets sent to
> the correct inbox so that I do not miss things, as I do not use my
> personal address for kernel development anymore.

Noted.

- Naresh