HI ALL,
We have successfully cross compiled GTK and DIRECTFB with all its dependencies for MIPS board.
On running the basic test example of GTK, it is getting struck in the thread loop infinitely.
We had put the "debug printf" statement in the gtkmain.c and debugged the test example.
It is getting struck in the g_main_loop_run (loop); given below is the code(code snippet from gtkmain.c)
void
gtk_main (void)
{
GList *tmp_list;
GList *functions;
GtkInitFunction *init;
GMainLoop *loop;
printf("\n%s :: %d\n",__FILE__,__LINE__);
gtk_main_loop_level++;
loop = g_main_loop_new (NULL, TRUE);
main_loops = g_slist_prepend (main_loops, loop);
printf("\n%s :: %d\n",__FILE__,__LINE__);
tmp_list = functions = init_functions;
init_functions = NULL;
while (tmp_list)
{
init = tmp_list->data;
tmp_list = tmp_list->next;
(* init->function) (init->data);
g_free (init);
}
g_list_free (functions);
printf("\n%s :: %d\n",__FILE__,__LINE__);
if (g_main_loop_is_running (main_loops->data))
{
printf("\n%s :: %d\n",__FILE__,__LINE__);
GDK_THREADS_LEAVE ();
g_main_loop_run (loop);
GDK_THREADS_ENTER ();
printf("\n%s :: %d\n",__FILE__,__LINE__);
gdk_flush ();
}
printf("\n%s :: %d\n",__FILE__,__LINE__);
if (quit_functions)
{
GList *reinvoke_list = NULL;
GtkQuitFunction *quitf;
gtk_main (void)
{
GList *tmp_list;
GList *functions;
GtkInitFunction *init;
GMainLoop *loop;
printf("\n%s :: %d\n",__FILE__,__LINE__);
gtk_main_loop_level++;
loop = g_main_loop_new (NULL, TRUE);
main_loops = g_slist_prepend (main_loops, loop);
printf("\n%s :: %d\n",__FILE__,__LINE__);
tmp_list = functions = init_functions;
init_functions = NULL;
while (tmp_list)
{
init = tmp_list->data;
tmp_list = tmp_list->next;
(* init->function) (init->data);
g_free (init);
}
g_list_free (functions);
printf("\n%s :: %d\n",__FILE__,__LINE__);
if (g_main_loop_is_running (main_loops->data))
{
printf("\n%s :: %d\n",__FILE__,__LINE__);
GDK_THREADS_LEAVE ();
g_main_loop_run (loop);
GDK_THREADS_ENTER ();
printf("\n%s :: %d\n",__FILE__,__LINE__);
gdk_flush ();
}
printf("\n%s :: %d\n",__FILE__,__LINE__);
if (quit_functions)
{
GList *reinvoke_list = NULL;
GtkQuitFunction *quitf;
Given below is the src code for test example of GTK:
#include <gtk/gtk.h> int main( int argc, char *argv[] ) { GtkWidget *window; GtkWidget *pMainWidget; GdkPixbuf *image; gboolean ret = 0; gtk_init (&argc, &argv); printf("\n\n\ngtk_init (&argc, &argv);\n\n\n"); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); //gtk_container_set_border_width (GTK_CONTAINER (window), 10); image = gdk_pixbuf_new_from_file ("test.gif", NULL); if (!image) return FALSE; pMainWidget = gtk_image_new_from_pixbuf(image); printf("\n\n\npMainWidget = gtk_image_new_from_pixbuf(image);\n\n\n"); gtk_widget_show (pMainWidget); gtk_container_add (GTK_CONTAINER (window), pMainWidget); printf("\n\n\ngtk_container_add (GTK_CONTAINER (window), pMainWidget);\n\n\n") ; gtk_widget_show (window); printf("\n\n\nABHISHEK START OF gtk_main\n\n\n"); gtk_main (); printf("\n\n\nABHISHEK END OF gtk_main\n\n\n"); return 0; }
Can anybody Plz throw some light on it?
Thanks in advcance
--
Thanks & Regards,
kaka
--
Thanks & Regards,
kaka