2013-05-20 4 views
5

Я пытаюсь дать HsOpenSSL вихрь на Mac OS X, и это взрывается мне в лицо.HsOpenSSL segfaults на OS X

Последняя версия Hackage (HsOpenSSL-0.10.3.3) строит и импорта, но делать что-нибудь с этим убивает мою GHCI (оба 7.6.3 и 7.4.2):

ghci> import OpenSSL 
ghci> withOpenSSL $ do undefined 
$ # Now I'm looking at a shell prompt 

я собрал исполняемый и построил его с GHC, и вуаля, в Segfault:

$ ./test 
Segmentation fault: 11 

Я использую версию OpenSSL, которая поставляется с OS X 10.8:

$ openssl version 
OpenSSL 0.9.8r 8 Feb 2011 

(Я также установил последнюю версию OpenSSL, v1.0.1e и создал HsOpenSSL против нее. Опять же, он строит и импортирует штраф, но segfaults при любом вызове OpenSSL.)

Это, скорее всего, проблема с OpenSSL или с некоторой идиосинкразией использования OS X, а не Linux, но моя установка отлично работает с OpenSSL на Python библиотека. ...

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

+1

И какие версии HsOpenSSL и ghc вы используете? –

+1

Это отлично работает для меня. OpenSSL 1.0.1e, HsOpenSSL-0.10.3.3, ghc 7.6.3 x86-64 для Linux. –

+0

@Thomas M. DuBuisson, спасибо за проверку. Это то, чего я ожидал; проблема, скорее всего, связана с OS X. – pash

ответ

2

Я боюсь, что у меня есть еще один отрицательный отчет - он работает здесь для меня, на OS X. Гипотетически, я могу использовать версию, которую мне нельзя было бы назвать, однако, так что это может быть разница. ..

module Main (main) where 

import OpenSSL 


main :: IO() 
main = withOpenSSL $ do 
    putStrLn "Hm." 

Тогда я могу запустить его с:

$ ghc Crash.hs 
... [it compiles] ... 
$ ./Crash 
Hm. 

И это удается. Я использую GHC 7.6.3, HsOpenSSL 0.10.3.3 и OpenSSL 0.9.8y, последний от 5 февраля 2013 года.