2009-11-14 4 views
7

최근 내 OS가 Snow Leopard로 업그레이드되어 GHC가 손상되었습니다./usr/bin/ghc (-optl -m32 -opta -m32 -optc -m32와 같은 것, here에서 수집 한 것과 같은)에 32 비트 컴파일을위한 플래그를 추가하여 한 시스템에서이 문제를 해결할 수있었습니다. 이제 64 비트를 지원하는 다른 머신 용 64 비트 바이너리를 생성 할 수 없습니다. 32 비트 플래그가 깨지면 플래그가 제거됩니다. 어떤 팁?Snow Leopard 용 GHC에서 64 비트 바이너리를 얻는 방법은 무엇입니까?

/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 

감사 :

내가 이런 식으로 물건을 얻을 컴파일하려고

!

답변

1

ghc가 Snow Leopard에서 올바른 64 비트 바이너리를 생성 할 수 없다는 것을 이해했습니다. 이것은 부분적으로는 64 비트 링크 생성의 버그와 부분적으로 네이티브 툴 체인의 변경 때문에 나타납니다. 해결 방법은 단순히 32 비트 대상을 생성하도록 지시하므로 문제에 대한 실제 솔루션에 포함되지 않습니다. 하스켈 플랫폼

+0

절름발이의로 사용할 수 있습니다! 내 32 비트 컴퓨터에서 개발해야 할 것 같아요. 응답 해 주셔서 감사합니다. 내일까지 더 약속이 안 들리는 경우 답장으로 표시하겠습니다.^_^ –

+0

@ paul.meier : 64 비트 시스템에서 계속 작업 할 수 있습니다. GHC에서 32 비트 바이너리를 생성하면됩니다. 내 스노우 레오파드와 코어 2 듀오 맥북 프로에 GHC가 있고 적절한 플래그를 설정하고 잘 컴파일합니다. – Chuck