On 15-Sep-2015 12:44 -0600, Tim Bronski wrote:
I have a client on V5R4 (they'll be upgrading shortly I'm told). A
new version of one of our programs fails on a memory allocation that
uses the teraspace memory allocator _C_TS_malloc. NULL is returned.
This isn't a very large allocation - a few k maybe. A version using
malloc works ok. Is there something about teraspace on V5R4 that I
don't know? The program uses single level storage apart from the
_C_TS_malloc'ed stuff. This all works fine on higher releases.
As I recall the compile commands have changed since then, to be /nicer/ for effecting Teraspace-capable storage; i.e. the capability is available per the parameter defaults of the compile commands on newer releases. But on the older releases [presumably that way on v5r4], the CRTxxxPGM must have explicitly specified that the compiled code will be allowed to utilize Teraspace storage by using Storage Model (STGMDL) specification of *TERASPACE instead of the [default specification of] *SNGLVL. And if the compile is not explicitly set [or the defaults changed] to allow the Teraspace Storage Model, then the teraspace methods will return the null result, as was seen.