Abnormal Termination performing /load in aefcn of Gen 32 Bit loadmodule on Windows
search cancel

Abnormal Termination performing /load in aefcn of Gen 32 Bit loadmodule on Windows

book

Article ID: 256471

calendar_today

Updated On:

Products

Gen Gen - Host Encyclopedia Gen - Run Time Distributed Gen - Workstation Toolset

Issue/Introduction

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' 

Environment

Release : 8.6

Resolution

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.