GOFF | NOGOFF

Category

Object code control

Pragma equivalent

None.

Purpose

Instructs the compiler to produce an object file in the Generalized Object File Format (GOFF).

When the GOFF and OBJECT options are in effect, the compiler produces an object file in GOFF format.

When the NOGOFF and OBJECT options are in effect, the compiler produces an object file in XOBJ format.

Syntax

Read syntax diagramSkip visual syntax diagramNOGOFFGOFF

Defaults

  • NOGOFF
  • When XPLINK or LP64 is used, the default is GOFF.

Usage

The GOFF format supersedes the IBM® S/370 Object Module and Extended Object Module formats. It removes various limitations of the previous format (for example, 16 MB section size) and provides a number of useful extensions, including native z/OS® support for long names and attributes. GOFF incorporates some aspects of industry standards such as XCOFF and ELF.

When you specify the GOFF option, the compiler uses LONGNAME and CSECT() by default. You can override these default values by explicitly specifying the NOLONGNAME or the NOCSECT option.

When you specify the GOFF option, you must use the binder to bind the output object. You cannot use the prelinker to process GOFF objects.

Note: When using GOFF and source files with duplicate file names, the linker may emit an error and discard one of the code sections. In this case, turn off the CSECT option by specifying NOCSECT.

The usage status of this option is inserted in the object file to aid you in diagnosing a problem with your program.

IPA effects

The GOFF option affects the regular object module if you request one by specifying the IPA(OBJECT) option. This option affects the IPA-optimized object module generated when you specify the IPA(OBJECT) option.

The IPA information in an IPA object file is always generated using the XOBJ format.

The IPA link step merges and optimizes the application code, and then divides it into sections for code generation. Each of these sections is a partition. The GOFF option affects the object format of the code and data generated for each partition.

Information from non-IPA input files is processed and transformed based on the original format. GOFF format information remains in GOFF format; all other formats (OBJ, XOBJ, load module) are passed in XOBJ format.

Predefined macros

__GOFF__ is predefined to 1 when the GOFF compiler option is in effect.

Related information

For more information on related compiler options, see: