ANNOUNCE: p11-kit 0.9

Stef Walter stefw at collabora.co.uk
Wed Dec 14 08:15:13 PST 2011


On 2011-12-10 11:06, Andreas Metzler wrote:
> On 2011-12-10 Andreas Metzler <ametzler at downhill.at.eu.org> wrote:
>> On 2011-12-09 Stef Walter <stefw at collabora.co.uk> wrote:
> [...]
>> After digging a little bit deeper I am stumped. Rebuilding *only*
>> hash-test.o with -O0 (instead of -O2) stops the error message.
> [...]
> 
> The minimal change I found was to just build CuFailInternal() without
> optimization, by setting
> 
> __attribute__((optimize("O0")))
> static void CuFailInternal(CuTest* tc, const char* file, int line,
> CuString* string)

Hmmm, I can see this behavior now. If I slightly rearrange any code it
goes away, and that's why it may be that the above seemingly unrelated
change fixes the issue.

What's happening is that in the test__p11_hash_set_get_clear() gcc is
reordering function calls. The line _p11_hash_clear() is running after
the last _p11_hash_get() call, even though it's located before it. I've
verified this with output to stderr :(

So I'm a bit stuck, not sure if I should just refactor the tests to get
around the obviously broken compiler, or should I try and take this
upstream? Trying to track down where...

The gcc version that I can replicate the issue on is "Ubuntu/Linaro
4.6.1-9ubuntu3".

Cheers,

Stef


More information about the p11-glue mailing list