2009-11-14 15 views
7

Ho recentemente aggiornato il mio sistema operativo a Snow Leopard, che ha rotto il mio GHC. Sono stato in grado di risolverlo su una macchina aggiungendo i flag per le compilazioni a 32 bit in/usr/bin/ghc (qualcosa come -optl -m32 -opta -m32 -optc -m32, raccolte da here). Ora non riesco a farlo produrre binari a 64 bit per la mia altra macchina, che supporta 64-bit. I flag a 32 bit si interrompono e rimuovono anche le interruzioni. Qualche consiglio?Come ottenere file binari a 64 bit da GHC per Snow Leopard?

Quando provo a compilare ottengo cose come questa:

/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 

Grazie!

risposta

1

La mia comprensione è che al momento ghc non può generare binari a 64 bit corretti sotto Snow Leopard. Questo sembra essere in parte a causa di un bug nella sua generazione di link a 64 bit e in parte a causa di un cambiamento nella toolchain nativa. Il workaround che hai citato dice semplicemente di generare un target a 32 bit e quindi non farà parte di alcuna effettiva soluzione al tuo problema.

+0

Lame! Credo che dovrò svilupparmi sulla mia macchina a 32 bit. Grazie per la risposta, la contrassegnerò come risposta se non sentirò nulla di più promettente per domani^_^ –

+0

@ paul.meier: È ancora possibile lavorare su una macchina a 64 bit. Hai solo bisogno di avere GHC generare binari a 32 bit. Ho GHC sul mio Core 2 Duo MacBook Pro con Snow Leopard e si compila bene con i set di bandiere appropriati. – Chuck