summaryrefslogtreecommitdiff
path: root/rts/RtsMain.h
Commit message (Collapse)AuthorAgeFilesLines
* Declare RTS-private prototypes with __attribute__((visibility("hidden")))Simon Marlow2009-08-051-1/+1
| | | | | | | | | | This has no effect with static libraries, but when the RTS is in a shared library it does two things: - it prevents the function from being exposed by the shared library - internal calls to the function can use the faster non-PLT calls, because the function cannot be overriden at link time.
* Keep C main separate from rts lib and link it in for standalone progsDuncan Coutts2009-05-151-0/+18
Previously the object code for the C main function lived in the rts lib, however this is a problem when the rts is built as a shared lib. With Windows DLLs it always causes problems while on ELF systems it's a problem when the user decides to use their own C main function rather than a Haskell Main.main. So instead we now put main in it's own tiny little static lib libHSrtsmain.a which we install next to the rts libs. Whenever ghc links a program (without -no-hs-main) then it also links in -lHSrtsmain. For consistency we always do it this way now rather than trying to do it differently for static vs shared libraries.