On Wednesday, June 12, 2002, at 01:27 , Alastair Reid wrote:
Reading file "X.hs": ERROR "X.hs":3853 - Unknown primitive reference "prim_X_fontRightToLeft"
However, running
nm X.so | grep fontRightToLeft
gives
0001408c t _prim_X_fontRightToLeft
That is, we seem to have run into the leading underscore problem you mentioned.
There must be something else going on here because...
Because of issues like the leading underscore, Hugs only uses dlopen on the function initModule at the end of GreenCard generated files. The function initModule returns a lookup table that looks like this:
static struct primitive primTable[] = { {"prim_X", 3, prim_X}, {"prim_Y", 3, prim_Y}, };
So the error message is not reporting problems finding a C symbol "prim_X_fontRightToLeft" but problems finding a Hugs symbol table entry "prim_X_fontRightToLeft". Looking at X.hs, prim_X_fontRightToLeft is the last primitive in the file so it is the first one that Hugs tries to resolve.
This probably means that the entire symbol table is missing.
Sounds convincing. The odd thing is that Xlib_StdDIS seems to load ok, though. And small ffi examples also work as they should under MacOS X. I'll take some time to debug this to find out what happens. -- Johan