[Kde-bindings] smokegen crashes on macosx

Arno Rehn arno at arnorehn.de
Thu May 6 15:25:01 UTC 2010


On Thursday 06 May 2010 16:59:21 Petr Vanek wrote:
> hi all,
> 
> I'm still trying to fix macosx issues with smoke build - finding and
> parsing headers as mentioned in the "smoke qt empty builds on macosx"
> thread.
> 
> When I force smokegen to use mac's qt frameworks it crashes on out of
> memory (infinite loop). See the backtrace:
> 
> http://public.yarpen.cz/smokegen.gdb.log
> 
> can anybody help me with it, please? With:
> 
> a) confirm it with something like this (paths should be changed to fit
> your system of course):
> 
> smokegen -config ~/src/qore/module-qt4/trunk/build/smoke/qt/config.xml
> -smokeconfig ~/src/qore/module-qt4/trunk/smoke/qt/smokeconfig.xml -- /
> Library/Frameworks/QtCore.framework/Headers/QtCore
> 
> b) it would be great if developers can explain the affected code a
> bit. I don't get this part at all due its complexity ;)
Look at generatorpreprocessor.cpp, line 160 and following. We currently handle 
such a case with Linux' limits.h. The file contains a statement #include_next 
<limits.h>, which should probably include a file limits.h that's different 
from the current one. The preprocessor only finds the current one, though, and 
it gets stuck in an infinite loop if that's the case (because limits.h doesn't 
have a header guard).
The current solution is more or less a hack. Actually we should do something 
like

if (m_fileStack.top().filePath().endsWith(fileName)) return 0;

to detect a probable endless loop. I'll try this and check it in, if it works.

-- 
Arno Rehn
arno at arnorehn.de



More information about the Kde-bindings mailing list