0. This is not related to my CFLAGS. Thank you. 1. Error output: g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/kde/3.4//include -I/usr/qt/3/include -I. -DQT_THREAD_SUPPORT -D_REENTRANT -O2 -fno-exceptions -fno-check-new -c plotdata.cpp In file included from /usr/qt/3/include/qmime.h:43, from /usr/qt/3/include/qevent.h:45, from /usr/qt/3/include/qobject.h:45, from /usr/qt/3/include/qwidget.h:43, from ../qtai/qtai_plot.h:24, from ../qtai/qtai_anim.h:23, from plotdata.cpp:27: /usr/qt/3/include/qmap.h:631: error: expected unqualified-id before '<' token /usr/qt/3/include/qmap.h:631: error: expected `,' or `...' before '<' token /usr/qt/3/include/qmap.h:632: error: ISO C++ forbids declaration of `parameter' with no type /usr/qt/3/include/qmap.h:648: error: expected unqualified-id before '<' token /usr/qt/3/include/qmap.h:648: error: expected `,' or `...' before '<' token /usr/qt/3/include/qmap.h:649: error: ISO C++ forbids declaration of `parameter' with no type /usr/qt/3/include/qmap.h: In constructor `QMap<Key, T>::QMap(int)': /usr/qt/3/include/qmap.h:634: error: no class template named `map' in `std' /usr/qt/3/include/qmap.h:634: error: no class template named `map' in `std' /usr/qt/3/include/qmap.h:634: error: expected `(' before '<' token /usr/qt/3/include/qmap.h:634: error: expected primary-expression before ',' token /usr/qt/3/include/qmap.h:634: error: expected primary-expression before '>' token /usr/qt/3/include/qmap.h:634: error: `::const_iterator' has not been declared /usr/qt/3/include/qmap.h:634: error: expected `;' before "it" /usr/qt/3/include/qmap.h:635: error: `it' undeclared (first use this function) /usr/qt/3/include/qmap.h:635: error: (Each undeclared identifier is reported only once for each function it appears in.) /usr/qt/3/include/qmap.h:635: error: `m' undeclared (first use this function) /usr/qt/3/include/qmap.h: In member function `QMap<Key, T>& QMap<Key, T>::operator=(int)': /usr/qt/3/include/qmap.h:651: error: no class template named `map' in `std' /usr/qt/3/include/qmap.h:651: error: no class template named `map' in `std' /usr/qt/3/include/qmap.h:651: error: expected `(' before '<' token /usr/qt/3/include/qmap.h:651: error: expected primary-expression before ',' token /usr/qt/3/include/qmap.h:651: error: expected primary-expression before '>' token /usr/qt/3/include/qmap.h:651: error: `::const_iterator' has not been declared /usr/qt/3/include/qmap.h:651: error: expected `;' before "it" /usr/qt/3/include/qmap.h:652: error: `it' undeclared (first use this function) /usr/qt/3/include/qmap.h:652: error: `m' undeclared (first use this function) make[4]: *** [plotdata.o] Error 1 2. I've inspected problem origins, but without any positive results. - qmap.h is fine. Something in Kalamaris headers break this thing. - Kalamaris vartype.h define class T, which can be the root of this miscompilation: QMap(const std::map<Key, T>) --- uses wrong T. - This looks like compiler bug. :( Can somebody check this with different compiler? Reproducible: Always Steps to Reproduce: emerge -v kalamaris Actual Results: compilation failure Expected Results: correct compile Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.4.4, glibc-2.3.5-r1, 2.6.12-gentoo-r7 i686) ================================================================= System uname: 2.6.12-gentoo-r7 i686 AMD Athlon(tm) XP 2500+ Gentoo Base System version 1.12.0_pre6 ccache version 2.4 [disabled] dev-lang/python: 2.3.5, 2.4.1-r1 sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6 sys-devel/binutils: 2.16.1 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O3 -march=athlon-xp -msse -mfpmath=sse -mmmx -m3dnow -fomit-frame-pointer -ffast-math -funroll-loops -pipe -ftracer -funit-at-a-time" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-O3 -march=athlon-xp -msse -mfpmath=sse -mmmx -m3dnow -fomit-frame-pointer -ffast-math -funroll-loops -pipe -ftracer -funit-at-a-time" DISTDIR="/mnt/oktet/tmp/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/mnt/oktet/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 3dnow 7zip X aalib acl adns alsa apache2 apm arts artswrappersuid avi bash-completion berkdb bitmap-fonts blas browserplugin bzip2 cairo cdr crypt cscope css cups curl dga doc dvd dvdr dynagraph eds emacs emboss encode esd evo fam firebird firefox flac font-server foomaticdb fortran gd gdbm gif gimpprint ginac glitz gnome gphoto2 gpm graphviz gstreamer gtk gtk2 guile hal idea imagemagick imlib innodb ipv6 ithreads java javascript jce jpeg jpeg2k junit kcal kde kdeenablefinal ladspa lcms ldap libg++ libgda libsamplerate libwww lzw-tiff mad mcal mikmod mmx mng motif mozcalendar mozdevelop mozilla mozsvg mozxmlterm mp3 mpeg mysql nas ncurses nls nntp no-old-linux nptl nsplugin ocaml offensive ogg oggvorbis openal openexr opengl pam pcre pdflib perl pic plotutils png postgres povray python qhull qt quicktime readline rrdtool ruby samba scanner sdk sdl slang sndfile speex spell sqlite sse ssl subversion svg tcltk tcpd tetex theora threads tidy tiff truetype truetype-fonts type1-fonts unicode vdesktop vorbis wmf xine xml xml2 xmms xprint xv yv12 zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LDFLAGS, LINGUAS, MAKEOPTS
This compiles fine using gcc 3.3.6. Since gcc 3.4 adheres more strictly to the C++ standard, this problem is more likely related to Kalamaris rather than GCC or Gentoo (see e.g http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus). I've notified the author of Kalamaris of this bug and closed it for now. Please reopen it when there is an updated version of Kalamaris.
Hi, did he answer you something? Is he trying to fix it?
Hi, Their website still offers 0.7.1, hence it doesn't look like there have been any update (unless Peter got a private email). In the meantime, please try passing the following preprocessor flag to your CXXFLAGS: "-DQT_NO_STL". This works for me, but not knowing QT too well this might be a bad hack. In any case, if this should work we could consider adding this to the ebuild since the package currently doesn't build at all on x86. Thanks, Markus
(In reply to comment #3) Setting CXFFLAGS in environment (CXXFLAGS="blah" emerge package) as explained works for me. Perhaps this bug should be reopened until a new version is released?
I've just committed kalamaris-0.7.1-r1.ebuild that incorporates this fix and should allow compilation with gcc-3.4. I will notify upstream of this as well and close this bug as FIXED.
resolve as FIXED as explained in comment #5.