[Haskell-cafe] OSX, ghci, dylib, what is the correct way?
Jason Dagit
dagitj at gmail.com
Tue Jun 14 18:57:14 CEST 2011
On Tue, Jun 14, 2011 at 4:26 AM, Simon Marlow <marlowsd at gmail.com> wrote:
> On 12/06/2011 20:17, Jason Dagit wrote:
>>
>> On Sun, Jun 12, 2011 at 11:45 AM, Brandon Allbery<allbery.b at gmail.com>
>> wrote:
>>>
>>> On Sun, Jun 12, 2011 at 14:31, Jason Dagit<dagitj at gmail.com> wrote:
>>>>
>>>> If I build the C library as a .a, then ghci comlains that it cannot
>>>> open the .dylib. My first question is: Why does ghci need a .dylib
>>>> and does it really use it?
>>>
>>> Static libraries are... static. ghci would have to rebuild itself
>>> against the static archive to use it; that's how static archives work.
>>> Dynamic libraries are dynamic because they can be loaded at runtime
>>> instead of compile time.
>>
>> Interesting. When I use dtruss to see what files ghci opens, it
>> definitely opens .a files. That gave me the impression it knows how
>> to open a .a and use it at run-time.
>
> GHC as of version 7.0 can load .a files into GHCi.
>
>>>> When I build a dylib I get a [segfault when loading the code into
>>>> ghci][2].
>
> I don't know what the cause of that is - when you load a .dylib into GHCi,
> the normal system dynamic linker is used.
How would you track it down? I'd really like to fix this and I don't
mind debugging it, but I've tried all the things I could think of
(valgrind, dtruss, gdb and printf). Valgrind didn't help because ghci
couldn't read from stdin. gdb isn't so great because I was missing
debug symbols for everything.
I don't really believe it is an error in the RTS or the library code
so it seems like gdb won't ever help here.
Ideas?
Thanks,
Jason
More information about the Haskell-Cafe
mailing list