mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-07-03 08:10:31 +02:00
Remove last vestiges of ia64 support
* configure.ac: * libguile/continuations-internal.h (struct scm_continuation): * libguile/continuations.c (capture_auxiliary_stack) (restore_auxiliary_stack, scm_i_make_continuation, copy_stack_and_call): * libguile/gen-scmconfig.c (main): * libguile/threads.h (struct scm_thread): Remove support for aux stacks.
This commit is contained in:
parent
4b2924730e
commit
08296e6022
6 changed files with 1 additions and 72 deletions
|
@ -1109,10 +1109,6 @@ main (int argc, char **argv)
|
|||
WHIPPET_PKG_COLLECTOR(bdw)
|
||||
WHIPPET_PKG
|
||||
|
||||
# Machines with an auxiliary stack (ia64) are not supported.
|
||||
SCM_I_GSC_HAVE_AUXILIARY_STACK=0
|
||||
AC_SUBST([SCM_I_GSC_HAVE_AUXILIARY_STACK])
|
||||
|
||||
AC_CHECK_SIZEOF(float)
|
||||
if test "$ac_cv_sizeof_float" -le "$ac_cv_sizeof_long"; then
|
||||
AC_DEFINE([SCM_SINGLES], 1,
|
||||
|
|
|
@ -40,10 +40,6 @@ struct scm_continuation
|
|||
{
|
||||
scm_t_bits tag;
|
||||
jmp_buf jmpbuf;
|
||||
#if SCM_HAVE_AUXILIARY_STACK
|
||||
void *auxiliary_stack;
|
||||
unsigned long auxiliary_stack_size;
|
||||
#endif
|
||||
SCM root; /* continuation root identifier. */
|
||||
struct scm_vm_cont *vm_cont; /* vm's stack and regs */
|
||||
|
||||
|
|
|
@ -28,10 +28,6 @@
|
|||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#if SCM_HAVE_AUXILIARY_STACK
|
||||
#include <ucontext.h>
|
||||
#endif
|
||||
|
||||
#include "async.h"
|
||||
#include "backtrace.h"
|
||||
#include "boolean.h"
|
||||
|
@ -146,53 +142,6 @@ pin_conservative_roots (scm_thread *thread, void *base, size_t size)
|
|||
# define SCM_FLUSH_REGISTER_WINDOWS /* empty */
|
||||
#endif
|
||||
|
||||
static void
|
||||
capture_auxiliary_stack (scm_thread *thread, struct scm_continuation *continuation)
|
||||
{
|
||||
#if SCM_HAVE_AUXILIARY_STACK
|
||||
# if !defined __ia64 || !defined __ia64__
|
||||
# error missing auxiliary stack implementation for architecture
|
||||
# endif
|
||||
char *top;
|
||||
ucontext_t ctx;
|
||||
|
||||
if (getcontext (&ctx) != 0)
|
||||
abort ();
|
||||
|
||||
#if defined __hpux
|
||||
__uc_get_ar_bsp (ctx, (uint64_t *) &top);
|
||||
#elif defined linux
|
||||
top = (char *) ctx.uc_mcontext.sc_ar_bsp;
|
||||
#elif defined __FreeBSD__
|
||||
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
|
||||
#endif
|
||||
|
||||
continuation->auxiliary_stack_size =
|
||||
top - (char *) thread->auxiliary_stack_base;
|
||||
continuation->auxiliary_stack =
|
||||
scm_allocate_sloppy (SCM_I_CURRENT_THREAD,
|
||||
continuation->auxiliary_stack_size);
|
||||
memcpy (continuation->auxiliary_stack, thread->auxiliary_stack_base,
|
||||
continuation->auxiliary_stack_size);
|
||||
|
||||
pin_conservative_roots (thread,
|
||||
continuation->auxiliary_stack,
|
||||
continuation->auxiliary_stack_size);
|
||||
#endif /* SCM_HAVE_AUXILIARY_STACK */
|
||||
}
|
||||
|
||||
static void
|
||||
restore_auxiliary_stack (scm_thread *thread, struct scm_continuation *continuation)
|
||||
{
|
||||
#if SCM_HAVE_AUXILIARY_STACK
|
||||
memcpy (thread->auxiliary_stack_base, continuation->auxiliary_stack,
|
||||
continuation->auxiliary_stack_size);
|
||||
#endif
|
||||
}
|
||||
|
||||
SCM
|
||||
scm_i_make_continuation (scm_thread *thread, struct scm_vm_cont *vm_cont)
|
||||
{
|
||||
|
@ -205,7 +154,6 @@ scm_i_make_continuation (scm_thread *thread, struct scm_vm_cont *vm_cont)
|
|||
continuation->tag = scm_tc16_continuation;
|
||||
memcpy (continuation->jmpbuf, thread->vm.registers, sizeof (jmp_buf));
|
||||
pin_conservative_roots (thread, continuation->jmpbuf, sizeof (jmp_buf));
|
||||
capture_auxiliary_stack (thread, continuation);
|
||||
continuation->root = thread->continuation_root;
|
||||
continuation->vm_cont = vm_cont;
|
||||
SCM_STACKITEM * src = thread->continuation_base;
|
||||
|
@ -301,7 +249,6 @@ copy_stack_and_call (struct scm_continuation *continuation,
|
|||
|
||||
memcpy (dst, continuation->stack,
|
||||
sizeof (SCM_STACKITEM) * continuation->num_stack_items);
|
||||
restore_auxiliary_stack (thread, continuation);
|
||||
|
||||
scm_dynstack_wind (&thread->dynstack, joint);
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright 2003-2013, 2018, 2020-2022
|
||||
/* Copyright 2003-2013, 2018, 2020-2022, 2025
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of Guile.
|
||||
|
@ -359,10 +359,6 @@ main (int argc, char *argv[])
|
|||
pf ("#define SCM_ICONVEH_ESCAPE_SEQUENCE %d\n",
|
||||
SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE);
|
||||
|
||||
pf ("\n");
|
||||
pf ("/* Define to 1 if there is an auxiliary stack, as in ia64. */\n");
|
||||
pf ("#define SCM_HAVE_AUXILIARY_STACK %d\n", SCM_I_GSC_HAVE_AUXILIARY_STACK);
|
||||
|
||||
pf ("\n");
|
||||
pf ("/* Define to 1 to use mini GMP. */\n");
|
||||
#if SCM_I_GSC_ENABLE_MINI_GMP == 1
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
#define SCM_I_GSC_ICONVEH_ERROR @SCM_I_GSC_ICONVEH_ERROR@
|
||||
#define SCM_I_GSC_ICONVEH_QUESTION_MARK @SCM_I_GSC_ICONVEH_QUESTION_MARK@
|
||||
#define SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE @SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE@
|
||||
#define SCM_I_GSC_HAVE_AUXILIARY_STACK @SCM_I_GSC_HAVE_AUXILIARY_STACK@
|
||||
#define SCM_I_GSC_ENABLE_MINI_GMP @SCM_I_GSC_ENABLE_MINI_GMP@
|
||||
/*
|
||||
Local Variables:
|
||||
|
|
|
@ -100,11 +100,6 @@ 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
|
||||
|
||||
/* For joinable threads, a cond to wait on joining, and a lock to
|
||||
protect the results. #f if not joinable. */
|
||||
SCM join_cond;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue