[Buildroot] [PATCH v3] qt5webkit: fix build issue with 32-bits armv8-a

Arnout Vandecappelle arnout at mind.be
Sun Apr 1 18:24:01 UTC 2018



On 02-03-18 17:28, Gaël PORTAY wrote:
> 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


 Applied to master, thanks. I've abbreviated the long blob above a bit, and
added a defconfig to reproduce (please do that in the future, even if it is not
minimal. It's sometimes difficult to find the exact options that trigger the issue).

 Regards,
 Arnout

> 
> [1]: https://github.com/qt/qtwebkit/blob/35655d5f4bad248ead1700b59c381cc568b4e98b/Source/WTF/wtf/Platform.h#L241-L242
> 
> Cc: Arnout Vandecappelle <arnout at mind.be>
> Reported-by: Brock Williams <brock at cottonwoodcomputer.com>
> Reviewed-by: Adrian Perez de Castro <aperez at igalia.com>
> Signed-off-by: Gaël PORTAY <gael.portay at savoirfairelinux.com>
> ---
> 
> Changes since v1:
>  - double check for __ARM_ARCH_8__ and __ARM_ARCH_8A__
>  - add Reviewed-by Adrian Perez de Castro
> 
> Changes since v2:
>  - join two lines in error log from commit message
>  - reformat patch using -N
>  - fix Upstream-Status 
> 
>  .../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
> 
> diff --git a/package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch b/package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch
> new file mode 100644
> index 0000000000..9c2205dd94
> --- /dev/null
> +++ b/package/qt5/qt5webkit/5.6.3/0005-Detect-32-bits-armv8-a-architecture.patch
> @@ -0,0 +1,48 @@
> +From 068bf2d2d91382ea0d8ec24a142a30ea429704db Mon Sep 17 00:00:00 2001
> +From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= <gael.portay at savoirfairelinux.com>
> +Date: Tue, 15 Aug 2017 18:28:49 -0400
> +Subject: [PATCH] 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: Backport [with adaptations]
> +Signed-off-by: Gaël PORTAY <gael.portay at savoirfairelinux.com>
> +---
> + 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
> +
> diff --git a/package/qt5/qt5webkit/5.9.1/0003-Detect-32-bits-armv8-a-architecture.patch b/package/qt5/qt5webkit/5.9.1/0003-Detect-32-bits-armv8-a-architecture.patch
> new file mode 100644
> index 0000000000..9c2205dd94
> --- /dev/null
> +++ b/package/qt5/qt5webkit/5.9.1/0003-Detect-32-bits-armv8-a-architecture.patch
> @@ -0,0 +1,48 @@
> +From 068bf2d2d91382ea0d8ec24a142a30ea429704db Mon Sep 17 00:00:00 2001
> +From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= <gael.portay at savoirfairelinux.com>
> +Date: Tue, 15 Aug 2017 18:28:49 -0400
> +Subject: [PATCH] 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: Backport [with adaptations]
> +Signed-off-by: Gaël PORTAY <gael.portay at savoirfairelinux.com>
> +---
> + 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
> +
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF


More information about the buildroot mailing list