J06.10 Release Version Update Compendium

3 Application Development Products
New c99 Compiler Utility and Support for the c99 Standard
This RVU adds support for TNS/E native applications that conform to the ISO C Standard:
Programming Languages - C NCTIS ISO/IEC 9899:1999(E), (commonly called the c99 standard):
Full support is provided for programs using IEEE floating point format: Complex types and
several new math functions/macros are not supported for Tandem floating point format.
However, all other c99 features are available when compiled using the Tandem floating
point format option.
Support for embedded SQL/MP is not available with c99. Support for embedded SQL/MX
remains available.
A new compiler utility, c99, is available.
Support for the 1989 C Standard and the c89 compiler utility is still provided.
For more information about the c99 compiler utility, see the c99(1) reference page online or
in the Open System Services Shell and Utilities Reference Manual. For more information about the
c99 features, see the C/C++ Programmer's Guide.
Migration Considerations
Support for c99 is available for J-Series TNS/E-targeted compilations only. If your application
maintains common source for TNS- or TNS/R-targeted compilations, HP recommends that you
protect the usage of c99 features by conditional compilation within #if or #ifdef statements.
Applications that use any of the new runtime library features (described in Chapter 7 of the
standard) will not run on systems running J06.09 or earlier J-series RVUs.
Applications that use the new compiler features cannot be compiled on systems running J06.09
or earlier J-series RVUs unless the C compiler SPRs (T0549AAT and T8164ABX) are installed.
Because the standard header SPR (T8645H03) cannot be installed on these earlier RVUs, only
features that do not involve header enhancements (described in Chapter 7 of the standard) can
be compiled on these earlier RVUs.
Fallback Considerations
Applications that use the header enhancements or the new runtime library features will not run
systems running J06.09 or earlier J-series RVUs. The c99 utility is not supported for systems
running J06.09 or earlier J-series RVUs.
New ELD Option: -cross_dll_cleanup
A new option, -cross_dll_cleanup, can be used to reduce the total size of a program and the
private dynamic-link libraries (DLLs) that are used by a process. When this option is used, eld
discards a procedure in an input linkfile if a procedure of the same name exists in one of the
other DLLs specified. The reference to the symbol is resolved to the copy of the symbol that is
in the DLL.
Migration Considerations
When a program or DLL is built with the –cross_dll_cleanup option, any code within that program
or DLL that was compiled with the H06.08 or later version of the compiler, and was not compiled
with the “globalized” option, must be recompiled with the “globalized” option. Note that reducing
the code size of a program or DLL might also reduce performance.
New c99 Compiler Utility and Support for the c99 Standard 15