I will attempt as you have said.
I have already done other things and managed to get a successfull build.
I can even load a pharo image successfully!
Thats about it, do anything, and it crashes.
I will do as you say and report back. In the mean time comments are welcome.
Output from crash:
$ ./squeak /home/dusty/pharo-image/pharo.image
relocating call to invalid address
Squeak VM version: 4.0-2552 #1 Mon Jun 4 19:52:45 SAST 2012 gcc 4.2.1
Built from: CoInterpreter VMMaker.oscog-eem.159 uuid:
cbf7f95a-6fe2-4578-898e-47afb8524be4 Jun 4 2012
With: StackToRegisterMappingCogit VMMaker.oscog-eem.159 uuid:
cbf7f95a-6fe2-4578-898e-47afb8524be4 Jun 4 2012
Revision: VM: r2552 http://www.squeakvm.org/svn/squeak/branches/Cog
Plugins: r2545 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins
Build host: OpenBSD dent.local 5.1 GENERIC#160 i386
plugin path: /home/dusty/CogVM/CogVM/unixbuild/bld/ [default:
/home/dusty/CogVM/CogVM/unixbuild/bld/]
Abort trap (core dumped)
$
Code where the error message comes from (cogit.c):
<snip...>
static void
relocateCallBeforeReturnPCby(AbstractInstruction *
self_in_relocateCallBeforeReturnPCby, sqInt retpc, sqInt delta)
{
sqInt distance;
if (delta != 0) {
distance = ((((byteAt(retpc - 1)) << 24) + ((byteAt(retpc - 2)) << 16)) +
((byteAt(retpc - 3)) << 8)) + (byteAt(retpc - 4));
distance += delta;
byteAtput(retpc - 1, (((usqInt) distance) >> 24) & 255);
byteAtput(retpc - 2, (((usqInt) distance) >> 16) & 255);
byteAtput(retpc - 3, (((usqInt) distance) >> 8) & 255);
byteAtput(retpc - 4, distance & 255);
if (0) {
assert((((usqInt)
(callTargetFromReturnAddress(self_in_relocateCallBeforeReturnPCby,
retpc)))) >= (minCallAddress()));
}
else {
if (!((((usqInt)
(callTargetFromReturnAddress(self_in_relocateCallBeforeReturnPCby,
retpc)))) >= (minCallAddress()))) {
error("relocating call to invalid address");
}
}
}
}
<.../snip>
On , Stuart Henderson <s...@spacehopper.org> wrote:
On 2012/06/02 15:07, Dusty wrote:
> In my feeble and ignorance, I'm attempting to build CogVM on OpenBSD.
> I've come across some problems that my limited skills cannot solve.
> -I/home/dusty/CogVM/openCogVm/platforms/Cross/vm
> -I/home/dusty/CogVM/openCogVm/src/vm -I/usr/X11R6/include -c -o
> sqUnixMain.o /home/dusty/CogVM/openCogVm/platforms/unix/vm/sqUnixMain.c
> /home/dusty/CogVM/openCogVm/platforms/unix/vm/sqUnixMain.c:62:22:
> error: execinfo.h: No such file or directory
Build with -I/usr/local/include (and install the libexecinfo port if you
haven't already)
> /home/dusty/CogVM/openCogVm/platforms/unix/vm/sqUnixMain.c:820:3:
> error: #error need to implement extracting pc from a ucontext_t on
> this system
If this is the ucontext.h stuff, afaik nobody has implemented ucontext
for OpenBSD, certainly it's not in-tree.