mainly for Drakkhen...here's a heads-up on OS/400 V5R1 that i just learned. it seems as though compiling a program on V5R1 with the parm tgtrls(*prv) doesn't produce identical code to that compiled on V4R5. i came across this from the iSeries News magazine email list i'm subscribed on. the newsletter doesn't say whether there's a ptf for this. what follows below is the text of the message in the email:
Q: I am trying to create a program from several modules and bind it to a service
program, but I am having problems. For example, consider that I have the
following objects:
Mod1 -- RPGLE module
Mod2 -- SQLRPGLE module
Mod3 -- RPGLE module
MySrvPgm -- Service program consisting of RPGLE module SPMod
I am trying to create program MyPgm with the following command:
CrtPgm Pgm(MyPgm)
Module(Mod1 Mod2 Mod3)
BndSrvPgm(MySrvPgm)
The compile fails in the binding step with message MCH0601, "Space offset or
teraspace offset outside current limit for object."
Is it simply not possible to bind these program objects in the manner I'm
trying?
A: There is nothing wrong with the way you're trying to bind the program
objects. Based on previous experience, I suspect that your problem is related to
previous release support incompatibility. For example, all of your program
objects are compiled to run at release V4R5, but some were created with the V4R5
compiler and others were created with a V5R1 compiler with TgtRls(*Prv) so that
they were compatible with V4R5. This often happens in environments with multiple
systems at different releases. Some objects are compiled on one system (e.g., at
V5R1) with TgtRls(*Prv) and sent to another system with a different release
(e.g., at V4R5). Subsequent changes to the sources of some of these objects
result in a recompile on the V4R5 system specifying TgtRls(*Current). Even though
all objects (those compiled on the V5R1 system and those compiled on the V4R5
system) have a target release of V4R5, they were created with different
compilers. It appears that compiling at V5R1 with TgtRls(*Prv) doesn't produce
identical code to that produced at V4R5.
You should use command DspMod to display modules Mod1, Mod2, and Mod3 and
examine the release at which they were created. You should recompile (on the
V4R5 system) any modules that were created on the V5R1 system. Once all modules
are created by the V4R5 compiler, you will be able to bind them together with
your CrtPgm command.
Note that this is a circumvention only. You should report this problem to your
software support provider, who can determine whether corrective PTFs exist. If
they do not, the problem should be reported to IBM.