Menu

ATE0001:16: Fehler: LINKAGE item »m1t« not passed by caller (2)

Anonymous
2021-05-12
2021-05-17
  • Anonymous

    Anonymous - 2021-05-12

    Sorry,
    The previous mail refuse the attachment.

     
    • Simon Sobisch

      Simon Sobisch - 2021-05-12

      Hm, can I suggest to register/login? This would also remove the additional need for a manual moderation of your posts.

       
    • Simon Sobisch

      Simon Sobisch - 2021-05-12

      As You've wrote that this application also runs on Enterprise COBOL for z/OS I'd highly suggest to rebase it - currently it seems to be based on "default.conf", but in this case the better base definitely would be "ibm-strict.conf". This especially is relevant for the entries that include "osvs" or "ibm" in its name + stick-linkage (warning, this one also change the result of the initial reported message if the program is called multiple times with different amount of parameters (or parameters that are NULL) + hostsign + (for the C interaction) binary-size + assign-clause.

      Using the IBM reserved words instead of default + additional list seems reasonable, too.

       
  • Anonymous

    Anonymous - 2021-05-12

    Yes i use "default.conf" because line sequential files are not possible on z/OS. On z/OS we use jcl with dd and on linux/windows file names.
    In some situation are s99 comp. On z/OS two bytes and on linux/windows one byte.
    The cobol programs depends not on sticky linkage only DB2 SQL PRECOMPILER generated code.
    The alignment with sync for pointer and double word is 8 on linux/windows and 4 on z/OS.
    On z/OS is one cobol program with null pointer to address tcb, tiot and .... So we use a dummy parameter (pic x) for not used parameter. Only a few c programs with va_list can differ on parameters between caller and callee.
    I afraid on several small nicklichkeiten. The same sources but some differences. Linux and windows are not the same and we have Fujitsu (BS2000). Hostsign no is a old decision.
    OpenCOBOL work well with a similar "default.conf".
    As i wrote the problem is cobol caller n, c callee n, c caller m and cobol callee m for n < m parameter. I am not a friend of rebase to ibm.

     
    • Ralph Linkletter

      For zOS compatibility I use the following cob c command line.
      (Please ignore the link libraries)

       -O0 -Xref -fcorrect-numeric -fgoto-entry=ok -LC:\WINGNU\INCLUDE %4 -L%ANIMDRIVE%\IBZANIM\WINGNU\INCLUDE -x -fassign=ibm -fno-gen-c-decl-static-call -fbinary-size=2-4-8 --tsymbols -fsign=ebcdic -fcomplex-odo -fimplicit-init -fsticky-linkage -fperform-osvs -fmove-ibm -fhostsign -fnotrunc -fno-recursive-check -fdefaultbyte=00  -LC:\PROGRA~1\IBM\SQLLIB\LIB\Win32  -A "-include windows.h -Wno-incompatible-pointer-types"
      

      To have a one byte PIC S99 comp use: -fbinary-size=1-2-4-8
      I am using "3.1 dev" since later releases broke the SELECT "ASSIGN TO" clause

      I ignore the default.conf and replace it with the above. --debug introduces all sorts of false positive interrupts.

      Ralph

       

      Last edit: Ralph Linkletter 2021-05-12
  • Anonymous

    Anonymous - 2021-05-14

    Compiling with ibm-strict the same abort.

     
  • Anonymous

    Anonymous - 2021-05-17

    Compiling with r4241 4.0 -std=ate the same abort.
    After analyzing the generated c sources i insert
    (* cob_get_global_ptr()).cob_call_params = 0;
    in the c program ATE0000. This works fine for me.

     

Anonymous
Anonymous

Add attachments
Cancel