About IBM z/OS Metal C

The XL C METAL compiler option generates code that does not require access to the Language Environment® support at run time. The METAL option provides C-language extensions that allow you to specify assembly statements that call system services directly. Using these language extensions, you can provide almost any assembly macro, and your own function prologs and epilogs, to be embedded in the generated HLASM source file. When you understand how the METAL-generated code uses MVS™ linkage conventions to interact with HLASM code, you can use this capability to write freestanding programs.

Because a freestanding program does not depend on any supplied runtime environment, it must obtain the system services that it needs by calling assembler services directly. For information about how METAL-generated code uses MVS linkage conventions, see Metal C and MVS linkage conventions. For information about embedding assembly statements in the METAL-generated HLASM source code, see Inserting HLASM instructions into the generated source code.

You do not always have to provide your own libraries. IBM® supplies a subset of the XL C runtime library functions. This subset includes commonly used basic functions such as malloc(). For more information, see C functions available to Metal C programs.
Note: You can use these supplied functions or the ones that you provide yourself.