clinuxcompilation

What's the usage of Mcrt1.o and Scrt1.o?


I'm sticking on the usage of following two files, which are Mcrt1.o and Scrt1.o. Can anyone help to let me know what are those two files for. How to use it? Let's take gcrt1.o for example, which is quite useful when compile with -pg option for performance test. Thanks


Solution

  • The short answer: Mcrt1.o is used when you're profiling your code, while Scrt1.o is used when generating PIEs (position-independent executables).


    Mode detail below.

    Files of the form *crt*.o are invariably C runtime startup code (the bulk of the C runtime tends to exist in libraries, the startup code is an object file as it's always needed).

    One implementation had this description of the various types (originally extracted from a web site that has now disappeared) is below.

    And some others: