Fix #4867 (updated; corrects address calculation)
authorgwright@antiope.com <unknown>
Mon, 14 Feb 2011 15:09:24 +0000 (15:09 +0000)
committergwright@antiope.com <unknown>
Mon, 14 Feb 2011 15:09:24 +0000 (15:09 +0000)
commit796a3b3637f61ae04d2f9bfdb7937cd796272f72
treebdacd04c262d6d4215c28b3252ccca387fef2efb
parent42ce2cffe25f8e94b6f5735955ba6d8390d7fbd6
Fix #4867 (updated; corrects address calculation)

This is a corrected fix for ticket #4867, "ghci displays negative floats
incorrectly".  The previous patch sometimes gave incorrect offset to values
in the __const section of the __TEXT segment.  The new patch arranges a zero
fixup for non-external, not-global offset table signed relocations.  This
is apparently what is required, though documentation on this point is scarce.

With this change Doubles are negated properly, because the sign bit mask
is loaded from the correct offset.  This was tested both on HEAD and the 7.0
branch.
rts/Linker.c