linuxdeployqt icon indicating copy to clipboard operation
linuxdeployqt copied to clipboard

Fails to compile with Qt 5.8 on PowerPC (PPC)

Open DavidARivkin opened this issue 8 years ago • 9 comments

Please see the log below of the build results with Qt 5.8 on PPC.

opuser@instance-00000a89:~/linuxdeployqt$ qtchooser -run-tool=qmake -qt=qt5
-powerpc64le-linux-gnu CONFIG+=release linuxdeployqt.pro                   
opuser@instance-00000a89:~/linuxdeployqt$ make                             
cd linuxdeployqt/ && ( test -e Makefile || /usr/lib/powerpc64le-linux-gnu/q
t5/bin/qmake /home/opuser/linuxdeployqt/linuxdeployqt/linuxdeployqt.pro CON
FIG+=release -o Makefile ) && make -f Makefile                             
make[1]: Entering directory `/home/opuser/linuxdeployqt/linuxdeployqt'     
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_CORE_L
IB -I/usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/loc
al/Qt-5.8.0/include -I/usr/local/Qt-5.8.0/include/QtCore -I. -o main.o main
.cpp                                                                       
In file included from /usr/include/c++/4.8/type_traits:35:0,               
                 from /usr/local/Qt-5.8.0/include/QtCore/qglobal.h:45,     
                 from /usr/local/Qt-5.8.0/include/QtCore/qcoreapplication.h
:43,                                                                       
                 from /usr/local/Qt-5.8.0/include/QtCore/QCoreApplication:1
,                                                                          
                 from main.cpp:28:                                         
/usr/include/c++/4.8/bits/c++0x_warning.h:32:2: error: #error This file req
uires compiler and library support for the ISO C++ 2011 standard. This supp
ort is currently experimental, and must be enabled with the -std=c++11 or -
std=gnu++11 compiler options.                                              
 #error This file requires compiler and library support for the \          
  ^                                                                        
In file included from /usr/local/Qt-5.8.0/include/QtCore/qglobal.h:97:0,   
                 from /usr/local/Qt-5.8.0/include/QtCore/qcoreapplication.h
:43,                                                                       
                 from /usr/local/Qt-5.8.0/include/QtCore/QCoreApplication:1
,                                                                          
                 from main.cpp:28:                                         
/usr/local/Qt-5.8.0/include/QtCore/qcompilerdetection.h:562:6: error: #erro
r Qt requires a C++11 compiler and yours does not seem to be that.         
 #    error Qt requires a C++11 compiler and yours does not seem to be that
      ^                                                                    
In file included from /usr/local/Qt-5.8.0/include/QtCore/qatomic.h:46:0,   
                 from /usr/local/Qt-5.8.0/include/QtCore/qglobal.h:1129,   
                 from /usr/local/Qt-5.8.0/include/QtCore/qcoreapplication.h
:43,                                                                       
                 from /usr/local/Qt-5.8.0/include/QtCore/QCoreApplication:1
,                                                                          
                 from main.cpp:28:                                         
/usr/local/Qt-5.8.0/include/QtCore/qbasicatomic.h:61:4: error: #error "Qt r
equires C++11 support"                                                     
 #  error "Qt requires C++11 support"                                      
    ^                                                                      
In file included from /usr/local/Qt-5.8.0/include/QtCore/qobjectdefs.h:50:0
,                                                                          
                 from /usr/local/Qt-5.8.0/include/QtCore/qobject.h:46,     
                 from /usr/local/Qt-5.8.0/include/QtCore/qcoreapplication.h
:46,                                                                       
                 from /usr/local/Qt-5.8.0/include/QtCore/QCoreApplication:1
,                                                                          
                 from main.cpp:28:                                         
/usr/local/Qt-5.8.0/include/QtCore/qobjectdefs_impl.h:293:9: warning: ident
ifier 'decltype' is a keyword in C++11 [-Wc++0x-compat]                    
         template <typename F> static auto test(F f) -> decltype(((f.operat
         ^                                                                 
In file included from /usr/local/Qt-5.8.0/include/QtCore/qsharedpointer.h:4
8:0,                                                                       
                 from /usr/local/Qt-5.8.0/include/QtCore/qdebug.h:54,      
                 from /usr/local/Qt-5.8.0/include/QtCore/QDebug:1,         
                 from ../shared/shared.h:34,                               
                 from main.cpp:31:                                         
/usr/local/Qt-5.8.0/include/QtCore/qsharedpointer_impl.h:311:5: warning: id
entifier 'nullptr' is a keyword in C++11 [-Wc++0x-compat]                  
     Q_DECL_CONSTEXPR QSharedPointer() Q_DECL_NOTHROW : value(nullptr), d(n
     ^                                                                     
In file included from /usr/local/Qt-5.8.0/include/QtCore/qcoreapplication.h
:43:0,                                                                     
                 from /usr/local/Qt-5.8.0/include/QtCore/QCoreApplication:1
,                                                                          
                 from main.cpp:28:                                         
/usr/local/Qt-5.8.0/include/QtCore/qglobal.h:925:25: error: expected ',' or
 '...' before '&&' token                                                   
     QForeachContainer(T &&t) : c(std::move(t)), i(c.begin()), e(c.end())  
                         ^                                                 
/usr/local/Qt-5.8.0/include/QtCore/qglobal.h:928:19: warning: non-static da
ta member initializers only available with -std=c++11 or -std=gnu++11 [enab
led by default]                                                            
     int control = 1;                                                      
                   ^                                                       
/usr/local/Qt-5.8.0/include/QtCore/qglobal.h: In constructor 'QForeachConta
iner<T>::QForeachContainer(T)':                                            
/usr/local/Qt-5.8.0/include/QtCore/qglobal.h:925:34: error: 'move' is not a
 member of 'std'                                                           
     QForeachContainer(T &&t) : c(std::move(t)), i(c.begin()), e(c.end())  
                                  ^                                        
/usr/local/Qt-5.8.0/include/QtCore/qglobal.h:925:44: error: 't' was not dec
lared in this scope                                                        
     QForeachContainer(T &&t) : c(std::move(t)), i(c.begin()), e(c.end())  
                                            ^                              
/usr/local/Qt-5.8.0/include/QtCore/qglobal.h: At global scope:             
/usr/local/Qt-5.8.0/include/QtCore/qglobal.h:1117:23: error: expected ',' o
r '...' before '&&' token                                                  
 void qAsConst(const T &&) Q_DECL_EQ_DELETE;                               
                       ^                                                   
In file included from /usr/local/Qt-5.8.0/include/QtCore/qglobal.h:1123:0, 
                 from /usr/local/Qt-5.8.0/include/QtCore/qcoreapplication.h
:43,                                                                       
                 from /usr/local/Qt-5.8.0/include/QtCore/QCoreApplication:1
,                                                                          
                 from main.cpp:28:                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:62:22: error: 'is_integral' 
is not a member of 'std'                                                   
         isIntegral = std::is_integral<T>::value,                          
                      ^                                                    
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:62:40: error: expected prima
ry-expression before '>' token                                             
         isIntegral = std::is_integral<T>::value,                          
                                        ^                                  
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:62:41: error: '::value' has 
not been declared                                                          
         isIntegral = std::is_integral<T>::value,                          
                                         ^                                 
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:65:25: error: 'is_enum' is n
ot a member of 'std'                                                       
         isRelocatable = std::is_enum<T>::value,                           
                         ^                                                 
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:65:39: error: expected prima
ry-expression before '>' token                                             
         isRelocatable = std::is_enum<T>::value,                           
                                       ^                                   
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:65:40: error: '::value' has 
not been declared                                                          
         isRelocatable = std::is_enum<T>::value,                           
                                        ^                                  
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:249:22: error: 'is_integral'
 is not a member of 'std'                                                  
         isIntegral = std::is_integral< TYPE >::value, \                   
                      ^                                                    
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:263:1: note: in expansion of
 macro 'Q_DECLARE_TYPEINFO_BODY'                                           
 Q_DECLARE_TYPEINFO_BODY(QFlags<T>, Q_PRIMITIVE_TYPE);                     
 ^                                                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:249:45: error: expected prim
ary-expression before '>' token                                            
         isIntegral = std::is_integral< TYPE >::value, \                   
                                             ^                             
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:263:1: note: in expansion of
 macro 'Q_DECLARE_TYPEINFO_BODY'                                           
 Q_DECLARE_TYPEINFO_BODY(QFlags<T>, Q_PRIMITIVE_TYPE);                     
 ^                                                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:249:46: error: '::value' has
 not been declared                                                         
         isIntegral = std::is_integral< TYPE >::value, \                   
                                              ^                            
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:263:1: note: in expansion of
 macro 'Q_DECLARE_TYPEINFO_BODY'                                           
 Q_DECLARE_TYPEINFO_BODY(QFlags<T>, Q_PRIMITIVE_TYPE);                     
 ^                                                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:249:22: error: 'is_integral'
 is not a member of 'std'                                                  
         isIntegral = std::is_integral< TYPE >::value, \                   
                      ^                                                    
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:258:1: note: in expansion of
 macro 'Q_DECLARE_TYPEINFO_BODY'                                           
 Q_DECLARE_TYPEINFO_BODY(TYPE, FLAGS)                                      
 ^                                                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:293:1: note: in expansion of
 macro 'Q_DECLARE_TYPEINFO'                                                
 Q_DECLARE_TYPEINFO(bool, Q_PRIMITIVE_TYPE);                               
 ^                                                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:293:20: error: expected prim
ary-expression before 'bool'                                               
 Q_DECLARE_TYPEINFO(bool, Q_PRIMITIVE_TYPE);                               
                    ^                                                      
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:249:40: note: in definition 
of macro 'Q_DECLARE_TYPEINFO_BODY'                                         
         isIntegral = std::is_integral< TYPE >::value, \                   
                                        ^                                  
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:293:1: note: in expansion of
 macro 'Q_DECLARE_TYPEINFO'                                                
 Q_DECLARE_TYPEINFO(bool, Q_PRIMITIVE_TYPE);                               
 ^                                                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:293:20: error: expected '}' 
before 'bool'                                                              
 Q_DECLARE_TYPEINFO(bool, Q_PRIMITIVE_TYPE);                               
                    ^                                                      
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:249:40: note: in definition 
of macro 'Q_DECLARE_TYPEINFO_BODY'                                         
         isIntegral = std::is_integral< TYPE >::value, \                   
                                        ^                                  
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:293:1: note: in expansion of
 macro 'Q_DECLARE_TYPEINFO'                                                
 Q_DECLARE_TYPEINFO(bool, Q_PRIMITIVE_TYPE);                               
 ^                                                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:249:45: error: expected unqu
alified-id before '>' token                                                
         isIntegral = std::is_integral< TYPE >::value, \                   
                                             ^                             
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:258:1: note: in expansion of
 macro 'Q_DECLARE_TYPEINFO_BODY'                                           
 Q_DECLARE_TYPEINFO_BODY(TYPE, FLAGS)                                      
 ^                                                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:293:1: note: in expansion of
 macro 'Q_DECLARE_TYPEINFO'                                                
 Q_DECLARE_TYPEINFO(bool, Q_PRIMITIVE_TYPE);                               
 ^                                                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:254:1: error: expected decla
ration before '}' token                                                    
 }                                                                         
 ^                                                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:258:1: note: in expansion of
 macro 'Q_DECLARE_TYPEINFO_BODY'                                           
 Q_DECLARE_TYPEINFO_BODY(TYPE, FLAGS)                                      
 ^                                                                         
/usr/local/Qt-5.8.0/include/QtCore/qtypeinfo.h:293:1: note: in expansion of
 macro 'Q_DECLARE_TYPEINFO'                                                
 Q_DECLARE_TYPEINFO(bool, Q_PRIMITIVE_TYPE);                               
 ^                                                                         
make[1]: *** [main.o] Error 1                                              
make[1]: Leaving directory `/home/opuser/linuxdeployqt/linuxdeployqt'      
make: *** [sub-linuxdeployqt-make_first] Error 2                           

