Fails to compile with Qt 5.8 on PowerPC (PPC)
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
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.
i have the same problem as well. did you manage to find a fix
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 .
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?
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 .
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
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?
@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.
@DavidARivkin Do you happen to know if Qt5 worked on ppc32?