Вопрос

Недавно я обновил свою операционную систему до Snow Leopard, что нарушило мой GHC.Я смог исправить это на одной машине, добавив флаги для 32-разрядных компиляций в /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

Спасибо!

Это было полезно?

Решение

64-разрядные установщики Snow Leopard для платформы Haskell доступны с 2011 года.

Haskell Platform

Другие советы

Насколько я понимаю, на данный момент ghc не может генерировать правильные 64-битные двоичные файлы под управлением Snow Leopard.По-видимому, это частично из-за ошибки в его 64-разрядной генерации ссылок и частично из-за изменения в собственной цепочке инструментов.Упомянутое вами обходное решение просто указывает ему сгенерировать 32-разрядную цель и, таким образом, не будет частью какого-либо реального решения вашей проблемы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top