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



On 26/09/2014 11:51, John Emmas wrote:

Also, since my last post I've discovered why atkmm was also failing to build [...] Now that I'm managing to generate those files correctly again, everything's now building fine.


Oh, one more thing, before I forget it....

I think I'm right in saying that, for Windows, ATK_AVAILABLE_IN_ALL can only be defined as either 'extern' or '__declspec (dllexport) extern'. This might cause problems with the fact that libatkmm is routinely #including 'atk-enum-types.h'. When building atkmm, the symbols declared inside atk-enum-types.h will be wrongly defined as exported symbols when they should be defined as imported. When importing for use by some other library, they should really be defined as '__declspec (dllimport)'.

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)'. Here's my description from the time:-

https://mail.gnome.org/archives/gtkmm-list/2013-December/msg00002.html

To be fair, that specific problem was caused by not having any import specifier at all (and it only affected imported data - not imported functions). Technically though, I don't know if a similar issue will arise from declaring dllexport when we meant to use dllimport. It might produce the same problem - or a different problem - or no problem at all. I genuinely don't know - but it's always better to be safe, rather than sorry!!

I know that Fan Chun-wei is hoping to look into this soon for libatkmm but it probably needs tidying up in libatk too. Hopefully, someone can find some time to give it some thought.... Best regards,

John


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