[Interest] 5.8.0 on OpenBSD 6.0

ml+qt-interest at esmtp.org ml+qt-interest at esmtp.org
Mon Mar 6 14:01:57 CET 2017


On Sun, Feb 26, 2017, Thiago Macieira wrote:

> > eg++ -c -pipe -O2 -fPIC -std=c++1y -fvisibility=hidden

> > /usr/include/mmintrin.h: In function '__m64 _mm_add_si64(__m64, __m64)':
> > /usr/include/mmintrin.h:312:72: error: cannot convert 'long long int' to
> > '__vector(1) long long int' for argument '1' to '__vector(1) long long int

> This /usr/include/mmintrin.h file you have is not supported by your compiler. 

>  a) get a different version of that file;
>  b) get a compiler that is compatible with that file

> This is not a Qt problem. Your C++ compiler installation is broken.

Thanks for the reply.
There are several things I did:
- upgraded to a newer OpenBSD snapshot
- after encountering a similar error with that file
  I found another version in
/usr/local/lib/gcc/x86_64-unknown-openbsd6.0/4.9.4/include/
  (from eg++)

By hacking the Makefiles where a mmintrin.h related error happens
the compilation succeeds:

GI=/usr/local/lib/gcc/x86_64-unknown-openbsd6.0/4.9.4/include
INCPATH       = -I. -I../../../include -I../../../include/QtFontDatabaseSupport -I../../../include/QtFontDatabaseSupport/5.8.0 -I../../../include/QtFontDatabaseSupport/5.8.0/QtFontDatabaseSupport -I../../../include/QtGui/5.8.0 -I../../../include/QtGui/5.8.0/QtGui -I../../../include/QtCore/5.8.0 -I../../../include/QtCore/5.8.0/QtCore -I../../../include/QtGui -I../../../include/QtCore -I.moc -I/usr/X11R6/include -I/usr/X11R6/include/libdrm -I/usr/X11R6/include/freetype2 -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 -isystem $(GI) -isystem /usr/include -isystem /usr/local/include -I../../../mkspecs/openbsd-g++

That is, add GI=... and change INCPATH to include the eg++ location:
:.s;-isystem /;-isystem $(GI) &;

I don't know if this a problem with
- qmake generating a wrong INCPATH (-isystem /usr/include etc)
- eg++ not using its own include directory first
- or something else
?

Later on I ran into this error:

../../../3rdparty/assimp/code/BlenderTessellator.cpp: In member function 'Assimp::Blender::PointP2T& Assimp::BlenderTessellatorP2T::GetActualPointStructure(p2t::Point&) const':
../../../3rdparty/assimp/code/BlenderTessellator.cpp:378:65: error: invalid cast from type 'std::nullptr_t' to type 'Assimp::Blender::PointP2T*'
  reinterpret_cast<uint8_t*>(&( reinterpret_cast< Class* >( NULL )->*( &Class::Member ) )) - \
                                                                 ^
../../../3rdparty/assimp/code/BlenderTessellator.cpp:383:29: note: in expansion of macro 'OffsetOf'
  unsigned int pointOffset = OffsetOf( PointP2T, point2D );

and the comment in the file says:
// Yes this is filthy... but we have no choice

I redefined OffsetOf() to offsetof() which fixed that compilation
error (and hopefully generates the intended code).


And after the build finally ended, I noticed that the webengine
module was missing... "not supported" -- it would have been nice
if that info would be in the configure output (well, maybe it is,
but not in an obvious way).



More information about the Interest mailing list