Has the DLL option changed in the new compiler?
Do you know if the DLL option in C has changed between the old and new compilers (C/C++ for OS/390 r10.2 to C/C++ for z/OS r1.6)? I have a C program that compiles as a DLL with the old compiler and there is no message that the LONGNAME is set. However, with the new compiler there is a message that the DLL option forces the LONGNAME. I tried to override the LONGNAME with NOLONGNAME but the compiler insists. I also found a note in the manual that confirms this. This means that anybody compiling a C program as a DLL gets LONGNAMEs and therefore must become a PDSE load.
In researching this question, I have not been able to find out that anything has changed regarding this option for the OS/390 V2.10 C/C++ compiler. On the other hand, you may have changed the C/C++ compiler you're using, perhaps without knowing it. Starting with z/OS V1.2, the ISO C/C++ compiler is shipped with z/OS, in addition to the OS/390 V2.10 version of the C/C++ compiler, and, as a long term strategy, you're recommended to use this new compiler (see z/OS V1.6 Migration: Section 6.1.3 -- Removing your dependency on the OS/390 V1R10 level of the C/C++ compilers
). If you are using the new compiler, that may be the reason for the compiler option change.
If you are still using the old compiler, could you send the message number of the message you're seeing? That may help me pinpoint the problem.
This was first published in December 2005