scsh-users
[Top] [All Lists]

Re: scsh on MIPS SVR4 architecture

To: ridderbusch.pad@sni.de
Subject: Re: scsh on MIPS SVR4 architecture
From: Olin Shivers <shivers@clark.lcs.mit.edu>
Date: Mon, 16 Jan 95 14:51:49 -0500
Cc: scsh-bugs@martigny.ai.mit.edu
Reply-to: shivers@mintaka.lcs.mit.edu
    Warning: External not found
             "df_scheme_exec"

This means that the Scheme code was trying to look up the address of a 
C function named df_scheme_exec() in the VM. When it asks the VM to
do this, the byte-code interpreter calls the lookup_external_name()
procedure in unix.c.

So, the first thing to do is to use the nm(1) utility to find out if
"df_scheme_exec" (or "_df_scheme_exec") is a defined symbol in scshvm.
On my system, I would say 
    nm -g scshvm | grep df_scheme_exec
which produces
    0000dc50 T _df_scheme_exec
which tells me _df_scheme_exec *is* defined in the text (T) segment,
at address 0xDC50.

If you can't find such a symbol, then your scshvm doesn't have the OS support
code linked in, and no wonder you are losing. Can't call a routine you don't
have...

If it's there, perhaps the vm's lookup_external_name() routine is looking
it up incorrectly -- perhaps prepending an underscore when it shouldn't,
or not prepending an underscore when it should (it varies from system
to system). See the USCORE #define in unix.c; this is easy to fix.

This is the kind of lossage you're dealing encountering. Unfortunately, we
don't have any SysV R4000 boxes around here, so we couldn't do the port
ourselves.

We are always grateful to someone who gets scsh running on a new system;
one more small step towards world domination. Thanks for the report.
    -Olin

<Prev in Thread] Current Thread [Next in Thread>