[mercury-users] IA64 users

Julien Fischer juliensf at csse.unimelb.edu.au
Fri Oct 12 14:36:36 AEDT 2012


On Thu, 11 Oct 2012, Mike Burrell wrote:

> Are there any IA64 (Itanium) users of Mercury?

I suspect IA64 users of Mercury are few and far between.  There was some
work done to port Mercury to IA64 about six years ago and IIRC it did
work at that point.  (We haven't had access to an IA64 machine since
then, so that port has received much attention.)

> I'm having troubles installing. During the "make install" I get the
> following. It looks like it may be a gc issue? Any help would be
> appreciated.


> GC Warning: GC_register_stackbottom should be set with GC_stackbottom
> mercury_compile(11090): unaligned access to 0x6000000002ac64b1,
> ip=0x4000000001e78c50
> mercury_compile(11090): unaligned access to 0x6000000002ac64b9,
> ip=0x4000000001e78c60
> *** Mercury runtime: caught segmentation violation ***
> cause: address not mapped to object
> address involved: 0xc160000fffffa570
> This may have been caused by a stack overflow, due to unbounded recursion.
> exiting from signal handler
> make[2]: *** [mer_std.depend] Segmentation fault

I suggest explicitly setting GC_register_stackbottom as the GC is
complaining about that and checking if that makes a difference.  The right
place in the Mercury source code to do this is in the function
mercury_runtime_init which is defined in the file runtime/mercury_wrapper.c.
Add the statement at line 589 of that file, as follows:

    #ifdef MR_BOEHM_GC
       GC_register_stackbottom = GC_stackbottom;
       /* Disable GC during startup, when little or no garbage is created. */

(You will need to make this modification and rebuild using a fresh copy
of the source distribution.)

Let us know how it that works.

mercury-users mailing list
Post messages to:       mercury-users at csse.unimelb.edu.au
Administrative Queries: owner-mercury-users at csse.unimelb.edu.au
Subscriptions:          mercury-users-request at csse.unimelb.edu.au

More information about the users mailing list