스노우 레오파드를 위해 GHC에서 64 비트 바이너리를 얻는 방법은 무엇입니까?
-
20-09-2019 - |
문제
최근에 OS를 Snow Leopard로 업그레이드하여 GHC를 끊었습니다. /usr/bin/ghc (-optl -m32 -opta -m32 -optc -m32와 같은 것, 여기). 이제 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
감사!
해결책
2011 년 현재 Haskell 플랫폼을위한 64 비트 스노우 레오파드 설치 업체를 사용할 수 있습니다.
다른 팁
내 이해는 현재 GHC가 Snow Leopard에서 올바른 64 비트 바이너리를 생성 할 수 없다는 것입니다. 이것은 부분적으로 64 비트 링크 생성의 버그와 부분적으로 기본 도구 체인의 변화로 인해 발생하는 것으로 보입니다. 당신이 언급 한 해결 방법은 단순히 32 비트 대상을 생성하라고 지시하므로 문제에 대한 실제 해결책의 일부가되지 않습니다.
제휴하지 않습니다 StackOverflow