Description of problem: Building lzo-2.08-6.fc24 fails on ppc64le: + make check test make check-local make[1]: Entering directory '/builddir/build/BUILD/lzo-2.08' ./lzotest/lzotest -mlzo -n2 -q ./COPYING LZO real-time data compression library (v2.08, Jun 29 2014). Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer All Rights Reserved. internal error - lzo_init() failed !!! (this usually indicates a compiler bug - try recompiling without optimizations, and enable `-DLZO_DEBUG' for diagnostics) Makefile:1456: recipe for target 'check-local' failed Version-Release number of selected component (if applicable): lzo-2.08-6.fc24 How reproducible: Steps to Reproduce: 1. ppc-koji build --scratch f24 --arch-override ppc64le lzo-2.08-6.fc24.src.rpm 2. 3. Actual results: http://ppc.koji.fedoraproject.org/koji/buildinfo?buildID=378799 Expected results: Additional info: Building with -O1 succeeds
build succeeds with -O2 -fno-strict-aliasing
That usually points to a bug in the program, not in the compiler. Does -Wstrict-aliasing warn on something? (This warning has multiple levels, you might want to try e.g. -Wstrict-aliasing=2.)
The build log is full of aliasing warnings everywhere; the lzo_funcs.h seems very much obfuscated, but the important change on the GCC side is that since http://gcc.gnu.org/PR66110 fix char/unsigned char/signed char fields in structs are no longer considered to alias everything, while lzo clearly assumes that. Thus, something like: --- include/lzo/lzodefs.h.jj 2014-06-29 11:38:49.000000000 +0200 +++ include/lzo/lzodefs.h 2016-02-18 15:26:47.952064501 +0100 @@ -1686,6 +1686,10 @@ extern "C" { # define __lzo_byte_struct_ma(s,n) struct s { unsigned char a[n]; } __lzo_may_alias __attribute__((__packed__)); #endif #endif +#if (LZO_CC_GNUC >= 0x060000ul) && defined(__lzo_byte_struct_ma) +# undef __lzo_byte_struct +# define __lzo_byte_struct(s,n) __lzo_byte_struct_ma(s,n) +#endif #if defined(__lzo_byte_struct) && !defined(__lzo_byte_struct_ma) # define __lzo_byte_struct_ma(s,n) __lzo_byte_struct(s,n) #endif fixes both the warnings and the testcase crash for me.
This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle. Changing version to '24'. More information and reason for this action is here: https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora24#Rawhide_Rebase
it's fixed in lzo-2.08-8.fc24