Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Nov 2017 18:06:15 +0000 (UTC)
From:      "Tobias C. Berner" <tcberner@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r453418 - in head: Mk devel/qt5/files www/qt5-webkit/files
Message-ID:  <201711031806.vA3I6FWb077624@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tcberner
Date: Fri Nov  3 18:06:15 2017
New Revision: 453418
URL: https://svnweb.freebsd.org/changeset/ports/453418

Log:
  Fix qt5 builds on some arm architectures
  
  * 222612: www/qt5-webkit: for armv6/v7: The cacheFlush support is missing on this platform
  * 216816: devel/qt5: In arch.test, use CXXFLAGS from make environment
  
  PR:		222612,216816, 223289
  Exp-run by:	antoine
  Submitted by:	mmel, mikael.urankar@gmail.com
  Reported by:	Mark Millard <markmi@dsl-only.net>, mmel
  Reviewed by:	mmel, mikael.urankar@gmail.com
  Differential Revision:	https://reviews.freebsd.org/D12816

Added:
  head/devel/qt5/files/extrapatch-config.tests_unix_arch.test   (contents, props changed)
  head/www/qt5-webkit/files/patch-Source_JavaScriptCore_assembler_ARMAssembler.h   (contents, props changed)
  head/www/qt5-webkit/files/patch-Source_JavaScriptCore_assembler_ARMv7Assembler.h   (contents, props changed)
  head/www/qt5-webkit/files/patch-Source_JavaScriptCore_offlineasm_arm.rb   (contents, props changed)
  head/www/qt5-webkit/files/patch-Source_WTF_wtf_Platform.h   (contents, props changed)
  head/www/qt5-webkit/files/patch-Source_WebCore_platform_graphics_cpu_arm_filters_FELightingNEON.cpp   (contents, props changed)
  head/www/qt5-webkit/files/patch-Source_bmalloc_bmalloc_BPlatform.h   (contents, props changed)
Modified:
  head/Mk/bsd.qt.mk

Modified: head/Mk/bsd.qt.mk
==============================================================================
--- head/Mk/bsd.qt.mk	Fri Nov  3 17:35:00 2017	(r453417)
+++ head/Mk/bsd.qt.mk	Fri Nov  3 18:06:15 2017	(r453418)
@@ -179,7 +179,8 @@ _EXTRA_PATCHES_QT4=	${.CURDIR:H:H}/devel/${_QT_RELNAME
 _EXTRA_PATCHES_QT4+=	${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-armv6
 .  else
 _EXTRA_PATCHES_QT5=	${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_features_create__cmake.prf \
-					${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_features_qt__module.prf
+					${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_features_qt__module.prf \
+					${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-config.tests_unix_arch.test
 .  endif
 EXTRA_PATCHES?=	${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-configure \
 		${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-config.tests-unix-compile.test \

Added: head/devel/qt5/files/extrapatch-config.tests_unix_arch.test
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/qt5/files/extrapatch-config.tests_unix_arch.test	Fri Nov  3 18:06:15 2017	(r453418)
@@ -0,0 +1,15 @@
+For many architectures (armv6, aarch64), is -mcpu is essential for proper
+detection of  CPU features. Follow compile.test case and reuse CXXFLAGS 
+from make environment also in arch.test.
+
+--- config.tests/unix/arch.test.orig	2017-02-05 07:43:57 UTC
++++ config.tests/unix/arch.test
+@@ -17,7 +17,7 @@ else
+ fi
+ 
+ LFLAGS="$SYSROOT_FLAG"
+-CXXFLAGS="$SYSROOT_FLAG"
++CXXFLAGS="$CXXFLAGS $SYSROOT_FLAG"
+ 
+ while [ "$#" -gt 0 ]; do
+     PARAM=$1

Added: head/www/qt5-webkit/files/patch-Source_JavaScriptCore_assembler_ARMAssembler.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/qt5-webkit/files/patch-Source_JavaScriptCore_assembler_ARMAssembler.h	Fri Nov  3 18:06:15 2017	(r453418)
@@ -0,0 +1,14 @@
+armv6/v7: cacheFlush support
+See PR 222612
+
+--- Source/JavaScriptCore/assembler/ARMAssembler.h.orig	2017-08-23 05:02:37 UTC
++++ Source/JavaScriptCore/assembler/ARMAssembler.h
+@@ -1128,6 +1128,8 @@ namespace JSC {
+                 linuxPageFlush(current, current + page);
+ 
+             linuxPageFlush(current, end);
++#elif OS(FREEBSD)
++        __clear_cache(code, reinterpret_cast<char*>(code) + size);
+ #else
+ #error "The cacheFlush support is missing on this platform."
+ #endif

Added: head/www/qt5-webkit/files/patch-Source_JavaScriptCore_assembler_ARMv7Assembler.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/qt5-webkit/files/patch-Source_JavaScriptCore_assembler_ARMv7Assembler.h	Fri Nov  3 18:06:15 2017	(r453418)
@@ -0,0 +1,14 @@
+armv6/v7: cacheFlush support
+See PR 222612
+
+--- Source/JavaScriptCore/assembler/ARMv7Assembler.h.orig	2017-08-23 04:59:46 UTC
++++ Source/JavaScriptCore/assembler/ARMv7Assembler.h
+@@ -2373,6 +2373,8 @@ class ARMv7Assembler { (public)
+             linuxPageFlush(current, current + page);
+
+         linuxPageFlush(current, end);
++#elif OS(FREEBSD)
++        __clear_cache(code, reinterpret_cast<char*>(code) + size);
+ #else
+ #error "The cacheFlush support is missing on this platform."
+ #endif

Added: head/www/qt5-webkit/files/patch-Source_JavaScriptCore_offlineasm_arm.rb
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/qt5-webkit/files/patch-Source_JavaScriptCore_offlineasm_arm.rb	Fri Nov  3 18:06:15 2017	(r453418)
@@ -0,0 +1,20 @@
+armv6/v7:
+Don't emit ARMv7 instructions (movw, movt) for ARMv6 targets.
+
+See PR 222612
+
+--- Source/JavaScriptCore/offlineasm/arm.rb.orig	2017-08-24 10:30:41 UTC
++++ Source/JavaScriptCore/offlineasm/arm.rb
+@@ -502,8 +502,12 @@ class Instruction
+                 $asm.puts "mov #{armFlippedOperands(operands)}"
+             end
+         when "mvlbl"
++            if isARMv7 or isARMv7Traditional
+                 $asm.puts "movw #{operands[1].armOperand}, \#:lower16:#{operands[0].value}"
+                 $asm.puts "movt #{operands[1].armOperand}, \#:upper16:#{operands[0].value}"
++            else
++                $asm.puts "ldr #{operands[1].armOperand}, =#{operands[0].value}"
++            end
+         when "nop"
+             $asm.puts "nop"
+         when "bieq", "bpeq", "bbeq"

Added: head/www/qt5-webkit/files/patch-Source_WTF_wtf_Platform.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/qt5-webkit/files/patch-Source_WTF_wtf_Platform.h	Fri Nov  3 18:06:15 2017	(r453418)
@@ -0,0 +1,24 @@
+armv6/v7:
+See PR 222612
+
+Add proper architecture name:
+  https://gcc.gnu.org/ml/gcc-patches/2015-06/msg01679.html
+
+--- Source/WTF/wtf/Platform.h.orig	2017-06-04 20:16:06 UTC
++++ Source/WTF/wtf/Platform.h
+@@ -226,6 +226,7 @@
+ #elif defined(__ARM_ARCH_6__) \
+     || defined(__ARM_ARCH_6J__) \
+     || defined(__ARM_ARCH_6K__) \
++    || defined(__ARM_ARCH_6KZ__) \
+     || defined(__ARM_ARCH_6Z__) \
+     || defined(__ARM_ARCH_6ZK__) \
+     || defined(__ARM_ARCH_6T2__) \
+@@ -272,6 +273,7 @@
+
+ #elif defined(__ARM_ARCH_6J__) \
+     || defined(__ARM_ARCH_6K__) \
++    || defined(__ARM_ARCH_6KZ__) \
+     || defined(__ARM_ARCH_6Z__) \
+     || defined(__ARM_ARCH_6ZK__) \
+     || defined(__ARM_ARCH_6M__)

Added: head/www/qt5-webkit/files/patch-Source_WebCore_platform_graphics_cpu_arm_filters_FELightingNEON.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/qt5-webkit/files/patch-Source_WebCore_platform_graphics_cpu_arm_filters_FELightingNEON.cpp	Fri Nov  3 18:06:15 2017	(r453418)
@@ -0,0 +1,18 @@
+armv6/v7:
+Use correct UAL syntax for 'vmov rx, ry,...' instruction. 
+The '.u32' modifier in not allowed for this operand combination 
+by ARM ARM, but gas silently ignores it.
+
+See PR 222612
+
+--- Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp.orig	2017-08-23 05:04:24 UTC
++++ Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
+@@ -403,7 +403,7 @@ TOSTRING(neonDrawLighting) ":" NL
+     "vmin.f32 " TMP2_D0 ", " TMP2_D0 ", " CONST_ONE_HI_D NL
+     "vmul.f32 " TMP3_Q ", " COLOR_Q ", " TMP2_D0 "[1]" NL
+     "vcvt.u32.f32 " TMP3_Q ", " TMP3_Q NL
+-    "vmov.u32 r2, r3, " TMP3_S0 ", " TMP3_S1 NL
++    "vmov r2, r3, " TMP3_S0 ", " TMP3_S1 NL
+     // The color values are stored in-place.
+     "strb r2, [" PIXELS_R ", #-11]" NL
+     "strb r3, [" PIXELS_R ", #-10]" NL

Added: head/www/qt5-webkit/files/patch-Source_bmalloc_bmalloc_BPlatform.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/qt5-webkit/files/patch-Source_bmalloc_bmalloc_BPlatform.h	Fri Nov  3 18:06:15 2017	(r453418)
@@ -0,0 +1,24 @@
+armv6/v7:
+See PR 222612
+
+Add proper architecture name:
+  https://gcc.gnu.org/ml/gcc-patches/2015-06/msg01679.html
+
+--- Source/bmalloc/bmalloc/BPlatform.h.orig	2017-06-04 20:16:07 UTC
++++ Source/bmalloc/bmalloc/BPlatform.h
+@@ -108,6 +108,7 @@
+ #elif defined(__ARM_ARCH_6__) \
+ || defined(__ARM_ARCH_6J__) \
+ || defined(__ARM_ARCH_6K__) \
++|| defined(__ARM_ARCH_6KZ__) \
+ || defined(__ARM_ARCH_6Z__) \
+ || defined(__ARM_ARCH_6ZK__) \
+ || defined(__ARM_ARCH_6T2__) \
+@@ -147,6 +148,7 @@
+
+ #elif defined(__ARM_ARCH_6J__) \
+ || defined(__ARM_ARCH_6K__) \
++|| defined(__ARM_ARCH_6KZ__) \
+ || defined(__ARM_ARCH_6Z__) \
+ || defined(__ARM_ARCH_6ZK__) \
+ || defined(__ARM_ARCH_6M__)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711031806.vA3I6FWb077624>