GNOME Bugzilla – Bug 127444
libbonobomm-1.3.8 fails to compile
Last modified: 2004-12-22 21:47:04 UTC
I suspect it's probably because of my gcc version 2.95.4 20020723 (prerelease) make[4]: Entering directory `/usr/src/libbonobomm/libbonobomm-1.3.8/bonobomm/generated' source='Bonobo-cpp-common.cc' object='Bonobo-cpp-common.lo' libtool=yes \ depfile='.deps/Bonobo-cpp-common.Plo' tmpdepfile='.deps/Bonobo-cpp-common.TPlo' \ depmode=gcc /bin/sh ../../../libbonobomm-1.3.8/scripts/depcomp \ /bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../../libbonobomm-1.3.8/bonobomm/generated -I../../bonobomm -DORBIT2=1 -I/usr/include/gtkmm-2.0 -I/usr/lib/gtkmm-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/sigc++-1.2/include -I/usr/include/sigc++-1.2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/include/libbonobo-2.0 -I/usr/include/orbit-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/orbitcpp-2.0 -g -O2 -c -o Bonobo-cpp-common.lo `test -f 'Bonobo-cpp-common.cc' || echo '../../../libbonobomm-1.3.8/bonobomm/generated/'`Bonobo-cpp-common.cc g++ -DHAVE_CONFIG_H -I. -I../../../libbonobomm-1.3.8/bonobomm/generated -I../../bonobomm -DORBIT2=1 -I/usr/include/gtkmm-2.0 -I/usr/lib/gtkmm-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/sigc++-1.2/include -I/usr/include/sigc++-1.2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/include/libbonobo-2.0 -I/usr/include/orbit-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/orbitcpp-2.0 -g -O2 -c Bonobo-cpp-common.cc -Wp,-MD,.deps/Bonobo-cpp-common.TPlo -fPIC -DPIC -o Bonobo-cpp-common.lo In file included from Bonobo-cpp-stubs.h:11, from Bonobo-cpp-common.cc:6: Bonobo-cpp-common.h:3544: parse error before `(' Bonobo-cpp-common.h:3545: ANSI C++ forbids declaration `alloc' with no type Bonobo-cpp-common.h: In function `int Bonobo::Canvas::alloc()': Bonobo-cpp-common.h:3546: return to `int' from `affine_slice *' lacks a cast Bonobo-cpp-common.h: At top level: Bonobo-cpp-common.h:3550: parse error before `(' Bonobo-cpp-common.h:3551: ANSI C++ forbids declaration `free' with no type Bonobo-cpp-common.h:3556: parse error before `(' Bonobo-cpp-common.h:3557: ANSI C++ forbids declaration `copy' with no type make[4]: *** [Bonobo-cpp-common.lo] Error 1 make[4]: Leaving directory `/usr/src/libbonobomm/libbonobomm-1.3.8/bonobomm/generated' make[3]: *** [all] Error 2 make[3]: Leaving directory `/usr/src/libbonobomm/libbonobomm-1.3.8/bonobomm/generated' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/usr/src/libbonobomm/libbonobomm-1.3.8/bonobomm' make[1]: *** [all] Error 2 make[1]: Leaving directory `/usr/src/libbonobomm/libbonobomm-1.3.8/bonobomm' make: *** [all-recursive] Error 1
This is an orbitcpp bug. Yes, it relates to GCC versions. The problem is orbitcpp generates code of the form: namespace X { Ret ::X::method() { ... } } Recent versions of GCC accept this, GCC 2.95 does not. The code generation needs to be modifed to output: Ret X::method() { ... }
I have patched this in CVS, I think - I don't have access to GCC 2.95. Can you please check out a copy of the latest orbitcpp from CVS and confirm that the problem is fixed with GCC 2.95. Thanks.