mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-29 19:30:36 +02:00
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 <ludo@gnu.org>
This commit is contained in:
parent
ad91517da1
commit
43cfae3634
2 changed files with 8 additions and 3 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue