Make constructor names in info tables position independent
authorwolfgang.thaller@gmx.net <unknown>
Thu, 8 Mar 2007 02:05:03 +0000 (02:05 +0000)
committerwolfgang.thaller@gmx.net <unknown>
Thu, 8 Mar 2007 02:05:03 +0000 (02:05 +0000)
commitb648333f6b4c78f7ac1528cd9f780221a058591e
tree8f3e32dba9204b81bc34ca4e7c3e5f40afd7dd3a
parenta64842212caee26b992f32fbf451fad7edb17a18
Make constructor names in info tables position independent

Info tables, like everything else in the text section, MUST NOT contain
pointers. A pointer is, by definition, position dependent and is therefore
fundamentally incompatible with generating position independent code.

Therefore, we have to store an offset from the info label to the string
instead of the pointer, just as we already did for other things referred
to by the info table (SRTs, large bitmaps, etc.)
compiler/codeGen/CgInfoTbls.hs
compiler/ghci/ByteCodeItbls.lhs
compiler/ghci/Linker.lhs
driver/mangler/ghc-asm.lprl