i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I. -I../include -march=athlon-xp -O3 -fomit-frame-pointer -ffast-math -mmmx -msse -m3dnow -mfpmath=sse,387 -minli ne-all-stringops -m128bit-long-double -pipe -Wall -g -march=athlon-xp -O3 -fomit -frame-pointer -ffast-math -mmmx -msse -m3dnow -mfpmath=sse,387 -minline-all-str ingops -m128bit-long-double -pipe -Wall -g -MT AtomicCount.lo -MD -MP -MF .deps/ AtomicCount.Tpo -c AtomicCount.cxx -fPIC -DPIC In file included from vanilla/SimpleAtomicCount.cxx:25, from AtomicCount.cxx:50: ../include/zthread/Guard.h: In destructor `ZThread::Guard<LockType, LockingPolicy>::~Guard()': ../include/zthread/Guard.h:493: error: there are no arguments to `isDisabled' that depend on a template parameter, so a declaration of `isDisabled' must be available ../include/zthread/Guard.h:493: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) make[3]: *** [AtomicCount.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... In file included from ConditionImpl.h:24, from Condition.cxx:23: ../include/zthread/Guard.h: In destructor `ZThread::Guard<LockType, LockingPolicy>::~Guard()': ../include/zthread/Guard.h:493: error: there are no arguments to `isDisabled' that depend on a template parameter, so a declaration of `isDisabled' must be available ../include/zthread/Guard.h:493: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) make[3]: *** [Condition.lo] Error 1 make[3]: Leaving directory `/var/tmp/portage/zthread-2.3.1/work/ZThread-2.3.1/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/zthread-2.3.1/work/ZThread-2.3.1/src' make[1]: *** [all] Error 2 make[1]: Leaving directory `/var/tmp/portage/zthread-2.3.1/work/ZThread-2.3.1/src' make: *** [all-recursive] Error 1 gcc version 3.4.3 (Gentoo Linux 3.4.3, ssp-3.4.3-0, pie-8.7.6.6)
Builds fine with -fpermissive.
It seems that this should be fixed upstream, as it is clearly the library doing stupid things. This also affects all software based on ZThread. However, it seems that ZThread development has stalled.
Don't bother trying to email the library author at zthreads@code-foo.com. The domain code-foo.com does not exist.
Lasse - thanks . Fixed as described.