Hello, all:
My name is Mamoru TASAKA from Japan. This is the first post to
this mailing list. I see that "compile or build issues should be
reported to this list", so I post to this list.

Well, recently Fedora project ( https://fedoraproject.org/ ) began
to build packages on ppc64le (powerpc 64 bit, little endian) on rawhide
(development branch), and blender 2.78a won't build on ppc64le.

Downstream report:
https://bugzilla.redhat.com/show_bug.cgi?id=1393157

gcc: 6.2.1
compiler flags:
-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions 
-fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches 
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mcpu=power8 -mtune=power8 
-fPIC -funsigned-char -fno-strict-aliasing -std=c++11
full build log (with make -k VERBOSE=1):
https://mtasaka.fedorapeople.org/Bugfix/blender/blender-2.78a-on-ppc64le.log

The errors are summarized into 2 types.


A. There are lots of errros like:
cd /builddir/build/BUILD/blender-2.78a/cmake-make/intern/audaspace && 
/usr/bin/c++   -DNDEBUG -DWITH_JACK -DWITH_OPENAL -DWITH_PYTHON -DWITH_SDL 
-DWITH_SNDFILE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE 
-D__LITTLE_ENDIAN__ -I/builddir/build/BUILD/blender-2.78a/intern/audaspace 
-I/builddir/build/BUILD/blender-2.78a/intern/audaspace/FX 
-I/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern 
-I/builddir/build/BUILD/blender-2.78a/intern/ffmpeg 
-I/builddir/build/BUILD/blender-2.78a/intern/audaspace/SDL 
-I/builddir/build/BUILD/blender-2.78a/intern/audaspace/OpenAL 
-I/builddir/build/BUILD/blender-2.78a/intern/audaspace/jack 
-I/builddir/build/BUILD/blender-2.78a/intern/audaspace/sndfile 
-I/builddir/build/BUILD/blender-2.78a/intern/audaspace/Python -isystem 
/usr/include/SDL2 -isystem /usr/include/AL -isystem /usr/include/jack -isystem 
/usr/include/python3.5m  -Wredundant-decls -Wall -Wno-invalid-offsetof 
-Wno-sign-compare -Wlogical-op -Winit-self -Wmissing-
 include-dirs -Wno-div-by-zero -Wtype-limits -Werror=return-type 
-Werror=implicit-function-declaration -Wno-char-subscripts -Wno-unknown-pragmas 
-Wpointer-arith  -Wwrite-strings -Wundef -Wformat-signedness -Wuninitialized 
-Wundef -Wmissing-declarations -O2 -g -pipe -Wall -Werror=format-security 
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong 
--param=ssp-buffer-size=4 -grecord-gcc-switches 
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mcpu=power8 -mtune=power8 
-fPIC -funsigned-char -fno-strict-aliasing -std=c++11 -fopenmp -std=c++11 -pipe 
-fPIC -funsigned-char -fno-strict-aliasing -O2 -DNDEBUG   -o 
CMakeFiles/bf_intern_audaspace.dir/intern/AUD_C-API.cpp.o -c 
/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern/AUD_C-API.cpp
In file included from 
/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern/AUD_C-API.cpp:82:0:
/builddir/build/BUILD/blender-2.78a/intern/audaspace/OpenAL/AUD_OpenALDevice.h:113:16:
 error: conflicting return type specified for 'virtual __vector(4) __bool int 
AUD_OpenALDevice::AUD_OpenALHandle::pause()'
    virtual bool pause();
                 ^~~~~
In file included from 
/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern/AUD_IDevice.h:36:0,
                  from 
/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern/AUD_NULLDevice.h:34,
                  from 
/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern/AUD_C-API.cpp:50:
/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern/AUD_IHandle.h:54:15:
 error:   overriding 'virtual bool AUD_IHandle::pause()'
   virtual bool pause()=0;

                ^~~~~
In file included from 
/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern/AUD_C-API.cpp:82:0:
/builddir/build/BUILD/blender-2.78a/intern/audaspace/OpenAL/AUD_OpenALDevice.h:114:16:
 error: conflicting return type specified for 'virtual __vector(4) __bool int 
AUD_OpenALDevice::AUD_OpenALHandle::resume()'
    virtual bool resume();
                 ^~~~~~
In file included from 
/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern/AUD_IDevice.h:36:0,
                  from 
/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern/AUD_NULLDevice.h:34,
                  from 
/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern/AUD_C-API.cpp:50:
/builddir/build/BUILD/blender-2.78a/intern/audaspace/intern/AUD_IHandle.h:62:15:
 error:   overriding 'virtual bool AUD_IHandle::resume()'
   virtual bool resume()=0;

... and other messages, and same messages on other files.

Here -mcpu=power8 automatically enables -maltivec , and with -maltivec (which 
adds -D__ALTIVEC__), when
including SDL2 related header, it includes altivec.h (via 
/usr/include/SDL2/SDL_cpuinfo.h)
(see preprocessed source for AUD_C-API.cpp here:
  
https://mtasaka.fedorapeople.org/Bugfix/blender/ppc64le-AUD_C-API.cpp-preprocessed.log
 )
And including altivec.h changes "bool" definition, for example. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58241

Currently I have to add -mno-altivec to compilation flags.

2. One other build error is here:
cd /builddir/build/BUILD/blender-2.78a/cmake-make/extern/glog && /usr/bin/c++   
-DGFLAGS_DLL_DECL="" -DGFLAGS_DLL_DECLARE_FLAG="" -DGFLAGS_DLL_DEFINE_FLAG="" 
-DGOOGLE_GLOG_DLL_DECL="" -DNDEBUG -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE 
-D_LARGEFILE_SOURCE -D__LITTLE_ENDIAN__ 
-I/builddir/build/BUILD/blender-2.78a/extern/glog/src 
-I/builddir/build/BUILD/blender-2.78a/extern/gflags/src  -Wall 
-Wno-invalid-offsetof -Wno-sign-compare -Wlogical-op -Winit-self 
-Wmissing-include-dirs -Wno-div-by-zero -Wtype-limits   -Wno-char-subscripts 
-Wno-unknown-pragmas -Wpointer-arith    -Wformat-signedness -Wuninitialized   
-O2 -g -pipe -Wall  -Wp,-D_FORTIFY_SOURCE=2 -fexceptions 
-fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches 
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mcpu=power8 -mtune=power8 
-fPIC -funsigned-char -fno-strict-aliasing -std=c++11 -fopenmp -std=c++11 -pipe 
-fPIC -funsigned-char -fno-strict-aliasing  -O2 -DNDEBUG   -o 
CMakeFiles/extern_glog.d
 ir/src/utilities.cc.o -c 
/builddir/build/BUILD/blender-2.78a/extern/glog/src/utilities.cc
In file included from 
/builddir/build/BUILD/blender-2.78a/extern/glog/src/utilities.cc:351:0:
/builddir/build/BUILD/blender-2.78a/extern/glog/src/stacktrace_powerpc-inl.h:121:2:
 error: #error Need to specify the PPC ABI for your archiecture.
  #error Need to specify the PPC ABI for your archiecture.
   ^~~~~

Surprisingly, __linux is not defined on powerpc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=28314
In extern/glog/src/stacktrace_powerpc-inl.h, __linux must be changed to 
__linux__ .


For the issue A, currently I don't know proper fix for this.

Regards,
Mamoru TASAKA <[email protected]>
_______________________________________________
Bf-committers mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to