
Roman Bogorodskiy wrote:
Eric Blake wrote:
On 05/08/2015 12:23 AM, Roman Bogorodskiy wrote:
Roman Bogorodskiy wrote:
Roman Bogorodskiy wrote:
Currently the stack frame size limit is set to 4096 and it started to cause an error like this:
virshtest.c:253:1: error: stack frame size of 5512 bytes in function 'mymain' [-Werror,-Wframe-larger-than=] mymain(void) ^ 1 error generated.
Increase it to 6144.
Worth to mention that it's started to show up after updating to clang 3.6.
Any comments on this?
Have you reported a possible clang regression bug to the clang folks? Or is the new clang version the first one to support what was originally only gcc's -Wframe-larger-than? At any rate, why does clang require a larger stack than gcc? It sounds like in addition to fixing the virshtest.c file to quit stack-allocating such a large amount of space, that you should also be letting the clang compiler folks know about their weakness.
I wasn't absolutely sure that it is a clang problem. However, I did a check now on the same libvirt revision and on the same system with different clang versions and figured out that things work fine with:
clang version 3.4.2 (tags/RELEASE_34/dot2-final)
but start breaking on:
clang version 3.5.2 (tags/RELEASE_352/final)
So it indeed makes sense to ask clang developers what's going on; will do that.
I'll also try to figure out how to rewrite virshtest.c to quite stack-allocation.
Thanks for the feedback!
I've been playing with virshtest and then figured out that there are other tests using the similar scheme (sockettest for example, and many others). I came to a conclusion that rewriting tests doesn't worth an effort, at least at this point. In the meantime, I've posted a question on the clang mailing list: http://lists.cs.uiuc.edu/pipermail/cfe-dev/2015-May/042890.html Hopefully it'll help to understand why clang behaves this way. Roman Bogorodskiy