On Dec 14, 2013, at 7:27 PM, Max Leske <[email protected]> wrote:

> Did you check that the library has benn compiled with a C compiler? C++ name 
> mangling doesn’t work with NB.

but name is been resolved :(

> Another thing you can do is to attach gdb to the image and break on the 
> gtk_init call. That way you can see at what stage approximately the error 
> occurs.

yeah... I expect to avoid that, unless I have no other choice :)

cheers,
Esteban

> 
> 
> 
> On 14.12.2013, at 17:11, Esteban Lorenzano <[email protected]> wrote:
> 
>> Hi,
>> 
>> I'm trying to create some stuff with Gtk3, and because of it I have a call 
>> to gtk_init using NB-FFI. The call is like this:
>> 
>> gtkInitArgC: argc argV: argv
>>      <primitive: #primitiveNativeCall module: #NativeBoostPlugin error: 
>> errorCode>
>>      ^ self nbCall: #( void gtk_init ( int *argc, char ***argv ) )
>>      
>> 
>> and well, I have a GtkLibrary copied from CairoLibraryLoader who loads the 
>> library. 
>> 
>> system is 64bits, but Gtk3 libraries are "universal" compiled (it has both 
>> formats, i386 and x86_64 inside).
>> 
>> GtkLibrary loadGtkLibrary actually loads the library (it answers a pointer 
>> to it) and in fact, following the stack track NB is resolving correctly 
>> gtk_init symbol... 
>> 
>> Now, the problem is that a call to 
>> 
>> self gtkInitArgC: 0 argV: 0. 
>> 
>> fails... with this stack trace: 
>> 
>> NBFFICallout class>>signalError:
>> NBFFICallout class(NBNativeCodeGen class)>>handleFailureIn:nativeCode:
>> NBFFICalloutAPI>>function:module:
>> GtkApplication(Object)>>nbCall:
>> GtkApplication>>gtkInitArgC:argV:
>> NBFFICallout class(NBNativeCodeGen class)>>retrySend:
>> GtkApplication>>gtkInit
>> GtkApplication>>initialize
>> GtkApplication class(Behavior)>>new
>> MarsApplication>>platformApplication
>> MarsApplication>>stop
>> MarsApplication>>start
>> UndefinedObject>>DoIt
>> OpalCompiler>>evaluate
>> SmalltalkEditor>>evaluateSelectionAndDo:
>> SmalltalkEditor>>evaluateSelection
>> PluggableTextMorph>>doIt in Block: [ textMorph editor evaluateSelection ]
>> PluggableTextMorph>>handleEdit: in Block: [ result := editBlock value ]
>> TextMorphForEditView(TextMorph)>>handleEdit:
>> PluggableTextMorph>>handleEdit:
>> PluggableTextMorph>>doIt
>> SmalltalkEditor class>>buildSmalltalkEditorKeymappingsOn: in Block: [ :morph 
>> | morph doIt ]
>> BlockClosure>>cull:
>> BlockClosure>>cull:cull:
>> BlockClosure>>cull:cull:cull:
>> KMCategoryBinding>>completeMatch:buffer:
>> KMKeymap>>notifyCompleteMatchTo:buffer: in Block: [ :l | l completeMatch: 
>> self buffer: aBuffer ]
>> Array(SequenceableCollection)>>do:
>> KMKeymap>>notifyCompleteMatchTo:buffer:
>> KMKeymap>>onMatchWith:notify:andDo:
>> 
>> and #signalError: argument (errorCode) is nil.
>> 
>> any idea?
>> 
>> thanks, 
>> Esteban
> 
> 


Reply via email to