[Interest] Issues building Qt 5.4.0 and 5.3.2 on CentOS 5.
Simon Matthews
simon at matthews.eu
Sat Feb 14 00:04:56 CET 2015
I am continuing in my quest to build Qt 5.4.0 (and now added Qt 5.3.2) on
CentOS 5. The following refers to 5.3.2, but I think the same problem
exists in 5.4.0.
So far, I have:
Installed updated python, flex, sqlite (and sqlite-devel), ICU and
fontconfig. Installed devtoolset-1.1.
Patched the source to deal with one line of ruby code that would only work
with a newer version of ruby.
Patched the source according to the instructions on this page:
http://kate-editor.org/2014/12/22/qt-5-4-on-red-hat-enterprise-5/
Used a slightly modified version of the configure command from the same
page:
./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.3.2-x86_64
-widgets -no-openssl -no-dbus -qt-xcb -skip activeqt -skip androidextras
-skip connectivity -skip enginio -skip location -skip macextras -skip
multimedia -skip quick1 -skip sensors -skip serialport -skip
webkit-examples -skip x11extras -c++11 -icu -fontconfig
However, I have now come across another missing definition: O_CLOEXEC.
On later platforms, this is defined in glibc-headers and linux-headers.
Specifically, the files:
/usr/include/asm-generic/fcntl.h and /usr/include/asm-generic/fcntl.h
The definition is used in
qtwebkit/Source/WebKit2/Platform/unix/SharedMemoryUnix.cpp:
do {
fileDescriptor = shm_open(tempName.data(), O_CREAT | O_CLOEXEC | O_RDWR, S_IRUSR | S_IWUSR);
} while (fileDescriptor == -1 && errno == EINTR);
Can I safely comment change the line to the following:
fileDescriptor = shm_open(tempName.data(), O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);
Here is the error:
Platform/unix/SharedMemoryUnix.cpp: In static member function ‘static
WTF::PassRefPtr<WebKit::SharedMemory>
WebKit::SharedMemory::create(size_t)’:
Platform/unix/SharedMemoryUnix.cpp:149:66: error: ‘O_CLOEXEC’ was not
declared in this scope
make[3]: *** [.obj/Platform/unix/SharedMemoryUnix.o] Error 1
More information about the Interest
mailing list