DavidARivkin avatar May 21 '17 10:05 DavidARivkin

The above we build on Ubuntu 14.04 on IBM Power8 system using gcc. As far as I can tell (from other projects) this compiler DOES support C++11.

DavidARivkin avatar May 21 '17 10:05 DavidARivkin

i have the same problem as well. did you manage to find a fix

shivaz560 avatar Jun 07 '17 13:06 shivaz560

Im in the process of upgrading to 5.9 with XL Compiler so I wont get to trying this again for some time.

David

On Wed, Jun 7, 2017 at 4:57 PM, shivaz560 [email protected] wrote:

i have the same problem as well. did you manage to find a fix

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/probonopd/linuxdeployqt/issues/121#issuecomment-306802961, or mute the thread https://github.com/notifications/unsubscribe-auth/AIDm-d37ExBLbgEwK-bMwLVEPtClInGWks5sBqxmgaJpZM4Nhjvv .

DavidARivkin avatar Jun 07 '17 14:06 DavidARivkin

linuxdeployqt does compile with Ubuntu 14.04 and Qt 5.8 and 5.9 but I don't have access to a ppc/ppc64 machine to test these architectures.

Out of curiosity, are you trying to use AppImage for server applications? What benefit do you see there over e.g., Docker?

probonopd avatar Jun 07 '17 16:06 probonopd

