On 02/12/2009 21:08, Howard B. Golden wrote:
Hi Simon M.,
On Wednesday December 2, 2009, Simon Marlow wrote:
On 01/12/2009 06:49, Howard B. Golden wrote:
Mon Nov 30 22:12:34 PST 2009 [email protected]
* Fix GHC ticket 2615 (linker scripts in .so files)
This patch only applies to systems that use ELF format files.
The patch modifies the addDLL function so that it recognizes
"invalid ELF header" errors. If these occur, the file that was
opened is scanned for a linker script GROUP ( ... ) directive. If
found, the first file inside the GROUP ( ... ) will be sent to
dlopen. Any errors reported by dlopen then will be reported to the
caller.
Thanks Howard. I think the patch could do with a round of tweaks
before being pushed, comments below.
I will make the changes you suggest. Then I'll follow the full
validation process. I have done much of this already. I noticed that
there is only 1 failure: T1969. I don't think I can do anything about
that, so I plan to disregard it. Please confirm.
Correct, T1969 is currently failing (we're looking into it).
Can we rely on the availability of regex.h and POSIX regexes? Does
this need a configure test?
I don't know the answer to this. Isn't POSIX part of the baseline
assumption? If not, I would need some help with the autoconf changes,
since I haven't done any before.
I'll follow up to your other email about this.
We don't generally use atexit() in the RTS, all the cleanup has to be
done by hs_exit(). Typically each subsystem has an exitFoo() or
freeFoo() function called by hs_exit().
I'm uncertain about what I should do here. Should I simply remove the
atexit() and the callback code. Or should I somehow link it up to
hs_exit()?
You should make an exitLinker() function (which may just mean renaming
initLinkerCleanup()), and call it from hs_exit() in RtsStartup.c.
Remember to check init_linker_done, because the linker is only
initialised on demand.
Cheers,
Simon
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc