mysql_client_test_nonblock fails when compiled with clang

mysql_client uses some inline assembly code to switch thread stacks.
This works, however tools that perform backtrace get confused to fix
this we write a specific constant to signify bottom of stack. This
constant is needed when compiling with CLang as well.
This commit is contained in:
Vicențiu Ciorbaru 2017-03-07 15:52:17 +02:00
parent 6860a4b556
commit f65c9f825d

View File

@ -206,7 +206,8 @@ my_context_spawn(struct my_context *c, void (*f)(void *), void *d)
( (
"movq %%rsp, (%[save])\n\t" "movq %%rsp, (%[save])\n\t"
"movq %[stack], %%rsp\n\t" "movq %[stack], %%rsp\n\t"
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) && !defined(__INTEL_COMPILER) #if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) || __clang__) && \
!defined(__INTEL_COMPILER)
/* /*
This emits a DWARF DW_CFA_undefined directive to make the return address This emits a DWARF DW_CFA_undefined directive to make the return address
undefined. This indicates that this is the top of the stack frame, and undefined. This indicates that this is the top of the stack frame, and