Mismatched External Data After Upgrading to ACUCOBOL-GT 8.0

0 Likes

This article provides information on a fix for and workarounds for applications that produce a mismatched external data error when compiled after upgrading to ACUCOBOL-GT 8.0.

Problem:

After upgrading to ACUCOBOL-GT Version 8.0, some applications compiled with -Dw32 that compiled cleanly under previous versions halt with the error mismatched external data even when the programs were not changed.

Resolution:

This problem is fixed in ACUCOBOL-GT version 8.1.0. Upgrade to this version to resolve the problem.

However, you can also try any one of the three following workarounds with version 8.0:


  • Compile with both -Dw32 and -Z72.
  • Compile with neither -Dw32 nor -Z72. This might not be the best solution in some cases.
  • Edit the lib/direct.c as follows; then relink the runtime.

    In direct.c, add two lines of code by changing this block of code:

    ***************
    *** 39,45 ****
    --- 39,47 ----
      #endif        /* ACU_SOURCE_FILENAME */
      #define       ACU_SOURCE_FILENAME     "lib/direct.c"
      structEXTRNTABLE EXTDATA[] = {
      { NULL,                 NULL }
      };

    to this:

    ***************
    *** 39,45 ****
    --- 39,47 ----
      #endif        /* ACU_SOURCE_FILENAME */
      #define       ACU_SOURCE_FILENAME     "lib/direct.c"
      staticvoid    *exc_obj;
      structEXTRNTABLE EXTDATA[] = {
      { "EXCEPTION-OBJECT",   (char *) &exc_obj },
      { NULL,                 NULL }
      };

Old KB# 14122
Comment List
Anonymous
Related Discussions
Recommended