There are free accounts available from IBM on Power7 systems.

Im not using anythig other than trying to compile it at this point, no plans for Docker or such, perhaps a .deb file to move it around.

David

On Wed, Jun 7, 2017 at 7:40 PM, probonopd [email protected] wrote:

linuxdeployqt does compile with Ubuntu 14.04 and Qt 5.8 and 5.9 but I don't have access to a ppc/ppc64 machine to test these architectures.

Out of curiosity, are you trying to use AppImage for server applications? What benefit do you see there over e.g., Docker?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/probonopd/linuxdeployqt/issues/121#issuecomment-306853249, or mute the thread https://github.com/notifications/unsubscribe-auth/AIDm-YU1YFKaZxMOG0W_g8NQB-IoevXIks5sBtKEgaJpZM4Nhjvv .

DavidARivkin avatar Jun 07 '17 16:06 DavidARivkin

http://lists.qt-project.org/pipermail/development/2017-June/030097.html has this information - not sure if it is related or not.

FWIW, the first really C++11 complete version of GCC is 4.9, 4.8 still has a number of bugs that result in internal compiler errors, compilation errors, or runtime errors in some non-trivial but valid C++11 code. See for example patches in [1, 2]

[1] https://trac.webkit.org/search?q=gcc+4.8&noquickjump=1&changeset=on [2] https://trac.webkit.org/search?q=libstdc%2B%2B+4.8&noquickjump=1&changeset=on

probonopd avatar Jun 08 '17 15:06 probonopd

Edit: @probonopd where is C++11 specified? I found it in #38, but can't find it anymore. Qt58 seems to require this on Ubuntu 14.04.

Does adding QMAKE_CXXFLAGS += -std=c++11 to the linuxdeployqt.pro file help?

tresf avatar Jul 15 '17 00:07 tresf

@probonopd where is C++11 specified?

I don't know.

Does adding QMAKE_CXXFLAGS += -std=c++11 to the linuxdeployqt.pro file help?

That's a question for @DavidARivkin since I don't do PPC.

probonopd avatar Jul 15 '17 08:07 probonopd

@DavidARivkin Do you happen to know if Qt5 worked on ppc32?

barracuda156 avatar Mar 29 '25 00:03 barracuda156