unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: stefan <stefan@lkcc.org>
Subject: Re: Guile garbage collector on ia64-linux
Date: Wed, 25 Jun 2003 20:07:11 +0200 (CEST)	[thread overview]
Message-ID: <Pine.LNX.4.44.0306252005000.594-200000@bono.reversers.net> (raw)
In-Reply-To: <16121.54431.794996.977946@napali.hpl.hp.com>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1449 bytes --]

On Wed, 25 Jun 2003, David Mosberger wrote:

> >>>>> On Wed, 25 Jun 2003 04:58:59 +0200 (CEST), stefan <stefan@lkcc.org> said:
>
>   Stefan>  * have some header where ucontext_t is declared but
>   Stefan> setcontext()/getcontext() is not -> so we can redeclare it
>   Stefan> to make getcontext() return the 'struct rv'.
>
> One way of achieving this is to do:
>
> 	#define getcontext hide_getcontext
> 	#include <ucontext.h>
> 	#undef getcontext
>
> Andreas suggested another method.  Both have their ups and downs.
>
>   Stefan>  * determination of the size and location of the backing
>   Stefan> store; this has been previously achieved by:
>   Stefan> ctx.uc_mcontext.sc_ar_bsp -> the top
>   Stefan> __libc_ia64_register_backing_store_base -> the bottom Newer
>   Stefan> glibc headers don't have 'sc_ar_bsp', but things like
>   Stefan> 'ar_bsp_base' or 'ar_bspstore'.  Can something in the
>   Stefan> structure ucontext_t be used to achieve the same?  Will this
>   Stefan> change often in the future?
>
> This doesn't sound right.  There were no member-name changes "struct
> sigcontext".  I just checked the current libc CVS tree and it has:
>
> struct sigcontext
> {
>     :
>   unsigned long int sc_ar_bsp;  /* backing store pointer */

Finally I applied a patch to CVS Guile.  This should work now.  Could
please someone backport it (attached) to Guile 1.6.x recent?  Then the
Debian builders may succeed...

Cheers,
	stefan@lkcc.org

[-- Attachment #2: Type: TEXT/PLAIN, Size: 1519 bytes --]

? g.diff
Index: libguile/continuations.c
===================================================================
RCS file: /cvsroot/guile/guile/guile-core/libguile/continuations.c,v
retrieving revision 1.49
diff -u -r1.49 continuations.c
--- libguile/continuations.c	20 Apr 2003 07:19:38 -0000	1.49
+++ libguile/continuations.c	25 Jun 2003 18:07:12 -0000
@@ -97,8 +97,7 @@
   long retval;
   long first_return;
 };
-extern struct rv getcontext (ucontext_t *);
-extern int setcontext (ucontext_t *);
+extern struct rv ia64_getcontext (ucontext_t *) __asm__ ("getcontext");
 #endif /* __ia64__ */
 
 /* this may return more than once: the first time with the escape
@@ -138,7 +137,7 @@
   memcpy (continuation->stack, src, sizeof (SCM_STACKITEM) * stack_size);
 
 #ifdef __ia64__
-  rv = getcontext (&continuation->ctx);
+  rv = ia64_getcontext (&continuation->ctx);
   if (rv.first_return)
     {
       continuation->backing_store_size = 
Index: libguile/continuations.h
===================================================================
RCS file: /cvsroot/guile/guile/guile-core/libguile/continuations.h,v
retrieving revision 1.30
diff -u -r1.30 continuations.h
--- libguile/continuations.h	20 Apr 2003 07:19:38 -0000	1.30
+++ libguile/continuations.h	25 Jun 2003 18:07:12 -0000
@@ -26,7 +26,7 @@
 
 #ifdef __ia64__
 #include <signal.h>
-#include <sys/ucontext.h>
+#include <ucontext.h>
 extern unsigned long * __libc_ia64_register_backing_store_base;
 #endif /* __ia64__ */
 \f

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel

  parent reply	other threads:[~2003-06-25 18:07 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <15307.10445.674412.197780@napali.hpl.hp.com>
2003-06-25  2:58 ` Guile garbage collector on ia64-linux stefan
2003-06-25  9:34   ` [Linux-ia64] " Andreas Schwab
2003-06-25 16:58   ` David Mosberger
2003-06-25 18:03     ` stefan
2003-06-25 18:07     ` stefan [this message]
2003-09-12 15:35       ` Marius Vollmer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.44.0306252005000.594-200000@bono.reversers.net \
    --to=stefan@lkcc.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).