This is a Linux only option. It is provided to allow
creation of ELF32 files directly.
If the ELF32 option is specified, then changes are
made to the options passed to the assembler to invoke the
exit.
The following considerations apply to generated ELF32 files:
- All section lengths are rounded up to a doubleword.
- ELF32 name lengths are set to the section length for SD, CM, and
PC items, and to 4 for LD items.
The name of the section is not affected.
- Zero-length sections are assigned length 8.
- RSects are assigned to ELF32 section '.text.RSECT',
and are assigned the executable attribute.
- CSects are assigned to ELF32 section '.data.CSECT',
and are also assigned the data and executable attributes.
- Common (CM) sections are assigned ELF32 section names
'.bss.<name>', where <name> is the name of
the CM section.
- High Level Assembler for Linux on zSeries converts
only OBJ object files to ELF32 format.
- When generating ELF32 object files, the following limitations
apply:
- A minimum of 25 KB working storage must be available
- The GOFF option must not be specified.
- Do not specify external names starting with an underscore
(_), as they might conflict with Linux-generated names
during the linking and loading process.
- Entry points (LD items) must not be specified in common sections.
- Q-type and CXD-type address constants are not supported.
- External dummy sections (DXD items, and dummy control sections
referenced in Q-type address constants) are not supported.
- Address constants of lengths other than 4 are not supported.
- Only AMODE(31) and RMODE(ANY) are supported.
- The following internal tables are currently limited to:
- 50 control section (SD, CM, PC) names
- 150 external symbols (SD, CM, PC, ER. WX)
- 100 entry point (LD) names
- 150 address constant items (RLD) residing in RSects
- 150 address constant items (RLD) residing in CSects
- 50 ELF32 string-table items
- 100 ELF32 sections
- 250 ELF32 symbols (including ELF32 section names)
These limits are easily increased by recompiling ASMAXT2E.
- Double relocations, although correctly converted, do not work.
The Linux ld command does not add the previous
contents of an adcon field when performing relocations.
- Zero-length Private Code (PC) sections are ignored.
- Negative relocations (for example, A(0-*)) are not supported.