|
From: <joh...@as...> - 2003-09-10 18:02:20
|
Hi George,
Our C driver program is not built with XPLINK on. Yet, when we run our C
driver program with ICU 2.4 (the version you inform us cannot be built with
XPLINK on), we are forced to put PARM='XPLINK(ON)/ ' on the EXEC statement
of our C driver program's run-time JCL to get it to work.
(1) Here is a sample C driver program:
#include "unicode/ustdio.h"
#include "unicode/uchar.h"
int main()
{
UFILE *uifptr;
if(!(uifptr =
u_fopen("'BNSS1.ICU.TEST.INPUT'","r","tr_TR","IBM1026,swaplfnl")))
printf("Unable to open input file!\n");
else
printf("Input file opened successfully!\n");
return(0);
}
(2) Here is our compile for that sample C driver program:
//STEP1 EXEC EDCCTCP,
// CPARM='SO,EXPO,RENT,LO,DLL,OPT(1)',
// CPARM3='OPTF(DD:OPTIONS)',
// INFILE='BNSS1.ICU.TEST.C(SAMPLE)',
// LIBRARY='BNSS1.ICU.TEST.OBJ',
// MEMBER='SAMPLE'
//USERLIB DD DSN=VTI0BLD.IPE.V70025.H,DISP=SHR
// DD DSN=VTI0BLD.ICU24.INCLUDE.UNICODE.H,DISP=SHR
//OPTIONS DD *
DEF(MVS,
IBM_MVSC,
VAL_UNICODE)
/*
(3) Here is our link for that sample C driver program, which uses ICU 2.4 :
//STEP2 EXEC EDCPL,
// LPARM='LIST,LET,MAP,AMODE=31,RMODE=ANY,CASE=MIXED',
// PPARM='MAP NOER',
// INFILE='BNSS1.ICU.TEST.OBJ(SAMPLE)',
// OUTFILE='BNSS1.ICU.TEST.LOADE(SAMPLE),DISP=SHR'
//PLKED.SYSLIB DD DSN=BNSS1.ICU.TEST.OBJ,DISP=SHR
//*
//PLKED.SYSIN DD
// DD DSN=VTI0BLD.ICU24.EXP(IXMI24DA),DISP=SHR
// DD DSN=VTI0BLD.ICU24.EXP(IXMI24D1),DISP=SHR
// DD DSN=VTI0BLD.ICU24.EXP(IXMI24IN),DISP=SHR
// DD DSN=VTI0BLD.ICU24.EXP(IXMI24IO),DISP=SHR
// DD DSN=VTI0BLD.ICU24.EXP(IXMI24UC),DISP=SHR
//*
//PLKED.SYSDEFSD DD DISP=SHR,
// DSN=BNSS1.ICU.TEST.DLL.SYSDEFSD(SAMPLE)
//LKED.SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
// DD DSN=BNSS1.ICU.TEST.OBJ,DISP=SHR
//LKED.SYSIN DD *
NAME SAMPLE(R)
/*
//
(4) Here is the place in the output of the link of that sample C driver
program that proves that the C driver program was not built with XPLINK on:
SDSF OUTPUT DISPLAY BNJDSC JOB02467
COMMAND INPUT ===>
SAVE MODULE ATTRIBUTES:
AC 000
AMODE 31
DC NO
EDITABLE YES
EXCEEDS 16MB NO
EXECUTABLE YES
MIGRATABLE YES
OL NO
OVLY NO
PACK,PRIME NO,NO
PAGE ALIGN NO
REFR NO
RENT NO
REUS NO
RMODE ANY
SCTR NO
SSI
SYM GENERATED NO
TEST NO
XPLINK NO
MODULE SIZE (HEX) 00000EA8
(5) Here is the sample run-time JCL for that sample C driver program that
does not use XPLINK(ON) and also the abend message and further down below
the error message we get when we execute this JCL:
//BNJDSR JOB (BNJDS),'RUN',CLASS=A,NOTIFY=BNJDS,MSGCLASS=X,
// REGION=4096K,TIME=(1440)
//*
//***** EXEC PGM=SAMPLE,PARM='XPLINK(ON)/'
//*
//STEP1 EXEC PGM=SAMPLE
//*
//STEPLIB DD DSN=BNSS1.ICU.TEST.LOADE,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//*
J E S 2 J O B L O G -- S Y S T E M S Y S 1 --
N
05.41.18 JOB02469 ---- WEDNESDAY, 10 SEP 2003 ----
05.41.18 JOB02469 IRR010I USERID BNJDS IS ASSIGNED TO THIS JOB.
05.41.18 JOB02469 ICH70001I BNJDS LAST ACCESS AT 05:41:00 ON WEDNESDAY,
SEPT
05.41.18 JOB02469 $HASP373 BNJDSR STARTED - INIT 2 - CLASS A - SYS
SYS1
05.41.19 JOB02469 IEF450I BNJDSR STEP1 - ABEND=S000 U4038 REASON=00000001
05.41.19 JOB02469 $HASP395 BNJDSR ENDED
------ JES2 JOB STATISTICS ------
10 SEP 2003 JOB EXECUTION DATE
11 CARDS READ
1,148 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
101 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME
1 //BNJDSR JOB (BNJDS),'RUN',CLASS=A,NOTIFY=BNJDS,MSGCLASS=X,
// REGION=4096K,TIME=(1440)
//*
//***** EXEC PGM=SAMPLE,PARM='XPLINK(ON)/'
//*
2 //STEP1 EXEC PGM=SAMPLE
//*
3 //STEPLIB DD DSN=BNSS1.ICU.TEST.LOADE,DISP=SHR
4 //SYSPRINT DD SYSOUT=*
5 //SYSOUT DD SYSOUT=*
//*
CEE3555S A call was made from a NOXPLINK-compiled application to an
XPLINK-compiled exported function in DLL C128 and
the XPLINK(ON) runtime option was not specified.
From entry point __dllstaticinit at compile unit offset +000005C4
at entry offset +000005C4 at address
093554CC.
(6) And here is the sample run-time JCL for that sample C driver program
that uses XPLINK(ON) and also the successful output we get when we execute
this JCL:
//BNJDSR JOB (BNJDS),'RUN',CLASS=A,NOTIFY=BNJDS,MSGCLASS=X,
// REGION=4096K,TIME=(1440)
//*
//STEP1 EXEC PGM=SAMPLE,PARM='XPLINK(ON)/'
//*
//***** EXEC PGM=SAMPLE
//*
//STEPLIB DD DSN=BNSS1.ICU.TEST.LOADE,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//*
J E S 2 J O B L O G -- S Y S T E M S Y S 1 --
N
05.41.00 JOB02468 ---- WEDNESDAY, 10 SEP 2003 ----
05.41.00 JOB02468 IRR010I USERID BNJDS IS ASSIGNED TO THIS JOB.
05.41.00 JOB02468 ICH70001I BNJDS LAST ACCESS AT 05:39:16 ON WEDNESDAY,
SEPT
05.41.00 JOB02468 $HASP373 BNJDSR STARTED - INIT 2 - CLASS A - SYS
SYS1
05.41.01 JOB02468 $HASP395 BNJDSR ENDED
------ JES2 JOB STATISTICS ------
10 SEP 2003 JOB EXECUTION DATE
11 CARDS READ
41 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
2 SYSOUT SPOOL KBYTES
0.02 MINUTES EXECUTION TIME
1 //BNJDSR JOB (BNJDS),'RUN',CLASS=A,NOTIFY=BNJDS,MSGCLASS=X,
// REGION=4096K,TIME=(1440)
//*
2 //STEP1 EXEC PGM=SAMPLE,PARM='XPLINK(ON)/'
//*
//***** EXEC PGM=SAMPLE
//*
3 //STEPLIB DD DSN=BNSS1.ICU.TEST.LOADE,DISP=SHR
4 //SYSPRINT DD SYSOUT=*
5 //SYSOUT DD SYSOUT=*
//*
IEF142I BNJDSR STEP1 - STEP WAS EXECUTED - COND CODE 0000
IGD104I BNSS1.ICU.TEST.LOADE RETAINED,
DDNAME=STEPLIB
IEF285I BNJDS.BNJDSR.JOB02468.D0000101.? SYSOUT
IEF285I BNJDS.BNJDSR.JOB02468.D0000102.? SYSOUT
IEF373I STEP/STEP1 /START 2003253.0541
IEF374I STEP/STEP1 /STOP 2003253.0541 CPU 0MIN 00.20SEC SRB 0MIN
00.00S
IEF375I JOB/BNJDSR /START 2003253.0541
IEF376I JOB/BNJDSR /STOP 2003253.0541 CPU 0MIN 00.20SEC SRB 0MIN
00.00S
Input file opened successfully!
******************************** BOTTOM OF DATA
********************************
-----Original Message-----
From: George Rhoten [mailto:gr...@us...]
Sent: Tuesday, September 09, 2003 6:29 PM
To: joh...@as...
Cc: icu...@ww...;
rob...@as...; sam...@as...
Subject: Re: Question RE: ICU, Cobol, and XPLINK option on MVS z/OS 1.3
If your C driver program is built with XPLINK on, then ICU needs to be
built with XPLINK on. ICU 2.4 can't be built with XPLINK on, and you
can't mix non-XPLINK code with XPLINK code. Only 2.6 has the option to
turn XPLINK on when building ICU. Previous versions of ICU couldn't be
built with XPLINK on (therefore XPLINK is always off).
Here is my suggestion:
1) Upgrade to ICU 2.6.
2) Follow the directions in the ICU 2.6 readme.html for turning XPLINK on.
George Rhoten
IBM Globalization Center of Competency/ICU San José, CA, USA
joh...@as...
Sent by: icu...@os...
09/09/2003 01:25 PM
To: icu...@os...
cc: sam...@as...,
rob...@as...
Subject: Question RE: ICU, Cobol, and XPLINK option on MVS
z/OS 1.3
My name is John Small; I am a software engineer at Ascential Software in
Westboro, Massachusetts. We are using ICU Version 2.4 DLL's for some
internationalization coding, and we have run into a problem integrating
Cobol and C modules with ICU Version 2.4 DLL's.
The platform we are working on is MVS z/OS 1.3 on a P390 box.
We are testing an application structured like this:
C or Cobol driver program -> which calls ->
C api program -> which calls ->
ICU Version 2.4 DLL functions.
The C api programs (which call ICU DLL's) are statically-linked into the C
and Cobol driver programs.
We made certain to carefully follow the ICU script for building the ICU
Version 2.4 modules in our USS environment, with parameter "OS390 BATCH"
set
to 1, as the script specifies.
Nowhere in the script was there any mention of an XPLINK parameter.
At run time, if we run the C driver program, we must provide on our JCL's
EXEC line the XPLINK(ON)/ run-time option in order to get the C driver
program to work...for example:
//STEP005 PGM=CDRIVER,PARM='XPLINK(ON)/ -i DD:INDATA -o DD:OUTDATA'
However, when we run the Cobol driver program, if we do not provide that
XPLINK(ON)/ option, we get this system error:
"CEE3555S A call was made from a NOXPLINK-compiled application to an
XPLINK-compiled exported function in DLL C128 and the XPLINK(ON) runtime
option was not specified."
But, when we try providing the XPLINK(ON)/ option for our Cobol driver
program, it is not recognized and we get a run time system error:
"CEE3608I The following messages pertain to the invocation command
run-time
options.
CEE3611I The run-time option -i was an invalid run-time option or is not
supported in this release of Language Environment"
CEE3611I The run-time option DD:INDATA was an invalid run-time option or
is
not supported in this release of Language Environment"
CEE3611I The run-time option -o was an invalid run-time option or is not
supported in this release of Language Environment"
CEE3611I The run-time option DD:OUTDATA was an invalid run-time option or
is
not supported in this release of Language Environment"
.....and then following that system error is the same one quoted above,
namely,
"CEE3555S A call was made from a NOXPLINK-compiled application to an
XPLINK-compiled exported function in DLL C128 and the XPLINK(ON) runtime
option was not specified."
How should we compile and link our Cobol driver programs to use ICU
Version
2.4 DLL's that are called by our C api programs which are
statically-linked
into our Cobol driver?
Is there a way to build ICU Version 2.4 so it can work without requiring
the
XPLINK(ON)/ run-time option on MVS z/OS ?
Thanks very much,
John Small
Software Development Engineer
Ascential Software Corp.
50 Washington Street
2nd Floor
Westboro, MA 01581
T: 508-366-3888 x3305
F: 508-389-8769
joh...@as...
www.ascentialsoftware.com
_______________________________________________
icu...@os... - icu4c-support mailing list
To Un/Subscribe:
http://oss.software.ibm.com/developerworks/oss/mailman/listinfo/icu4c-suppor
t
|