> Mmmh 🧐, must say it does not make much sense to me.  Are we sure these > results are reliably reproducible and we are not looking at some > statistic fluctuation of a non very reproducible issue? I understand your scepticism. However, I've ran every build 2-4 times, and so far my reproducibility is at 100%. As in; with the same configuration the build (as a whole) either always fails or is always successful. It does seem random however which of the byte-compile steps fail in the end. Maybe the -fno-optimize-sibling-calls just makes the failure much more unlikely. > Anyway if marking 'mark_threads' with > __attribute__((optimize("no-optimize-sibling-calls"))) solves the issue > in a stable way I think we should compare the assembly output of the two > functions. I've attached the corresponding objdump -S -d (including the original .o files). This time I've modified thread.c so that 'mark_threads' comes dead last. I ran the builds another 4 times each to make sure. Moving the function in the source also moves it to the end of the dumps, makes for easier diffing: diff -ubBw thread.txt thread-attr-no-optimize-sibling-calls.txt --- thread.txt  2024-05-15 17:59:49.003434900 +0200 +++ thread-attr-no-optimize-sibling-calls.txt   2024-05-15 17:38:35.029292300 +0200 @@ -1,5 +1,5 @@ -../thread-last.o:     file format pe-x86-64 +../thread-attr-last.o:     file format pe-x86-64  Disassembly of section .text: @@ -2305,6 +2305,7 @@  00000000000017d0 : +__attribute__((optimize("no-optimize-sibling-calls")))  void  mark_threads (void)  { @@ -2316,50 +2317,49 @@      17d9:      57                      push   %rdi      17da:      56                      push   %rsi      17db:      53                      push   %rbx -    17dc:      48 81 ec a8 00 00 00    sub    $0xa8,%rsp -    17e3:      48 8d 2c 24             lea    (%rsp),%rbp -    17e7:      0f 11 75 00             movups %xmm6,0x0(%rbp) -    17eb:      0f 11 7d 10             movups %xmm7,0x10(%rbp) -    17ef:      44 0f 11 45 20          movups %xmm8,0x20(%rbp) -    17f4:      44 0f 11 4d 30          movups %xmm9,0x30(%rbp) -    17f9:      44 0f 11 55 40          movups %xmm10,0x40(%rbp) -    17fe:      44 0f 11 5d 50          movups %xmm11,0x50(%rbp) -    1803:      44 0f 11 65 60          movups %xmm12,0x60(%rbp) -    1808:      44 0f 11 6d 70          movups %xmm13,0x70(%rbp) -    180d:      44 0f 11 b5 80 00 00    movups %xmm14,0x80(%rbp) -    1814:      00 -    1815:      44 0f 11 bd 90 00 00    movups %xmm15,0x90(%rbp) -    181c:      00 +    17dc:      48 81 ec c8 00 00 00    sub    $0xc8,%rsp +    17e3:      48 8d 6c 24 20          lea    0x20(%rsp),%rbp +    17e8:      0f 11 75 00             movups %xmm6,0x0(%rbp) +    17ec:      0f 11 7d 10             movups %xmm7,0x10(%rbp) +    17f0:      44 0f 11 45 20          movups %xmm8,0x20(%rbp) +    17f5:      44 0f 11 4d 30          movups %xmm9,0x30(%rbp) +    17fa:      44 0f 11 55 40          movups %xmm10,0x40(%rbp) +    17ff:      44 0f 11 5d 50          movups %xmm11,0x50(%rbp) +    1804:      44 0f 11 65 60          movups %xmm12,0x60(%rbp) +    1809:      44 0f 11 6d 70          movups %xmm13,0x70(%rbp) +    180e:      44 0f 11 b5 80 00 00    movups %xmm14,0x80(%rbp) +    1815:      00 +    1816:      44 0f 11 bd 90 00 00    movups %xmm15,0x90(%rbp) +    181d:      00    flush_stack_call_func1 (func, arg); -    181d:      31 d2                   xor    %edx,%edx -    181f:      48 8d 0d da eb ff ff    lea -0x1426(%rip),%rcx        # 400 +    181e:      31 d2                   xor    %edx,%edx +    1820:      48 8d 0d d9 eb ff ff    lea -0x1427(%rip),%rcx        # 400 +    1827:      e8 00 00 00 00          call   182c +    182c:      90                      nop    flush_stack_call_func (mark_threads_callback, NULL);  } -    1826:      0f 10 75 00             movups 0x0(%rbp),%xmm6 -    182a:      0f 10 7d 10             movups 0x10(%rbp),%xmm7 -    182e:      44 0f 10 45 20          movups 0x20(%rbp),%xmm8 -    1833:      44 0f 10 4d 30          movups 0x30(%rbp),%xmm9 -    1838:      44 0f 10 55 40          movups 0x40(%rbp),%xmm10 -    183d:      44 0f 10 5d 50          movups 0x50(%rbp),%xmm11 -    1842:      44 0f 10 65 60          movups 0x60(%rbp),%xmm12 -    1847:      44 0f 10 6d 70          movups 0x70(%rbp),%xmm13 -    184c:      44 0f 10 b5 80 00 00    movups 0x80(%rbp),%xmm14 -    1853:      00 -    1854:      44 0f 10 bd 90 00 00    movups 0x90(%rbp),%xmm15 -    185b:      00 -    185c:      48 81 c4 a8 00 00 00    add    $0xa8,%rsp -    1863:      5b                      pop    %rbx -    1864:      5e                      pop    %rsi -    1865:      5f                      pop    %rdi -    1866:      41 5c                   pop    %r12 -    1868:      41 5d                   pop    %r13 -    186a:      41 5e                   pop    %r14 -    186c:      41 5f                   pop    %r15 -    186e:      5d                      pop    %rbp -    186f:      e9 00 00 00 00          jmp    1874 -    1874:      90                      nop -    1875:      90                      nop -    1876:      90                      nop +    182d:      0f 10 75 00             movups 0x0(%rbp),%xmm6 +    1831:      0f 10 7d 10             movups 0x10(%rbp),%xmm7 +    1835:      44 0f 10 45 20          movups 0x20(%rbp),%xmm8 +    183a:      44 0f 10 4d 30          movups 0x30(%rbp),%xmm9 +    183f:      44 0f 10 55 40          movups 0x40(%rbp),%xmm10 +    1844:      44 0f 10 5d 50          movups 0x50(%rbp),%xmm11 +    1849:      44 0f 10 65 60          movups 0x60(%rbp),%xmm12 +    184e:      44 0f 10 6d 70          movups 0x70(%rbp),%xmm13 +    1853:      44 0f 10 b5 80 00 00    movups 0x80(%rbp),%xmm14 +    185a:      00 +    185b:      44 0f 10 bd 90 00 00    movups 0x90(%rbp),%xmm15 +    1862:      00 +    1863:      48 81 c4 c8 00 00 00    add    $0xc8,%rsp +    186a:      5b                      pop    %rbx +    186b:      5e                      pop    %rsi +    186c:      5f                      pop    %rdi +    186d:      41 5c                   pop    %r12 +    186f:      41 5d                   pop    %r13 +    1871:      41 5e                   pop    %r14 +    1873:      41 5f                   pop    %r15 +    1875:      5d                      pop    %rbp +    1876:      c3                      ret      1877:      90                      nop      1878:      90                      nop      1879:      90                      nop