Message ID | 20240501122918.3831734-1-usama.anjum@collabora.com (mailing list archive) |
---|---|
Headers | show |
Series | selftests: x86: build suite with clang | expand |
On Wed, May 1, 2024 at 5:29 AM Muhammad Usama Anjum <usama.anjum@collabora.com> wrote: > > This series fixes build errors found by clang to allow the x86 suite to > get built with the clang. > > Unfortunately, there is one bug [1] in the clang becuase of which > extended asm isn't handled correctly by it and build fails for > sysret_rip.c. Hence even after this series the build of this test would > fail with clang. Should we disable this test for now when clang is used > until the bug is fixed in clang? Not sure. Any opinions? > > [1] https://github.com/llvm/llvm-project/issues/53728 I've closed https://github.com/llvm/llvm-project/issues/53728 (constant expression folding for relocatable file output (MCObjectStreamer)). I've sent a patch to address https://github.com/llvm/llvm-project/issues/62520 (constant expression folding for relocatable file output when inline assembly is used). (I am subscribed to llvm@lists.linux.dev but rarely read it. I noticed this message accidentally :) ) > Muhammad Usama Anjum (8): > selftests: x86: Remove dependence of headers file > selftests: x86: check_initial_reg_state: remove -no-pie while using > -static > selftests: x86: test_vsyscall: remove unused function > selftests: x86: fsgsbase_restore: fix asm directive from =rm to =r > selftests: x86: syscall_arg_fault_32: remove unused variable > selftests: x86: test_FISTTP: use fisttps instead of ambigous fisttp > selftests: x86: fsgsbase: Remove unused function and variable > selftests: x86: amx: Remove unused functions > > tools/testing/selftests/x86/Makefile | 9 +++++---- > tools/testing/selftests/x86/amx.c | 16 ---------------- > tools/testing/selftests/x86/fsgsbase.c | 6 ------ > tools/testing/selftests/x86/fsgsbase_restore.c | 2 +- > tools/testing/selftests/x86/syscall_arg_fault.c | 1 - > tools/testing/selftests/x86/test_FISTTP.c | 8 ++++---- > tools/testing/selftests/x86/test_vsyscall.c | 5 ----- > 7 files changed, 10 insertions(+), 37 deletions(-) > > -- > 2.39.2 > >
On Mon, May 6, 2024 at 4:26 PM Fangrui Song <maskray@google.com> wrote: > > On Wed, May 1, 2024 at 5:29 AM Muhammad Usama Anjum > <usama.anjum@collabora.com> wrote: > > > > This series fixes build errors found by clang to allow the x86 suite to > > get built with the clang. > > > > Unfortunately, there is one bug [1] in the clang becuase of which > > extended asm isn't handled correctly by it and build fails for > > sysret_rip.c. Hence even after this series the build of this test would > > fail with clang. Should we disable this test for now when clang is used > > until the bug is fixed in clang? Not sure. Any opinions? > > > > [1] https://github.com/llvm/llvm-project/issues/53728 > > I've closed https://github.com/llvm/llvm-project/issues/53728 > (constant expression folding for relocatable file output > (MCObjectStreamer)). > > I've sent a patch to address https://github.com/llvm/llvm-project/issues/62520 > (constant expression folding for relocatable file output when inline > assembly is used). > > (I am subscribed to llvm@lists.linux.dev but rarely read it. I noticed > this message accidentally :) ) On the LLVM/Clang side, I've landed https://github.com/llvm/llvm-project/pull/91082 to make the following .if directive work for clang -c. clang -S still doesn't work (https://discourse.llvm.org/t/rfc-clang-assembly-object-equivalence-for-files-with-inline-assembly/78841/4?u=maskray) but people can probably live with that ``` % cat b.cc asm(R"( .pushsection .text,"ax" .globl _start; _start: ret .if . -_start == 1 ret .endif .popsection )"); % clang -c b.cc # succeeded with this patch % clang -S b.cc # still failed <inline asm>:4:5: error: expected absolute expression 4 | .if . -_start == 1 | ^ 1 error generated. ``` > > Muhammad Usama Anjum (8): > > selftests: x86: Remove dependence of headers file > > selftests: x86: check_initial_reg_state: remove -no-pie while using > > -static > > selftests: x86: test_vsyscall: remove unused function > > selftests: x86: fsgsbase_restore: fix asm directive from =rm to =r > > selftests: x86: syscall_arg_fault_32: remove unused variable > > selftests: x86: test_FISTTP: use fisttps instead of ambigous fisttp > > selftests: x86: fsgsbase: Remove unused function and variable > > selftests: x86: amx: Remove unused functions > > > > tools/testing/selftests/x86/Makefile | 9 +++++---- > > tools/testing/selftests/x86/amx.c | 16 ---------------- > > tools/testing/selftests/x86/fsgsbase.c | 6 ------ > > tools/testing/selftests/x86/fsgsbase_restore.c | 2 +- > > tools/testing/selftests/x86/syscall_arg_fault.c | 1 - > > tools/testing/selftests/x86/test_FISTTP.c | 8 ++++---- > > tools/testing/selftests/x86/test_vsyscall.c | 5 ----- > > 7 files changed, 10 insertions(+), 37 deletions(-) > > > > -- > > 2.39.2 > > > >
On 5/1/24 6:29 AM, Muhammad Usama Anjum wrote: > This series fixes build errors found by clang to allow the x86 suite to > get built with the clang. > > Unfortunately, there is one bug [1] in the clang becuase of which > extended asm isn't handled correctly by it and build fails for > sysret_rip.c. Hence even after this series the build of this test would > fail with clang. Should we disable this test for now when clang is used > until the bug is fixed in clang? Not sure. Any opinions? Its seems like the bug has been fixed in clang. I'll verify it in next release and draft a patch separately to fix that error. I think this series is good to accept then. > > [1] https://github.com/llvm/llvm-project/issues/53728 > > Muhammad Usama Anjum (8): > selftests: x86: Remove dependence of headers file > selftests: x86: check_initial_reg_state: remove -no-pie while using > -static > selftests: x86: test_vsyscall: remove unused function > selftests: x86: fsgsbase_restore: fix asm directive from =rm to =r > selftests: x86: syscall_arg_fault_32: remove unused variable > selftests: x86: test_FISTTP: use fisttps instead of ambigous fisttp > selftests: x86: fsgsbase: Remove unused function and variable > selftests: x86: amx: Remove unused functions > > tools/testing/selftests/x86/Makefile | 9 +++++---- > tools/testing/selftests/x86/amx.c | 16 ---------------- > tools/testing/selftests/x86/fsgsbase.c | 6 ------ > tools/testing/selftests/x86/fsgsbase_restore.c | 2 +- > tools/testing/selftests/x86/syscall_arg_fault.c | 1 - > tools/testing/selftests/x86/test_FISTTP.c | 8 ++++---- > tools/testing/selftests/x86/test_vsyscall.c | 5 ----- > 7 files changed, 10 insertions(+), 37 deletions(-) >
Soft reminder On 5/1/24 5:29 PM, Muhammad Usama Anjum wrote: > This series fixes build errors found by clang to allow the x86 suite to > get built with the clang. > > Unfortunately, there is one bug [1] in the clang becuase of which > extended asm isn't handled correctly by it and build fails for > sysret_rip.c. Hence even after this series the build of this test would > fail with clang. Should we disable this test for now when clang is used > until the bug is fixed in clang? Not sure. Any opinions? > > [1] https://github.com/llvm/llvm-project/issues/53728 > > Muhammad Usama Anjum (8): > selftests: x86: Remove dependence of headers file > selftests: x86: check_initial_reg_state: remove -no-pie while using > -static > selftests: x86: test_vsyscall: remove unused function > selftests: x86: fsgsbase_restore: fix asm directive from =rm to =r > selftests: x86: syscall_arg_fault_32: remove unused variable > selftests: x86: test_FISTTP: use fisttps instead of ambigous fisttp > selftests: x86: fsgsbase: Remove unused function and variable > selftests: x86: amx: Remove unused functions > > tools/testing/selftests/x86/Makefile | 9 +++++---- > tools/testing/selftests/x86/amx.c | 16 ---------------- > tools/testing/selftests/x86/fsgsbase.c | 6 ------ > tools/testing/selftests/x86/fsgsbase_restore.c | 2 +- > tools/testing/selftests/x86/syscall_arg_fault.c | 1 - > tools/testing/selftests/x86/test_FISTTP.c | 8 ++++---- > tools/testing/selftests/x86/test_vsyscall.c | 5 ----- > 7 files changed, 10 insertions(+), 37 deletions(-) >