+ LLVM On Wed, 8 Mar 2023 at 00:58, Chang S. Bae <chang.seok.bae@xxxxxxxxx> wrote: > > On 3/6/2023 10:57 PM, Naresh Kamboju wrote: > > kselftest: sigaltstack built with clang-16 getting failed but passed with > > gcc-12 build. Please find more details about test logs on clang-16 and > > gcc-12 and steps to reproduce locally on your machine by using tuxrun. > > > > Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx> > > > > Test log: > > ---------- > > > > Linux version 6.3.0-rc1-next-20230307 (tuxmake@tuxmake) (Debian clang > > version 16.0.0 (++20230228093516+60692a66ced6-1~exp1~20230228093525.41), > > Debian LLD 16.0.0) #1 SMP PREEMPT @1678159722 > > ... > > kselftest: Running tests in sigaltstack > > TAP version 13 > > 1..1 > > # selftests: sigaltstack: sas > > # # [NOTE] the stack size is 21104 > > # TAP version 13 > > # 1..3 > > # ok 1 Initial sigaltstack state was SS_DISABLE > > # Bail out! SP is not on sigaltstack > > # # Planned tests != run tests (3 != 1) > > # # Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0 > > not ok 1 selftests: sigaltstack: sas # exit=1 > <snip> > > > Linux version 6.3.0-rc1-next-20230307 (tuxmake@tuxmake) > > (aarch64-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils > > for Debian) 2.40) #1 SMP PREEMPT @1678159736 > > ... > > kselftest: Running tests in sigaltstack > > TAP version 13 > > 1..1 > > # selftests: sigaltstack: sas > > # # [NOTE] the stack size is 50080 > > # TAP version 13 > > # 1..3 > > # ok 1 Initial sigaltstack state was SS_DISABLE > > # # [RUN] signal USR1 > > # ok 2 sigaltstack is disabled in sighandler > > # # [RUN] switched to user ctx > > # # [RUN] signal USR2 > > # # [OK] Stack preserved > > # ok 3 sigaltstack is still SS_AUTODISARM after signal > > # # Totals: pass:3 fail:0 xfail:0 xpass:0 skip:0 error:0 > > ok 1 selftests: sigaltstack: sas > > At glance, the log shows the altstack size difference between LLVM and GCC. > > But, when I tried with the LLVM that I have, > > $ clang --version > clang version 13.0.0 ... > > it failed only with this compiler: > > $ rm sas;clang -o sas sas.c;./sas > # [NOTE] the stack size is 8192 > TAP version 13 > 1..3 > ok 1 Initial sigaltstack state was SS_DISABLE > Bail out! SP is not on sigaltstack > # Planned tests != run tests (3 != 1) > # Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0 > > $ rm sas;gcc -o sas sas.c;./sas > # [NOTE] the stack size is 8192 > TAP version 13 > 1..3 > ok 1 Initial sigaltstack state was SS_DISABLE > # [RUN] signal USR1 > ok 2 sigaltstack is disabled in sighandler > # [RUN] switched to user ctx > # [RUN] signal USR2 > # [OK] Stack preserved > ok 3 sigaltstack is still SS_AUTODISARM after signal > # Totals: pass:3 fail:0 xfail:0 xpass:0 skip:0 error:0 > > The same is true with some old versions -- e.g. the one that came with > commit 0c49ad415512 ("tools/testing/selftests/sigaltstack/sas.c: improve > output of sigaltstack testcase"): > > $ rm sas;clang -o sas sas.c;./sas > [OK] Initial sigaltstack state was SS_DISABLE > [FAIL] SP is not on sigaltstack > > $ rm sas;gcc -o sas sas.c;./sas > [OK] Initial sigaltstack state was SS_DISABLE > [RUN] signal USR1 > [OK] sigaltstack is disabled in sighandler > [RUN] switched to user ctx > [RUN] signal USR2 > [OK] Stack preserved > [OK] sigaltstack is still SS_AUTODISARM after signal > [OK] Test passed > > So, this test failure appears to have been there for a while. I think > the LLVM folks need to take a look at it. > > Thanks, > Chang