[Gc] Re: BUS_PAGE_FAULT os_dep.c

Ivan Maidanski ivmai at mail.ru
Wed Aug 18 13:11:38 PDT 2010


Is MPROTECT_VDB defined in the CVS case? (If yes then compile with -E option and examine the beginning of GC_write_fault_handler in both cases.)

PS. Do you know the equivalent of BUS_PAGE_FAULT on non-x86?

Wed, 18 Aug 2010 21:59:54 +0200 Andreas Tobler <andreast-list at fgznet.ch>:

> Hi Ivan,
> 
> First, thanks for committing the ppc64 part, I appreciate this fast 
> turnaround!
> 
> I have a little understanding problem.
> 
> In os_dep.c:3012 (current CVS) we have the following snippet:
> 
> #if !defined(DARWIN)
> #   include <errno.h>
> #   if defined(FREEBSD)
> #     define SIG_OK TRUE
> #     define CODE_OK (si -> si_code == BUS_PAGE_FAULT)
> ....
> 
> Now, I can build the cvs-gc on powerpc32/64 FreeBSD w/o problems.
> 
> For a ports package we have an older gc, 7.1 I think, and there I fail 
> to build gc:
> 
> os_dep.c: In function 'GC_write_fault_handler':
> os_dep.c:2779: error: 'BUS_PAGE_FAULT' undeclared (first use in this 
> function)
> os_dep.c:2779: error: (Each undeclared identifier is reported only once
> 
> That is ok since this BUS_PAGE_FAULT is x86 only I guess.
> 
> What I do not understand is the fact that on cvs-head it builds and on 
> 7.1 it doesn't. Is the above snippet included into a x86 specific ifdef 
> on cvs-head?
> 
> I could not find an other ifdef surrounding the above.
> 
> Would be great if you could enlighten me!
> TIA,
> Andreas


More information about the Gc mailing list