Bug#918545: qtdeclarative-opensource-src: FTBFS on x32: mis-detected as having amd64 JIT
Hi Dmitry,
> On Mon, Jan 07, 2019 at 12:15:25PM +0100, Thorsten Glaser wrote:
> > src/qml/jsruntime/qv4global_p.h line 94 always triggers,
> > because x32 is detected as amd64 (Q_PROCESSOR_X86 and
> > Q_PROCESSOR_X86_64 are defined and QT_POINTER_SIZE is 8)
> > by qtbase5-dev (src/corelib/global/qprocessordetection.h).
>
> Are you sure it’s line 94 and not line 91?
hm, actually, not so much. Perhaps I confused QT_POINTER_SIZE
and Q_PROCESSOR_WORDSIZE.
tglase@tglase:/tmp/qt5 $ cc -E -dD -I. QtCore/qprocessordetection.h | fgrep -e Q_PR -e __SIZEOF_POINTER__
#define __SIZEOF_POINTER__ 4
#define Q_PROCESSOR_X86 6
#define Q_PROCESSOR_X86_64
#define Q_PROCESSOR_WORDSIZE 8
#define QT_POINTER_SIZE __SIZEOF_POINTER__
> QT_POINTER_SIZE is taken directly from GCC’s __SIZEOF_POINTER__, and
> according to the comment [1] it “catches all known cases of ILP32 builds”.
Indeed, that does it.
> So its value should be 4, not 8 on x32. If for some reason it’s not the
> case, then we should fix _that_ in the first place.
Yes. (Q_PROCESSOR_WORDSIZE is still wrong, though.)
> In case it is line 91, then simply changing defined(Q_PROCESSOR_X86) to
> defined (Q_PROCESSOR_X86_32) should be enough. Can you try that and
> see if it helps?
I can and will, thanks!
bye,
//mirabilos
--
tarent solutions GmbH
Rochusstraße 2-4, D-53123 Bonn • http://www.tarent.de/
Tel: +49 228 54881-393 • Fax: +49 228 54881-235
HRB 5168 (AG Bonn) • USt-ID (VAT): DE122264941
Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg
Reply to: