H-Series Application Migration Guide (H06.03+)

H-Series Application Migration Guide429855-006
7-1
7 pTAL Migration Tasks
The H-series RVUs provide a Portable Transaction Application Language (pTAL)
compiler that generates Itanium code. This section discusses:
Using the TNS/E pTAL Compiler
Changed Directives
Changed Functions and Procedures on page 7-5
Procedure Attribute Not Supported on page 7-6
Use of Address Types Changed on page 7-6
Using PLATFORM and AUTO Alignment on page 7-4.
Using RETURN/RETURNSCC in Mixed Language Programs on page 7-4
Conditional Compilation Changes on page 7-7
New TNS/E pTAL Feature on page 7-7
Using the TNS/E pTAL Compiler
All TNS/R pTAL programs must be recompiled with the TNS/E pTAL compiler to
generate Itanium code that will run on a TNS/E system. However, most TNS/R pTAL
programs require no source code changes to compile and run on a TNS/E system. All
of the language features and constructs of TNS/R pTAL are supported in TNS/E pTAL.
A few compiler directives have changed and might need to be removed from or
changed in your programs.
The EPTAL command runs the TNS/E pTAL compiler. The TNS/E pTAL compiler
generates Itanium code and runs only on H-series systems. Like TNS/R pTAL, TNS/E
pTAL does not rely on the underlying processor architecture.
Like TNS/R pTAL, TNS/E pTAL provides a PC-based cross compiler that is supported
on the Windows platform. You can run the cross compiler at the Windows command
prompt by using the eptal command) or through ETK by using the eptal.exe command.
All code produced by the TNS/E pTAL compiler is position-independent code (PIC),
which can be used to create dynamic-link libraries (DLLs). Non-PIC is not supported on
H-series systems.
Changed Directives
The directives that are dropped or changed in TNS/E pTAL either are considered
obsolete in TNS/E pTAL or are related to features, such as SRLs, that are not
supported on H-series systems. In some cases, directives must be removed from your
program. In other cases, the directives are ignored and removal is optional. In still
other cases, the directive behavior is changed and removal depends on the
requirements of the program.