When attempting to /LOAD a large Load module built in 32 Bit mode with many Action Blocks with the aefcn on Windows the process fails with error:
'<LM_Name> Abnormal Termination'
Release : 8.6
It appears that there is nothing in any of the actual members (PStep or Action Blocks) themselves that is the source of the problem. It is likely that the inclusion of the extra Action Blocks could be creating an executable size limitation. When building on Windows with OPT.BITS set to 32, add the linker option /LARGEADDESSAWARE when the load module is built. This may allow for a successfully load. (This linker option is not necessary when OPT.BITS is set to 64).
Proposed work-arounds (two options):
1. Add the /LARGEADDRESSAWARE option to '%GEN86%GEN\bt\scripts\build_lm_c.scr'. Look for the section of code like the following and add the new linker option as show below:
DLLLINK= /NOLOGO \
{[IF]} EQUAL "{GUI}" "GUI"
/DLL /SUBSYSTEM:WINDOWS \
$(ENTRYMAINCRTSTARTUP) /OUT:"{LOC.CODE_LIB}{execunit.MEMBER}.DLL" \
{[IF]} EQUAL "{HAS_AB}" "YES"
"{LOC.CODE_LIB}A_{execunit.MEMBER}.LIB" \
{[ENDIF]}
/implib:"{LOC.CODE_LIB}{execunit.MEMBER}.LIB" \
/def:"{LOC.MAKE_DIR}{execunit.MEMBER}.DEF" {OPT.IEFLINK}
{[ELSE]}
{[IF]} NOT_EQUAL "{MDRUNTIME}" ""
/OPT:NOREF \
{[ENDIF]}
{[IF]} EQUAL "{execunit.EXECENV}{execunit.LMTYPE}" "IEFAESRVR"
/SUBSYSTEM:CONSOLE /LARGEADDRESSAWARE \
Then relink the loadmodule by doing an install without regenerating, and the Build Tool should perform a relink with the new option. Then verify that the loadmodule loads successfully without error.
2. Add the linker option /LARGEADDRESSAWARE to the Build Tool Profile token 'OPT.IEFLINK' then relink the loadmodule by performing an install without regenerating and the Build Tool should perform a relink with the new option from the token 'OPT.IEFLINK'. Then verify that the loadmodule loads successfully without error.