[GHC] #1167: mangler makes global symbol disappear on linux-ppc

GHC trac at galois.com
Mon Mar 5 16:30:18 EST 2007


#1167: mangler makes global symbol disappear on linux-ppc
---------------------------------+------------------------------------------
 Reporter:  arekm at pld-linux.org  |          Owner:         
     Type:  bug                  |         Status:  new    
 Priority:  normal               |      Milestone:  6.6.1  
Component:  Compiler             |        Version:  6.6    
 Severity:  normal               |     Resolution:         
 Keywords:                       |     Difficulty:  Unknown
 Testcase:                       |   Architecture:  powerpc
       Os:  Linux                |  
---------------------------------+------------------------------------------
Changes (by igloo):

  * milestone:  => 6.6.1

Old description:

> Enviroment: linux-ppc, very fresh software, upcoming gcc 4.2, ghc 6.6. I
> was trying to build alex software which ended with:
> GNU ld version 2.17.50.0.12 20070128
>   Supported emulations:
>    elf32ppclinux
>    elf32ppc
>    elf32ppcsim
> ghc3729_0.hc:(.text+0x104a): undefined reference to
> `ParseMonad_alexStartPos_closure'
> ghc3729_0.hc:(.text+0x104e): undefined reference to
> `ParseMonad_alexStartPos_closure'
> dist/build/alex/alex-tmp/Info.o: In function `shII_info':
> ghc3729_0.hc:(.text+0x106e): undefined reference to `Util_lvl1_closure'
> ghc3729_0.hc:(.text+0x1072): undefined reference to `Util_lvl1_closure'
> ghc3729_0.hc:(.text+0x107a): undefined reference to `Util_lvl1_closure'
> dist/build/alex/alex-tmp/Info.o:(.rodata+0x40): undefined reference to
> `Util_lvl1_closure'
>

> The problem is that these symbol disappear after going through mangler
> (so problem is visible only when -O2 is used)
>

> In short the problem is that:
> .globl ParseMonad_alexStartPos_closure
> disappears.

New description:

 Enviroment: linux-ppc, very fresh software, upcoming gcc 4.2, ghc 6.6. I
 was trying to build alex software which ended with:
 {{{
 GNU ld version 2.17.50.0.12 20070128
   Supported emulations:
    elf32ppclinux
    elf32ppc
    elf32ppcsim
 ghc3729_0.hc:(.text+0x104a): undefined reference to
 `ParseMonad_alexStartPos_closure'
 ghc3729_0.hc:(.text+0x104e): undefined reference to
 `ParseMonad_alexStartPos_closure'
 dist/build/alex/alex-tmp/Info.o: In function `shII_info':
 ghc3729_0.hc:(.text+0x106e): undefined reference to `Util_lvl1_closure'
 ghc3729_0.hc:(.text+0x1072): undefined reference to `Util_lvl1_closure'
 ghc3729_0.hc:(.text+0x107a): undefined reference to `Util_lvl1_closure'
 dist/build/alex/alex-tmp/Info.o:(.rodata+0x40): undefined reference to
 `Util_lvl1_closure'
 }}}

 The problem is that these symbol disappear after going through mangler (so
 problem is visible only when -O2 is used)


 In short the problem is that:
 {{{
 .globl ParseMonad_alexStartPos_closure
 }}}
 disappears.

Comment:

 I'm putting this in the 6.6.1 milestone for now as it looks pretty bad if
 it bites often, but I'm not sure if anyone's actively working on the
 registerised Linux/PPC port, so we might well end up punting on it.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1167>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the Glasgow-haskell-bugs mailing list