cvs commit: fptools/ghc/compiler/nativeGen
PositionIndependentCode.hs PprMach.hs
Wolfgang Thaller
wolfgang at haskell.org
Fri Jan 14 17:12:57 EST 2005
wolfgang 2005/01/14 14:12:57 PST
Modified files:
ghc/compiler/nativeGen PositionIndependentCode.hs PprMach.hs
Log:
When -dynamic is specified but -fPIC is not, generate code that works around
the ELF dynamic linker's misguided attempts to keep the main program unaware
of dynamic linking.
This involves generating indirect references and computed jumps for position
dependent code, too, and making all constant data sections writable in order
to persuade ld to not use "COPY" relocations.
Tested on powerpc-linux; in theory, it also applies to i386-linux, but other
parts of the PIC story are missing there.
Note that the writable-const-data hack could be improved a bit by
distinguishing between "really" constant data and "relocatable" constant data,
which would be a nice thing to do anyway.
Revision Changes Path
1.6 +61 -37 fptools/ghc/compiler/nativeGen/PositionIndependentCode.hs
1.4 +10 -1 fptools/ghc/compiler/nativeGen/PprMach.hs
More information about the Cvs-ghc
mailing list