Ошибка сборки Cabal 1.18.x с Cabal 1.16.0 на OSX 10.9.1

Я не могу собрать пакеты с моей текущей версией Cabal (1.16.0) в Mac OS X 10.9.1.

В том числе и сам Cabal, т.е. на данный момент невозможно обновиться до 1.18.x, и я вижу ошибку типа

Failed to install Cabal-1.18.1.2
cabal: Error: some packages failed to install:
Cabal-1.18.1.2 failed during the configure step. The exception was:
ExitFailure 1
cabal-install-1.18.0.2 depends on Cabal-1.18.1.2 which failed to install.

Последние строки сообщения об ошибке (которые, как мне кажется, являются важными) таковы:

In file included from /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/lib/ghc-7.6.3/include/Rts.h:234,

                 from /var/folders/w8/w_9g62j15xs9pls1fxw3kkk00000gn/T/ghc26435_0/ghc26435_0.c:1:0:

/Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/lib/ghc-7.6.3/include/rts/Threads.h:19:23:
     error: sys/types.h: No such file or directory
In file included from /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/lib/ghc-7.6.3/include/Rts.h:234,

                 from /var/folders/w8/w_9g62j15xs9pls1fxw3kkk00000gn/T/ghc26435_0/ghc26435_0.c:1:0:

/Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/lib/ghc-7.6.3/include/rts/Threads.h:49:0:
     error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘forkProcess’

Я не думаю, что это на самом деле имеет какое-то отношение к файлу "Threads.h", который кажется синтаксически допустимым, но я все равно включаю сюда соответствующие строки -

#if !defined(mingw32_HOST_OS)
pid_t  forkProcess     (HsStablePtr *entry); // This is line 49
#else
pid_t  forkProcess     (HsStablePtr *entry)
    GNU_ATTRIBUTE(__noreturn__);
#endif

Самое близкое объяснение, которое я могу найти, это эта проблема в репозитории Cabal GitHub, которая выглядит как будто он предлагает как (а) патч, так и (б) исправление, но я не смог заставить ни один из них работать - в основном потому, что я не знаю, где найти папку ../cabal/Cabal/ в моей системе.

Может ли кто-нибудь предложить какие-либо советы?


person Chris Taylor    schedule 10.01.2014    source источник


Ответы (1)


Проблема не выглядит специфичной для Cabal, поскольку синтаксическая ошибка находится внутри заголовков GHC RTS. Я подозреваю, что это вызвано тем, что gcc является псевдонимом для clang в более новых версиях OS X. Обходной путь для этой проблемы описан на странице загрузки Haskell Platform OS X. Следующая версия платформы Haskell будет работать на OS X 10.9 из коробки.

person Mikhail Glushenkov    schedule 11.01.2014