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

Bug#778257: src:qtdeclarative-opensource-src: FTBFS on x32: JIT, symbols



On Fri, Feb 20, 2015 at 12:22:06PM +0300, Dmitry Shachnev wrote:
> On Thu, 12 Feb 2015 23:08:49 +0100, Adam Borowski wrote:
> > The fix needs two parts:
> > * applying the attached patch: fixing misdetection of x32 as i386/amd64
> >   (a proper port of the JIT would be of course better, but take a good deal
> >   more work)
> 
> Can you please send this upstream to https://codereview.qt-project.org/?

I looked at the upstream website, and found it quite confusing.  Thus, if
you could forward the patch, it would be nice.

> Or, if you can't do it, tell us that you license the patch under BSD license
> and we will do that ourselves (needed because upstream has a CLA).

Sure.  The patch appears to be too small to be copyrightable, but anyway, I
hereby grant the right to use it under any license of your choice.

> > * updating the symbols file.  s/!sparc64/!sparc64 !x32/ worked for me, as
> >   symbols you skip on every architecture need to be skipped on x32 too
> >   (how surprising...)
> 
> No longer needed with the current Qt 5.4 packages (in experimental), where
> the symbols mess has been fixed.

I tried to check the patch against the packages in experimental, but one of
dependencies (qtxmlpatterns) failed to build for me, for reasons that don't
seem to be arch-dependent:

============
CMake Error at /home/kilobyte/tmp/x32/exp/qtxmlpatterns-opensource-src-5.4.0/lib/cmake/Qt5XmlPatterns/Qt5XmlPatternsConfig.cmake:27 (message):
  The imported target "Qt5::XmlPatterns" references the file

     "/home/kilobyte/tmp/x32/exp/include/x86_64-linux-gnux32/qt5/"

  but this file does not exist.  Possible reasons include:
============
If it's supposed to work, I can poke around more.  I wonder, though, if it
would cost less human time to throw the patch in blindly for now.

It does require a change, though.  Against sources from experimental it's:
--- src/qml/jsruntime/qv4global_p.h~	2014-12-05 17:25:11.000000000 +0100
+++ src/qml/jsruntime/qv4global_p.h	2015-02-20 19:04:52.201925780 +0100
@@ -69,9 +69,11 @@
 //
 // NOTE: This should match the logic in qv4targetplatform_p.h!
 
-#if defined(Q_PROCESSOR_X86) && (defined(Q_OS_WINDOWS) || defined(Q_OS_LINUX) || defined(Q_OS_QNX) || defined(Q_OS_FREEBSD))
+#if defined(Q_PROCESSOR_X86) && !defined(__ILP32__) \
+    && (defined(Q_OS_WINDOWS) || defined(Q_OS_LINUX) || defined(Q_OS_QNX) || defined(Q_OS_FREEBSD))
 #define V4_ENABLE_JIT
-#elif defined(Q_PROCESSOR_X86_64) && (defined(Q_OS_WINDOWS) || defined(Q_OS_LINUX) || defined(Q_OS_MAC) || defined(Q_OS_FREEBSD))
+#elif defined(Q_PROCESSOR_X86_64) && !defined(__ILP32__) \
+    && (defined(Q_OS_WINDOWS) || defined(Q_OS_LINUX) || defined(Q_OS_MAC) || defined(Q_OS_FREEBSD))
 #define V4_ENABLE_JIT
 #elif defined(Q_PROCESSOR_ARM_32)
 

while against upstream's 5.4 git it's:
--- a/src/qml/jsruntime/qv4global_p.h
+++ b/src/qml/jsruntime/qv4global_p.h
@@ -69,9 +69,11 @@ inline double trunc(double d) { return d > 0 ? floor(d) : ceil(d); }
 //
 // NOTE: This should match the logic in qv4targetplatform_p.h!
 
-#if defined(Q_PROCESSOR_X86) && (defined(Q_OS_WIN) || defined(Q_OS_LINUX) || defined(Q_OS_QNX) || defined(Q_OS_FREEBSD))
+#if defined(Q_PROCESSOR_X86) && !defined(__ILP32__) \
+    && (defined(Q_OS_WIN) || defined(Q_OS_LINUX) || defined(Q_OS_QNX) || defined(Q_OS_FREEBSD))
 #define V4_ENABLE_JIT
-#elif defined(Q_PROCESSOR_X86_64) && (defined(Q_OS_WIN) || defined(Q_OS_LINUX) || defined(Q_OS_MAC) || defined(Q_OS_FREEBSD))
+#elif defined(Q_PROCESSOR_X86_64) && !defined(__ILP32__) \
+    && (defined(Q_OS_WIN) || defined(Q_OS_LINUX) || defined(Q_OS_MAC) || defined(Q_OS_FREEBSD))
 #define V4_ENABLE_JIT
 #elif defined(Q_PROCESSOR_ARM_32)
 

(Ie, Q_OS_WIN vs Q_OS_WINDOWS).

-- 
// If you believe in so-called "intellectual property", please immediately
// cease using counterfeit alphabets.  Instead, contact the nearest temple
// of Amon, whose priests will provide you with scribal services for all
// your writing needs, for Reasonable and Non-Discriminatory prices.


Reply to: