Skip to contentSkip to conversation

qt5webkit: fix build issue with 32-bits armv8-a

PATCH Superseded Gaël PORTAY 3 participants 4 messages Mar 2, 2018

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 qt5webkit: fix build issue with 32-bits armv8-a

Adds WTF platform support for the 32-bits armv8-a architectures.

Fixes:

In file included from ./config.h:30:0,
from ...
./wtf/Platform.h:323:6: error: #error "Not supported ARM
architecture"

	 #    error "Not supported ARM architecture"
	      ^~~~~

The patch is an adaptation of an upstream fix in version 5.212 of qtwebkit[1].

Unfortunately, the commit cannot be backported and has to be fixed since the toolchain does not define __ARM_ARCH_8__ but __ARM_ARCH_8A__.

	$ host/bin/arm-buildroot-linux-gnueabihf-g++ -dM -E - < /dev/null | grep -i ARM
	#define __ARM_SIZEOF_WCHAR_T 4
	#define __ARM_FEATURE_SAT 1
	#define __ARM_ARCH_ISA_ARM 1
	#define __ARMEL__ 1
	#define __ARM_FEATURE_UNALIGNED 1
	#define __ARM_FEATURE_IDIV 1
	#define __ARM_FP 14
	#define __ARM_ARCH_8A__ 1
	#define __ARM_NEON_FP 6
	#define __ARM_SIZEOF_MINIMAL_ENUM 4
	#define __ARM_PCS_VFP 1
	#define __ARM_FEATURE_LDREX 15
	#define __ARM_FEATURE_QBIT 1
	#define __ARM_FEATURE_FMA 1
	#define __ARM_NEON__ 1
	#define __ARM_ARCH_PROFILE 65
	#define __ARM_32BIT_STATE 1
	#define __ARM_FEATURE_CLZ 1
	#define __ARM_ARCH_ISA_THUMB 2
	#define __ARM_ARCH 8
	#define __arm__ 1
	#define __ARM_FEATURE_SIMD32 1
	#define __ARM_FEATURE_CRC32 1
	#define __ARM_NEON 1
	#define __ARM_ARCH_EXT_IDIV__ 1
	#define __ARM_EABI__ 1
	#define __ARM_FEATURE_DSP 1

[1]: https://github.com/qt/qtwebkit/blob/35655d5f4bad248ead1700b59c381cc568b4e98b/Source/WTF/wtf/Platform.h#L241-L242

---

Changes since v1:
- double check for __ARM_ARCH_8__ and __ARM_ARCH_8A__
- add Reviewed-by Adrian Perez de Castro

 .../0005-Detect-32-bits-armv8-a-architecture.patch | 48 ++++++++++++++++++++++
 .../0003-Detect-32-bits-armv8-a-architecture.patch | 48 ++++++++++++++++++++++
 2 files changed, 96 insertions(+)
 create mode 100644 package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch
 create mode 100644 package/qt5/qt5webkit/5.9.1/0003-Detect-32-bits-armv8-a-architecture.patch
package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch new file +48 -0
new file mode 100644
index 0000000000..1cb655c078
@@ -0,0 +1,48 @@
+From 068bf2d2d91382ea0d8ec24a142a30ea429704db Mon Sep 17 00:00:00 2001
+From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= <[email protected]>
+Date: Tue, 15 Aug 2017 18:28:49 -0400
+Subject: [PATCH 1/1] Detect 32-bits armv8-a architecture
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+
+Adds WTF platform support for the 32-bits armv8-a architectures.
+
+Theses toolchains define __ARM_ARCH_8A__ (for ARM architecture version)
+and __arm__ (for 32-bits word-size; __aarch64__ for 64-bits).
+
+This commit catches this new architecture (armv8a) within a #ifdef/#endif
+inside the if statement dedicated for 32-bits ARM detection.
+
+Fixes:
+
+	In file included from ./config.h:30:0,
+	                 from ...
+	./wtf/Platform.h:323:6: error: #error "Not supported ARM architecture"
+	 #    error "Not supported ARM architecture"
+	      ^~~~~
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ga?l PORTAY <[email protected]>
+---
+ Source/WTF/wtf/Platform.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
+index 562840cf7..9cf656845 100644
+--- a/Source/WTF/wtf/Platform.h
++++ b/Source/WTF/wtf/Platform.h
+@@ -243,6 +243,10 @@
+     || defined(__ARM_ARCH_7S__)
+ #define WTF_ARM_ARCH_VERSION 7
+ 
++#elif defined(__ARM_ARCH_8__) \
++    || defined(__ARM_ARCH_8A__)
++#define WTF_ARM_ARCH_VERSION 8
++
+ /* MSVC sets _M_ARM */
+ #elif defined(_M_ARM)
+ #define WTF_ARM_ARCH_VERSION _M_ARM
+-- 
+2.16.1
+
package/qt5/qt5webkit/5.9.1/0003-Detect-32-bits-armv8-a-architecture.patch new file +48 -0

48 lines not on this page · raw message

Signature · 1 line
2.11.0
#1 lore raw

