[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