Here's my second report on the Hugs FFI build for Solaris.
I'm not sure what's going on but I'm guessing that the problem is that my autoconf test for how to build loadable libraries wasn't thorough enough.
Ok, another try on the same machine setup but with the new package incorporating your autoconf fixes: hugs98-ffi-09072002b. Now I get the same results as Sven does under Solaris 2.7.
uname -a
SunOS doozer 5.6 Generic_105181-15 sun4u sparc SUNW,Ultra-5_10
gcc -v
Reading specs from /york/pkg/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.5/2.95.2/specs gcc version 2.95.2 19991024 (release)
./configure --prefix=/tmp/test
Seems ok - here are the highlights regarding dynamic linking: checking for function_dlopen... no checking for library_dl... yes checking for function_shl_load... no checking for library_dld... no ... checking if '/LD' builds loadable libraries... checking if '-shared' builds loadable libraries... checking if '-bundle' builds loadable libraries... checking if '-bundle -lc' builds loadable libraries... checking if '-shared -nostdlib' builds loadable libraries... checking if '-r' builds loadable libraries... -r checking if '-rdynamic' builds loadable libraries... (cached) -r checking if '-G' builds loadable libraries... (cached) -r checking if '-Aa +z' builds loadable libraries... (cached) -r
grep DLL ../config.h grep UNDERSCORE ../config.h
#define MKDLL_CMD "gcc -r" /* #undef LEADING_UNDERSCORE */
cd ..; make install_ffi
OK
cd ../tests; sh testScript ffi
---------------------------------------------------------------- -- Testing foreign function interface. ---------------------------------------------------------------- -- !!! Testing marshalling of all the basic types -- !!! Testing all the different forms of foreign import -- !!! Testing static, dynamic and wrapped import of trig function -- !!! Testing static, dynamic and wrapped import of trig function /tmp/test/bin/hugs +q +w -pHugs: ffi/Sin.hs < ffi/Sin.input expected stdout not matched by reality *** ffi/Sin.output Tue Jun 18 21:02:08 2002 --- /tmp/runtest2119.3 Tue Jul 9 14:48:11 2002 *************** *** 7,13 **** Testing sin==IO wrapped_sin (should return lots of Trues) - [True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True] - - Testing sin==Id wrapped_sin (should return lots of Trues) - [True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True] Hugs:[Leaving Hugs] --- 7,10 ---- Testing sin==IO wrapped_sin (should return lots of Trues) + ERROR - Foreign import wrapper is not supported on this architecture Hugs:[Leaving Hugs] -- !!! Testing marshalling of strings -- !!! Testing marshalling of strings -- !!! Testing system calls -- !!! Testing system calls ----------------------------------------------------------------