CSECTs are restricted to 16MB only if you generate traditional OBJ
object files, because its length and address fields are 3 bytes long.
As Peter said, the total length in a single assembly will be less
than 16M.
*BUT* if you specify the NOTHREAD option you can have as many very
larget CSECTs as you like:
*PROCESS NOTHREAD
A START 0
DS 4095XL4096
B CSECT
DS 4095XL4096
C CSECT
DS 4095XL4096
D CSECT
DS 4095XL4096
END
The NOTHREAD option also helps in debugging multi-CSECT assemblies
because each CSECT's origin is zero, so you don't have to subtract
the non-zero origin(s) HLASM generates if the (default) THREAD
option is specified.
John Ehrman
(------------------ Referenced Note Follows --------------------)
Date: Sun, 7 Jun 2009 09:16:40 -0400
From: Peter Relson <[email protected]>
<...>
>By experiment, I discover that HLASM won't let me create a CSECT
>16MiB. It won't let me create a program with multiple CSECTs
>totalling >16 MiB(?!)
The binder has a restriction of (on the order or) 2G. Obviously HLASM
cannot possibly restrict you from combining multiple CSECTs into anything
you want, but the binder can. HLASM could have a restriction such as 16M
on the cumulative size of CSECTs within a single assemly unit (I have no
idea if that is the case) It is the case that a load module cannot exceed
16M. But a program object can. The load module restriction is due to
limitations in the PDS directory entry.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html