В Ср., 07/10/2015 в 09:53 -0700, Ray Mullins пишет:
> On 10/06/2015 17:45, Karl Williamson wrote:
> > I'm working on continuing to port perl5 to z/OS. One test that is
> > failing is beyond my knowledge level. The Dynaloader module has a
> > function dl_findfile() which looks for libraries in the path. It is
> > expecting to find libc at least, but is finding nothing.
> >
> > This test does not work on several platforms, even some Unix-like
> > ones, and my guess is it doesn't work on z/OS either. But I am hoping
> > someone can give me more information.
> >
> > One of the comments in the perl source says:
> > # On OS/390, libc.a doesn't really hold anything at all,
> >
> > And that makes me think that looking for it (and perhaps any Unix-y
> > library) is futile.
> What exactly is DynaLoader expecting to do with libc.a? CEE.SCEELIB
> contains binder (newer terminology in z/OS Land for link) commands that
> resolve C run-time calls to entry points in a LL which resides in shared
> memory. That behavior might provide some guidance on how to handle this,
> if it needs to be handled.
>
> Yaroslav, would you mind adding a -V to the command line to the c99
> command for a successful build? It should generate a .l file, which
> (hopefully) should contain the binder output as well as compiler output
> (not as important). I would like to see if the binder output provides a
> clue. (The Fine Manual is missing information; -V is documented for the
> c89 command, but says it is handled differently by the xlc (c99 is an
> alias) command, but, in typical IBM fashion, there's no mention of it
> there…)
log command successful build :
(02:41) RS12 : PDKUZM | ~/test/alloca :> make
c99 -v -qlanglvl=extended -qxplink -c main.c
FSUM0000I Utility(xlc) Level(D141205.1449)
exec: export(export,XL_CONFIG=/bin/../usr/lpp/cbclib/xlc/etc/xlc.cfg:c99,NULL)
exec:
/usr/lpp/cbclib/xlc/exe/ccndrvr(/usr/lpp/cbclib/xlc/exe/ccndrvr,./,./main.c,*.c,CMDOPTS(DEFINE(errno=(*__errno())),NOTEST,-
qoe,-qargparse,-qexecops,-qflag=i,-qhalt=16,-qnodebug,-qnolsearch,-qredir,-qlocale=POSIX,
-qlongname,-qmaxmem=*,-qmemory,-qnestinc=255,-qnoexpmac,-qnoexportall,-qnogonumber,-qtarget=le,
-qnolibansi,-qlist=/dev/fd1,-qnolist,-qnomargins,-qnooffset,-qnosequence,-qnoshowinc,
-qsource=/dev/fd1,-qnosource,-qnoxref,-qterminal,-qnooptimize,-qplist=host,-qspill=128,-qstart,
-qnoipa,DEFINE(_OPEN_DEFAULT=1),DEFINE(_ISOC99_SOURCE),-qansialias,-qcpluscmt,-qlanglvl=stdc99,
-qstrict_induction,-qnoupconv,-qnoaggregate,-qnoalias,-qnoinfo,-qnoevents,-qrent,
-qinline=auto:noreport:100:1000,-qnoinline),object(./main.o),-qlanglvl=extended,
-qxplink,NOPPONLY,NULL)
exec: export(export,STEPLIB=NONE,NULL)
exec: export(export,_C89_ACCEPTABLE_RC=4,NULL)
c99 -v -qxplink -M -o alloca main.o
FSUM0000I Utility(xlc) Level(D141205.1449)
exec: export(export,XL_CONFIG=/bin/../usr/lpp/cbclib/xlc/etc/xlc.cfg:c99,NULL)
exec: /bin/c89(/bin/c89,-v,-Wl,xplink,-o./alloca,main.o,NULL)
exec: export(export,STEPLIB=NONE,NULL)
exec: export(export,_C89_ACCEPTABLE_RC=4,NULL)
exec: export(export,_C89_PVERSION=0x42010001,NULL)
exec: export(export,_C89_PSYSIX=,NULL)
exec: export(export,_C89_LXSYSIX=CEE.SCEELIB(CELHS003,CELHS001),NULL)
exec: export(export,_C89_LXSYSLIB=CEE.SCEEBND2:CBC.SCCNOBJ:SYS1.CSSLIB,NULL)
FSUM0000I Utility(c89) Level(D141205.1449)
//* c89 ------------------------------------------------------------------------
//LINKEDIT EXEC PGM=LINKEDIT,
// PARM='AMODE=31,RMODE=ANY,TERM=YES,
// DYNAM=DLL,ALIASES=NO,UPCASE=NO,
// LIST=OFF,MAP=NO,XREF=NO,INFO=NO,MSGLEVEL=4,
// REUS=RENT,EDIT=YES,AC=0,CALL=YES,CASE=MIXED
// ,XPLINK'
//SYSLIB DD DSN='CEE.SCEEBND2',DISP=SHR,DCB=DSORG=DIR
// DD DSN='CBC.SCCNOBJ',DISP=SHR,DCB=DSORG=DIR
// DD DSN='SYS1.CSSLIB',DISP=SHR,DCB=DSORG=DIR
//C8920 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// STORCLAS=,MGMTCLAS=,DATACLAS=,DSNTYPE=,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//C8921 DD DSN='CEE.SCEELIB',DISP=SHR,DCB=DSORG=DIR
//SYSPRINT DD PATH='/dev/fd1',
// PATHOPTS=(ORDWR,OCREAT,OAPPEND),FILEDATA=TEXT,
// PATHMODE=(SIROTH,SIRGRP,SIRUSR,SIWOTH,SIWGRP,SIWUSR)
//SYSTERM DD PATH='/dev/fd2',
// PATHOPTS=(ORDWR,OCREAT,OAPPEND),FILEDATA=TEXT,
// PATHMODE=(SIROTH,SIRGRP,SIRUSR,SIWOTH,SIWGRP,SIWUSR)
//SYSLMOD DD PATH='./alloca',
// PATHOPTS=(OWRONLY,OCREAT),
// PATHMODE=(SIRWXO,SIRWXG,SIRWXU)
//SYSLIN DD *
INCLUDE C8920
INCLUDE './main.o'
INCLUDE C8921(CELHS003)
INCLUDE C8921(CELHS001)
/*
log command not successful build :
(02:44) RS12 : PDKUZM | ~/test/alloca :> make
c99 -v -qlanglvl=extended -qxplink -c main.c
FSUM0000I Utility(xlc) Level(D141205.1449)
exec: export(export,XL_CONFIG=/bin/../usr/lpp/cbclib/xlc/etc/xlc.cfg:c99,NULL)
exec:
/usr/lpp/cbclib/xlc/exe/ccndrvr(/usr/lpp/cbclib/xlc/exe/ccndrvr,./,./main.c,*.c,CMDOPTS(DEFINE(errno=(*__errno())),NOTEST,-
qoe,-qargparse,-qexecops,-qflag=i,-qhalt=16,-qnodebug,-qnolsearch,-qredir,-qlocale=POSIX,
-qlongname,-qmaxmem=*,-qmemory,-qnestinc=255,-qnoexpmac,-qnoexportall,-qnogonumber,-qtarget=le,
-qnolibansi,-qlist=/dev/fd1,-qnolist,-qnomargins,-qnooffset,-qnosequence,-qnoshowinc,
-qsource=/dev/fd1,-qnosource,-qnoxref,-qterminal,-qnooptimize,-qplist=host,-qspill=128,-qstart,
-qnoipa,DEFINE(_OPEN_DEFAULT=1),DEFINE(_ISOC99_SOURCE),-qansialias,-qcpluscmt,-qlanglvl=stdc99,
-qstrict_induction,-qnoupconv,-qnoaggregate,-qnoalias,-qnoinfo,-qnoevents,-qrent,
-qinline=auto:noreport:100:1000,-qnoinline),object(./main.o),-qlanglvl=extended,
-qxplink,NOPPONLY,NULL)
exec: export(export,STEPLIB=NONE,NULL)
exec: export(export,_C89_ACCEPTABLE_RC=4,NULL)
c99 -v -qxplink -M -o alloca main.o
FSUM0000I Utility(xlc) Level(D141205.1449)
exec: export(export,XL_CONFIG=/bin/../usr/lpp/cbclib/xlc/etc/xlc.cfg:c99,NULL)
exec: /bin/c89(/bin/c89,-v,-Wl,xplink,-o./alloca,main.o,NULL)
exec: export(export,STEPLIB=NONE,NULL)
exec: export(export,_C89_ACCEPTABLE_RC=4,NULL)
exec: export(export,_C89_PVERSION=0x42010001,NULL)
exec: export(export,_C89_PSYSIX=,NULL)
exec: export(export,_C89_LXSYSIX=CEE.SCEELIB(CELHS003,CELHS001),NULL)
exec: export(export,_C89_LXSYSLIB=CEE.SCEEBND2:CBC.SCCNOBJ:SYS1.CSSLIB,NULL)
FSUM0000I Utility(c89) Level(D141205.1449)
//* c89 ------------------------------------------------------------------------
//LINKEDIT EXEC PGM=LINKEDIT,
// PARM='AMODE=31,RMODE=ANY,TERM=YES,
// DYNAM=DLL,ALIASES=NO,UPCASE=NO,
// LIST=OFF,MAP=NO,XREF=NO,INFO=NO,MSGLEVEL=4,
// REUS=RENT,EDIT=YES,AC=0,CALL=YES,CASE=MIXED
// ,XPLINK'
//SYSLIB DD DSN='CEE.SCEEBND2',DISP=SHR,DCB=DSORG=DIR
// DD DSN='CBC.SCCNOBJ',DISP=SHR,DCB=DSORG=DIR
// DD DSN='SYS1.CSSLIB',DISP=SHR,DCB=DSORG=DIR
//C8920 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// STORCLAS=,MGMTCLAS=,DATACLAS=,DSNTYPE=,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//C8921 DD DSN='CEE.SCEELIB',DISP=SHR,DCB=DSORG=DIR
//SYSPRINT DD PATH='/dev/fd1',
// PATHOPTS=(ORDWR,OCREAT,OAPPEND),FILEDATA=TEXT,
// PATHMODE=(SIROTH,SIRGRP,SIRUSR,SIWOTH,SIWGRP,SIWUSR)
//SYSTERM DD PATH='/dev/fd2',
// PATHOPTS=(ORDWR,OCREAT,OAPPEND),FILEDATA=TEXT,
// PATHMODE=(SIROTH,SIRGRP,SIRUSR,SIWOTH,SIWGRP,SIWUSR)
//SYSLMOD DD PATH='./alloca',
// PATHOPTS=(OWRONLY,OCREAT),
// PATHMODE=(SIRWXO,SIRWXG,SIRWXU)
//SYSLIN DD *
INCLUDE C8920
INCLUDE './main.o'
INCLUDE C8921(CELHS003)
INCLUDE C8921(CELHS001)
/*
IEW2456E 9207 SYMBOL alloca UNRESOLVED. MEMBER COULD NOT BE INCLUDED FROM THE
DESIGNATED CALL LIBRARY.
FSUM3065 The LINKEDIT step ended with return code 8.
make: *** [alloca] Error 3
>
> BTW, in z/OS USS, standard data sets can be accessed using a UNIX-like
> path, //'data.set.name' or //'data.set.name(member)'.
>
> Cheers,
> Ray
>
================================
Rocket Software, Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA 02451 ■
+1 800.966.3270 ■ +1 781.577.4321
Unsubscribe From Commercial Email – [email protected]
Manage Your Subscription Preferences -
http://info.rocketsoftware.com/GlobalSubscriptionManagementEmailFooter_SubscriptionCenter.html
Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy
================================
This communication and any attachments may contain confidential information of
Rocket Software, Inc. All unauthorized use, disclosure or distribution is
prohibited. If you are not the intended recipient, please notify Rocket
Software immediately and destroy all copies of this communication. Thank you.