Compile error in yacas 1.0.56 Reproducible: Always Steps to Reproduce: 1. emerge yacas 2. 3. Actual Results: g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../libltdl -I./plat/linux32 -march=pentium3 - pipe -O2 -fomit-frame-pointer -fforce-addr -frename-registers -fprefetch-loop- arrays -falign-functions=64 -Wall -pedantic -c infixparser.cpp -MT infixparser.lo -MD -MP -MF .deps/infixparser.TPlo -fPIC -DPIC -o .libs/infixparser.lo In file included from grower.h:118, from lispstring.h:10, from lispobject.h:19, from lispparser.h:10, from infixparser.h:11, from infixparser.cpp:8: grower.inl: In destructor `CDeletingArrayGrower<T>::~CDeletingArrayGrower()': grower.inl:126: error: there are no arguments to `NrItems' that depend on a template parameter, so a declaration of `NrItems' must be available grower.inl:126: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) grower.inl:129: error: there are no arguments to `Item' that depend on a template parameter, so a declaration of `Item' must be available rm -f .libs/deffile.lo g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../libltdl -I./plat/linux32 -march=pentium3 - pipe -O2 -fomit-frame-pointer -fforce-addr -frename-registers -fprefetch-loop- arrays -falign-functions=64 -Wall -pedantic -c deffile.cpp -MT deffile.lo -MD -MP -MF .deps/deffile.TPlo -fPIC -DPIC -o .libs/deffile.lo In file included from grower.h:118, from lisphash.h:11, from deffile.h:11, from deffile.cpp:3: grower.inl: In destructor `CDeletingArrayGrower<T>::~CDeletingArrayGrower()': grower.inl:126: error: there are no arguments to `NrItems' that depend on a template parameter, so a declaration of `NrItems' must be available grower.inl:126: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) grower.inl:129: error: there are no arguments to `Item' that depend on a template parameter, so a declaration of `Item' must be available make[2]: *** [infixparser.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [deffile.lo] Error 1 make[2]: Leaving directory `/var/tmp/portage/yacas-1.0.56/work/yacas-1.0.56/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/yacas-1.0.56/work/yacas-1.0.56' make: *** [all] Error 2 !!! ERROR: app-sci/yacas-1.0.56 failed. !!! Function src_compile, Line 28, Exitcode 2 !!! (no error message) !!! If you need support, post the topmost build error, NOT this status message. Expected Results: Should work?! gentooNorm master # emerge info Portage 2.0.51_rc9 (default-x86-2004.2, gcc-3.4.2, glibc-2.3.4.20041006-r0, 2.6. 9-rc3 i686) ================================================================= System uname: 2.6.9-rc3 i686 Intel(R) Pentium(R) M processor 1600MHz Gentoo Base System version 1.6.0 Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.92.0.2-r1 Headers: sys-kernel/linux-headers-2.4.22 Libtools: sys-devel/libtool-1.5.2-r5 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium3 -pipe -O2 -fomit-frame-pointer -fforce-addr -frename- registers -fprefetch-loop-arrays -falign-functions=64" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/ env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/ lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium3 -pipe -O2 -fomit-frame-pointer -fforce-addr -frename- registers -fprefetch-loop-arrays -falign-functions=64" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache distlocks sandbox" GENTOO_MIRRORS="ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://sunsite. informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.tu-clausthal.de/pub/linux/ gentoo/ ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X aalib acpi alsa apm audiofile avi berkdb bitmap-fonts bzlib calendar cdr crypt doc dvd emacs encode ethereal f77 fbcon foomaticdb gdbm gif gnome gphoto2 gpm gtk gtk2 gtkhtml imap imlib java jikes jpeg kde libg++ libwww mad mikmod mime mmx motif mozilla mpeg ncurses nls oggvorbis opengl oss pam pcmcia pdflib perl php png python quicktime readline sdl slang soap spell sse ssl svga tcltk tcpd tiff truetype usb wxwindows x86 xine xinerama xml xml2 xmms xprint xv xvid zlib"
Created attachment 42059 [details] Ebuild that fixes the compile for me Generally, gcc 3.4 broke some C++ code, but it is a feature they more closely specify to the standard now, so while this code will compile fine under gcc 3.3, it breaks unless -fpermissive is defined. Which pretty much lets you get away with things. Last yacas release was over a year ago, and I'm not going to update the source, but this just adds this flag
Created attachment 42060 [details] In case anyone wants a digest (it is the same files as old one)
Yup -- worked on my system too. (athlon tbird) This should go into the Portage tree, right?
New ebuild works for me too.
ebuild works here (GCC 3.4.3, binutils 2.15.92.0.2-r1, glibc 2.3.4.20041102), but only without distcc. (I think there's something wrong with my farm, though...) Why is this marked enhancement? It's a broken ebuild, cry out loud!
I guess this was classified as "enhancement" because there's just package name and version in the summary and someone was a little too quick. I consider -fpermissive a workaround, not a solution. Patched version is in CVS, will hit your mirrors soon. Thanks for reporting!