0 votes
by Bart Nelson (150 points)

Environment: Linux raspberrypi 4.19.118-v7l+, libgtk-3-0:armhf 3.24.5-1+rpt2 (standard Raspbian)
Version: VFX Forth 5.11 [build 0270] 2020-02-18 for Linux ARM
Description: Unable to declare external GTK+ functions with > 4 double arguments
Severity: High
Replicate: Include test program (below).  Compilation fails with error.
Err# -1005 Invalid register for parameter
Compilation works fully on Linux x86/64
References:
https://developer.gnome.org/gtk3/stable/GtkAdjustment.html

\ Test.fth
isRTLD_Now_Global
Library: libgtk-3.so.0
Library: libgobject-2.0.so.0
Library: libglib-2.0.so.0
Library: libgdk-3.so.0
Library: libgdk_pixbuf-2.0.so.0
Library: libpango-1.0.so.0
also  types definitions
: uint  unsigned int  ;
: GtkWidget void ;
: GtkWindow void ;
: gchar char ;
: guint unsigned int ;
: GtkAdjustment void ;
previous definitions
\ **** If this line is included, compilation fails
extern: GtkAdjustment * "C" gtk_adjustment_new( double value, double lower, double upper, double step_increment, double page_increment, double page_size );
\ But if this line is included instead (wrong params), it compiles
\ extern: GtkAdjustment * "C" gtk_adjustment_new( longlong value, longlong lower, longlong upper, longlong step_increment, longlong page_increment, longlong page_size );
\ This one works (4 doubles instead of 6)
\ extern: void "C" gtk_render_background( int * context, int * cr, double x, double y, double width, double height );

1 Answer

0 votes
by Stephen Pelc (700 points)
Sorry for the delay - the automagic code that is supposed to notify me doesn't notify me.

I'll fire up a Pi in my ample spare time, but one of your other priorities is engaging my time.
...