Skip to content

Compiler Configuration File

The Compiler Configuration File describes compiler behaviors, and is checked by the compiler cobc at compile time.

The default compiler configuration file, default.conf, is located in $COBOLITDIR/config on Windows-based systems, and on $COBOLITDIR/share/COBOL-it/config on UNIX/Linux-based systems.

When modifying compiler configuration flags included in any of the compiler configuration files provided at installation time, care must be taken when upgrading the COBOL-IT compiler, as these files will be overwritten at installation time. This problem can be avoided by renaming files which have been modified, and using the -conf=<myconf.conf> compiler flag.

COBOL-IT also provides a number of sample compiler configuration files, which contain settings that enhance compatibility with different COBOLs.

These include:

COBOL Configuration File
Bs2000 bs2000.conf
COBOL 2002 COBOL2002.conf
COBOL 85 COBOL85.conf
IBM ibm.conf
Micro Focus mf.conf
MVS mvs.conf

The compiler can be directed to use any of these files by using the -std compiler flag. The -std compiler flag will recognize the filename (without extension) of any of the provided compiler configuration files as a parameter, as follows:

>cobc -std=bs2000 sample.cbl

You may create your own compiler configuration file, and name it whatever you wish.

To direct the compiler to reference a renamed compiler configuration file, locate your renamed compiler configuration file in the $COBOLITDIR/config on Windows-based systems, and on $COBOLITDIR/share/config on UNIX/Linux-based systems., and use the -conf compiler flag as follows:

>cobc -conf=myconf.conf

To facilitate the creation of your own compiler configuration file, you may use the include phrase to indicate that you wish to include all of the settings of a named compiler configuration file, as follows:

       include default.conf
       assign-clause=mf
       binary-byteorder=native

Some compiler configuration flags may also be configured using the $SET statement within the COBOL source. See the $SET Compiler Configuration Flags section below for a list.

Compiler Configuration Flags

Brief descriptions, and valid settings of supported compiler configuration flags are documented below:

77-opt:[yes/no]

Default is: 77-opt:no

When set to yes:
Optimizes the use of integers stored in USAGE DISPLAY or PACKED fields in level 77 data items. The 77-opt optimizations are enabled by use of the -O compiler flag.

accept-but-ignore-comp6-signed:[yes/no]

Default is: accept-but-ignore-comp6-signed: no

Affects compilation of data items described as signed, with usage COMP-6.

When set to yes:
COMP-6 defined as signed (PIC S9) are compiled as non signed.

accept-with-auto:[yes/no]

Default is: accept-with-auto:no

When set to yes:
Causes the WITH AUTO clause to be assumed by default on a field-level ACCEPT statement.

When set to no:
The WITH TAB clause is assumed by default on a field-level ACCEPT statement.

accept-with-update:[yes/no]

Default is: accept-with-update:no

When set to yes:
All field-level ACCEPT statements are interpreted as containing the WITH UPDATE clause.

align-8:[yes/no]

Default is: align-8:no

On HP Itanium based systems this flag is always enabled

When set to yes:
Aligns 01-level and 77-level data on 8 byte boundaries.

When set to no:
Aligns 01-level and 77-level data on 4-byte boundaries.

all-external-call:[yes/no]

Default is: all-external-call:no

Internal use only. Causes all CALL statements to be considered EXTERNAL. This should not be changed.

all-external-link:[yes/no]

Default is: all-external-link:no

When set to yes:
Causes the targets of the CALL statement to all be assumed to be external-links.

This can improve performance at runtime by optimizing the resolution of the CALL statement.

alloc-unused-linkage:[yes/no]

Default is: alloc-unused-linkage:no

When set to yes:
Causes the compiler to allocate static memory for level 01 fields in the Linkage Section that are not used in either a USING clause or an ENTRY clause.

When set to no:
If level 01 fields in the Linkage Section are not used in either a USING clause or an ENTRY clause, these fields are initialized to NULL, and no memory is allocated for them.

Note that usage of a field for which no static memory has been allocated will provoke a Memory Fault. For cases such as described above, where static memory has not been allocated at compile time, it is possible to programmatically allocate static memory to an unused linkage field using the SET [ linkage field ] to ADDRESS OF [ data-pointer ] statement, and avoid the Memory Fault condition.

as400-like :[yes/no]

Default is: as400-like:no

Causes the LIKE clause to act compatibly with the AS400 implementation of the LIKE clause.

