[GHC] #11036: powerpc/linux: undefined reference to `__sync_sub_and_fetch_8

GHC ghc-devs at haskell.org
Fri Oct 30 08:53:49 UTC 2015


#11036: powerpc/linux: undefined reference to `__sync_sub_and_fetch_8
----------------------------------------+----------------------------------
        Reporter:  erikd                |                Owner:  erikd
            Type:  bug                  |               Status:  new
        Priority:  normal               |            Milestone:  8.0.1
       Component:  Compiler             |              Version:  7.11
      Resolution:                       |             Keywords:
Operating System:  Linux                |         Architecture:  powerpc
 Type of failure:  Building GHC failed  |            Test Case:
      Blocked By:                       |             Blocking:
 Related Tickets:                       |  Differential Rev(s):  Phab:D1399
       Wiki Page:                       |
----------------------------------------+----------------------------------

Comment (by Erik de Castro Lopo <erikd@…>):

 In [changeset:"8ddf41744ea8b0c1d034f9c5e062b0112d3d3aff/ghc"
 8ddf4174/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="8ddf41744ea8b0c1d034f9c5e062b0112d3d3aff"
 Linker: Fix type in m32_free_internal

 The code:

     uint64_t c = __sync_sub_and_fetch((uint64_t*)addr, 1);

 was causing GCC to emit atomic instructions for 64 bit values which
 are not available on PowerPC. However, since PowerPC only has a 32
 bit address space, use of a 64 bit value is superflous.

 Switching the type from `uint64_t` to `uintptr_t` should simply do
 the correct thing on all 32 and 64 bit architectures.

 Reviewers: austin, bgamari, simonmar

 Subscribers: thomie

 Differential Revision: https://phabricator.haskell.org/D1399

 GHC Trac Issues: #11036
 }}}

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


More information about the ghc-tickets mailing list