Le 10 sept. 2005 à 16:08, Zooko a écrit :
> /usr/bin/ld: Undefined symbols:
> ___DISCARD__
> collect2: ld returned 1 exit status
> make: *** [stringify] Error 1
This is a ghc bug. Where did you get yours?
I just managed to compile a ghc 6.4 without this error. The problem
is that ghc uses this fake function in one of its Haskell to assembly
stages as a separator between assembly blocks to prevent gcc from
merging them together; then it suppresses the calls to clean the
code. But gcc 4.0 (the one delivered for Tiger) adds references that
ghc forgets to clean. Thus you end up with a code not using the
function, but still depending on its presence.
What I did was compiling my ghc with an empty __DISCARD__ function in
libHSrts (just 'echo "void __DISCARD__() {}" > ghc/rts/discard.c ;
make; sudo make install' in the ghc root directory); my darcs
finished compiling half an hour ago, and 'make check' gave no error
(apart from an failure on pull just because the test script expects a
"permission denied" and gets a "Permission denied" instead).
What is curious is that your darcs' configure didn't complain on a
non-working ghc. Could it be that the "Hello world" test in configure
doesn't trigger the same ghc stages as in the real compile stage?
(I just realized I had sent this mail to [EMAIL PROTECTED] yesterday,
which isn't as well broadcast as darcs-devel)
--
Guillaume
_______________________________________________
darcs-devel mailing list
[email protected]
http://www.abridgegame.org/cgi-bin/mailman/listinfo/darcs-devel