RENT attribute for Endevor exits and configuration tables
search cancel

RENT attribute for Endevor exits and configuration tables

book

Article ID: 259235

calendar_today

Updated On:

Products

Endevor

Issue/Introduction

Endevor release notes inform that "Beginning with Endevor Release 18.1, ENUXSITE, C1DEFLTS, ENCOPTBL, BC1TNEQU, ESMTPTBL, ESYMBOLS, ENDICNFG, and all user exits must be linked with the RENT attribute.

How can this be achieved?

Environment

Release : 18.1

Resolution

It is important is to specify the RENT option in the binder (IEWL) step. This is a must in all cases.

This option causes the binder to set the RENT attribute for the load module. About configuration tables, this is all that is required. This is because configuration tables don't contain any executable code.
 
About user exits, the program itself needs to be reentrant. This is because

  1. MVS loads modules with RENT attribute into protected storage.
  2. A program that is not reentrant updates itself.
  3. When the program tries to update itself, a S0C4 arises because it has no authority to update protected storage

For high-level languages like COBOL the compiler has normally a compiler option like RENT that causes the compiler to produce a reentrant object module so it is enough to specify this option when compiling the program.

For assembler programs, the issue is more complex because:

  • The RENT option in the assembler is only a programming aid that raises assembly errors when the assembler may detect that an instruction would update the program in storage (but note that the assembler CANNOT detect this fact in all cases)
  • Therefore, it's the programmer who needs to write reentrant code.