[Geany-Devel] Blank completion popups on Windows

Colomban Wendling lists.ban at xxxxx
Sun Apr 19 15:31:41 UTC 2015


Le 19/04/2015 15:57, Enrico Tröger a écrit :
> On 17/04/15 19:44, Colomban Wendling wrote:
>> Le 15/04/2015 15:27, Colomban Wendling a écrit :
>> […]
>>
>> So we'll have to fix the Windows build issue in some way…
> 
> I gave it another look, however I sort of give up :(.
> 
> What I know is, with gcc 3.4 the popups work cleanly and as expected,
> even when compiled natively on Windows. This is why the nightly builds
> work, they are built with an old gcc 3.4.
> 
> Then I tried gcc 4.8 and gcc 4.6 on Windows, both are failing.
> […]
> 
> This might support the above supposition about binary incompatibilities
> with the GTK libs. But maybe it is something completely different.

Thanks a lot for that in-depth investigation and testing!

But… dammit.  If this is really an ABI issue depending on the GCC
version, we don't have so many solutions:

1) build Geany using the same GCC as GTK was build;

2) use a GTK that is built with the same GCC as GTK (would mean
rebuilding GTK I guess);

3) avoid hitting the ABI issue by not relying on the size of the
structure (would mean not subclassing, but then I don't really have a
solution);

4) avoid hitting the ABI issue by adding dummy padding (as we don't
actually access any data ourselves it doesn't matter).

None of those solutions are really great… 1 is not really practical, and
2 is just a dream.  I don't have a good way of doing 3.  4 is a bit ugly
but quite easy to implement.

> While the
>> typedef struct { GtkScrolledWindow parent; int dummy; } SmallScroller;
>> typedef struct { GtkScrolledWindowClass parent; int dummy; } SmallS...
>
> hack works pretty fine, it is still a crude hack and feels weird to send
> this to Scintilla upstream.

At worse we can always add it to our Scintilla patch…

I'll open an issue on Scintilla and see what Neil thinks, whether he'd
accept a hack like that dummy field -- or maybe if he has a better
understanding of ABI issues on Windows (but I'm afraid here there really
is an ABI incompatibility and we're screwed on that front).

> The other way, to stick with gcc 3.4.x for Windows, seems also quite
> ridiculous :(.

Indeed.  And the mingw package for GCC3 even conflicts with the 4.x one :(

Regards,
Colomban

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.geany.org/pipermail/devel/attachments/20150419/25f62780/attachment.sig>


More information about the Devel mailing list