[Sugar-devel] jhbuild execution error

Bernie Innocenti bernie at codewiz.org
Thu May 13 14:26:17 EDT 2010


El Thu, 13-05-2010 a las 10:28 -0300, Daniel Castelo escribió:
> When I run the last version of jhbuild  ./sugar-jhbuild run
> sugar-emulator the emulator doesn't start. 
> This is the Shell.log output:
> 
> 1273756965.523033 DEBUG root: STARTUP: Loading the mesh view
> 1273756965.558274 DEBUG root: Not an activity icon <_MyIcon object at
> 0x9d091bc (SugarFavoritesMyIcon at 0x9dad488)>
> 1273756965.558593 DEBUG root: Not an activity icon
> <CurrentActivityIcon object at 0x9d0948c (CanvasIcon at 0x9dad500)>
> 1273756965.612840 DEBUG sugar.presence.presenceservice: Reused proxy
> <Buddy object at 0x9cffe14 (sugar+presence+buddy+Buddy at 0x98c2d00)>
> python: symbol lookup
> error: /home/latu/sugar-jhbuild5May/install/lib/gtk-2.0/2.10.0/engines/libsugar.so: undefined symbol: gtk_widget_is_sensitive

Are you perhaps using an old Linux distribution?

sugar-artwork will silently miscompile if GTK does not contain some of
the required symbols.

I've posted a patch to make it fail noisily (see below). Benjamin, can
you ACK it, please?

Besides, we should probably update configure.ac to require the minimum
version of GTK which contains gtk_widget_is_sensitive().



From: Bernie Innocenti <bernie at codewiz.org>
Date: Tue, 11 May 2010 18:44:12 -0400
Subject: [PATCH] sugar-artwork: stricter compiler flags
Organization: Sugar Labs Foundation
X-Subversion: sucks

WARN_CFLAGS was already used in gtk/engine/Makefile.am, but not
initialized by configure.

For backwards compatibility, GCC's by default is very permissive.
In my case, it was silently miscompiling code which was calling
a non-existent GTK function. For this particular case, the
proposed WARN_CFLAGS should make the build fail early in this case.

I'm not proposing -Werror because it frequetly results in broken
builds for trivial reasons when distros update the toolchain.

Signed-off-by: Bernie Innocenti <bernie at codewiz.org>
Reviewed-by: James Cameron <quozl at laptop.org>
Tested-by: James Cameron <quozl at laptop.org>
---
 configure.ac |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/configure.ac b/configure.ac
index f32dd32..c9f5c26 100644
--- a/configure.ac
+++ b/configure.ac
@@ -11,6 +11,10 @@ AM_DISABLE_STATIC
 
 PKG_PROG_PKG_CONFIG([0.19])
 
+dnl These catch plenty of subtle bugs and miscompilation problems
+WARN_CFLAGS="-Wall -W -Werror=implicit-function-declaration"
+AC_SUBST(WARN_CFLAGS)
+
 AC_PROG_CC
 AC_HEADER_STDC
 AC_PROG_LIBTOOL
@@ -21,7 +25,7 @@ if test -z "$ICON_SLICER"; then
 fi
 
 PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.0.0,,
-	          AC_MSG_ERROR([GTK+-2.0 is required to compile
redhat-artwork]))
+	          AC_MSG_ERROR([GTK+-2.0 is required to compile
sugar-artwork]))
 
 GDK_PIXBUF2_CFLAGS=`$PKG_CONFIG --cflags gdk-pixbuf-2.0`
 GDK_PIXBUF2_LIBS=`$PKG_CONFIG --libs gdk-pixbuf-2.0`
-- 
1.7.0.1

-- 
   // Bernie Innocenti - http://codewiz.org/
 \X/  Sugar Labs       - http://sugarlabs.org/



More information about the Sugar-devel mailing list