[GHC] #14311: PowerPC: Symbol already defined
#14311: PowerPC: Symbol already defined --------------------------------+---------------------------------------- Reporter: trommler | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.4.1 Component: Compiler | Version: 8.3 Keywords: | Operating System: Unknown/Multiple Architecture: powerpc | Type of failure: Building GHC failed Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: --------------------------------+---------------------------------------- Building HEAD I get the following error from the stage 1 compiler: {{{ /tmp/ghc9106_0/ghc_4.s:796:0: error: Error: symbol `.Lc2l' is already defined | 796 | .Lc2l: | ^ `gcc' failed in phase `Assembler'. (Exit code: 1) rts/ghc.mk:269: recipe for target 'rts/dist/build/Exception.o' failed }}} The relevant assembly code is: {{{ .section ".opd","aw" .align 3 .LcV: .quad ..LcV,.TOC.@tocbase,0 .previous .type .LcV, @function ..LcV: .LcV: ld 31, 8(22) }}} Note: The label has changed during recompile. This affects powerpc64 (ELF 1.9) and powerpc64le (ELF 2.0) on Linux and I suspect also AIX. This could be a fallout from: changeset:8b007abbeb3045900a11529d907a835080129176 -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14311> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#14311: PowerPC: Symbol already defined ----------------------------------------+------------------------------- Reporter: trommler | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.4.1 Component: Compiler | Version: 8.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: powerpc Type of failure: Building GHC failed | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ----------------------------------------+------------------------------- Comment (by Ben Gamari <ben@…>): In [changeset:"f8e7fece58fa082b8b5a87fb84ffd5d18500d26a/ghc" f8e7fece/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="f8e7fece58fa082b8b5a87fb84ffd5d18500d26a" Fix PPC NCG after blockID patch Commit rGHC8b007ab assigns the same label to the first basic block of a proc and to the proc entry point. This violates the PPC 64-bit ELF v. 1.9 and v. 2.0 ABIs and leads to duplicate symbols. This patch fixes duplicate symbols caused by block labels In commit rGHCd7b8da1 an info table label is generated from a block id. Getting the entry label from that info label leads to an undefined symbol because a suffix "_entry" that is not present in the block label. To fix that issue add a new info table label flavour for labels derived from block ids. Converting such a label with toEntryLabel produces the original block label. Fixes #14311 Test Plan: ./validate Reviewers: austin, bgamari, simonmar, erikd, hvr, angerman Reviewed By: bgamari Subscribers: rwbarton, thomie GHC Trac Issues: #14311 Differential Revision: https://phabricator.haskell.org/D4149 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14311#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#14311: PowerPC: Symbol already defined ----------------------------------------+------------------------------- Reporter: trommler | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: 8.4.1 Component: Compiler | Version: 8.3 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: powerpc Type of failure: Building GHC failed | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ----------------------------------------+------------------------------- Changes (by bgamari): * status: new => closed * resolution: => fixed -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14311#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC