https://pastebin.com/r03HxDrX

rsp            0x7fffffffd6e8   0x7fffffffd6e8     BAD: not 16-byte aligned

pc=> 0x7ffff613616c <__GI__dl_catch_error+108>:        movaps %xmm0,0x50(%rsp)

The problem is that the effective address 0x...738 is not 16-byte aligned,
and this generates SIGSEGV because 'movaps' requires 16-byte alignment.

__GI__dl_catch_error is storing 128 bits (16 bytes) from register %xmm0
into the local stack frame at address (0x50 + %rsp) = (0x50 + 0x7fffffffd6e8)
using the opcode 'movaps' which is "MOVe Aligned Packed Single [precision floating 
point]".
Given that the runtime dynamic loader does not use floating point,
this is probably a compiler optimization for zero-ing out two adjacent
8-byte pointers.  Check the glibc source code for "dl_catch_error".

These days the stack pointer %rsp is supposed to be 16-byte aligned
"all the time".  So either there is a compiler error, or setjmp/longjmp
error, or a stack-alignment error in the signal handler for _some_other_
signal (not the current SIGSEGV).  Diagnose the compiler error by
    (gdb) disassemble __GI__dl_catch_error
to see whether the compiler maintains 16-byte alignment.
For setjmp/longjmp inquire at glibc.
For signal handler ask glibc and kernel.

--

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org

Reply via email to