2009-11-14 7 views
7

Ich habe kürzlich mein Betriebssystem auf Snow Leopard aktualisiert, was meinen GHC kaputt gemacht hat. Ich konnte es auf einem Rechner reparieren, indem ich Flags für 32-Bit-Kompilierungen in/usr/bin/ghc hinzufügte (etwas wie -optl -m32 -opta -m32 -optc -m32, gesammelt von here). Jetzt kann ich keine 64-Bit-Binärdateien für meine andere Maschine erzeugen, die 64 Bit unterstützt. Die 32-Bit-Flags brechen, und das Entfernen von ihnen bricht auch. Irgendwelche Tipps?Wie bekomme ich 64-Bit-Binärdateien von GHC für Snow Leopard?

Wenn ich versuche ich Sachen wie diese zu kompilieren:

/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:212:0: 
32-bit absolute addressing is not supported for x86-64 

/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:212:0: 
cannot do signed 4 byte relocation 

/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:215:0: 
32-bit absolute addressing is not supported for x86-64 

/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:215:0: 
cannot do signed 4 byte relocation 

Dank!

Antwort

1

Mein Verständnis ist, dass ghc im Moment nicht korrekte 64-Bit-Binärdateien unter Snow Leopard erzeugen kann. Dies liegt zum Teil an einem Fehler in der 64-Bit-Link-Generierung und zum Teil an einer Änderung in der nativen Toolchain. Die von Ihnen erwähnte Problemumgehung sagt einfach, dass sie ein 32-Bit-Ziel generieren soll und somit nicht Teil einer tatsächlichen Lösung für Ihr Problem sein wird.

+0

Lame! Ich denke, ich muss mich auf meiner 32-Bit-Maschine weiterentwickeln. Vielen Dank für die Antwort, ich werde es als beantwortet markieren, wenn ich bis morgen nichts mehr vielversprechendes hören^_^ –

+0

@ paul.meier: Sie können immer noch auf einem 64-Bit-Rechner arbeiten. Sie müssen GHC nur 32-Bit-Binärdateien generieren lassen. Ich habe GHC auf meinem Core 2 Duo MacBook Pro mit Snow Leopard und es kompiliert gut mit den passenden Flags. – Chuck