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 <[email protected]> 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
>