Link-editing multiple object modules

z/OS® XL C generates a CEESTART CSECT at the beginning of the object module for any source program that contains the function main() (and for which the START compiler option was specified) or a function for which a #pragma linkage (name, FETCHABLE) preprocessor directive applies. When multiple object modules are link-edited into a single load module, the entry point of the resulting load module is resolved to the external symbol CEESTART. Runtime errors occur if the load module entry point is forced to some other symbol by use of the linkage editor ENTRY control statement.

If a C main() function is link-edited with object modules produced by C, other language processors or by assembler, the module containing the C main() must be the first module to receive control. You must also ensure that the entry point of the resulting load module is resolved to the external symbol CEESTART. To ensure this, the input to the linkage editor can include the following linkage editor ENTRY control statement:
ENTRY CEESTART

If you are building a DLL, you may need to use the ENTRY control statement.