[Webkit-unassigned] [Bug 159083] THUMB2 support not correctly detected on Fedora with GCC 6.1.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jul 4 01:48:14 PDT 2016


https://bugs.webkit.org/show_bug.cgi?id=159083

--- Comment #6 from Csaba Osztrogonác <ossy at webkit.org> ---
(In reply to comment #2)
> Ok, the problem here is the detection of THUMB2 support. Our code is based
> on __thumb2__ or __thumb__ defines. This does work on Debian:
> 
> $ gcc -dM -E - < /dev/null | grep -i thumb
> #define __thumb2__ 1
> #define __THUMB_INTERWORK__ 1
> #define __thumb__ 1
> #define __ARM_ARCH_ISA_THUMB 2
> #define __THUMBEL__ 1
> 
> but does not on Fedora 24 with GCC 6.1. :
> 
> $ gcc -dM -E - < /dev/null | grep -i thumb
> #define __THUMB_INTERWORK__ 1
> #define __ARM_ARCH_ISA_THUMB 2
> 
> as the previously mentions defines are not presented there.


(In reply to comment #4)
> Comment on attachment 282244 [details]
> Correct the THUMB2 detection on Fedora with gcc 6.1.
> 
> Clearing flags on attachment: 282244
> 
> Committed r202560: <http://trac.webkit.org/changeset/202560>

This change is incorrect, because it enables thumb2 instruction set 
on ARMv7 by default and doesn't work with toolchain uses -marm option:
https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Traditional%20Release/builds/1514

You are right, r202214 broke the build with ARM instruction set -
ARM traditional in WebKit terminology - because of missing fillNops
implementation in ARMAssembler.h. ARMv7Assembler.h is responsible
for ARMv7 with Thumb2 instruction set. note: ARMv6 doesn't build
with enabled JIT long long time ago, at least 2.5 years ago,
see bug125581 and bug141288 for details.

The thumb2 detection in Platform.h was correct, but it seem your
toolchain was changed for some reason. The old one was built to use -mthumb,
but the new one was built to use -marm as default instruction set.

You can check your toolchain default settings with this command:
gcc -Q --help=target | grep -i "\(marm\|mthumb\)"

result if you have thumb2 toolchain:
  -marm                                 [disabled]
  -mthumb                               [enabled]
  -mthumb-interwork                     [enabled]

result if you have ARM toolchain:
  -marm                                 [enabled]
  -mthumb                               [disabled]
  -mthumb-interwork                     [enabled]

I'm going to fix the ARM traditional build soon in a separated bug.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20160704/d92419ab/attachment.html>


More information about the webkit-unassigned mailing list