SunOS 5.8 Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/specs gcc version 2.95.3 20010315 (release) In the posix related libaries there are two forign call definition. foreign import ccall unsafe "getpwuid_r" c_getpwuid_r :: CUid -> Ptr CPasswd -> CString -> CSize -> Ptr (Ptr CPasswd) -> IO CInt foreign import ccall unsafe "getpwnam_r" c_getpwnam_r :: CString -> Ptr CPasswd -> CString -> CSize -> Ptr (Ptr CPasswd) -> IO CInt But the gcc says there are too many argument. There are two ways to go around. I change the foriegn call definition "getpwuid_r" ==> "__posix_getpwuid_r" I change the foriegn call definition "getpwnam_r" ==> "__posix_getpwnam_r" Another way is to tweak preprocessor macro definition. I believe this is possible but I don't how to tweak it. My <pwd.h> file is like this. GHC implementors and porters should be awared of this. p.s. Compiling GHC project took almost whole day long :-( Bootstraping from 4.08.2 and stage1, stange 2 ... :-( -- Ahn Ki-yung