HLASM Programmer's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


ELF32 option

HLASM Programmer's Guide
SC26-4941-06

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:
  1. All section lengths are rounded up to a doubleword.
  2. 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.
  3. Zero-length sections are assigned length 8.
  4. RSects are assigned to ELF32 section '.text.RSECT', and are assigned the executable attribute.
  5. CSects are assigned to ELF32 section '.data.CSECT', and are also assigned the data and executable attributes.
  6. Common (CM) sections are assigned ELF32 section names '.bss.<name>', where <name> is the name of the CM section.
  7. High Level Assembler for Linux on zSeries converts only OBJ object files to ELF32 format.
  8. When generating ELF32 object files, the following limitations apply:
    1. A minimum of 25 KB working storage must be available
    2. The GOFF option must not be specified.
    3. Do not specify external names starting with an underscore (_), as they might conflict with Linux-generated names during the linking and loading process.
    4. Entry points (LD items) must not be specified in common sections.
    5. Q-type and CXD-type address constants are not supported.
    6. External dummy sections (DXD items, and dummy control sections referenced in Q-type address constants) are not supported.
    7. Address constants of lengths other than 4 are not supported.
    8. Only AMODE(31) and RMODE(ANY) are supported.
    9. 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.

    10. 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.
    11. Zero-length Private Code (PC) sections are ignored.
    12. Negative relocations (for example, A(0-*)) are not supported.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014