Compile Fails with CPD5D02 After Upgrade to V6R1 or Above
A program or service program that compiled OK on V5R3 or V5R4 fails to compile with message CPD5D02 on V6R1 or V7R1.
Resolving the problem
A program or service program that compiled OK on V5R3 or V5R4 fails to compile with message CPD5D02 on V6R1 or V7R1. During the binding steps, the CRTPGM or CRTSRVPGM command fails to resolve to a symbol necessary to complete the compile:
CPD5D02 Diagnostic 30 02/07/13 09:34:36.807355 QBNBIND QSYS *STMT QBNBIND QSYS *STMT
From module . . . . . . . . : QBNBSYMR
From procedure . . . . . . : QBNBSYMR__UnresolvedReferenceIterator
Statement . . . . . . . . . : 31
To module . . . . . . . . . : QBNBSYMR
To procedure . . . . . . . : QBNBSYMR__SignalUnresolvedReferences
Statement . . . . . . . . . : 8
Message . . . . : Definition not found for symbol 'symbolname'.
Cause . . . . . : No definition was found for reference symbolname in
*MODULE object MODULENAME in library LIBRARY. The definition either does
not exist or is not of the same data or procedure type as the reference.
Recovery . . . : Try the Create Program (CRTPGM) command again, supplying
an object that contains a definition for symbol symbolname.
The issue is seen when attempting to bind to service programs that have not been converted for the new release yet. When compiling using CRTPGM or CRTSRVPGM, the binder is responsible for locating procedure exports in the service programs being bound into the application. This process does not constitute a 'touch', and therefore first-touch conversion of the service programs is not initiated. When the binder runs into a service program that has not been converted, it issues an informational message CPI5D20 and skips the service program.
CPI5D20 Information 10 02/07/13 09:34:36.063621 QBNBIND QSYS *STMT QBNBIND QSYS *STMT
From module . . . . . . . . : QBNBLOAD
From procedure . . . . . . : QBNBLOAD__ProgramManager__Load
Statement . . . . . . . . . : 9
To module . . . . . . . . . : QBNBLOAD
To procedure . . . . . . . : QBNBLOAD__LoadObject
Statement . . . . . . . . . : 5
Message . . . . : Service program SRVPGM requires conversion.
Cause . . . . . : Service program SRVPGM in library *LIBL requires
conversion because it is not in the format required. Converting a service
program to the current format may change the way it uses argument
optimization (ARGOPT). Recovery . . . : If there are problems with
ARGOPT, convert this service program, and then try the command again. Use
the Start Object Conversion (STROBJCVN) command to convert the service
To resolve the issue, you should run STROBJCVN against the library to convert the service programs. Then, attempt the compile again.
|Operating System||IBM i 6.1|
|Operating System||IBM i 7.1|
More support for:
Programming (Languages- compilers- tools)
Software version: 5.4.0, 5.4.5, 6.1.0, 6.1.1, 7.1.0
Operating system(s): IBM i
Reference #: N1010514
Modified date: 11 February 2013