
Simon Marlow
One concern that I have is that the RTS's header file structure (where everything is #include'd via Rts.h) doesn't work very well for this particular use, where we have a group of headers specific to a particular subsystem (e.g. linker/*.h). Consequently, these header files currently lack enclosing `extern "C"` blocks (as well as Begin/EndPrivate blocks). It would be easy to add these, but I was curious to hear if others had any better ideas.
Not sure I understand the problem. Rts.h is for *public* APIs, those that are accessible outside the RTS, but these APIs are mostly *internal*. The public-facing linker API is in includes/rts/Linker.h.
We don't need extern "C" in the internal header files because we're never going to include these from C++ (we do in the external ones though). But we should have BeginPrivate.h/EndPrivate.h in the internal headers.
Ahh, right; silly me. I'll just add the necessary BeginPrivates and hopefully we get this merged after Karel reports back with the results of his testing. Thanks Simon! Cheers, - Ben