Hi,
I’m recompiling panda to enable threading support (HAVE_THREADS = 1), but after a short while I get an error from interrogate:
built/bin/interrogate -srcdir panda/src/express -Ipanda/src/express -DCPPPARSER -D__STDC__=1 -D__cplusplus -longlong __int64 -D_X86_ -DWIN32_VC -D_WIN32 -D"_declspec(param)=" -D_near -D_far -D__near -D__far -D__stdcall -DFORCE_INLINING -Sbuilt/include/parser-inc -Ithirdparty/win-python/include -Ithirdparty/win-libs-vc7/zlib/include -oc built/tmp/libexpress_igate.cxx -od built/pandac/input/libexpress.in -fnames -string -refcount -assert -python-native -Ibuilt/tmp -Ipanda/src/express -Ibuilt/include -DBUILDING_PANDAEXPRESS -module pandaexpress -library libexpress bigEndian.h buffer.h checksumHashGenerator.h circBuffer.h config_express.h datagram.h datagramGenerator.h datagramIterator.h datagramSink.h dcast.h encryptStream.h encryptStreamBuf.h error_utils.h hashGeneratorBase.h hashVal.h indirectLess.h littleEndian.h memoryInfo.h memoryUsage.h memoryUsagePointerCounts.h memoryUsagePointers.h multifile.h namable.h nativeNumericData.h nodePointerTo.h nodePointerToBase.h nodeReferenceCount.h objectDeletor.h ordered_vector.h password_hash.h patchfile.h pointerTo.h pointerToArray.h pointerToBase.h pointerToVoid.h profileTimer.h pta_uchar.h ramfile.h referenceCount.h reversedNumericData.h streamReader.h streamWriter.h stringDecoder.h subStream.h subStreamBuf.h textEncoder.h threadSafePointerTo.h threadSafePointerToBase.h trueClock.h typedReferenceCount.h typedef.h unicodeLatinMap.h vector_uchar.h virtualFile.h virtualFileComposite.h virtualFileList.h virtualFileMount.h virtualFileMountMultifile.h virtualFileMountSystem.h virtualFileSimple.h virtualFileSystem.h weakPointerTo.h weakPointerToBase.h weakPointerToVoid.h weakReferenceList.h windowsRegistry.h zStream.h zStreamBuf.h express_composite1.cxx express_composite2.cxx
*** Error in /c/TeamVienna/PandaExperiments/PandaRecompile/panda3d-1.3.2/built/include/atomicAdjustWin32Impl.h near line 38, column 36:
syntax error, unexpected KW_VOLATILE, expecting ')'
The offending line in atomicAdjustWin32Impl.h is as follows:
INLINE static void inc(TVOLATILE PN_int32 &var);
When threading is disabled, TVOLATILE is #defined to be an empty string, so basically it’s removed, but when threading is on, it’s #defined to be the volatile keyword.
And this seems to make interrogate choke, because it doesn’t expect to meet volatile in this place.
I’ve checked against the latest version from CVS, and the code there is identical.
Any hints?
For the record, here’s info on my config:
*source version: panda 1.3.2 (from the web-site package)
*compiler: visual studio 2003
*I’m using makepanda
*In makepanda I changed HAVE_THREADS to 1, disabled USE_MEMORY_DLMALLOC, enabled USE_MEMORY_MALLOC instead
Thanks,
Erik