
Thanks, Gregory. I did something like that. In particular, I did find . -name "lib*.a" | xargs nm > ~/develop/haskellLibInfo/libInfo Then I used the output from the build results file to look for stuff in the libInfo file (using mac_vim). In this way I cut the number of undefined references down to 17 (from 56). The remaining references all seem (from the nm results) to be in libgmp.a, which I included in the project early in this experiment. The remaining ones are, for example: "___gmpz_init", "___gmpz_divexact", "___gmpz_tdiv_qr" ... All are of the __gmpz variety. So far all that I've looked in my libInfo have entries something like: 00000000 T ___gmpz_tdiv_qr I'm way out of my depth here. Here is a list of files I included in the project from /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/... so far: HSghc-prim-0.1.0.0.o, HSinteger-0.1.0.1.o, libffi.a, libgmp.a, libHSbase-3.0.3.1.a, libHSbase-3.0.3.1_p.a, libHSbase-4.1.0.0.a, libHSghc-prim-0.1.0.0_p.a, libHSrts.a I'm using Haskell installed from haskell-platform-2009.2.0.2-i386.dmg (for OS X). Well, any further pointers will be highly appreciated. I'll have to sign off from this today, but hopefully will have more insights (from self and others) tomorrow. Best, John Velman On Tue, Oct 06, 2009 at 03:07:01PM -0400, Gregory Collins wrote:
John Velman
writes: On Tue, Oct 06, 2009 at 09:48:44AM -0700, Thomas DuBuisson wrote:
Thanks, Thomas.
Linking in only libffi.a, libgmp.a, I get (for example, there are many more) missing:
"_newCAF" "_base_GHCziBase_plusInt_closure" "_base_GHCziList_zzipWith_info" "_base_GHCziList_lvl5_closure"
by also linking in libHSrts.a, I no longer am missing _newCAF, (and others that were missing without it) but am missing a lot of _base_GHCzi... references. I've been unable to track these down.
By the way, I can't find either a libc.a or libm.a on this machine using either locate or spotlight.
Is there a way to "guess" which library things are in, short of doing an nm with some appropriate option on each .a file in the Haskell lib?
$ cd /Library/Frameworks/GHC.framework/Versions/Current/usr/lib/
$ for i in `find . -name '*.a'`; do nm -a $i 2>/dev/null | grep --label="$i" -H 'D *_base_GHCziBase_plusInt_closure'; done ./ghc-6.10.4/base-4.1.0.0/libHSbase-4.1.0.0.a:0000008c D _base_GHCziBase_plusInt_closure ./ghc-6.10.4/base-4.1.0.0/libHSbase-4.1.0.0_p.a:0000010c D _base_GHCziBase_plusInt_closure
G. -- Gregory Collins