7

最近、OS を Snow Leopard にアップグレードしたところ、GHC が壊れてしまいました。/usr/bin/ghc (-optl -m32 -opta -m32 -optc -m32 のようなもの、ここから収集) に 32 ビット コンパイル用のフラグを追加することで、1 台のマシンで修正できました。現在、64 ビットをサポートしている他のマシン用の 64 ビット バイナリを生成できません。32 ビット フラグは壊れており、それらを削除すると壊れます。任意のヒント?

コンパイルしようとすると、次のようなものが得られます。

/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

ありがとう!

4

2 に答える 2

2

2011年現在、Haskellプラットフォーム用の64ビットSnowLeopardインストーラーが利用可能です。

Haskellプラットフォーム

于 2011-04-18T18:01:23.453 に答える
1

私の理解では、現時点では ghc は Snow Leopard で正しい 64 ビット バイナリを生成できません。これは、一部は 64 ビット リンク生成のバグによるものであり、一部はネイティブ ツールチェーンの変更によるものと思われます。あなたが言及した回避策は、32ビットターゲットを生成するように指示するだけなので、問題の実際の解決策の一部にはなりません.

于 2009-11-14T20:55:58.940 に答える