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

Reply via email to