PATCH v2 1/1 qt5webkit: fix build issue with 32-bits armv8-a

Hello,

Quoted 8 lines · Ga?l PORTAY

Adds WTF platform support for the 32-bits armv8-a architectures.

Fixes:

In file included from ./config.h:30:0,
from ...
./wtf/Platform.h:323:6: error: #error "Not supported ARM
architecture"

Quoted 8 lines
	 #    error "Not supported ARM architecture"
	      ^~~~~

The patch is an adaptation of an upstream fix in version 5.212 of qtwebkit[1].

Unfortunately, the commit cannot be backported and has to be fixed since the toolchain does not define __ARM_ARCH_8__ but __ARM_ARCH_8A__.

Do you know why we have this difference between __ARM_ARCH_8__ and __ARM_ARCH_8A__ ?

package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch line 4

Quoted 10 lines
package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch new file +4 -0
new file mode 100644
index 0000000000..1cb655c078
@@ -0,0 +1,48 @@
+From 068bf2d2d91382ea0d8ec24a142a30ea429704db Mon Sep 17 00:00:00 2001
+From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= <[email protected]>
+Date: Tue, 15 Aug 2017 18:28:49 -0400
+Subject: [PATCH 1/1] Detect 32-bits armv8-a architecture

Nit: generate your patch with "git format-patch -N" to get rid of the "1/1" in [PATCH 1/1]. Indeed, this patch is the fifth patch in the series :)

package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch line 5

Quoted 1 line
package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch new file +1 -0
+Upstream-Status: Inappropriate

This is not really correct: your patch is a backport from upstream, with adaptations.

package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch line 6

Quoted 1 line
package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch new file +1 -0
+Signed-off-by: Ga?l PORTAY <[email protected]>

(Both comments also apply to the 5.9.3 patch, of course).

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
#2 lore raw

PATCH v2 1/1 qt5webkit: fix build issue with 32-bits armv8-a

Thomas,

Quoted 14 lines · Thomas Petazzoni

Hello,

Quoted 11 lines · Ga?l PORTAY

Adds WTF platform support for the 32-bits armv8-a architectures.

Fixes:

In file included from ./config.h:30:0,
from ...
./wtf/Platform.h:323:6: error: #error "Not supported ARM
architecture"

	 #    error "Not supported ARM architecture"
	      ^~~~~
Quoted 9 lines
Quoted 5 lines

The patch is an adaptation of an upstream fix in version 5.212 of qtwebkit[1].

Unfortunately, the commit cannot be backported and has to be fixed since the toolchain does not define __ARM_ARCH_8__ but __ARM_ARCH_8A__.

Do you know why we have this difference between __ARM_ARCH_8__ and __ARM_ARCH_8A__ ?

Honestly I don't.

I think that the __ARM_ARCH_8__ is never defined and probably does not exist (at least with gcc). But I may be wrong.

I tried to all the armv8 -mcpu option with gcc and I never had __ARM_ARCH_8__ defined.

Quoted 16 lines

package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch line 4

Quoted 11 lines
package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch new file +4 -0
new file mode 100644
index 0000000000..1cb655c078
@@ -0,0 +1,48 @@
+From 068bf2d2d91382ea0d8ec24a142a30ea429704db Mon Sep 17 00:00:00 2001
+From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= <[email protected]>
+Date: Tue, 15 Aug 2017 18:28:49 -0400
+Subject: [PATCH 1/1] Detect 32-bits armv8-a architecture

Nit: generate your patch with "git format-patch -N" to get rid of the "1/1" in [PATCH 1/1]. Indeed, this patch is the fifth patch in the series :)

Fixed for v3.

Quoted 5 lines

package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch line 5

Quoted 1 line
package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch new file +1 -0
+Upstream-Status: Inappropriate

This is not really correct: your patch is a backport from upstream, with adaptations.

Well, okay.

Quoted 15 lines

package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch line 6

Quoted 1 line
package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch new file +1 -0
+Signed-off-by: Ga?l PORTAY <[email protected]>

(Both comments also apply to the 5.9.3 patch, of course).

Thanks!

Thomas

Signature · 7 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Regards,
Gael

#3 lore raw

PATCH v2 1/1 qt5webkit: fix build issue with 32-bits armv8-a

Hello,

Quoted 10 lines · Ga?l PORTAY
Quoted 8 lines · Thomas Petazzoni

Hello,

Quoted 2 lines · Ga?l PORTAY

[...]

Do you know why we have this difference between __ARM_ARCH_8__ and __ARM_ARCH_8A__ ?

Quoted 7 lines

Honestly I don't.

I think that the __ARM_ARCH_8__ is never defined and probably does not exist (at least with gcc). But I may be wrong.

I tried to all the armv8 -mcpu option with gcc and I never had __ARM_ARCH_8__ defined.

I haven't got the time to check right now, but I *suspect* that Clang (or Apple's Clang) uses __ARM_ARCH_8__, because the initial support for 64-bit ARM was done by Apple and they use Clang.

Cheers,

--
Adri?n ?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180302/51a23986/attachment.asc>