IBM / bob-recursive-example

Test repo for Better Object Builder (BOB)
MIT License
14 stars 7 forks source link

Does not build on i 7.3 due to missing TGTCCSID parameter supplied by PTF SI74590 #19

Closed robdaemon closed 3 weeks ago

robdaemon commented 3 weeks ago

Brand new (to me) i 7.3 server, setting up BOB but getting this error during makei build:

> /QOpenSys/pkgs/bin/make -k BUILDVARSMKPATH="/tmp/tmpvm0rm_3k" -k BOB="/QOpenSys/pkgs/lib/bob" -f "/QOpenSys/pkgs/lib/bob/src/mk/Makefile" all
=== Creating RPG module [XML001.RPGLE]
crtrpgmod module(BOBTEST/XML001) srcstmf('/home/RROLAND/src/bob-recursive-example/QRPGLESRC/XML001.RPGLE') AUT() DBGVIEW(*ALL) OPTIMIZE() OPTION(*EVENTF) OUTPUT(*PRINT) TEXT('') TGTCCSID(297) TGTRLS() INCDIR('includes' 'QPROTOSRC') DEFINE()
✕ Failed to create XML001.MODULE!

CPFA0A9: Object not found.  Object is /QSYS.LIB/BOBTEST.LIB/EVFEVENT.FILE/XML001.MBR.
CPFA097: Object not copied.  Object is /QSYS.LIB/BOBTEST.LIB/EVFEVENT.FILE/XML001.MBR.

if I execute the command myself, I get the following error:

-bash-5.2$ system "crtrpgmod module(BOBTEST/XML001) srcstmf('/home/RROLAND/src/bob-recursive-example/QRPGLESRC/XML001.RPGLE') AUT() DBGVIEW(*ALL) OPTIMIZE() OPTION(*EVENTF) OUTPUT(*PRINT) TEXT('') TGTCCSID(297) TGTRLS() INCDIR('includes' 'QPROTOSRC') DEFINE()"
CPD0043: Keyword TGTCCSID not valid for this command.
CPF0006: Errors occurred in command.

This seems to be tailored towards i 7.4. If that's the case, feel free to close this!

edmundreinhardt commented 3 weeks ago

Hi Rob I am glad you are trying BOB. Here is what is going on. The source on the IFS is all stored in UTF-8 encoding. The RPG compiler needs to use EBCDIC encoding, so it needs a CCSID to convert the source to as it compiles it. This is known as the TGTCCSID. At V7R3 this was added via PTF which you have not yet installed. Because the compile parameter was missing the compiler was not run and the EVFEVENT file containing the compiler messages was not generated. BOB copies those messages back to the IFS to provide compiler feedback but since they were not present it issued the NOT FOUND message.

The good news is that this prerequisite and the V7R3 PTFs are all documented here https://ibm.github.io/ibmi-bob/#/getting-started/prerequisites?id=tgtccsid-support-on-the-ile-rpg-and-cobol-compilers PTF SI74590 in product 5770WDS is what you need.

Hope this helps