Re: atk 'missing symbols' problem since gnome-3-14



On 26 Sep 2014, at 23:33, Arnavion wrote:


If I'm understanding the situation correctly, you're building a binary
that includes an atk(mm) header that has some functions marked with
dllexport (from the POV of the compiler when it's compiling your
code).

[...]


At the end of last year I discovered that some very obscure problems can arise if we try to import symbols 
from a DLL without using '__declspec(dllimport)'.

That is correct, and is mentioned in MSDN [1] and also explained in
this answer on StackOverflow [2]. It's sub-optimal to not use
dllimport for functions and outright incorrect to not use it for data.


Yes, that just about summarises the situation.  I first discovered this happening in gtkmm (class 
Gtk::SpinButton) - but during my investigations I realised that the same anomaly might (potentially) be 
present in the other "mm" libraries (particularly so in giomm and atkmm).  There isn't necessarily a problem 
right at this moment.  It's more the case that there's "a problem waiting to happen".

FWIW I also noticed that libatk defines ATK_VAR for dealing with data, as opposed to functions.  That should 
help to avoid the data issue but like you said Arnavion, function handling is currently sub-optimal (although 
it doesn't seem like a massive job to fix it).  I'm just flagging the situation up really.  It could probably 
benefit from being tidied up at some stage but it's not something which needs 'imminent' attention...

John


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]