When set to yes:
A field declared with the LIKE clause is assumed to be described as PIC X (other field's byte size).

assign-clause: [ COBOL2002 / mf / ibm / external ]

Default is: assign-clause:mf

Improves compatibility with named COBOL on compilation of ASSIGN clause.

When set to external:
Targets of all all ASSIGN causes are considered to be EXTERNAL.

auto-initialize:[yes/no]

Default is: auto-initialize:yes

Affects automatic initialization behavior.

When set to yes:
Working-storage is automatically initialized when the program is loaded into memory.

auto-load-symb:[yes/no]

Default is: auto-load-symb:yes

When set to yes:
Provides additional control, as regards static symbol definition, by causing the static.symb and user.symb files to be automatically loaded with the compiler configuration file.

static.symb is provided with the compiler distribution, and should not be changed by the user. Static.symb includes symbols declared by Pro*Cob and Tuxedo. Note that it is overwritten when the compiler is updated.

user.symb is user-definable and may be placed in the config directory of the COBOL-IT installation, or in the current directory. If user.symb is missing, no error is generated.

Both static.symb and user.symb files may include static-link declarations.

autolock:[yes/no]

Default is: autolock:no

When set to yes:
Sets default for SELECT to LOCK MODE IS AUTOMATIC

bdb:[yes/no]

Default is: bdb:no

When set to yes:
Activates the usage of Oracle Berkeley DB isam files.

bin-opt:[yes/no]

Default is: bin-opt:no

When set to yes:
Enables binary operation optimization. The -bin-opt optimizations are enabled by use of the -O compiler flag.

bin-opt-strict:[yes/no]

When set to yes:
Causes -fbin-opt binary operation optimization to be strictly respected.

binary-byteorder: native / big-endian

Default is: binary-byteorder:big-endian

Defines the binary byte order of USAGE COMPUTATIONAL data items.

On little-endian platforms like x86, binary-byteorder should be set to "native".

Note that Big-Endian refers to a convention for the storage of integers in memory in which the most significant bytes are stored in the bytes with the lower addresses. The integer 256 is stored in Big- Endian format, as follows: 00000001 00000000.

Little-Endian refers to a convention of or the storage of integers in memory in which the least significant bytes are stored in the bytes with the lower addresses. The integer 256 is stored in Little-Endian format, as follows: 00000000 00000001.

The Native option provides the ability to use the "Endianness" of the native processor.

"Endianness" is determined by the Processor of your computer. A simple rule of thumb is that if you have an x86 processor, your platform has a little-endian data storage convention. Otherwise, you most likely have a big-endian data storage convention. Check with your system administrator if you have any questions.

binary-size: 2-4-8 / 1-2-4-8 / 1-8

Default is: binary-size:1-2-4-8

Describes relationship between PIC description and storage bytes of a binary data item.

Binary byte size defines the allocated bytes according to number associated with PIC 9 clause.

Value: signed unsigned bytes
'2-4-8' 1-4 1 -4 2
5-9 5 -9 4
10-18 10 -18 8
'1-2-4-8' 1-2 1 -2 1
3-4 3 -4 2
5-9 5 -9 4
10-18 10 -18 8
'1--8' 1-2 1 - 2 1
3-4 3 - 4 2
5-6 5 - 7 3
7-9 8 - 9 4
10-11 10 - 12 5
12-14 13 - 14 6
15-16 15 - 16 7
17-18 17 - 18 8

binary-truncate:[yes/no]

Default is: binary-truncate:yes

Governs the behavior of the runtime when binary data is truncated.

When set to yes:
The default value of yes corresponds to the behavior of the TRUNC compiler directive. The TRUNC compiler directive causes truncation to be governed by the number of digits in the PICTURE clause, when moving data into data items described as COMP, BINARY, or COMP-4.

When set to no:
The value of no corresponds to the behavior of the NOTRUNC compiler directive. The NOTRUNC compiler directive causes truncation to be governed by the capacity of allocated storage when moving data into data items described as COMP, BINARY, or COMP-4.

bitfield-first-is-lsb: [yes/no]

Default is: bitfield-first-is-lsb:no

call-comp5-as-comp:[yes/no]

Default is: call-comp5-as-comp:no

When set to yes:
Affects the behavior of the CALL statement. On little-endian platform (intel Linux, Windows) when a call USING clause contains a literal. When set to yes, causes the literal to be copied as a COMPUTATIONAL value, rather than as a COMP-5 value.

Example:
In the statement:

CALL "subprogram" USING 1234.

The literal 1234 is passed as a COMP value when call-comp5-as-comp is set to yes. Otherwise, the literal 1234 is passed as a COMP-5 value.

call-lowercase: [yes/no]

Default is: call-lowercase:no

The call-lowercase compiler configuration flag affects the handling of literals that are the target of a CALL statement. As an example, consider the literal "MyProg" in the statement: CALL "MyProg".

When set to yes:
All of the characters in the literal "MyProg" are converted to lowercase

When set to no (the default):
This setting is ignored.

call-opt: [yes/no]

Default is: call-opt:no

When set to yes:
Enables CALL statement optimization. Programs containing CANCEL statements should not be compiled with call-opt:yes.

call-uppercase: [yes/no]

Default is: call-uppercase:no

The call-uppercase compiler configuration flag affects the handling of literals that are the target of a CALL statement. As an example, consider the literal "MyProg" in the statement: CALL "MyProg".

When set to yes:
All of the characters in the literal "MyProg" are converted to uppercase

When set to no (the default):
This setting is ignored.

carealia-sign: [yes/no ]

Default is: carealia-sign:no

When set to yes:
The carealia-sign compiler configuration flag causes signed (PIC S9) variables to be stored according to CA-REALIA sign storage conventions. For more detail, see -fcarealia-sign compiler flag documentation.

C-cmd-line:[yes/no]

Default is: C-cmd-line:no

When set to yes:
When used with -x, causes the program to receive command line parameters as though they were given in C. In this case, command line parameters are read as they would be through a "C" interface.

For example: (int argc , char **argv)

C-data-init:[yes/no] [ Internal use only ]

Default is: C-data-init:no

Controls if the C data structure created by the compiler is initialized in the source (at compilation time) or at runtime. This should not be changed.

check-linkage-bound: [yes/no]

Default is: check-linkage-bound:yes

checkpoint: [yes/no]

Default is: checkpoint:no

When set to yes:
Enables setting of checkpoints. Program state is saved at checkpoints, and can be reloaded. For more details on the usage of the checkpoint flag, see the Guidelines for use of Checkpoints.

cics: [yes/no]

Default is: cics:no

When set to yes:
The compiler generates CICS-compliant code.

cmp-inline:[yes/no]

Default is: cmp-inline:no

When set to yes:
Causes comparisons to be inlined in the C code instead of through calls to the runtime library when possible.

cmp-opt:[yes/no]

Default is: cmp-opt:yes

The cmp-opt compiler flag activates optimizations when comparing literals with variables.

When set to no: This functionality is disabled.

cobol-lines: [yes/no]

Default is: cobol-lines: no

When set to yes:
When compiling with gcc, line directives corresponding to COBOL source code line numbers are added to the "C" source code.

codepage: <codepage-id>

Names the default codepage to be used.

Example: codepage:1252

See compiler option -codepage for more details.

comp5-byteorder: [native/big-endian]

Default is: comp5-byteorder:native

Sets the byte ordering used for COMP-5 data.

When set to native:
A little-endian byte ordering is set.

When set to big-endian:
A big-endian byte ordering is set.

compat-display-to-int:[yes/no]

Default is: compat-display-to-int:no

When set to yes:
Provides compatibility with older versions of COBOL-IT Compiler Suite (prior to version 3.10.5) as regards display to int functionality.

complex-odo:[yes/no]

Default is: complex-odo:no

The compiler flag complex-odo is now obsolete. OCCURS DEPENDING ON is always considered to be complex.

compute-ibm:[yes/no]

Default is: compute-ibm:no

Beginning with version 3.7.20 the -fcompute-ibm compiler flag is used by default.

When set to yes:
Causes arithmetic expressions (like a+B*c) in COMPUTE statements, and comparisons to use IBM COBOL defined rules for determining the number of decimals used in intermediate results. For details, please consult IBM documentation.LINK?

When set to no:
Causes the maximum number of decimals (machine-dependent, up to 37) to be used in intermediate results of arithmetic expressions in COMPUTE statements and comparisons.

compute-ibm-trunc: [yes/no]

When compute-ibm is set to yes:
Causes intermediate results to be truncated (default).

console-is-sysfile: [yes/no]

Default is: console-is-sysfile:no

When set to yes:
Causes DISPLAY .... UPON CONSOLE statements to be redirected to <file> when the compiler flag -sysout=<file> is used. This allows users to maintain a pre-2.11 behavior, which was determine to be defective.

constant: "key=value"

Provides a way to define constants that can be tested for purposes of conditional compilation. When using the constant "key=value" compiler flag, the conditional compilation below will test true.

       $if key=value
       $else 
       $end

continuation-line

Default is: continuation-line:no

When set to yes:
Allows a hyphen in column 7, with no following text, to be recognized as not being a continuation line. When set to yes, a hyphen in column 7, with no following text in quotes is not recognized as a continuation line.

!!! Note A hyphen in column 7, with following text, in quotes, is always recognized as a continuation line. For rules on the handling of continuation lines, see Line Continuations in the COBOL-IT COBOL Reference Manual.LINK

copy-default-leading:[yes/no]

Default is: copy-default-leading:no

When set to yes:
Affects the behavior of the COPY REPLACING statement.

When copy-default-leading is set to yes and when using the ==xxx== notation in a COPY REPLACING statement, the LEADING phrase is assumed by default. The LEADING phrase indicates that only the LEADING characters identified will be replaced if they match text in the copy file.

copy-exec-replace[yes/no]

Default is: copy-exec-replace:no

When set to yes:
Affects the behavior of the COPY REPLACING statement. When set to yes, and when a COPY REPLACING == xxx == statement is performed, text inside EXEC/END- EXEC blocks are also replaced if applicable.

copy-mark: [yes/no]

Default is: copy-mark:no

When set to yes:
Adds mark for begin/end of COPY In listing and preprocessed file

The copy marks are:

       *++SCOPY .\copy/sample.CPY ( beginning of COPY file )
       [ COPY file is listed here ]
       *--SCOPY .\copy/sample.CPY ( end of COPY file )

copy-partial-replace:[yes/no]

Default is: copy-partial-replace:no

When set to yes:
The copy-partial-replace compiler configuration flag increases the compatibility of the COPY REPLACING behavior with Micro Focus compiler behaviors.

When a pattern like COPY FIC1 REPLACING == WJXX- == BY == WJ03- == is processed:

  • If this flag is on, the preprocessor uses a partial replacement as defined by MF and ANSI2002 standard.
  • If it is off (the default) the IBM mainframe and ANSI85 standard is used.

The copy-partial-replace compiler compiler configuration flag corresponds to the compiler flag:

-fcopy-partial-replace

crtstatus-map:[cit-value] [user-value]

Allows the user to create their own CRT STATUS Map, as described below.

When crt-status-var is declared as UNSIGNED-INT, the runtime copies user-value directly into the crt-status-var. For this case, if you wish to remap the first four function keys, from CIT-Values of 1001 through 1004 to single digits 1 through 4, you would add the entries:

       crtstatus-map: 1001 1
       crtstatus-map: 1002 2
       crtstatus-map: 1003 3
       crtstatus-map: 1004 4

The use of hex notation (x00 through x127) to describe characters in user-value is supported. For this case, if you wish to remap the first four function keys, from CIT-Values of 1001 through 1004 to single digits 1 through 4, you would add the entries:

       crtstatus-map: 1001 x31
       crtstatus-map: 1002 x32
       crtstatus-map: 1003 x33
       crtstatus-map: 1004 x34

Hex notations permit the user to use values that fall outside of the normal alphanumeric range. More than one character can be represented using hex notation. For example, if you wish to map the cit-value of 1004 to the user-value of 1234 using hex notation, you would add the entry:

       crtstatus-map 1004 x31323334

In the example above, in the description of the user-value, after the "x", the values "31", "32", "33", "34" are concatenated to represent the string "1234". When using hex notations, it is recommended that the receiving field be described as PIC X(4).

If no crtstatus-map is defined, CRT STATUS values are converted to PIC 9(4) and copied into the crt-status-var.

ctree: [yes/no]

Default is: ctree:no

When set to yes:
Activates the usage of C-tree isam files.

ctree-field-numbering: [yes/no]

Default is: ctree-field-numbering:no

When set to yes:
Causes the CTREE XDD generator to generate a prefix F <field-number> before field names. Use with the -fgen-xdd compiler flag.

ctree-no-full-qualification: [yes/no]

Default is: ctree-no-full-qualification:no

When set to yes:
Affects the behavior of the gen-xdd compiler flag, causing it to not generate the fully qualified data names in the XDD description of the file. When using the ctree-no-full-qualification compiler flag with the gen-xdd compiler flag, the field name generated is:

xxx_<Field_Name>

Where:

  • xxx is a unique number (position in the structure),
  • <Field_Name> is the name of the data field, without any other prefix or suffix.

Use with the gen-xdd compiler flag.

curdir-include: [yes/no]

Default is: curdur-include:yes

When set to yes:
Causes COPY files to first be searched for in the current directory, before locations described with the -I <path>, or with environment variables. The COPY search is performed for files with default extensions, and with extensions described with the -ext compiler compiler flag. This is a default behavior.

When set to no:
Causes the search for a COPY file to not search for COPY file in the current directory, unless that directory is named by an -I compiler flag, or by a COB_COPY_DIR, or COBCPY environment variable.

datacompress: <integer>

Default is: datacompress:0

To enable compression in VBISAM, you must add:

$SET DATACOMPRESS "x"

before the SELECT statement.

"x" is a numeric integer literal, ranging from 1 to 9. Higher values produce better compression, at the expense of performance. A setting of 1 provides the best performance, a setting of 9 the best compression.

All users of an indexed file created with compression must re-compile their programs with the DATACOMPRESS compiler directive and use then same compression setting.

To disable compression (after having enabled it):

$SET NODATACOMPRESS

debug-exec: [yes/no]

Default is: debug-exec:no

When set to yes:
Affects the tracing of EXEC statements when debugging code that has been compiled with the integrated pre-processor (-preprocess). When using the Integrated Preprocessor Interface, the default behavior of the debugger is to -not- trace (display) the code generated by the external preprocessor. Only the original source EXEC statements are shown. The -fdebug-exec compiler flag enables the tracing (debugging) of the generated code.

debugging-line:[yes/no]

Default is: debugging-line:no

When set to yes:
Enables support for debugging lines. (Source lines that contain 'D' in indicator column)

debug-parser: [yes/no]

Default is: debug-parser:no

When set to yes:
Allows for the debugging of the parser. (maintainer use only).

decimal-optimize:[yes/no]

Default is: decimal-optimize:no

When set to yes:
Optimizes the conversion from DISPLAY/COMP-3 to binary values in COMPUTE statements. When several COMPUTE statement are in the same paragraph, the compiler will minimize the conversions from DISPLAY/COMP-3 to binary values for fields that are used (and not modified) in different statements in the same paragraph. Decimal-optimize is set to yes by default when using either the -O or -O2 compiler flags.

defaultbyte:[any integer]

Default is: defaultbyte:0

Corresponds to the DEFAULTBYTE directive. Sets the character used to initialize undeclared Working-Storage.

If specified, the integer value is the ASCII Value of default byte that will be used to fill memory of data items that have been declared in Working-Storage, and which do not have an VALUE declared. For example, to set the DEFAULTBYTE to an ASCII SPACE, the setting would be: defaultbyte: 32.

Note

The compiler configuration flag defaultbyte:[integer] requires that the use-defaultbyte:yes compiler configuration flag also be set.

defaultcall:[any integer]

Default is: defaultcall:0

Designates default call-convention used when no CALL-CONVENTION is mentioned in a CALL statement.

The integer value for defaultcall is a numeric literal representing the call convention. The call convention number is a 16-bit number defined as follows:

Bit Meaning
0-1 Unsupported
2 = 0 - RETURN-CODE is updated on exit
= 1 - RETURN-CODE is not updated on exit
3 = 0 -CALL is resolved dynamically at run time
= 1 -CALL is resolved statically at compilation time
4-5 Unsupported
6 Windows Only = 0 -CALL use standard C call conventions
= 1 -CALL use "STDCALL" WINAPI call conventions (used to call Windows standard API)

Typical values are:

       4      Do not modify RETURN-CODE
       72     Windows API Call.

disam:[yes/no]

Default is: disam:yes

When set to yes:
Activates the usage of DISAM files.

display-dos:[yes/no]

Default is: display-dos:no

When set to yes:
Causes DISPLAY statements to use CR/LF.

display-ibm:[yes/no]

Default is: display-ibm:no

When set to yes:
Affects the output of the DISPLAY Statement for numeric fields to be more compatible with IBM mainframe.

displaynumeric-edited-mf50: [yes/no]

Default is: displaynumeric-edited-mf50:yes
      displaynumeric-mf50:yes

Used with:

move-spaces-to-display-numeric:yes

causes numeric-edited fields to be allowed to be initialized to spaces.

displaynumeric-mf50:[yes/no]

Default is: displaynumeric-mf50:no

Enhances compatibility with Micro Focus behaviors for MOVE and INITIALIZE of data items described as USAGE DISPLAY NUMERIC.

When set to yes, the following are implied:

move-picx-to-pic9:mf50
move-spaces-to-displaynumeric:yes

When set to yes, compatibility with Micro Focus MOVE, INITIALIZE behaviours are enhanced.

Consider an example:

       ...
       77 NUMERIC-FLD PIC 99.
       ...
       INITIALIZE NUMERIC-FLD TO SPACE (NUMERIC_FLD: <sp><sp>)
       MOVE ZERO TO NUMERIC-FLD.       (NUMERIC-FLD: <sp>0\”)

div-check: [yes/no]

Default is: div-check:yes

When set to yes:
Enables the checking of divide operations when binary optimizations are turned on with the use of the -fbin-opt, or -O compiler flags. The effect is to cause divide-by-0 operations to generate an exception.

emulate-vms [yes/no]

Default is: emulate-vms:no

When set to yes:
Causes spaces to be stripped from filenames and adds suffix .DAT if needed.

exception checking

Runtime exception checking is enabled when compiling with -debug, for the following compiler configuration flags. For details about the Runtime Exception Checking flags, see the file exception.def, which is located in $COBOLITDIR\include\libcob, in your distribution.

EC-ALL:[yes/no]
EC-ARGUMENT:[yes/no]
EC-ARGUMENT-FUNCTION:[yes/no]
EC-ARGUMENT-IMP:[yes/no]
EC-BOUND:[yes/no]
EC-BOUND-IMP:[yes/no]
EC-BOUND-ODO:[yes/no]
EC-BOUND-OVERFLOW:[yes/no]
EC-BOUND-PTR:[yes/no]
EC-BOUND-REF-MOD:[yes/no]
EC-BOUND-SET:[yes/no]
EC-BOUND-SUBSCRIPT:[yes/no]
EC-BOUND-TABLE-LIMIT:[yes/no]
EC-DATA:[yes/no]
EC-DATA-CONVERSION:[yes/no]
EC-DATA-IMP:[yes/no]
EC-DATA-INCOMPATIBLE:[yes/no]
EC-DATA-INFINITY:[yes/no]
EC-DATA-INTEGRITY:[yes/no]
EC-DATA-NEGATIVE-INFINITY:[yes/no]
EC-DATA-NOT_A_NUMBER:[yes/no]
EC-DATA-PTR-NULL:[yes/no]
EC-FLOW:[yes/no]
EC-FLOW-GLOBAL-EXIT:[yes/no]
EC-FLOW-GLOBAL-GOBACK:[yes/no]
EC-FLOW-IMP:[yes/no]
EC-FLOW-RELEASE:[yes/no]
EC-FLOW-REPORT:[yes/no]
EC-FLOW-RETURN:[yes/no]
EC-FLOW-SEARCH:[yes/no]
EC-FLOW-USE:[yes/no]
EC-FUNCTION:[yes/no]
EC-FUNCTION-NOT-FOUND:[yes/no]
EC-FUNCTION-PTR-INVALID:[yes/no]
EC-FUNCTION-PTR-NULL:[yes/no]
EC-I-O:[yes/no]
EC-I-O-AT-END:[yes/no]
EC-I-O-EOP:[yes/no]
EC-I-O-EOP-OVERFLOW:[yes/no]
EC-I-O-FILE-SHARING:[yes/no]
EC-I-O-IMP:[yes/no]
EC-I-O-INVALID-KEY:[yes/no]
EC-I-O-LINAGE:[yes/no]
EC-I-O-LOGIC-ERROR:[yes/no]
EC-I-O-PERMANENT-ERROR:[yes/no]
EC-I-O-RECORD-OPERATION:[yes/no]
EC-IMP:[yes/no]
EC-IMP-ACCEPT:[yes/no]
EC-IMP-DISPLAY:[yes/no]
EC-LOCALE:[yes/no]
EC-LOCALE-IMP:[yes/no]
EC-LOCALE-INCOMPATIBLE:[yes/no]
EC-LOCALE-INVALID:[yes/no]
EC-LOCALE-INVALID-PTR:[yes/no]
EC-LOCALE-MISSING:[yes/no]
EC-LOCALE-SIZE:[yes/no]
EC-OO:[yes/no]
EC-OO-CONFORMANCE:[yes/no]
EC-OO-EXCEPTION:[yes/no]
EC-OO-IMP:[yes/no]
EC-OO-METHOD:[yes/no]
EC-OO-NULL:[yes/no]
EC-OO-RESOURCE:[yes/no]
EC-OO-UNIVERSAL:[yes/no]
EC-ORDER:[yes/no]
EC-ORDER-IMP:[yes/no]
EC-ORDER-NOT-SUPPORTED:[yes/no]
EC-OVERFLOW:[yes/no]
EC-OVERFLOW-IMP:[yes/no]
EC-OVERFLOW-STRING:[yes/no]
EC-OVERFLOW-UNSTRING:[yes/no]
EC-PROGRAM:[yes/no]
EC-PROGRAM-ARG-MISMATCH:[yes/no]
EC-PROGRAM-ARG-OMITTED:[yes/no]
EC-PROGRAM-CANCEL-ACTIVE:[yes/no]
EC-PROGRAM-IMP:[yes/no]
EC-PROGRAM-NOT-FOUND:[yes/no]
EC-PROGRAM-PTR-NULL:[yes/no]
EC-PROGRAM-RECURSIVE-CALL:[yes/no]
EC-PROGRAM-RESOURCES:[yes/no]
EC-RAISING:[yes/no]
EC-RAISING-IMP:[yes/no]
EC-RAISING-NOT-SPECIFIED:[yes/no]
EC-RANGE:[yes/no]
EC-RANGE-IMP:[yes/no]
EC-RANGE-INDEX:[yes/no]
EC-RANGE-INSPECT-SIZE:[yes/no]
EC-RANGE-INVALID:[yes/no]
EC-RANGE-PERFORM-VARYING:[yes/no]
EC-RANGE-PTR:[yes/no]
EC-RANGE-SEARCH-INDEX:[yes/no]
EC-RANGE-SEARCH-NO-MATCH:[yes/no]
EC-REPORT:[yes/no]
EC-REPORT-ACTIVE:[yes/no]
EC-REPORT-COLUMN-OVERLAP:[yes/no]
EC-REPORT-FILE-MODE:[yes/no]
EC-REPORT-IMP:[yes/no]
EC-REPORT-INACTIVE:[yes/no]
EC-REPORT-LINE-OVERLAP:[yes/no]
EC-REPORT-NOT-TERMINATED:[yes/no]
EC-REPORT-PAGE-LIMIT:[yes/no]
EC-REPORT-PAGE-WIDTH:[yes/no]
EC-REPORT-SUM-SIZE:[yes/no]
EC-REPORT-VARYING:[yes/no]
EC-SCREEN:[yes/no]
EC-SCREEN-FIELD-OVERLAP:[yes/no]
EC-SCREEN-IMP:[yes/no]
EC-SCREEN-ITEM-TRUNCATED:[yes/no]
EC-SCREEN-LINE-NUMBER:[yes/no]
EC-SCREEN-STARTING-COLUMN:[yes/no]
EC-SIZE:[yes/no]
EC-SIZE-ADDRESS:[yes/no]
EC-SIZE-EXPONENTIATION:[yes/no]
EC-SIZE-IMP:[yes/no]
EC-SIZE-OVERFLOW:[yes/no]
EC-SIZE-TRUNCATION:[yes/no]
EC-SIZE-UNDERFLOW:[yes/no]
EC-SIZE-ZERO-DIVIDE:[yes/no]
EC-SORT-MERGE:[yes/no]
EC-SORT-MERGE-ACTIVE:[yes/no]
EC-SORT-MERGE-FILE-OPEN:[yes/no]
EC-SORT-MERGE-IMP:[yes/no]
EC-SORT-MERGE-RELEASE:[yes/no]
EC-SORT-MERGE-RETURN:[yes/no]
EC-SORT-MERGE-SEQUENCE:[yes/no]
EC-STORAGE:[yes/no]
EC-STORAGE-IMP:[yes/no]
EC-STORAGE-NOT-ALLOC:[yes/no]
EC-STORAGE-NOT-AVAIL:[yes/no]
EC-USER:[yes/no]
EC-VALIDATE:[yes/no]
EC-VALIDATE-CONTENT:[yes/no]
EC-VALIDATE-FORMAT:[yes/no]
EC-VALIDATE-IMP:[yes/no]
EC-VALIDATE-RELATION:[yes/no]
EC-VALIDATE-VARYING:[yes/no]
EC-XML:[yes/no]
EC-XML-CODESET:[yes/no]
EC-XML-CODESET-CONVERSION:[yes/no]
EC-XML-COUNT:[yes/no]
EC-XML-DOCUMENT-TYPE:[yes/no]
EC-XML-IMPLICIT-CLOSE:[yes/no]
EC-XML-INVALID:[yes/no]
EC-XML-NAMESPACE:[yes/no]
EC-XML-RANGE:[yes/no]
EC-XML-STACKED-OPEN:[yes/no]

Compiling with the -debug compiler configuration flag enables all of the exception checks.

When not compiling with -debug, you can enable specific exception checks by setting the associated compiler configuration flag to yes in the compiler configuration file.

exclusivelock: [yes/no]

Default is: exclusivelock:no

Causes all files with no LOCK MODE clause in their SELECT statement to be declared Implicitly as LOCK MODE is EXCLUSIVE. For details on other compiler flags related to the treatment of LOCK MODE, see Guidelines for modifying default handling of the LOCK MODE.

exec-check: [yes/no]

Default is: exec-check:no

When set to yes:
Used with -fsyntax-only, checks the EXEC SQL/CICS/DLI syntax.

exit-program-forced:[yes/no]

Default is: exit-program-forced:yes

Affects behavior of the EXIT PROGRAM statement.

When set to yes:
The execution of the EXIT PROGRAM statement is forced, creating compatibility with non-ISO-standard behavior used by some COBOL compilers.

Note that ISO standards state that the EXIT PROGRAM should be ignored if the currently running program was not CALL'ed by a COBOL main program. However, many proprietary COBOL compilers never ignore the EXIT PROGRAM statement

When set to no:
The EXIT PROGRAM statement behaves according to ISO standards, which state that the EXIT PROGRAM should be ignored if the currently running program was not CALL'ed by a COBOL main program.

expand-exec-copy:[yes/no]

Default is: expand-exec-copy:no

When set to yes:
Causes the compiler to expand COBOL COPY statements inside EXEC ... END-EXEC blocks. This applies to both EXEC SQL and EXEC CICS blocks.

expand-sql-include:[yes/no]

Default is: expand-sql-include:no

When set to yes:
Used with -E, expands 'EXEC SQL INCLUDE <File name> END-EXEC in the -E output.

Causes [function name] to be declared as an external non-COBOL symbol.

Usage:

external-link: functionName

Using the compiler configuration flag external-link will cause the code "CALL 'function-name' " to generate more efficient code.

external-mapping:[yes/no]

Default is: external-mapping:yes

Allows files declared as EXTERNAL to be resolved using environment variables.

When set to yes:
File names of files declared as EXTERNAL are resolved at run time using environment variables. See filename-mapping for detail about name-mapping.

fast-figurative-move: [yes/no]

Default is: fast-figurative-move:yes

When set to yes:
Optimizes the performance of the MOVE of figurative constants (default).

fast-op: [yes/no]

Default is: fast-op:no

When set to yes:
Enables the runtime to use faster operations when manipulating data items declared as USAGE DISPLAY or USAGE COMP-3. Fast-op is set to yes by default when using either the -O or -O2 compiler flag.

fcdreg: [yes/no]

Default is: fcdreg:no

When set to yes:
Corresponds to the FCDREG compiler directive. This compiler flag provides functionality in applications that are using the EXTFH file system interface. For more detail see the description of the -ffcdreg compiler flag.

fdclear:[yes/no]

Default is: fdclear:no

When set to yes:
Causes the record to be INITIALIZE'd after each WRITE.

file-auto-external:[yes/no]

Default is: file-auto-external:yes

The -file-auto-external compiler flag affects the way that the compiler treats variables describing file-names for files described as EXTERNAL. For more detail, see the description of the -ffile-auto-external compiler flag.

filename-mapping:[yes/no]

Default is: filename-mapping: yes

Allows file names to be resolved at runtime using environment variables.

When set to yes:
File names are resolved at run time, checking for environment variables.

For example, given ASSIGN TO "DATAFILE", the actual file name will be

  1. the value of environment variable DD_DATAFILE or
  2. the value of environment variable dd_DATAFILE or
  3. the value of environment
  4. the literal "DATAFILE"

When set to no:
The value of the ASSIGN clause is treated as the filename.

first-tab-width:[any integer]

Default is: first-tab-width:8

Allows the user to define the size of the first tab.

Note

This is done to support the RM/COBOL standard that defines the first tab as 8 characters, and following tabs as 6 characters. To mimic this standard, you would set tab-width: 6, and first- tab-width: 8.

flat-extfh: <DRIVER NAME>

INFORMATION MISSING?

flat-extfh-lib: <library to use for this extfh driver>

The configuration file flags flat-extfh and flat-extfh-lib enable the usage of EXTFH drivers for Sequential and Relative files.

Note

When used, they should be used together.

fold-copy-lower: [yes/no]

Default is: fold-copy-lower:no

When set to yes:
Folds COPY file names to lower case.

fold-copy-upper:[yes/no]

Default is: fold-copy-upper:no

When set to yes:
Folds COPY file names to upper case.

fp-opt:[yes/no]

Default is: fp-opt:no

When set to yes:
Causes COMP-2 operations to be inlined in C, and maximizes the use of the CPU Floating Point unit.

free-thread-safe-data: [yes/no]

Default is: free-thread-safe-data:no

When set to yes:
When used with -thread-safe compiler flag, frees data in modules after a CANCEL event that is not a FULL-CANCEL.

fstatus-map:[cit-status] = [custom-status]

Allows COBOL-IT to map file IO statuses to custom values.

Example:

fstatus-map: 22 = 67

In the example above, when the file system returns status 22, the value will be translated to 67 before returning to the application. This flag may be repeated as many as needed for all expected translation.

full-cancel:[yes/no]

Default is: full-cancel:no

Affects the behavior of the CANCEL statement which, by default, causes a "Logical Cancel" to be implemented.

When set to yes:
All CANCEL statements performed in the running program cause a "Full Cancel" to be implemented.

This behavior can also be achieved by setting the runtime environment variable

COB_FULL_CANCEL to Y

Clarifications on the difference between a "Logical Cancel" and "Full Cancel":

  • In a "Logical Cancel", the Working-Storage Section is reset to its initial values. Working-Storage initial values are the values set the first time the module was loaded in memory.
  • In a "Full Cancel", the Working-Storage Section is reset to its initial values, and the module binary is unloaded, if possible, from memory. Unloading the module binary from memory is only possible if the module is not being used in another region/thread, and it has been loaded by a CALL STATEMENT (not by a preload of a shared library).

functions-all:[yes/no]

Default is: functions-all:no

When set to yes:
Allows use of intrinsic functions without the FUNCTION keyword.

Note

The mf.conf configuration file, which contains compiler configuration flags designed to match Micro Focus default behaviours, includes the setting functions-all: yes. Micro Focus users that require the use of the FUNCTION keyword should re-set this option to functions-all: no.

functions-all-intrinsic:[yes/no]

Default is: functions-all-intrinsic:no

When set to yes:
Allows use of intrinsic functions without the FUNCTION keyword.

gcc:[yes/no]

Default: no for all UNIX platforms

Default: yes for Linux platforms

When set to yes:
Generates gcc-compliant C code. The -fgcc compiler flag is enabled when COB_CC=gcc.

gcc-O-bug:[yes/no]

Default is: gcc-O-bug:no

When set to yes:
When using -O, some versions of gcc generate incorrect code. This bug is avoided by using the -gcc-O-bug compiler flag.

gcc-bug:[yes/no]

Default is: gcc-bug:no

When set to yes:
When using a gcc compiler on very large source files, the gcc compiler could enter an infinite loop. This bug is avoided by using the -gcc-bug compiler flag.

gcc-goto:[yes/no]

Default is: gcc-goto:no

When set to yes:
Generates gcc-computed goto code. The -fgcc-goto compiler flag is enabled when using the -fgcc compiler flag, or when COB_CC=gccUNFINSHED SENTENCE?

gcos-mode:[yes/no]

Default is: gcos-mode:no

When set to yes:
Causes the compiler to more closely emulate GCOS operations.

gen-xdd:[yes/no]

Default is: gen-xdd:no

When set to yes:
Causes the compiler to generate a c-TreeACE.xdd file.

global-typedef:[yes/no]

Default is: global-typedef:yes

When set to yes:
Causes TYPEDEFs to be GLOBAL for all nested program. If not set, TYPEDEFs are local to the current program.

ibm-listing-macro:[yes/no]

Default is: ibm-listing-macro:yes

When set to yes:
Enables IBM listing extensions (TITLE, SKIP1/2/3, EJECT ...) (default).

ibm-mainframe:[yes/no]

Default is: ibm-mainframe:no

When set to yes:
Causes the compiler and runtime to operate in an IBM Mainframe compatible mode.

ibm-sync:[yes/no]

Default is: ibm-sync:yes

When set to yes:
Applies SYNC attribute to group item if first elementary field is described with the SYNC attribute. (default).

When set to no:
The SYNC attribute is not applied to a group item if the first elementary field in the group item is described with the SYNC attribute.

identifier-length:<max-length>

Default is: identifier-length:0

The identifier-length compiler configuration flag allows compatibility to be achieved with other compilers, as regards the maximum length of a variable name.

When set to 0:
COBOL-IT has no limit on the length of a variable name, and will never test for this, or generate an error.

When set to a positive, non-zero value:
COBOL-IT will generate an error if the length of a variable name exceeds the the max-length named by identifier-length.

To achieve compatibility with the IBM COBOL compiler, for example, which generates an error when a variable name exceeds 30 characters, set identifier-length: 30.

ignore-global-in-local-storage: [yes/no]

Default is: ignore-global-in-local-storage:no

ignore-with-rollback: [yes/no]

Default is: ignore-with-rollback:no

implicit-init: [yes/no]

Default is: implicit-init:no

When set to yes:
Initializes the COBOL runtime system at runtime start-up.

Include-main: [yes/no]

Default is: include-main:no

When set to yes:
Causes main symbol to be included in module object when compiled with -c. For more details, see the documentation of the -finclude-main compiler flag.

incomplete-subscript:[yes/no]

Default is: incomplete-subscript:yes

Affects the behavior of MOVEs to table items.

When set to yes:
Consider a data item declared as 01 TABLE OCCURS 10 PIC X.

The phrase MOVE SPACE TO TABLE is equivalent to MOVE ALL SPACE TO TABLE.

index-optimize:[yes/no]

Default is: index-optimize:no

Improves performance where indexes in tables are evaluated and USAGE DISPLAY fields are used as indexes. In these cases, the index values are cached in a C integer field to improve performance.

As an example, consider the usage of the follow code:

       
       01 IxdA PIC 999 USAGE DISPLAY.
       01 IxdB PIC 999 USAGE DISPLAY.
       
       MOVE FLD-ARRAY(IxdA, ixdB) TO 
       MOVE FLD-ARRAY(IxdA, ixdB) TO 
       IF (FLD-ARRAY(IxdA, ixdB) 

When set to yes:
Benefits the performance of these MOVE and IF statements by keeping the actual value of the index in a binary C cache, thus avoiding conversion from DISPLAY (or COMP-3) to a binary value each time the index is evaluated in a statement. index-optimize is set to yes by default when using the -O or -O2 compiler flags.

indirect-redefines:[yes/no]

Default is: indirect-redefines:yes

Enables the REDEFINES of a variable that REDEFINES another variable.

When set to yes:
Redefines of a redefining variable is allowed.

When set to no:
Redefines of a redefining variable is not allowed.

Example of a redefines of a redefining variable:

       10 VALA PIC 99. 
       10 VALB PIC XX REDEFINES VALA. 
       10 VALC PIC 99 REDEFINES VALB.

initcall:<program-name>

The initcall compiler configuration flag names modules to be called immediately before the first statement of a program is executed.

Initialize-fd:[yes/no]

Default is: initialize-fd:no

When set to yes:
Causes records declared in the FD section to be initialized when the program is initially loaded in memory.

initialize-filler:[yes/no]

Default is: initialize-filler:no

Affects whether the INITIALIZE statement does or does not initialize fields declared as FILLER.

When set to yes:
When performing an INITIALIZE statement, FILLER fields defined in elementary fields are initialized to the default value or to data of the VALUE clause (depending on initialize-to-value.

When set to no:
When performing an INITIALIZE statement, FILLER fields are left unchanged.

initialize-opt:[yes/no]

Default is: initialize-opt:no

When set to yes:
Optimizes the implementation of the initial field initialization at runtime startup and the execution of the INITIALIZE statement by grouping field initializations wherever possible.

initialize-pointer:[yes/no]

Default is: initialize-pointer:yes

Affects whether elementary fields described as USAGE INDEX, USAGE POINTER, USAGE PROGRAM POINTER are initialized by the INITIALIZE verb.

When set to yes:
Elementary fields described as USAGE INDEX, USAGE POINTER, USAGE PROGRAM-POINTER are initialized by the INITIALIZE verb.

When set to no:
Elementary fields described as USAGE INDEX, USAGE POINTER, USAGE PROGRAM-POINTER are not initialized by the INITIALIZE verb.

initialize-to-value:[yes/no]

Default is: initialize-to-value:no

Affects the behavior of the INITIALIZE statement.

When set to yes, when performing an INITIALIZE statement:
If a data element contains a VALUE clause, then the INITIALIZE statement causes the data element to be INITIALIZE'd to the value defined in it's VALUE clause.

If a data element contains no VALUE clause, then the INITIALIZE statement causes the data element to be INITIALIZE'd using the defaults.

initial-2:[yes/no]

Default is: initial-2:no

When set to yes:
A program marked as IS INITIAL, on program entry, Working-Storage items with a VALUE clause are initialized, and Working-Storage items without a VALUE clause are undefined. The default is for a program marked as IS INITIAL, on program entry, to reinitialize all values in Working-Storage.

isam-extfh: <DRIVER NAME>

INFORMATION MISSING?

isam-extfh-lib: <library to use for this extfh driver>

The configuration file flags isam-extfh and isam-extfh-lib enable the usage of EXTFH drivers for Indexed ISAM files.

Note

When used, they should be used together.

Usage: isam-extfh: <DRIVER NAME>
    isam-extfh-lib: <library to use for this extfh driver>

keep-copy-statement:[yes/no]

Default is: keep-copy-statement:no

When set to yes:
Causes listings and preprocessed files to keep COPY statements.

keep-org-src-line:[yes/no]

Default is: keep-org-src-line:yes

When set to yes:
For use with the integrated pre-processor (-preprocess). Causes errors to be reported on the original source line.

keep-unused:[yes/no]

Default is keep-unused:yes

When set to yes:
Causes memory to be allocated for the field tree of level-01 and level-77 data items that are declared which contain sub-fields and in which none of these sub-fields is used.

When set to no:
Causes memory to not be allocated for the field tree of level-01 and level-77 data items that are declared which contain sub-fields and in which none of these sub-fields is used.

key-dup-always-22:[yes/no]

Default is: key-dup-always-22:no

Forces the runtime to return a file status of 22 on a duplicate key condition.

When set to yes:
When adding a record to an INDEXED file that is open in OUTPUT mode if a duplicate key condition is detected, the runtime will return a file status 22.

keycompress: [integer between 0 and 9 ]

Default is: keycompress:0

To enable key compression in VBISAM, you must add:

$SET KEYCOMPRESS "x"

before the SELECT statement.

"x" is a numeric integer literal, ranging from 1 to 9. Higher values produce better compression, at the expense of performance. A setting of 1 provides the best performance, a setting of 9 the best compression.

All users of an indexed file created with compression must re-compile their programs with the KEYCOMPRESS compiler directive and use the same compression setting.

To disable compression (after having enabled it):

$SET NOKEYCOMPRESS

larger-redefines-ok:[yes/no]

Default is: larger-redefines-ok:yes

Allows a larger variable to redefine a smaller variable

When set to yes:
Larger variables may redefine smaller variables.

When set to no:
Larger variables may not redefine smaller variables.

line-seq-dos:[yes/no]

Default is: line-seq-dos:no

Determines the end-of-record delimiter used on line sequential files.

When set to yes:
Line sequential records are terminated by a CR/LF.

When set to no:
Line sequential records are terminated by a CR.

line-seq-mf:[yes/no]

Default is: line-seq-mf:yes

Affects the storage of bytes with values less than 0x20 in line sequential files.

When set to yes: Line sequential files preface bytes with values less than 0x20 with 0x00. Thus, when you write the bytes X"1F", X"20" to a line sequential file, they will be recorded in the file as: X"00" X"1F" X"20".

line-seq-notrunc:[yes/no]

Default is: line-seq-notrunc:no

The line-seq-notrunc compiler configuration flag affects the behavior of the runtime when a line sequential record is read that is longer than the declared record length.

When set to yes:
The part of the record that exceeds the declared record length is returned as the next record.

When set to no (the default):
The record is truncated.

line-seq-recording-mode:[yes/no]

Default is: line-seq-recording-mode:no

Affects the interpretation of the RECORDING MODE F clause on line sequential files.

When set to yes:
The record is written to disk including all trailing spaces.

When set to no:
Trailing spaces are removed from the record before writing it to disk.

line-seq-unix:[yes/no]

Default is: line-seq-linux:no

Obsolete INFORMATION MISSING?

Default is: link-only:no

When set to yes:
Causes the main( ) symbol to not be generated, when used with -x. For use when the program entry point (main) is provided by an external object or library.

listing-sources: [yes/no]

Default is: listing-sources:no

When set to yes:
Informs the compiler that source is the result of program listing option (-t <file>).

local-storage-guard: 8 (internal use only)

Default is: local-storage-guard:8

This setting is for internal use only, and should not be changed.

loosy-comment[yes/no]

Default is: loosy-comment:no

When set to yes:
The compiler allows a * in column 8 to be used to mark a comment.

ls-expand-tab:[yes/no]

Default is: ls-expand-tab:yes

Implements the expansion of the tab character in line sequential files in a manner that is compatible with Micro Focus COBOL.

When set to yes:
Tab characters not preceded by a 0 are expanded to spaces. The tab stop is fixed to 8 characters.

ls-ignore-record-size:[yes/no]

Default is: ls-ignore-record-size:no

Determines whether or not trailing spaces are stripped from a line sequential file before writing it to disk.

When set to yes,

The RECORD SIZE clause for LINE SEQUENTIAL files is ignored. Trailing white spaces are stripped before WRITEing a record to disk.

When set to no:
The RECORD SIZE clause for LINE SEQUENTIAL files is used to determine the number of bytes written to disk on a WRITE statement. Trailing spaces are not stripped.

ls-utf16:[yes/no]

Default is: ls-utf16:no

Activates support for UTF16 storage, which affects the reading and writing of line sequential files.

When set to yes:

Line sequential file are read/stored in UTF16 format. When UTF16 Storage is active, end-of-record is read/written in UTF16 format in accordance with the setting of the -futf16-le compiler flag.

When used, the -futf16-le compiler flag causes fields declared as PIC N to be stored as UTF16-LE (Little Endian). Note that by default, fields declared as PIC N are stored as UTF16-BE (Big Endian).

X'000A' is the end-of-record for BE storage and X'0A00' is the end-of-record for LE storage.

The ls-utf16 compiler configuration flag may be set in source using the meta comment $SET before the SELECT statement:

$SET LSUTF16     Activate UTF16 storage
$SET NOLSUTF16    Deactivate UTF16 storage

main:[yes/no]

Default is: main:yes

When set to yes:
Generates main() symbol when used with -x (default).

main-as-object:[yes/no]

Default is: main-as-object:yes

When set to yes:
Generates main() symbol as object not in library (unix only) (default).

mainframe-vb:[yes/no]

Default is: mainframe-vb:no

When set to yes:
Causes WRITEs and READs of Variable Blocked files to assume formats compatible with the Mainframe Z/OS COBOL Format.

makesyn: oldvalue=newvalue

Provides a way to make a reserved word a synonym for another reserved word. The first word, represented by "oldvalue" becomes a synonym of the second word, represented by "newvalue". A common usage is to make COMP a synonym of COMP-5.

The entry makesyn: comp=comp-5 corresponds to the compiler flag -makesyn, used as follows:

>cobc -makesyn comp=comp-5 hello.cbl

The -makesyn: oldvalue=newvalue compiler flag provides compatibility with the MAKESYN directive.

A COBOL verb or field-name may be used as "old-value". The COBOL-IT compiler will replace all instances of this "old-value" with the "new-value" when compiling.

Caution

While this provides an equivalent capability to the implementation of the MAKESYN directive in other COBOLs, the order of the parameters is reversed. COBOL-IT requires that the "old-value" be listed first, and followed by the "new-value".

makesyn-patch-preprocess: [yes/no]

Default is: makesyn-patch-preprocess:no

When set to yes:
Causes the makesyn compiler flag to change the output of pre-processed files

manuallock: [yes/no]

Default is: manuallock:no

When set to yes:
Causes all files with no LOCK MODE clause in their SELECT statement to be declared Implicitly as LOCK MODE is MANUAL unless a SHARING clause in the SELECTstatement or in the OPEN statement indicates otherwise. For details on other -f compiler flags related to the treatment of LOCK MODE, see Guidelines for modifying default handling of the LOCK MODE.

max-literal-expand: 32 (internal use only)

Default is: max-literal-expand:32

This setting is for internal use only, and should not be changed.

mem-info: [yes/no]

Default is: mem-info:no

When set to yes:
Enables Dump of Working-Storage when runtime aborts.

mem-info: yes is enabled by the -g compiler flag and by the -debug compiler flag.

mfcomment: [yes/no]

Default is: mfcomment:yes

Treats lines with '*' or '/' in column 1 as comments.

mf-compat-parser: [yes/no]

Default is: mf-compat-parser:yes

When set to yes:
Causes COBOL-IT to match certain Micro Focus behaviors. These include:

  • Parsing of line continuation characters
  • Relaxed syntax check on RECORD CONTAINS phrase in the FD
  • Allowing level-66 and level-88 data names to have the same name as a paragraph or section

When set to no:
The compiler generates errors in these situations.

mf-ctrl-escaped-parser: [yes/no]

Default is: mf-ctrl-escaped-parser:yes

When set to yes:
Syntax parser is MF compatible with control character escaped by 0 (default).

mf-file-optional:[yes/no]

Default is: mf-file-optional:no

When set to yes:

Affects the file-status codes returned on files declared as OPTIONAL and OPEN in EXTEND.

The mf-file-optional: yes compiler configuration flag causes files declared as OPTIONAL and OPEN EXTEND to return file-status code "05" if the file is created and file-status code "00" if the file exists.

The mf-file-optional: yes compiler flag improves consistency with Micro Focus behaviors.

When set to no:
Files declared as OPTIONAL and OPEN EXTEND return file-status code "00" in both the case where the file did not exist, and was created, and the case where the file did exist.

The -mf-file-optional compiler configuration flag corresponds to setting -fmf-file-optional compiler flag.

mf-gnt: [yes/no]

Default is: mf-gnt:no

When set to yes:
Causes shared objects generated by the compiler to be created with the .gnt extension.

Note

The generated object IS NOT compatible with the .gnt objects produced by Micro Focus. This option is only used to reduce change in existing compilation scripts by causing object code to be generated with the same extensions.

mf-hostnumcompare:[yes/no]

Default is: mf-hostnumcompare:no

The mf-hostnumcompare compiler configuration entry provides compatibility with Micro Focus in cases where the HOST-NUMCOMPARE directive is used. The mf-hostnumcompare compiler configuration entry affects comparisons of USAGE DISPLAY numeric data items when one of the numeric data items in the comparison contain non-numeric data.

When set to yes:
The field containing numeric data redefined as an alphanumeric item of the same length, and this redefined data item is compared with the non-numeric value of the other numeric data item.

When set to no (the default):
The contents of the field containing numeric data are moved to an intermediate alphanumeric data item that is the same size as the field containing nonnumeric data before the comparison is performed. The content of this intermediate alphanumeric item is then compared to the non-numeric value of the other numeric data item.

mf-int:[yes/no]

Default is: mf-int:no

When set to yes:

Causes shared objects generated by the compiler to be created with the .int extension.

Note

The generated object IS NOT compatible with the .int objects produced by Micro Focus. This option is only used to reduce change in existing compilation scripts by causing object code to be generated with the same extensions.

mf-relativefile:[yes/no]

Default is: mf-relativefile:no

Allows for compatibility with Micro Focus relative files.

When set to yes:
The COBOL-IT runtime assumes the Micro Focus format for relative files for both READ and WRITE operations. The end-of-record marker for relative files is consistent with the setting of the compiler configuration flag line-seq-dos.

When line-seq-dos: yes, the end of record setting is CR/LF
When line-seq-dos: no, the end of record setting is LF

module-load-priority:[yes/no]

Default is: module-load-priority:no

Affects the manner in which the runtime resolves the target of a CALL statement, so that shared libraries are searched before linked symbols.

When set to no:
To resolve "myprog" in the phrase CALL "myprog", the default behavior is first to look for the symbol "myprog" in the linked library. Then if the symbol is not found, the runtime searches for a shared library (myprog.cit, myprog.dll (Windows) or myprog.so (Linux/UNIX)) and searches for the symbol myprog in the shared library.

When set to yes:
The search order is reversed. The runtime first looks for the shared library and if the symbol is not found, it then looks into the linked symbols.

The same effect can be achieved at runtime by setting the COB_LOAD_PRIORITY environment variable as follows:

export COB_LOAD_PRIORITY=1

The compiler option -fthread-safe enables this option.

module-name-entry:[yes/no]

Default is: module-name-entry:yes

When set to yes:
Generates source module as alternate entry (default).

module-uppercase:[yes/no]

Default is: module-uppercase:no

When set to yes:
Causes the output file name to be created in upper-case, when used with the -m compiler flag.

move-all-edited:[yes/no]

Default is: move-all-edited:no

When set to yes:

Causes MOVE ALL "X" TO an edited field to take care of the picture.

move-high-low-to-displaynumeric [error/zero/value]

Default is: move-high-low-to-displaynumeric:value

The move-high-low-to-displaynumeric compiler configuration flag affects the behavior of:

MOVE HIGH-VALUES TO (usage display numeric data item) and
MOVE LOW-VALUES TO (usage display numeric data item).

When set to:

  • error: trigger an error at compilation "Invalid MOVE statement"
  • zero: moves zeroes to display numeric item
  • value: moves high-values or low-values to display numeric item

move-picx-to-pic9:[cit / mf50 / mf40 / mvs / raw / iso / none]

Default is: move-picx-to-pic9:none

Defines the runtime behaviour when moving alphanumeric (PIC X(n) USAGE DISPLAY), to non-signed display numeric data items (PIC 9(n) USAGE DISPLAY).

When set to cit:
The target field is filled with '0's. Then the source's alphanumeric field value is checked for validity as a numeric value. If the check passes, the value is transferred truncated according to the rules associated with a COBOL MOVE from display numeric to display numeric.

When set to mf50:
The source field value is copied, with truncation on the high end of the data item. No validation is done.

When set to mf40:
The source field is copied, right-justified. Upper half-bytes are replaced with 0x30. As a result, a MOVE PIC X(3) VALUE "ABC" to a PIC 9(3) field stores "123" in the PIC 9(3) field. This is the Micro Focus 4.0 default behavior.

When set to mvs:
The source field value is copied with truncation at the high end of the data item. Then the last character is checked. If that last character is a valid EBCDIC sign character , that last character is replaced by the corresponding value (0-9).

When set to raw:
The data is copied with no conversion and no validation, and with RIGHT-JUSTIFY. It is equivalent to a MOVE of a PIC X field to a PIC X field where both PIC X fields are RIGHT-JUSTIFIED.

When set to iso (when displaynumeric-mf50:yes):
When MOVEing a PIC X field padded with SPACES to a PIC 9 field, the padding SPACES are converted to 0s. As an example, when MOVEing a PIC XX VALUE "2" field to a PIC 99 field, the PIC 99 field would store the target as "02".

move-spaces-to-comp3:[error/space/zero]

Default is: move-spaces-to-comp3:zero

The move-spaces-to-comp3 compiler configuration flag affects the behavior of the compiler and runtime when SPACES are moved to a COMP-3 data item.

The default setting is "zero". When set to zero, the compiler does not issue an error. At runtime ZEROES are moved to the COMP-3 data item.

When set to space:
The compiler does not issue an error. At runtime, SPACES are moved to the COMP-3 data item.

When set to error:
The compiler issues an error below.

Error: Invalid MOVE statement

move-spaces-to-displaynumeric:[yes/no/error]

Default is: move-spaces-to-displaynumeric:error

Enables MOVE SPACES to a numeric USAGE DISPLAY data item (PIC 9(n) USAGE DISPLAY)

When set to yes:
The MOVE of SPACES to a PIC 9 USAGE DISPLAY field is allowed.

move-to-group-separated:[yes/no]

Default is: move-to-group-separated:no

Affects the behaviour of a MOVE of SPACES or ZEROES to a group item, as when compiling the instruction:

       MOVE SPACE TO GRP-XXX 
       MOVE ZERO TO GRP-XXX

where GRP-XXX is a group item.

When set to yes:
The MOVE is generated for each field and sub-field of the group.

When set to no:
The MOVE treats the group-item as a single alphanumeric data item.

name:[any string]

Default value: "COBOL-IT"

Purely used for purposes of commentary.

no-cbl-error-proc:[yes/no]

Default is: no-cbl-error-proc:no

When set to yes:
Prevents the execution of CBL_ERROR_PROC.

no-realpath:[yes/no]

Default is: no-realpath:no

When set to yes:
Causes file names to NOT be extended to a fully qualified path.

By default, when processing file names, the compiler retrieves the fully qualified path (from the root) and processes the compilation using that extended name. That full name is also stored as the source file name for debugging purposes.

non-ibm-5.2-syntax:[(ok or yes)/(error or no)/warning]

Default is: non-ibm-5.2-syntax:ok

When set to ok or yes:
Non-ibm 5.2 syntax is not checked, and no action is taken. When set error or no, non-ibm 5.2 syntax generates a compilation error.

When set to warning:
Non-ibm-5.2 syntax generates a warning, but the compilation continues.

nostrip:[yes/no]

Default is: nostrip:no

When set to yes:
Causes objects and object and executable files to NOT be stripped.

Stripping an object or an executable is the action of removing system level debugging information

notrunc:[yes/no]

Default is: notrunc:no

When set to yes:
Causes truncation of binary fields to NOT be made according to the PICTURE clause while performing intermediate computations.

not-reserved:[any reserved word]

Allows the removal of words from the reserved word list.

As an example, if you want the reserved word INCLUDE to not be considered a reserved word by the compiler, make an entry in the compiler configuration file as follows:

not-reserved:INCLUDE

null-param: [yes/no]

Default is: null-param:no

When set to yes:
Causes an extra NULL pointers to be passed as the last argument on CALL statements.

numeric-compare: [yes/no]

Default is: numeric-compare:no

When set to yes:
Causes the comparison of a numeric field with a PIC X field to interpret the value of the PIC X vfield using its numeric value.

numeric-group: [yes/no/warning]

Default is: numeric-group:yes

Determines the behavior of the compiler when an IS/IS NOT NUMERIC clause is applied to a group item.

When set to yes:
The compiler supports the syntax, and the clause does not produce a compiler error.

When set to no:
The compiler aborts with the error message:

Error: IS NUMERIC not allowed on group

When set to warning:
The compiler continues, but produces a warning:

Warning: IS NUMERIC not allowed on group

numval-validate:[yes/no]

Default is: numval-validate:no

When set to yes:
Validates argument 1 of the NUMVAL function.

obj-cit:[yes/no]

Default is obj-cit:no

When set to yes:
Causes the compiled object to be generated with a .cit extension instead of .dll (windows) or .so (unix/linux). The COBOL-IT runtime recognizes the .cit extension as an executable extension. The default behavior of the CALL statement has been changed, so that in a CALL "myprog" statement, the runtime will look first for a compiled object with a .cit extension, before searching for a .dll ( Windows ) or a .so ( Linux/UNIX ).

odo-slide:[yes/no]

Default is: odo-slide:no

When set to yes:
Affects data items that appear after a variable-length table in the same record; that is, after an item with an OCCURS DEPENDING clause, but not subordinate to it.

If the odo-slide compiler flag is set, these items always immediately follow the table, whatever the current size of the table. Note that the internal addresses of these data items change as the table's size changes.

If the odo-slide compiler flag is not set, these items have fixed addresses, and begin after the end of the space allocated for the table at its maximum length.

Note

The mf.conf configuration file, which contains compiler configuration flags designed to match Micro Focus default behaviours, includes the setting odo-slide:no. If you are using the mf.conf configuration file, and your code depends on odo-slide being set to yes, please add odo-slide:yes to your configuration file or add -fodo-slideodo-slide? to your compilation command line.

optimize-move: [yes/no]

Default is: optimize-move:yes

When set to yes:
Causes MOVE operations to be optimized that are performed by the INITIALIZE verb in cases where target fields are USAGE DISPLAY NUMERIC, or USAGE NATIONAL. Causes MOVE operations to be optimized by -fmem-info where the source and target fields have identical declarations.

When set to no:
The optimizations are deactivated.

optimize-move-call:[yes/no]

Default is: optimize-move-call:no

When set to yes:
Causes MOVE operations to be optimized by pre-selecting the internal runtime library routines used for the MOVE when possible. Optimize-move-call is set to yes by default when using either the -O or -O2 compiler flag.

optional-file:[yes/no]

Default is: optional-file:no

When set to yes:
Causes all SELECT statements that do not specify OPTIONAL or NOT OPTIONAL to be considered OPTIONAL.

pack-comp-4:[yes/no]

Default is: pack-comp-4:no

Affects the storage of `COMP-4 data items.

When set to yes:
COMP-4 fields are stored in the minimal possible amount of data space. This is the equivalent of applying "binary-size = 1 - - 8" to the COMP-4 data items.

When set to no:
COMP-4 is considered equivalent to USAGE COMPUTATIONAL with memory storage calculated accordingly.

perform-osvs:[yes/no]

Default is: perform-osvs:no

Enhances compatibility with OSVS COBOL PERFORM statements.

The $SET perform type settings of COB370, ENTCOBOL, OSVS and VSC2 are emulated with the setting perform-osvs:yes.

When set to yes:
The exit point of any currently executing perform is recognized if reached.

PERFORM statements with the same exit point can be nested to a depth of two (one inner and one outer). If they are nested deeper, they do not return correctly. The end of a section is regarded as a separate point from the end of its last paragraph.

The example below is included to illustrate a possible consequence of setting perform-osvs to 'yes', where an infinite loop results that would otherwise be avoided.

       IDENTIFICATION DIVISION. 
       PROGRAM-ID.   TEST-PERFORM. 
       DATA DIVISION. 
       WORKING-STORAGE SECTION. 
       01 SW         PIC X VALUE '1'. 
       01 ABORT-PRG  PIC X(3) VALUE 'NO'. 
       PROCEDURE DIVISION. 
       BEGIN. 
              DISPLAY "BEGIN". 
              PERFORM A THRU A-EX UNTIL ABORT-PRG = 'YES'. 
              DISPLAY"END". 
              STOP RUN. 
       C. 
              DISPLAY "I AM IN C". 
       A. 
              IF SW = '1' 
                     PERFORM D THRU D-EX 
              ELSE 
                     MOVE 'YES' TO ABORT-PRG. 
       A-EX. 
              EXIT. 
       B. 
              DISPLAY "I AM IN B". 
              MOVE '0' TO SW. 
              GOTO C. 
       D. 
              IF SW = '1' 
              GOTO B. 
       D-EX. 
              EXIT.

When perform-osvs is set to 'no', the source above produces the following result:

       BEGIN

       I AM IN B 

       I AM IN C

       END

prepro_cut_line: [yes/no]

Defaut is: prepro_cut_line:yes

When set to yes:
When preparing file for preprocess, cuts output to 72 columns (default).

When set to no:
When preparing file for preprocess, does not cut output to 72 columns.

pretty-display:[yes/no]

Default is: pretty-display:no

MORE INFO? Showing only here not in document??

printer-crlf:[yes/no]

Default is: printer-crlf:no

When set to yes:
Files declared with ASSIGN TO PRINTER file names are generated with compatibility for DOS printers. This will change the End Of Record to CR/LF (instead of LF).

profiling:[yes/no]

Default is: profiling:no

When set to yes:
The compiler generates paragraph profiling code. The output produced by the profiler includes separate counts for CPU and real elapsed times. For more details on using COBOL-IT's built in Profiler, see the Guidelines for use of Profiler section.

protect-linkage:[yes/no]

Default is: protect-linkage:no

When set to yes:
Generates code at the entry point of a program containing a USING xxx clause.

This allows for the passing of parameters that are NULL pointers. In these cases, where NULL pointers are passed, the compiler creates a "fake" field of the same definition in WORKING-STORAGE, and substitutes it as a reference for the parameter. Doing this will avoid a SIGVEC error if NULL pointers passed through linkage are targets of a READ or WRITE statement.

quote:[any single character]

Default is: quote:"

Defines the value of the QUOTE reserved word.

raw-by-value: [yes/no]

Default is: raw-by-value:yes

When set to yes:
CALL BY VALUE [PIC X Fld] does not convert [PIC X Fld] to numeric COMP-5 (default).

raw-compare: [yes/no]

Default is: raw-compare:yes

raw-pic9-display: [yes/no]

Default is: raw-pic9-display:no

When set to yes:
DISPLAY PIC 9(X) (no sign, no decimal) as it is in memory.

read-at-end-mf:[yes/no]

Default is: read-at-end-mf:no

Affects the interpretation of the AT END/NOT AT END clauses used with a READ statement.

When set to yes:
For INDEXED files, when compiling a READ statement:

If an AT END and/or NOT AT END clause is defined in a READ statement and no NEXT or PREVIOUS clause is specified, then the NEXT clause is implied.

read-into-copy: [yes/no]

Default is: read-into-copy:no

When set to yes:
Causes the READ INTO statement to COPY data rather than performing a MOVE.

ready-trace:[y/n]

Default is ready-trace:no

Enables paragraph tracing between READY TRACE and RESET TRACE procedural COBOL statements.

When set to yes:
In the interval between the READY TRACE and RESET TRACE statements, paragraph tracing output is written to the console in the format:

PROGRAM-ID: [program-id]: [paragraph name]

recmode-f:[yes/no]

Default is: recmode-f:no

When set to yes:
Causes all unspecified RECORDING MODE clauses to be interpreted as RECORDING MODE F.

recmode-osvs:[yes/no]

Improves compatiblility with OSVS COBOL, as regards the RECORDING MODE phrase.

Default is: recmode-osvs:no

When set to yes:
Compatibility with OSVS COBOL is improved, as regards the RECORDING MODE phrase.

recmode-v:[yes/no]

Default is: recmode-v:no

When set to yes:
Causes all unspecified RECORDING MODE clauses to be interpreted as RECORDING MODE V.

record-depending-iso:[yes/no]

Default is: record-depending-iso:no

When set to yes:
The record-depending-iso compiler configuration flag causes a RECORD DEPENDING ON <FIELD> clause to be handled in an ISO-compatible manner. More specifically, the record-depending-iso:yes compiler configuration flag causes files declared with a RECORD DEPENDING ON <FIELD> clause, without any FROM or TO value, to assume a FROM and TO value of the maximum record size.

When set to no:
The clause is ignored.

redefine-identifier: [ error / warning / ok ]

Default is: redefine-identifier:ok

The redefine-identifier compiler configuration entry has been added to the "Dialect Features" component of the compiler configuration file. The redefine-identifier compiler configuration flag affects compiler behavior when ambiguous identifiers exist in the source code.

As an example, if your Working-Storage Section contained two identical declarations:

       77 field-1 pic x(10).
       77 field-1 pic x(10).

When set to ok:
The compiler does not generate an error.

When set to warning:
The compiler generates a warning

When set to error:
The compiler generates an error

region0: [yes/no]

Default is: region0:no

When set to yes:
Causes the program to always switch to region 0 when executing. Setting region0:yes lets you specify that the module will always execute in region 0 even if called from another region. When called from another region, the module will switch to region 0 on entry and switch back to the calling region at exit.

relativefile-bigendian:[yes/no]

Default is: relativefile-bigendian:no

When set to yes:
Causes the record header of relative files to be stored in BigEndian format.

relax-bounds-check:[yes/no]

Default is: relax-bounds-check:yes

Affects bounds-checking in reference-modified notations.

When set to yes:
In a reference-modified expression like mystring (x:*length*), the variable length is not checked for an out-of-bounds condition.

relax-level-hierarchy:[yes/no]

Default is: relax-level-hierarchy:yes

Affects compiler's handling of non-matching level numbers.

When set to yes:
Non-matching level numbers are allowed.

relaxed-syntax-check:[yes/no]

Default is: relaxed-syntax-check:yes

Affects strictness of syntax checking rules applied by the compiler.

When set to yes:
Relaxed syntax checking rules are applied by the compiler.

replace-additive:[yes/no]

Default is: replace-additive:no

When set to yes:
Allows for the use of the REPLACE ADD verb, which has the effect of nesting a REPLACE statement inside an existing REPLACE statement. Nested REPLACE statements are executed before outer REPLACE statements in COBOL-IT's precompile phase. Note that a REPLACE stack can be cleared with the REPLACE OFF statement.

return-opt:[yes/no]

Default is: return-opt:no

When set to yes:
Generates optimized PERFORM return code. The -freturn-opt compiler flag is ignored when using the -fgcc compiler flag.

round-fp:[yes/no]

Default is: round-fp:no

When set to yes:
Controls the way COMP-1 or COMP-2 are "moved" into non-COMP-1 or COMP-2 target fields when the target field has fewer decimal places than the source field. If the -fround-fp compiler flag is used, the value is rounded to the number of decimal of the target field. Otherwise, the value is truncated.

rtncode-size: <integer>

Default is: rtncode-size:0

When set to a non-zero value:
Sets the size, and memory alignment of the return-code register.

Possible values are:

Value Size Alignment
2 2 bytes Align on 2-byte boundary
4 4 bytes Align on 4-byte boundary
8 8 bytes Align on 8-byte boundary

rw-after-preprocess:[yes/no]

Default is: rw-after-preprocess:no

When set to yes:
Causes SPCRW2 to be run after the -preprocess script. By default SPCRW2 is run before the -preprocess script.

rw-mode-nopf:[yes/no]

Default is: rw-mode-nopf:no

When set to yes:
rw-mode-nopf is the equivalent to setting MODE NOPF for a Report Section report. MODE NOPF causes the Report Writer to emulate an external print driver that does not generate printer control characters, like FF. When set to yes, the report file is written as a standard LINE SEQUENTIAL file.

rw-mode-nopf-dos:[yes/no]

Default is: rw-mode-nopf-dos:no

When set to yes:
rw-mode-nopf-dos is the equivalent to setting MODE NOPF for a Report Section report. MODE NOPF causes the Report Writer to emulate an external print driver that does not generate printer control characters, like FF. When set to yes, the report file is generated with fixed-length lines that are padded with SPACES and use the CR/LF record delimiter.

safe-linkage:[yes/no]

Default is: safe-linkage:no

When set to yes:
Generates code at the entry point of a program containing a USING xxx clause.

This allows for the omission of parameters. Doing this will avoind a SIGVEC being returned by the debugger when all linkage parameters are not provided.

screen-exceptions:[yes/no]

Default is: screen-exceptions:no

Mimics the behavior of the environment variable COB_SCREEN_EXCEPTIONS.

When set to yes:
Causes the runtime to behave as if the environment variable is COB_SCREEN_EXCEPTIONS=Y.

Enables use of the Page Up, Page Down, Up Arrow, and Down Arrow keys on Field-level ACCEPT statements. Also enables use of the Esc key, if the environment variable is COB_SCREEN_ESC=Y. When these keys are pressed, the COBOL-IT runtime will return the CRT Status values as described in the table below. Note that the Page Up, Page Down, Up Arrow, and Down Arrow are enabled by default when ACCEPT'ing a Screen:

Condition Key Pressed Cit Value returned to CRT-STATUS-VAR
On ACCEPT <Screen> or on ACCEPT <Field> where the environment variable COB_SCREEN_EXCEPTIONS=Y
or the compiler configuration flag Screen-exceptions:Y
Page Up 2001
Page Down 2002
Up Arrow 2003
Down Arrow 2004
When COB_SCREEN_ESC=Y Escape Key 2005
Print 2006

screen-raw-keys:[yes/no]

Default is: screen-raw-keys:no

Mimics the behavior of the environment variable COB_SCREEN_RAW_KEYS.

When set to yes:
Causes the runtime to behave as if the environment variable is COB_SCREEN_RAW_KEYS=Y.

Note

The "raw keys" are the Home, End, Insert, Delete, and Erase EOL keys. When one of these keys is pressed, the COBOL-IT runtime will return CRT Status values as described in the table below:

Condition Key Pressed Cit Value returned to CRT-STATUS-VAR
Where the environment variable COB_SCREEN_RAW_KEYS=Y or
the compiler configuration flag screen-raw-keys:Y
Home 2007
End 2008
Ins 2009
Del 2010
EraseEOL 2011

sequential-line:[yes/no]

Default is: sequential-line:no

When set to yes:
Causes all non-qualified SEQUENTIAL files to be declared as LINE SEQUENTIAL. Files declared as RECORD SEQUENTIAL are not affected.

share-all-autolock:[yes/no]

Default is: share-all-autolock:no

When set to yes:
Causes all files with a SHARE WITH ALL clause in their SELECT statement to be declared implicitly as LOCK MODE IS AUTOMATIC. For details on other -f compiler flags related to the treatment of LOCK MODE. See the Guidelines for modifying default handling of the LOCK MODE section.

share-all-default:[yes/no]

Default is :share-all-default:no

When set to yes:
Causes all files to be declared implicitly as SHARE WITH ALL.

For details on other compiler flags related to the treatment of LOCK MODE, see the Guidelines for modifying default handling of the LOCK MODE section.

share-all-manulock:[yes/no]

Default is: share-all-manulock:no

When set to yes:
Causes all files with a SHARE WITH ALL clause in their SELECT statement to bedeclared implicitly as LOCK MODE IS MANUAL.

For details on other compiler flags related to the treatment of LOCK MODE, see the Guidelines for modifying default handling of the LOCK MODE section.

sign-ascii:[yes/no]

Default is: sign-ascii:no

When set to yes:
Corresponds to the SIGN "ASCII" directive. Causes numeric DISPLAY items that include signs are interpreted according to the ASCII sign convention (default on ASCII machines).

sign-ebcdic:[yes/no]

Default is: sign-ebcdic:no

When set to yes:
Corresponds to the SIGN"EBCDIC" directive. Causes numeric DISPLAY items that include signs are interpreted according to the EBCDIC sign convention (default on EBCDIC machines).

sign-leading:[yes/no]

Default is: sign-leading:no

When set to yes:
Makes SIGN IS LEADING the default.

sign-separate:[yes/no]

Default is: sign-separate:no

When set to yes:
Makes SIGN IS SEPARATE the default.

signed-comp6-as-comp3:[yes/no]

Default is: signed-comp6-as-comp3:no

Affects treatment of data items described as comp-6.

When set to yes:
Signed COMP-6 data items are treated as COMP-3 data items.

simple-trace:[yes/no]

Default is: simple-trace:no

When set to yes:
Generates trace output at runtime for executed SECTION/PARAGRAPHs.

source-location:[yes/no]

Default is: source-location:no

When set to yes:
Generates source location code, enabling information to be dumped on source location when the runtime aborts.

source-location:yes is enabled by the -g compiler flag and by the -debug compiler flag.

split-debug-mark:[yes/no]

Default is: split-debug-mark:yes

When set to yes:
DEBUG marks respect max 72 characters (default).

spzero:[yes/no]

Default is: spzero:no

Affects the handling of space characters in numeric fields.

When set to yes:
Space characters moved to NUMERIC USAGE fields are converted to '0's.

stack-check:[yes/no]

Default is: stack-check:no

When set to yes:
Enables the stack checking debug function. The stack checking debug function allows the user to trace back through the stack of calling programs to the currently running line of source in a program.

stack-check:yes is enabled by the -g compiler flag and by the -debug compiler flag.

static-call:[yes/no]

Default is: static-call:no

When set to yes:
Causes static C function calls to be generated for the CALL statement.

This implies that all CALL'ed programs are C function that are linked with the current program. When using the -fstatic-call compiler flag, no external dynamic resolution is performed at run-time.

static-link:[function-name]

Improves performance of the CALL statement for statically linked routines.

The string value represents a symbol to link statically when encountered as an argument of a CALL. This improves the performance of the call. Mainly used for linked C function libraries.

Example:

static-link:myfunc

Note that Oracle symbols are provided in the file "oracle.symb", and can be included in your compiler configuration file as follows:

include "oracle.symb"

Tuxedo symbols are provided in the file "tuxedo.symb", and can be included in your compiler configuration file as follows:

include "tuxedo.symb"

sticky-linkage:[yes / no / fixed / variable]

Default is: sticky-linkage:no

Affects allocation of linkage section items not listed as parameters

When set to yes, or fixed:
The called program fills in any parameter not actually passed by the caller.

When set to no, or variable:
Non-parameter linkage-section items remain allocated between invocations.

strict-compare-low: [yes/no]

Default is: strict-compare-low:no

When set to yes:
Causes display of numeric variables containing low values not equal to zero or spaces when compared.

strict-record-contains:[yes/no]

Default is: strict-record-contains:yes

The strict-record-contains compiler configuration entry affects the handling of the RECORD CONTAINS xx CHARACTERS clause in file systems using then EXTFH interface, when the actual record size has fewer characters than are named in the clause.

When set to yes (the default):
COBOL-IT sends the number of characters stated in the clause as both MIN-RECORD-SIZE and MAX-RECORD-SIZE.

When set to no:
COBOL-IT detects the smaller actual record size, and passes it through as the MIN-RECORD-SIZE, while passing the number of characters stated in the clause as the MAX-RECORD-SIZE.

Note

The strict-record-contains compiler configuration flag has no effect on VBISAM files, as they do not use the EXTFH interface.

synchronized-double-word-bound:[yes/no]

Default is: synchronized-doube-word-bound:no

Affects the alignment of data items declared as USAGE BINARY, which also contain the SYNC clause. The default behavior is consistent with the behaviors of the IBM and Micro Focus compilers. Specifically, when the SYNC clause is used, binary fields are aligned either on 2- or 4- byte boundaries, depending on the size of the field.

  • Fields of 1-2 bytes in size are aligned on 2-byte boundaries.
  • Fields greater than 2-bytes in size are aligned on 4-byte boundaries.

When set to yes:
Binary fields are aligned on 2- or 4- or 8-byte boundaries, depending on the size of the field. This was the default COBOL-IT behavior prior to version 3.7.9.

  • Fields of 1-2 bytes in size are aligned on 2-byte boundaries.
  • Fields of 3-4 bytes in size are aligned on 4-byte boundaries.
  • Fields greater than 4 bytes in size are aligned on 8-byte boundaries.

synchronized-propagate-to-occurs: [yes/no] (Internal Use Only)

Default is: synchronized-propagate-to-occurs:yes

This setting is for internal use only, and should not be changed.

synchronized-propagate-to-occurs-with-group-size: [yes/no] (Internal Use Only)

Default is: synchronized-propagate-to-occurs-with-group-size: no

This setting is for internal use only and should not be changed.

syntax-only:[yes/no]

Default is: syntax-only:no

When set to yes:
Performs syntax error checking only. Output is limited to results of syntax check.

syntax-support:[ok / archaic / obsolete / skip / ignore / unconformable / error]

Allows users to choose for the compiler to support, warn, or reject listed phrases which are included in some COBOL dialects. The meaning of the different syntax support options:

Syntax Meaning
ok Accept the dialect
archaic, obsolete,unconformable Emit warning messages
skip Construction is ignored
ignore Produces a warning message
error Produces a syntax error
unconformable Produces an 'unconformable' error message

The phrases entered by default in the compiler configuration file with syntax support options:

       # Dialect features
       # Value: 'ok', 'archaic', 'obsolete', 'skip', 'ignore', 'unconformable'
       author-paragraph:                  obsolete
       memory-size-clause:                obsolete
       multiple-file-tape-clause:         obsolete
       label-records-clause:              obsolete
       value-of-clause:                   obsolete
       data-records-clause:               obsolete
       top-level-occurs-clause:           ok
       synchronized-clause:               ok
       goto-statement-without-name:       obsolete
       stop-literal-statement:            obsolete
       support-debugging-line:            obsolete
       padding-character-clause:          obsolete
       next-sentence-phrase:              archaic
       eject-statement:                   skip
       entry-statement:                   ok
       move-noninteger-to-alphanumeric:   error
       odo-without-to:                    ok
       move-spaces-to-displaynumeric:     error
       synchronized-clause:               ok
       synchronized-clause-on-group:      ok 
       synchronized-group-align-size:     skip
       synchronized-occurs-align-size:    skip

tab-width:[integer]

Default value: tab-width:8

Affects interpretation of tab characters in source code.

tally-register:[yes/no]

Default is: tally-register:yes

Affects the creation of the internal TALLY register.

When set to no:
The creation of the TALLY register is disabled.

text-column:[integer]

Default is: text-column:72

Defines number of columns used for COBOL text.

For Fixed source format only. Causes the compiler to ignore characters after the column marked by "text-column + 6".

thread-safe:[yes/no]

Default is: thread-safe:no

When set to yes:
Generates thread-safe executables. For more details, see the Guidelines on operating in a thread-safe environment section.

trace:[yes/no]

Default is: trace:no

When set to yes:
Generates trace output at runtime, listing the SECTION/PARAGRAPH names as they are executed.

trace-ts: [yes/no]

Default is: trace-ts:no

When set to yes:
Causes trace output to include timestamp.

trace-upon-systout: [yes/no]

Default is: trace-upon-sysout:no

When set to yes:
Causes trace output to to be written upon sysout, instead of the default writing upon syserr.

traceall:[yes/no]

Default is: traceall:no

When set to yes:
Generates trace output at runtime, listing SECTION/PARAGRAPH/STATEMENTS names as they are executed.

trap-unhandled-exception:[yes/no]

Default is: trap-unhandled-exception:no

When set to yes:
Is useful in cases where certain EC compiler configuration file flags are set to yes, yet ON EXCEPTION/ONSIZE ERROR/ON OVERFLOW language is not present in the COBOL program. In these cases, using the -ftrap-unhandled-exception compiler flag causes the information made available to the user to be enhanced when the program aborts.

For more details, see the documentation of the -ftrap-unhandled-exception compiler flag.

truncate-listing:[yes/no]

Default is: truncate-listing:no

When set to yes:
Causes output of the -t <file> compiler flag to be truncated at column 76.

unstring-use-move:[yes/no]

Default is: unstring-use-move:no

Affects the behavior of the UNSTRING verb.

When set to yes:
If the target of an UNSTRING INTO operation is described as PIC 9, then the operation will be performed using a MOVE operation instead of raw copy operation. Then rules defined by the move-picx-to-pic9 compiler configuration flag are used for conversion.

use-defaultbyte:[yes/no]

Default is: use-defaultbyte:no

Enables defaultbyte use.

When set to yes:
The defaultbyte compiler configuration file flag may be used.

utf16-le:[yes/no]

Default is: utf16-le:no

Determines whether fields declared as PIC N are stored in UTF16-LE (Little Endian) or UTF16-BE (Big Endian) format.

When set to yes:
Causes fields declared as PIC N to be stored in UTF16-LE (Little Endian) format.

When set to no:
Causes fields declared as PIC N are stored in UTF16-BE (Big Endian) format.

utf-8:[yes/no]

Default is: utf-8:no

When set to yes:
Instucts the compiler that the source file, and literals are UTF-8 encoded. The utf-8 compiler configuration file flag can be used with, or without the codepage compiler configuration flag.

If the utf-8 compiler configuration flag is used and the codepage compiler configuration flag is not specified, then codepage utf-8 is assumed.

If, however, you wish to compile your source with another codepage (for example, the LATIN1 codepage), you should explicitly include that codepage declaration:

codepage:latin1

validate-dep-on: [yes/no]

Default is: validate-dep-on:no

When set to yes:
Causes the value of DEPENDING ON to be checked at runtime.

validate-odo:[yes/no]

Default is: validate-odo:yes

validate-only:[yes/no]

Default is: validate-only:no

When set to yes:
Causes the compilation of source to ignore all EXEC statements, and produce no compiled objects. Compiler errors are produced, and can be captured in an error file, (using -err, for example).

value-of-id-priority: [yes/no]

Default is: value-of-id-priority:no

When set to yes:
The literal or data element that is the target of the VALUE OF FILE-ID clause in the FD overrides target of the ASSIGN clause for the file

When set to no (the default):
This setting is ignored.

value-size-is-auto: [yes/no]

Default is: value-size-is-auto:no

When set to yes:
The CALL .. USING BY VALUE : default SIZE IS clause will be AUTO (current default is SIZE IS 4). REWRITE TO BE CLEARER?

variable-rec-pad-mf:[yes/no]

Default is: variable-rec-pad-mf:no

Affects padding rules applied to variable length sequential records.

When set to yes:
Variable size RECORD SEQUENTIAL records (REC MODE 'V') are stored with padding characters at the end to ensure that the next record starts on a 4 byte boundary.

vbisam: [yes/no]

Default is: vbisam:no

When set to yes:
Causes VBISAM to be used as the default indexed file system.

vms-error-handler: [yes/no]

Default is: vms-error-handler:no

When set to yes:
Causes the default IO error handler to always abort (emulation of VMS behavior).

when-compiled-function-all: [yes/no]

Default is: when-compiled-function-all:no

When set to yes, and when functions-all: yes
Then WHEN-COMPILED can be called without using the FUNCTION keyword.REWRITE TO BE CLEARER?

wnone:[yes/no]

Default is: wnone: no

When set to yes:
Causes warnings turned on by default to be turned off.

xparse-event:[yes/no]

Default is: xparse-event:no

When set to yes:
Causes the XML PARSE statement to generate START-OF-DOCUMENT and END-OF-DOCUMENT XML-EVENTS.

zero-length-trim:[yes/no]

Default is: zero-length-trim:yes

When set to yes:
Allows the LENGTH intrinsic function to return a zero-length of a string that has been operated on by the TRIM intrinsic function.

$SET Compiler Configuration Flags

The following compiler configuration parameters may be set directly within the COBOL source using the $SET statement.

$SET Compiler Configuration Flag
CONSTANT string
CICS
DATACOMPRESS integer
DEFAULTBYTE integer
DEFAULTCALL integer
INITCALL procedure-name
INSERTNULL [ON | OFF]
KEYCOMPRESS integer
LINESEQDOS
LINESEQMF
LS-MODE [OFF]
LSUTF16
NODATACOMPRESS
NOINITCALL
NOINSERTNULL
NOKEYCOMPRESS
NOLINESEQDOS
NOLINESEQMF
NOLSUTF16
NOTRUNC
ODOSLIDE
PERFORM-TYPE [OSVS | MF | VSC2 | ENTCOBOL | COB370]
RECMODE [OSVS | V | F ]
STICKY-LINKAGE integer
SEQUENTIAL [LINE]
SPZERO
SOURCEFORMAT [FREE | FIXED]
TEXT-COLUMN integer
TRUNC
Back to top