If you link-edit an object module produced by different releases of PL/I, and the object module contains symbol tables for external variables, the symbol table that appears in the resultant load module must be the one produced by the most recent release of PL/I.
The compiler produces an object module that contains external symbol table control sections (CSECTs) if your program includes one or more of the following PL/I features for external variables:
If your program uses one or more of these features with external variables, you must ensure that the correct symbol table appears in your load module. Place the object module produced by the most recent release of PL/I ahead of all other object modules in the link-edit job stream. If more than one object module produces a symbol table CSECT with the same name, the linkage editor keeps the symbol table CSECT that it encounters first and discards the other symbol tables.
For example, suppose you link-edit an object module produced by OS PL/I Version 1 Release 5.1 with an object module produced by OS PL/I Version 2 Release 3. Put the object module produced by OS PL/I Version 2 Release 3 ahead of the object module produced by OS PL/I Version 1 Release 5.1 in the link-edit job stream. By doing this, the linkage editor keeps the symbol table produced by OS PL/I Version 2 Release 3 if both object modules produce symbol tables.