gnupg-1.4.9 fails checks in new distribution

David Shaw dshaw at jabberwocky.com
Wed Dec 17 17:11:58 CET 2008


On Dec 17, 2008, at 4:55 AM, Klaus Singvogel wrote:

> David Shaw wrote:
>> On Dec 16, 2008, at 12:33 PM, Klaus Singvogel wrote:
>>
>>> I noticed that gnupg-1.4.9 fails currently 10 of 27 tests in
>>> openSUSE-11.1.
>>>
>>> FAIL: encrypt.test
>>> FAIL: encrypt-dsa.test
>>> FAIL: seat.test
>>> FAIL: encryptp.test
>>> FAIL: armencrypt.test
>>> FAIL: armencryptp.test
>>> FAIL: signencrypt.test
>>> FAIL: armsignencrypt.test
>>> FAIL: conventional.test
>>> FAIL: conventional-mdc.test
>>>
>>> The failures didn't occur with openSUSE-11.0 or previous.
>>
>> There isn't enough information here to even guess.  Can you give us
>> more information, please?  i386, x86_64, PowerPC?
>
> Sure. No problem. The tests fail on i586 as well on x86_64.
>
> It's the very same package, which builds on openSUSE-11.1. So I
> assume it's a library or compiler, which the cause of the problem
> is.
>
>> Please also send in your config.log file from when you ran ./ 
>> configure.
>
> It's very large, so I compressed it with bzip2, before I attached it.
> Hope it's ok.

Thanks.  Nothing really jumped out of the config.log, so I brought up  
an openSUSE-11.1 box in vmware and the problem reproduced straight  
away.  The issue seems to be between the compiler (gcc (SUSE Linux)  
4.3.2 [gcc-4_3-branch revision 141291]) and the cipher/rijndael.c file  
(i.e. the AES cipher).  These two aren't getting along very well when  
the compiler is set to create very optimized code (which autoconf does  
by default).

The workaround is to do something like ./configure CFLAGS="-O1".   If  
you wanted to get tricky, just compiling rijndael.c with -O1 and the  
rest of the program with -O2 would work as well.

As to whether it's a compiler problem or a rijndael.c problem, I'm  
inclined to look at the compiler first.  rijndael.c has worked fine on  
many platforms (in GnuPG as well as libgcrypt) for many years through  
multiple gcc changes, and also compiles fine on a very close relative  
of that compiler (gcc (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7)).  I've  
actually seen something similar to this happen once before, when Apple  
switched to gcc 4 from gcc 3 a while back.  For a few months, until  
Apple upgraded to 4.0.1, rijndael.c with -O3 would compile without  
error or warning, but would not result in working code.

David



More information about the Gnupg-devel mailing list