You are not logged in.
Hi all, hope this is the right place for this
I was building Evolution from ABS to add support for LDAP, and I got this error:
error: label at end of compound statement
I ran 'abs' before this, so I have the latest as far as that goes. I -Syu every week on Monday.
I've done some google searching and in some situations it turned up was something pointing to a GCC issue, though I could be completely wrong
Anyway, it bails while building e-component-listener.lo:
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -DEVOLUTION_IMAGES="/opt/gnome/share/evolution/1.4/images" -DEVOLUTION_CATEGORY_ICONS="/opt/gnome/share/evolution/1.4/images/categories" -DG_LOG_DOMAIN="e-utils" -I/var/abs/extra/network/evolution/db3/include/ -DORBIT2=1 -pthread -I/opt/gnome/include/gconf/2 -I/opt/gnome/include/orbit-2.0 -I/opt/gnome/include/libbonoboui-2.0 -I/opt/gnome/include/libbonobo-2.0 -I/opt/gnome/include/libgnomecanvas-2.0 -I/opt/gnome/include/libgnome-2.0 -I/opt/gnome/include/bonobo-activation-2.0 -I/opt/gnome/include/gnome-vfs-2.0 -I/opt/gnome/lib/gnome-vfs-2.0/include -I/opt/gnome/include/gal-2.0 -I/opt/gnome/include/libgnomeprint-2.2 -I/opt/gnome/include/libgnomeui-2.0 -I/opt/gnome/include/soup-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/libart-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/libglade-2.0 -march=i686 -O2 -pipe -Wall -Wmissing-prototypes -c e-component-listener.c -fPIC -DPIC -o .libs/e-component-listener.lo
e-component-listener.c: In function `connection_listen_cb':
e-component-listener.c:56: error: label at end of compound statement
make[3]: *** [e-component-listener.lo] Error 1
make[3]: Leaving directory `/var/abs/extra/network/evolution/src/evolution-1.4.6/e-util'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/abs/extra/network/evolution/src/evolution-1.4.6/e-util'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/abs/extra/network/evolution/src/evolution-1.4.6'
make: *** [all-recursive-am] Error 2
==> ERROR: Build Failed. Aborting...
Sorry, don't have the skills to resolve this one, anyone have any ideas or patches?
Thanks for any assistance!
-----
CSH-9999
Offline
not being too familiar with which language it is programmed in i would assume that the evolution code, at the point that throws the error, is breaking new coding standards set down in gcc 3.4. you could try looking online for that error and possible solutions. or find out what the new rules are and patch the error in the code.
AKA uknowme
I am not your friend
Offline
Line 56 needs a semicolon at the end of the label. It's a gcc 3.4 thing.
I have discovered that all of mans unhappiness derives from only one source, not being able to sit quietly in a room
- Blaise Pascal
Offline
every line that looks to need a semicolon has one, and I would have expected an error more along the line of '... missing ';' at line nn ... ' usually around an end brace.
here's the code for s&g:
36 static void
37 connection_listen_cb (gpointer object, gpointer user_data)
38 {
39 GList *l, *next = NULL;
40 EComponentListener *cl;
41
42 for (l = watched_connections; l != NULL; l = next) {
43 next = l->next;
44 cl = l->data;
45
46 switch (ORBit_small_get_connection_status (cl->priv->component)) {
47 case ORBIT_CONNECTION_DISCONNECTED :
48 watched_connections = g_list_delete_link (watched_connections, l);
49
50 g_object_ref (cl);
51 g_signal_emit (cl, comp_listener_signals[COMPONENT_DIED], 0);
52 cl->priv->component = CORBA_OBJECT_NIL;
53 g_object_unref (cl);
54 break;
55 default :
56 } // < --- point of error
57 }
58 }
I'll spend more time looking into it at home tonight.
-----
CSH-9999
Offline
default is a label. You need a semicolon after that. Though, strictly speaking, it should be a break;
I have discovered that all of mans unhappiness derives from only one source, not being able to sit quietly in a room
- Blaise Pascal
Offline
This is a gcc 3.4 thing. From the changelog:
The undocumented extension that allowed C programs to have a label at the end of a compound statement, which has been deprecated since GCC 3.0, has been removed.
What this means is that the default: statement at the end of connection_listen_cb needs a statement after it - add a new line break; which will do absolutely nothing but means the code will compile.
- olly
Offline
Oh :oops: duh. Guess I didn't read enough
I'll give that a try.
I really need to take a class in this.
-----
CSH-9999
Offline
Well it got past that error, thanks all! It did end up failing later on with a different error which I'll look into. But it made it past the main one!
Thanks again!
-----
CSH-9999
Offline