GHCi + FFI + global C variables
Nils
mail at nils.cc
Mon Dec 10 01:11:30 CET 2012
I'm currently working with a C library that needs to use/modify global C
variables, for example:
igraph_bool_t igraphhaskell_initialized = 0;
int igraphhaskell_initialize()
{
if (igraphhaskell_initialized != 0)
{
printf("C: Not initializing. igraphhaskell_initialized = %i\n",
igraphhaskell_initialized);
return 1;
}
// initialization
}
If I compile an example programm using this library everything works
fine, but if I try to run the same program in GHCi it dies with the message
C: Not initializing. igraphhaskell_initialized = -907777
The value (and apparently the adress of the global variable) is
completly off, and I have no idea what is causing this or how to solve
this issue and make the library GHCi-friendly. Is it possible to run
this code in GHCi at all? Also, since it's a foreign library I obviously
cannot just change the C code to simply not use any global variables at all.
- Nils
More information about the Glasgow-haskell-users
mailing list