IBM / dbb-zappbuild

zAppBuild is a generic build solution for building z/OS applications using Apache Groovy build scripts and IBM Dependency Based Build (DBB) APIs.
Apache License 2.0
40 stars 123 forks source link

zAppBuild set up for IMS #517

Closed bhimireddyvs closed 1 week ago

bhimireddyvs commented 1 week ago

In our environment we are doing the compile and link edit only in the Cobol.groovy. We need to build in logic so that for IMS programs that use CALL 'CBLTDLI', but do not use 'ENTRY DLITCBL', we have a different link edit step. I'd like to add the link edit include ENTRY DLITCBL, only if the member uses it, but not sure how best to accomplish that as there is only the isDLI flag. I'd like to avoid having to use link control cards to do this, if possible.

When I tried to run the GITLAB pipeline for IMS program CRBPCC13.cbl, the link edit step is failing with return code 8 and here are the details. BATCH EMULATOR JOB(GITR012 ) STEP(STEP1 ) PGM= IEWBLINK IEW2278I B352 INVOCATION PARAMETERS - MAP,RENT,AMOD(31),RMOD(ANY),SSI=f89f7b69 IEW2322I 1220 1 LIBRARY RESLIB(CBLTDLI) IEW2322I 1220 2 LIBRARY RESLIB(DFHEI01) IEW2322I 1220 3 LIBRARY RESLIB(DFHEI1) IEW2322I 1220 4 ENTRY DLITCBL IEW2322I 1220 5 INCLUDE OBJLIB(CRBPCC13) IEW2648E 5111 ENTRY DLITCBL IS NOT A CSECT OR AN EXTERNAL NAME IN THE MODULE.

Please see attached CRBPCC13 cobol log file more details. CRBPCC13.cobol.log

dennis-behm commented 1 week ago

Hi @bhimireddyvs,

The DBB scanner does not provide the information if a source file contains 'ENTRY DLITCBL' or not.

If you want to dynamically understand if a program contains the 'ENTRY DLITCBL' statement, you would need either to extend the DBB scanners by writing your own extension (see also https://github.com/IBM/dbb/tree/main/Scanners) OR you do a very simple parsing (or even regex) within Cobol.groovy to understand if the source contains the statement.

Based on that information, you can dynamically add the ENTRY DLICBL to linkEditStream, when the Link phase is configured in Cobol.groovy.

bhimireddyvs commented 1 week ago

Thank you so much @dennis-behm for your inputs.

dennis-behm commented 1 week ago

@bhimireddyvs

I am moving this issue into the discussions, while this is rather an implementation question / guidiance ask and not a direct issue with the zAppBuild code.

Please close the discussion if your question is answered.

Additionally, I think it's worth to also create an IBM idea and report this scenario if DBB scanners could automatically detect the "ENTRY DLITCLD" statement.