[GHC] #11058: selected processor does not support ARM mode

GHC ghc-devs at haskell.org
Tue Nov 3 16:57:28 UTC 2015


#11058: selected processor does not support ARM mode
----------------------------------------+------------------------------
        Reporter:  nomeata              |                Owner:
            Type:  bug                  |               Status:  new
        Priority:  normal               |            Milestone:
       Component:  Compiler             |              Version:  7.10.2
      Resolution:                       |             Keywords:
Operating System:  Unknown/Multiple     |         Architecture:  arm
 Type of failure:  Building GHC failed  |            Test Case:
      Blocked By:                       |             Blocking:
 Related Tickets:                       |  Differential Rev(s):
       Wiki Page:                       |
----------------------------------------+------------------------------

Comment (by bgamari):

 Here is a summary of the issue sent to ghc-devs,

 > Indeed this appears to be regression compared to 7.10.2 for some.
 > However for most users it will be a significant improvement in
 > stability.
 >
 > ARM processors can run code encoded in one of several instruction sets
 > of which ARM and Thumb are two. The issue here is that we have never
 > been able to handle Thumb instructions correctly; we fare even worse in
 > cases where we have Thumb and ARM instructions in the same executable
 > due to various linker issues:
 >
 >  * the runtime's linker doesn't support loading heterogeneous code at
 >    all
 >
 >  * the system's dynamic linker will almost certainly screw up our info
 >    tables due to the need for a trampoline (for this reason , I'm not
 >    even sure whether it's possible to handle Thumb-ARM interworking in
 >    Haskell code)
 >
 > There are several places where Thumb instructions could come from,
 >
 >  1. GHCi produced them in mkJumpToAddr
 >
 >  2. native code compiled with GCC, which defaults to Thumb on many
 >     systems
 >
 >  3. system libraries, which are Thumb on many distributions
 >
 > The solution which Erik implemented was to switch entirely to ARM. (1)
 > was addressed by changing the GHC, (2) was fixed by explicitly passing
 > -marm to GCC. I'm actually not sure the state of (3).
 >
 > Regardless, the solution to (2) is clearly upsetting your system. This
 > is odd as I was under the impression that all non-microcontroller ARM
 > devices support the full ARM instruction set (the Cortex devices, on the
 > other hand, only support Thumb but are totally incapable of running GHC
 > at all). What hardware and distribution is this?
 >
 > Cheers,
 >
 > ~ Ben
 >

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11058#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list