
It is possible that the problem is due to using a strange linker - can you tell whether it is Gnu ld (via gcc) or some other linker?
I don't know - I just run hmake -T.
Try gcc -v and ld -v for the version numbers.
Try adding another " "$NHC98LIBDIR/$MACHINE/Prelude$CFG.a
But I've already got those libraries included.
The linker determines dependencies by processing the link archives sequentially, but there are many long-chain cross-dependencies between Prelude.T.a and Runtime.T.a. Thus we need to add numerous copies of both archives to the sequence, to ensure the dependencies can be followed right to the end of the chain.
I've looked inside Prelude.a and PreludeT.a and I haven't found FN_Prelude_46mkSR there. So maybe the trouble is in the generated code?
Using 'nm PreludeT.a', you should find that FN_Prelude_46mkSR is defined in HatArchive.T.o. If it is not, can you check whether HatArchive.T.o is included in the archive at all? Regards, Malcolm