civodul pushed a commit to branch master in repository guile. commit 43cfae363493460bed62da24bcdc51fce7ba250a Author: John Paul Adrian Glaubitz <glaub...@physik.fu-berlin.de> AuthorDate: Tue Feb 4 14:14:43 2020 +0100
Fix build on ia64. * libguile/continuations.c (capture_auxiliary_stack): Fix logic in preprocessor code when checking for ia64 host; fix dereferencing of ctx variable. * libguile/threads.h (struct scm_thread): Add missing member SCM_STACKITEM *auxiliary_stack_base. Signed-off-by: Ludovic Courtès <l...@gnu.org> --- libguile/continuations.c | 6 +++--- libguile/threads.h | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libguile/continuations.c b/libguile/continuations.c index 67a47d3..b8b6e1d 100644 --- a/libguile/continuations.c +++ b/libguile/continuations.c @@ -143,7 +143,7 @@ static void capture_auxiliary_stack (scm_thread *thread, scm_t_contregs *continuation) { #if SCM_HAVE_AUXILIARY_STACK -# if !(defined __ia64 or defined __ia64__) +# if !defined __ia64 || !defined __ia64__ # error missing auxiliary stack implementation for architecture # endif char *top; @@ -155,9 +155,9 @@ capture_auxiliary_stack (scm_thread *thread, scm_t_contregs *continuation) #if defined __hpux __uc_get_ar_bsp (ctx, (uint64_t *) &top); #elif defined linux - top = (char *) ctx->uc_mcontext.sc_ar_bsp; + top = (char *) ctx.uc_mcontext.sc_ar_bsp; #elif defined __FreeBSD__ - top = (char *)(ctx->uc_mcontext.mc_special.bspstore + top = (char *)(ctx.uc_mcontext.mc_special.bspstore + ctx->uc_mcontext.mc_special.ndirty); #else #error missing auxiliary stack implementation for ia64 on this OS diff --git a/libguile/threads.h b/libguile/threads.h index 337dc83..e6a60e9 100644 --- a/libguile/threads.h +++ b/libguile/threads.h @@ -118,6 +118,11 @@ struct scm_thread { /* Stack base. Used when checking for C stack overflow. */ SCM_STACKITEM *base; +#if SCM_HAVE_AUXILIARY_STACK + /* Auxiliary stack base. */ + SCM_STACKITEM *auxiliary_stack_base; +#endif + /* JIT state; NULL until this thread needs to JIT-compile something. */ struct scm_jit_state *jit_state; };