Bug 927565

Summary: ICE when building pdns on ARM
Product: [Fedora] Fedora Reporter: Peter Robinson <pbrobinson>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 19CC: jakub, law, mstevens, peter.van.dijk
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-05-30 21:50:23 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 245418    
Attachments:
Description Flags
Preprocessed source none

Description Peter Robinson 2013-03-26 08:58:22 UTC
Created attachment 716370 [details]
Preprocessed source

Complete build:

http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=1620800

Relevant crash:
gcc -DHAVE_CONFIG_H -I. -I../../.. -I../..   -pthread -DLDAP_DEPRECATED  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -march=armv7-a -mfpu=vfpv3-d16  -mfloat-abi=hard -c -o aes_modes.o `test -f '../../aes/aes_modes.c' || echo './'`../../aes/aes_modes.c
In file included from ../../aes/aeskey.c:28:0:
../../aes/aeskey.c: In function 'aes_decrypt_key256':
../../aes/aesopt.h:329:28: warning: 'ss[5]' is used uninitialized in this function [-Wuninitialized]
 #  define to_byte(x)  ((x) & 0xff)
                            ^
../../aes/aeskey.c:492:17: note: 'ss[5]' was declared here
 {   uint_32t    ss[9];
                 ^
In file included from ../../aes/aeskey.c:28:0:
../../aes/aesopt.h:329:28: warning: 'ss[6]' is used uninitialized in this function [-Wuninitialized]
 #  define to_byte(x)  ((x) & 0xff)
                            ^
../../aes/aeskey.c:492:17: note: 'ss[6]' was declared here
 {   uint_32t    ss[9];
                 ^
In file included from ../../aes/aeskey.c:28:0:
../../aes/aesopt.h:329:28: warning: 'ss[7]' is used uninitialized in this function [-Wuninitialized]
 #  define to_byte(x)  ((x) & 0xff)
                            ^
../../aes/aeskey.c:492:17: note: 'ss[7]' was declared here
 {   uint_32t    ss[9];
                 ^
../../aes/aeskey.c:538:1: internal compiler error: in push_minipool_fix, at config/arm/arm.c:13518
 }
 ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
gcc -DHAVE_CONFIG_H -I. -I../../.. -I../..   -pthread -DLDAP_DEPRECATED  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -march=armv7-a -mfpu=vfpv3-d16  -mfloat-abi=hard -c -o aestab.o `test -f '../../aes/aestab.c' || echo './'`../../aes/aestab.c
g++ -DHAVE_CONFIG_H -I. -I../../.. -I../..   -pthread -DLDAP_DEPRECATED  -D_GNU_SOURCE -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -march=armv7-a -mfpu=vfpv3-d16  -mfloat-abi=hard -c -o zone2ldap.o zone2ldap.cc
g++ -DHAVE_CONFIG_H -I. -I../../.. -I../..   -pthread -DLDAP_DEPRECATED  -D_GNU_SOURCE -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -march=armv7-a -mfpu=vfpv3-d16  -mfloat-abi=hard -c -o zone2json.o zone2json.cc
Preprocessed source stored into /tmp/ccYmtamm.out file, please attach this to your bugreport.
make[6]: *** [aeskey.o] Error 1
make[6]: *** Waiting for unfinished jobs....

Comment 1 Jakub Jelinek 2013-03-26 10:11:08 UTC
Tracked upstream (though, there doesn't seem to be rush to fix that).
I'd suggest you fix all the uninitialized warnings first, then the ICE might as well just go away (at least it does on the reduced testcase).
Even just memset (ss, 0, sizeof (ss)); at the beginning of aes_decrypt_key256
makes the ICE go away.  Of course, the question is if it actually works correctly that way, because ss[5], ss[6] and ss[7] are clearly used before they are initialized in that routine.

Comment 2 Morten Stevens 2013-04-18 13:38:26 UTC
Upstream patch available:

http://wiki.powerdns.com/trac/changeset/3162/

Comment 3 Peter Robinson 2013-05-30 21:50:23 UTC
Closing as fixed, if the gcc fix comes later all well and good