[Interest] Building Qt 5.5.1 on CentOS 5
Simon Matthews
simon at bluepearlsoftware.com
Sat Mar 12 01:32:13 CET 2016
I am trying to build Qt 5.5.1 on CentOS 5. I suspect that we don't need
linuxfb, but there doesn't seem to be an easy way to skip this.
However, I get the following error:
/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/xcb/gl_integrations
gmake[6]: Entering directory
`/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/xcb/gl_integrations'
gmake[6]: Nothing to be done for `first'.
gmake[6]: Leaving directory
`/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/xcb/gl_integrations'
gmake[5]: Leaving directory
`/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/xcb'
cd linuxfb/ && ( test -e Makefile ||
/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/bin/qmake
/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/linuxfb/linuxfb.pro
-o Makefile ) && gmake -f Makefile
/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/linuxfb
gmake[5]: Entering directory
`/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/linuxfb'
rm -f libqlinuxfb.so
g++ -Wl,--no-undefined -Wl,-O1 -Wl,--enable-new-dtags
-Wl,-rpath,/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/linuxfb/‘��
-Wl,-rpath,/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/linuxfb/‘��
-shared -o libqlinuxfb.so .obj/main.o .obj/qlinuxfbintegration.o
.obj/qlinuxfbscreen.o .obj/moc_qlinuxfbscreen.o
-L/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/lib
-lQt5PlatformSupport -lfontconfig -lfreetype -lQt5DBus -pthread -L/lib64
-lgthread-2.0 -lglib-2.0 -lQt5Gui -lQt5Core -lGL -lpthread
/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/lib/libQt5PlatformSupport.a(qfbvthandler.o):
In function `QFbVtHandler::QFbVtHandler(QObject*)':
qfbvthandler.cpp:(.text+0x1c1): undefined reference to `signalfd'
collect2: error: ld returned 1 exit status
gmake[5]: *** [../../../../plugins/platforms/libqlinuxfb.so] Error 1
gmake[5]: Leaving directory
`/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/linuxfb'
gmake[4]: *** [sub-linuxfb-make_first] Error 2
gmake[4]: Leaving directory
`/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms'
gmake[3]: *** [sub-platforms-make_first] Error 2
gmake[3]: Leaving directory
`/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins'
gmake[2]: *** [sub-plugins-make_first] Error 2
gmake[2]: Leaving directory
`/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase/src'
gmake[1]: *** [sub-src-make_first] Error 2
gmake[1]: Leaving directory
`/home/simon/rpms/build/qt-everywhere-opensource-src-5.5.1/qtbase'
gmake: *** [module-qtbase-make_first] Error 2
In order to get this far, I have done the following:
1. installed extra packages as described on this page:
http://kate-editor.org/2014/12/22/qt-5-4-on-red-hat-enterprise-5/
2. Copied /usr/include/sys/signalfd.h from a CentOS6 system to the same
location on my CentOS5 build machine.
3. Made the following changes to the source:
sed -i 's/#define QTESTLIB_USE_PERF_EVENTS/#undef
QTESTLIB_USE_PERF_EVENTS/g' qtbase/src/testlib/qbenchmark_p.h
sed -i 's/getbyte/getc/'
qtwebkit/Source/JavaScriptCore/offlineasm/offsets.rb
sed -i 's/| O_CLOEXEC//'
./qtwebkit/Source/WebKit2/Platform/unix/SharedMemoryUnix.cpp
patch -p0 << EOF
--- qtbase/src/network/ssl/qsslsocket_openssl.cpp.orig 2016-03-11
10:43:26.000000000 -0800
+++ qtbase/src/network/ssl/qsslsocket_openssl.cpp 2016-03-11
10:43:46.000000000 -0800
@@ -1582,8 +1582,8 @@
if (readBufferMaxSize)
plainSocket->setReadBufferSize(readBufferMaxSize);
- if (q_SSL_ctrl((ssl), SSL_CTRL_GET_SESSION_REUSED, 0, NULL))
- configuration.peerSessionShared = true;
+// if (q_SSL_ctrl((ssl), SSL_CTRL_GET_SESSION_REUSED, 0, NULL))
+// configuration.peerSessionShared = true;
#ifdef QT_DECRYPT_SSL_TRAFFIC
if (ssl->session && ssl->s3) {
EOF
patch -p0 << EOF
--- qtbase/src/network/ssl/qsslsocket_openssl.cpp.orig 2016-03-11
11:15:35.000000000 -0800
+++ qtbase/src/network/ssl/qsslsocket_openssl.cpp 2016-03-11
11:14:21.000000000 -0800
@@ -390,8 +390,8 @@
if (!ace.isEmpty()
&& !QHostAddress().setAddress(tlsHostName)
&& !(configuration.sslOptions &
QSsl::SslOptionDisableServerNameIndication)) {
- if (!q_SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_HOSTNAME,
TLSEXT_NAMETYPE_host_name, ace.data()))
- qCWarning(lcSsl, "could not set
SSL_CTRL_SET_TLSEXT_HOSTNAME, Server Name Indication disabled");
+// if (!q_SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_HOSTNAME,
TLSEXT_NAMETYPE_host_name, ace.data()))
+// qCWarning(lcSsl, "could not set
SSL_CTRL_SET_TLSEXT_HOSTNAME, Server Name Indication disabled");
}
}
EOF
patch -p0 << EOF
--- qtbase/src/network/ssl/qsslcontext_openssl.cpp.orig 2016-03-11
10:44:09.000000000 -0800
+++ qtbase/src/network/ssl/qsslcontext_openssl.cpp 2016-03-11
10:45:48.000000000 -0800
@@ -468,7 +468,7 @@
unsigned char *data = reinterpret_cast<unsigned char
*>(m_sessionASN1.data());
if (!q_i2d_SSL_SESSION(session, &data))
qCWarning(lcSsl, "could not store persistent version
of SSL session");
- m_sessionTicketLifeTimeHint =
session->tlsext_tick_lifetime_hint;
+// m_sessionTicketLifeTimeHint =
session->tlsext_tick_lifetime_hint;
}
}
EOF
4. Made sure that python26 is used.
5. Used the following configure command:
./configure -R ‘\\\$$ORIGIN’ -D _X_INLINE=inline -D
XK_dead_currency=0xfe6f -D XK_ISO_Level5_Lock=0xfe13 -D
FC_WEIGHT_EXTRABLACK=215 -D FC_WEIGHT_ULTRABLACK=FC_WEIGHT_EXTRABLACK -v
-opensource -qt-libpng -qt-zlib -qt-libjpeg -nomake examples
-qt-sql-sqlite -confirm-license -prefix /usr/lib/Qt/Qt-5.5.1-x86_64
-widgets -qt-xcb -skip activeqt -skip androidextras -skip connectivity
-skip enginio -skip macextras -skip multimedia -skip quick1 -skip
serialport -skip wayland -skip webchannel -skip webkit-examples -skip
x11extras -c++11 -icu -fontconfig -opengl -openssl
-no-reduce-relocations -no-rpath
Simon
More information about the Interest
mailing list