On Mon, May 6, 2024 at 4:26 PM Fangrui Song <maskray@xxxxxxxxxx> wrote: > > On Wed, May 1, 2024 at 5:29 AM Muhammad Usama Anjum > <usama.anjum@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxx 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 > > > >