Mea culpa on the lack of doc.  I was on my iPhone when I drafted the
message.  Here it is.

//ASM1     EXEC PGM=ASMA90
LMOD     CSECT
         . . .
         END
//ASM2     EXEC PGM=ASMA90
EPUTL    CSECT
         . . .
         END   EPUTL
//LKED     EXEC PGM=IEWL
//IN       DD  DSN=&&X,DISP=(OLD,DELETE) <== ASM.SYSLIN DISP=(MOD,PASS)
//SYSLIN   DD  *
  INCLUDE  IN
  NAME     LMOD(R)

On Wed, Mar 15, 2023 at 7:53 AM Peter Relson <rel...@us.ibm.com> wrote:

> This is not a question for assembler-list as it has nothing to do with the
> assembler itself.
> The binder is a z/OS function and questions about it would be better
> suited for ibm-main.
>
> Since you did not show either your program (or a snippet thereof) or your
> binder JCL it is impossible to answer your question.
> The "design" is not "set the entry point to the start of the 2nd CSECT if
> there are two CSECTs".  The design includes various things including ENTRY
> binder control statements, a name on an END statement, the order in which
> OBJs and/or loadmods are included. But in its simplest form, the default is
> to set the entry point to the start of the first section.
>
> For example,
>
> IEW2322I 1220  1         INCLUDE SYSOBJS(TEST1)      -- where CSECT is
> TEST1
> IEW2322I 1220  2         INCLUDE SYSOBJS(TEST2)      -- where CSECT is
> TEST2
> IEW2322I 1220  3         NAME TEST(R)
> IEW2650I 5102 MODULE ENTRY NOT PROVIDED.  ENTRY DEFAULTS TO SECTION TEST1.
>
> And if you reversed the includes, entry would default to TEST2.
>
> In the absence of a name on an END statement, I'd think it unwise to rely
> on whatever rule might exist, when you have multiple CSECTs.
>
> Peter Relson
> z/OS Core Technology Design
>

Reply via email to