[yocto] [warrior] [meta-qt4] 3rdparty: javascriptcore: JITStubs.cpp: allow builds of JavaScriptCore with gcc v8

Mike Looijmans mike.looijmans at topic.nl
Wed Nov 20 00:00:10 PST 2019


I ran into this issue yesterday, and this patch solves the compilation on 
warrior. However, it's a patch for Qt itself, and not for OE.

Is there already a warrior patch in the making, or should I submit one?


On 19-11-19 13:37, Quentin Schulz wrote:
> At least since gcc v8, source code with asm volatile won't compile
> anymore.
> 
> The volatile qualifier anyway is a no-op since asm blocks are implicitly
> volatile as written in the documentation[1].
> 
> Let's get rid of this redundant qualifier so we can build with newer
> GCCs.
> 
> The resulting error message is the following (note that there is a
> bunch of them):
> ../3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp:617:5: error: expected '(' before 'volatile'
> asm volatile (
>   ^~~~~~~~
>   (
> ../3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp:618:1: error: expected unqualified-id before string constant
> ".text\n"
> ^~~~~~~~~
> ../3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp:617:15: error: expected ')' before string constant
> asm volatile (
> 	  ~^
> 	   )
> ".text\n"
> ~~~~~~~~~
> 
> [1] https://gcc.gnu.org/onlinedocs/gcc/Basic-Asm.html#Basic-Asm
> 
> Upstream-Status: Inappropriate
> Signed-off-by: Quentin Schulz <quentin.schulz at streamunlimited.com>
> ---
>   .../JavaScriptCore/jit/JITStubs.cpp           | 48 +++++++++----------
>   1 file changed, 24 insertions(+), 24 deletions(-)
> 
> diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp
> index d8027ff2..dcead6d0 100644
> --- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp
> +++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp
> @@ -116,7 +116,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x3c, JITStackFrame_s
>   COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
>   COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline);
>   
> -asm volatile (
> +asm (
>   ".text\n"
>   ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
>   HIDE_SYMBOL(ctiTrampoline) "\n"
> @@ -138,7 +138,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
>       "ret" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
>   HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
>   SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
> @@ -154,7 +154,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
>       "ret" "\n"
>   );
>       
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
>   HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
>   SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
> @@ -179,7 +179,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x48, JITStackFrame_s
>   COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x90, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
>   COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x80, JITStackFrame_code_offset_matches_ctiTrampoline);
>   
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
>   HIDE_SYMBOL(ctiTrampoline) "\n"
>   SYMBOL_STRING(ctiTrampoline) ":" "\n"
> @@ -206,7 +206,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
>       "ret" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
>   HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
>   SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
> @@ -222,7 +222,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
>       "ret" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
>   HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
>   SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
> @@ -242,7 +242,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
>   #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7."
>   #endif
>   
> -asm volatile (
> +asm (
>   ".text" "\n"
>   ".align 2" "\n"
>   ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
> @@ -269,7 +269,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
>       "bx lr" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".text" "\n"
>   ".align 2" "\n"
>   ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
> @@ -287,7 +287,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
>       "bx lr" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".text" "\n"
>   ".align 2" "\n"
>   ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
> @@ -305,7 +305,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
>   
>   #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
>   
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
>   HIDE_SYMBOL(ctiTrampoline) "\n"
>   SYMBOL_STRING(ctiTrampoline) ":" "\n"
> @@ -323,7 +323,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
>       "mov pc, lr" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
>   HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
>   SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
> @@ -418,7 +418,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x38, JITStackFrame_
>   COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x30, JITStackFrame_code_offset_matches_ctiTrampoline);
>   COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x1c, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
>   
> -asm volatile (
> +asm (
>   ".text\n"
>   ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
>   HIDE_SYMBOL(ctiTrampoline) "\n"
> @@ -440,7 +440,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
>       "ret" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
>   HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
>   SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
> @@ -456,7 +456,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
>       "ret" "\n"
>   );
>       
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
>   HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
>   SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
> @@ -480,7 +480,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_
>   COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x48, JITStackFrame_code_offset_matches_ctiTrampoline);
>   COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x78, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
>   
> -asm volatile (
> +asm (
>   ".text\n"
>   ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
>   HIDE_SYMBOL(ctiTrampoline) "\n"
> @@ -515,7 +515,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
>       "ret" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
>   HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
>   SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
> @@ -531,7 +531,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
>       "ret" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
>   HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
>   SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
> @@ -551,7 +551,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
>   #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7."
>   #endif
>   
> -asm volatile (
> +asm (
>   ".text" "\n"
>   ".align 2" "\n"
>   ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
> @@ -578,7 +578,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
>       "bx lr" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".text" "\n"
>   ".align 2" "\n"
>   ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
> @@ -596,7 +596,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
>       "bx lr" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".text" "\n"
>   ".align 2" "\n"
>   ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
> @@ -614,7 +614,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
>   
>   #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
>   
> -asm volatile (
> +asm (
>   ".text\n"
>   ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
>   HIDE_SYMBOL(ctiTrampoline) "\n"
> @@ -632,7 +632,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
>       "mov pc, lr" "\n"
>   );
>   
> -asm volatile (
> +asm (
>   ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
>   HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
>   SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
> @@ -1024,7 +1024,7 @@ static NEVER_INLINE void throwStackOverflowError(CallFrame* callFrame, JSGlobalD
>       extern "C" { \
>           rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \
>       }; \
> -    asm volatile ( \
> +    asm ( \
>           ".text" "\n" \
>           ".align 2" "\n" \
>           ".globl " SYMBOL_STRING(cti_##op) "\n" \
> @@ -1053,7 +1053,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, thunkReturnAddress) == THUNK_RETUR
>       extern "C" { \
>           rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \
>       }; \
> -    asm volatile ( \
> +    asm ( \
>           ".globl " SYMBOL_STRING(cti_##op) "\n" \
>           HIDE_SYMBOL(cti_##op) "\n"             \
>           SYMBOL_STRING(cti_##op) ":" "\n" \
> 



More information about the yocto mailing list