The workaround that worked for me (also ghc 6.4, also OSX 10.4.2) was to do:

sudo gcc_select 3.3

to revert to the Panther gcc.

To undo this later, do sudo gcc_select 4.0

tom

On 12 Sep 2005, at 13:02, Guillaume wrote:

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



_______________________________________________
darcs-devel mailing list
[email protected]
http://www.abridgegame.org/cgi-bin/mailman/listinfo/darcs-devel

Reply via email to