[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Removal of hppa support


On 1/27/20 4:46 PM, Andy Wingo wrote:
> William is correct.  HPPA support is not gone from Guile; and indeed
> it's good to hear from you :)  I wasn't sure there were any IA64 users
> remaining.

It fails to build from source on Debian hppa, however:

> https://buildd.debian.org/status/fetch.php?pkg=guile-3.0&arch=hppa&ver=3.0.0%2B1-1&stamp=1580702308&raw=0

continuations.c: In function 'scm_dynthrow':
continuations.c:326:5: error: too few arguments to function 'grow_stack'
  326 |     grow_stack (cont);
      |     ^~~~~~~~~~
continuations.c:276:1: note: declared here
  276 | grow_stack (SCM cont, uint8_t *mra)
      | ^~~~~~~~~~

I'm currently working on a patch.

> Initially in Guile I planned to use GNU Lightning, in part because of
> its great platform support.  However it turned out to not be the right
> thing, and reluctantly I ended up doing something that was more like a
> rewrite than a refactor.  In that context I personally don't have the
> budget to write the IA64 backend.  So, Guile 3 still runs on IA64, just
> without JIT support.

It also fails on ia64 at the moment:

> https://buildd.debian.org/status/fetch.php?pkg=guile-3.0&arch=ia64&ver=3.0.0%2B1-1&stamp=1580702151&raw=0

continuations.c:146:23: error: missing binary operator before token "or"
  146 | # if !(defined __ia64 or defined __ia64__)
      |                       ^~

I fixed the preprocessor conditional, but then I'm running into another

continuations.c: In function 'capture_auxiliary_stack':
continuations.c:152:7: warning: implicit declaration of function 'getcontext' [-Wimplicit-function-declaration]
  152 |   if (getcontext (&ctx) != 0)
      |       ^~~~~~~~~~
continuations.c:158:21: error: invalid type argument of '->' (have 'ucontext_t' {aka 'struct ucontext_t'})
  158 |   top = (char *) ctx->uc_mcontext.sc_ar_bsp;
      |                     ^~
continuations.c:167:26: error: 'scm_thread' {aka 'struct scm_thread'} has no member named 'auxiliary_stack_base'
  167 |     top - (char *) thread->auxiliary_stack_base;
      |                          ^~
continuations.c:171:48: error: 'scm_thread' {aka 'struct scm_thread'} has no member named 'auxiliary_stack_base'
  171 |   memcpy (continuation->auxiliary_stack, thread->auxiliary_stack_base,
      |                                                ^~
continuations.c: In function 'restore_auxiliary_stack':
continuations.c:180:17: error: 'scm_thread' {aka 'struct scm_thread'} has no member named 'auxiliary_stack_base'
  180 |   memcpy (thread->auxiliary_stack_base, continuation->auxiliary_stack,
      |                 ^~

Working on a patch here as well.

> If someone would like to write an IA64 backend for Lightening, I would
> be happy to accept it :)  The beginnings of one are there in the git
> history.

Ok. I assume that applies to alpha, hppa, m68k, powerpc*, riscv*, sparc* as well.


 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

Reply to: