Hi Alastair, I've gotten a bit further, I think.
After replacing "-shared" with "-bundle", and setting "LD" to "cc" (which are the RIGHT values, and actually mentioned in the distributed ffi documentation -- blush!), the process fails at load time: 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. I don't have GreenCard installed, so I can't regenerate X.c the proper way. Is there a better way of making a MacOS X compatible distribution than requiring the user to run GreenCard? -- Johan On Monday, June 10, 2002, at 06:58 , Alastair Reid wrote: > >> I made a quick attempt at installing the graphics library with MacOS X >> in preparation for the Dec-2001 Hugs release, but I wasn't able to get >> past some DLL related problems. This is were I stopped: >> >> ERROR "lib/x11/Xlib_StdDIS.hs" - Error while importing DLL >> "/Users/nordland/src/graphics-2.0.4/lib/x11/Xlib_StdDIS.so": >> Not an recognisable object file >> >> BTW, getting this far requires replacing "-shared" with "-dynamic", >> and "ld" with "libtools" in the Makefile, as well as adding "-lSystem" >> to the definition of LDFLAGS. > > One of two things is (I think) going on: > > 1) The generated .so file is invalid. > > My memory of libtools is that it acts in quite a different way from > ld -r and friends. It could be that the result isn't quite > compatible with dlopen and friends. Or it could be that the way you > invoke libtools should be very different from ld. > > 2) The .so filename is invalid. > > This is entirely possible. IIRC, the object files generated by > GreenCard are technically object files not shared object files > so their name should end in .o not .so. (The reason for this > confusion is that the fact that you use the -shared flag > when building > these files fooled me into thinking I was building a shared object > file. Someone later told me I was wrong.) > > Or, maybe Mac OS X uses a different file suffix for object files > (e.g., .dll) or doesn't use a file suffix at all? > If so, it's possible that libtool might do the right thing if > invoked right but that the current Makefile overrides this correct > behaviour? > > -- > Alastair Reid [EMAIL PROTECTED] > http://www.cs.utah.edu/~reid/ > _______________________________________________ Hugs-Bugs mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/hugs-bugs
