[project @ 2002-01-29 02:41:21 by sof]
authorsof <unknown>
Tue, 29 Jan 2002 02:41:21 +0000 (02:41 +0000)
committersof <unknown>
Tue, 29 Jan 2002 02:41:21 +0000 (02:41 +0000)
commit9efa71070da30418a29c6eef85c51d647d6cf43d
tree1a4223efb2dbe11b13e85200c0f51f9bd5c78797
parent7bf9669c948c96eddb1b44d8ccef792f84ff7861
[project @ 2002-01-29 02:41:21 by sof]
PEi386/COFF: handle relocation overflows, i.e., if a section is
marked with the flag (MY)IMAGE_SCN_LNK_NRELOC_OVFL, then
the first entry in the relocation table holds the 32-bit
relocation count rather than 16-bit number in the section header.
Apparently, a version of the MS PE spec exists that spells this
out, but haven't been able to locate it (perhaps people on the
'inside' could try to locate an up-to-date version...?) winnt.h
is clear enough about it though (as is the GNU libbfd sources).

This is the Right Way to compute the relocation count, but
unfortunately libbfd / GNU ld is generating bogus output
when the reloc field overflows (causing objdump/nm etc. to
crash when trying to read the generated output!) Looking into it.

Once this has been cleared up/fixed, the splitting up of HSstd.o
(and HSwin32.o) should be a thing of the past. I've taken the
liberty of disabling the suspiciously-large-reloc-section test
already.
ghc/rts/Linker.c