Source: guile-3.0 Severity: normal Tags: patch User: debian-ia64@lists.debian.org Usertags: ia64
Hi! Similar to hppa, the build of guile-3.0 is currently failing on ia64 due to a regression. I have created a patch to fix the issue and submitted it upstream [1]. Please include it in the next upload. Thanks, Adrian > [1] https://lists.gnu.org/archive/html/guile-devel/2020-02/msg00022.html -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
>From 48bf85af0f02111a0e075b8128f4acefaf43eec0 Mon Sep 17 00:00:00 2001 From: John Paul Adrian Glaubitz <glaub...@physik.fu-berlin.de> Date: Tue, 4 Feb 2020 13:30:09 +0100 Subject: [PATCH] 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. --- 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 67a47d38c..b8b6e1dca 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 337dc83a9..e6a60e96b 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; }; -- 2.25.0