[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#923222: Bug#919812: hotspot: FTBFS on hppa - undefined reference



Hi John!

On Sat, Jan 19, 2019 at 03:26:08PM -0500, John David Anglin wrote:
> Dear Maintainer,
>
> The hotspot build fails on hppa and some other targets:
>
> [...]
> /usr/bin/ld: CMakeFiles/hotspot-perfparser.dir/perfparser/app/perfunwind.cpp.o:
> in function `QDataStream::Version qToLittleEndian<QDataStream::Version>(QDataStream::Version)':
> /usr/include/hppa-linux-gnu/qt5/QtCore/qendian.h:168:
> undefined reference to `QDataStream::Version qbswap<QDataStream::Version>(QDataStream::Version)'
> collect2: error: ld returned 1 exit status
>
> Probably, the problem is in Qtcore.

I think it is a bug in either hotspot or in the compiler.

Anyway, I think it should be easy to fix it in hotspot. It currently has
this line in src/corelib/serialization/qdatastream.h:

  qint32 dataStreamVersion = qToLittleEndian(QDataStream::Qt_DefaultCompiledVersion);

Explicitly casting QDataStream::Qt_DefaultCompiledVersion to an integer type
should make GCC find the right implementation. Try this:

  qint32 dataStreamVersion = qToLittleEndian(static_cast<qint32>(QDataStream::Qt_DefaultCompiledVersion));

--
Dmitry Shachnev

Attachment: signature.asc
Description: PGP signature


Reply to: