Linker reorganization

Ben Gamari ben at
Fri Oct 28 13:08:58 UTC 2016

Simon Marlow <marlowsd at> writes:

>> 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!


- Ben
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 454 bytes
Desc: not available
URL: <>

More information about the ghc-devs mailing list