comp.lang.ada
 help / color / mirror / Atom feed
* Gtk 3.8.4 (and after) do not fully support WinXp
@ 2015-09-18 15:44 ahlan
  2015-09-18 16:02 ` Dmitry A. Kazakov
  0 siblings, 1 reply; 2+ messages in thread
From: ahlan @ 2015-09-18 15:44 UTC (permalink / raw)


An Ada program that uses GTK for its GUI fails if it references a DLL written in Ada.
A Visual C++ Runtime Library pop-up is raised with the cryptic verse "This application has requested to terminate it in an unusual way"
This piece of nonsense actually means that the C runtime has raised an exception that is never caught which results in the abort function being called.
The problem here is that it doesn't give us much clue as to what the exception is.
However I believe that this error message is produced when a missing function is called from a system DLL.
Ie it can't find the entry point within the DLL.

The prime candidate for this is LibGlib-2.0-0.Dll which references GetTickCount64 and InitializeSRWLock from Kernel32.dll.
Unfortunately these routines are not present in versions prior to V6 which only came with Windows Vista.

Therefore GTK 3.8.4 provided as part of the AdaCore GtkAda release for GPL 2015 does not fully support Windows XP.

Which is very odd as support of XP was only officially dropped with GTK 3.17.1

However Gnome seem to have broken it already in v3.8.4

For full Windows XP support it is therefore better to revert to v3.8.2 that came bundled with the GtkAda release for GPL 2014.

It is hard to find out what exactly changed between 3.8.2 and 3.8.4 but the numbering seems to indicate that there were no major changes or enhancements. Except dropping XP that is!

Best wishes,
Ahlan


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Gtk 3.8.4 (and after) do not fully support WinXp
  2015-09-18 15:44 Gtk 3.8.4 (and after) do not fully support WinXp ahlan
@ 2015-09-18 16:02 ` Dmitry A. Kazakov
  0 siblings, 0 replies; 2+ messages in thread
From: Dmitry A. Kazakov @ 2015-09-18 16:02 UTC (permalink / raw)


On Fri, 18 Sep 2015 08:44:09 -0700 (PDT), ahlan@marriott.org wrote:

[...]
> It is hard to find out what exactly changed between 3.8.2 and 3.8.4 but
> the numbering seems to indicate that there were no major changes or
> enhancements.

It indicates little. GTK maintainers do not care about backward
compatibility. There is a lot of stuff that ceases to work with each new
GTK version. I tracked most of that to make GtkAda 3.8.3 working with GTK
3.10.x. I don't have 3.8.4, so I cannot tell, but my GtkAda applications
work under both Windows and fully updated Linux.

Major offenders are dialog boxes and stock items. They should generate
warnings but actually they tend to crash the application. Other things are
Get_String and Set_String of the tree and, possibly, of the list model.
These corrupt stack and memory pool after several calls. The pixbuff cell
renderer works no more because they are going to kill stock items. And so
on.

Some workarounds I did are here:

http://www.dmitry-kazakov.de/ada/gtkada_contributions.htm

In all cases fill your application with tracing output to localize the
problem.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-09-18 16:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-18 15:44 Gtk 3.8.4 (and after) do not fully support WinXp ahlan
2015-09-18 16:02 ` Dmitry A. Kazakov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox