The Porting Assistant runs a series of
checks on your code. These checks identify potential problems in compiling, linking, and
running your application on Tru64 UNIX. Each check is run on all the files you identified
as being a part of your application during setup. A transcript,
that is, a log, is produced by a tool called the Builder of the potential problem areas.
To see the source corresponding to reported problem, double click on the diagnostic
message describing it in the Builder's transcript.
The checks cover
Brief descriptions follow. Clicking on a
check name hotspot positions you at the description. To see a screen shot for the check,
click on the Porting Assistant icon to the left of the section title.
Applications that run on multiple
platforms often need some platform-specific code. In many languages, this is commonly
dealt with by defining one or more #define values that specify each variant. The #define
values are then made part of conditional compilation constructs, such as the #ifdef
construct, which designate that the code is for a particular variant. When porting to a
new platform, you usually need to define a new variant for the platform and add
conditional compilation sequences. Ifdef checking makes it easier to find the locations
for the additional platform-specific sequences.
As shown in the screen shot, the check lets you specify a list of #defines
to be located. The Porting Assistant lists the standard ones for particular platforms. You
can also add your own.
Once you've built the list of #define
values to search for, click on the Execute button to find the values appear in your source
As shown in the screen shot, the Porting Assistant identifies the location
of each reference. The diagnostic message also indicates whether the #if or #else branch
would be taken by the compiler based on the #define flags in your original makefile that
was processed during setup.
Problems with include files are common
when porting code from one platform to another. This is because system include files and
Motif header files are sometimes present in different locations on different operating
systems. There are also cases where certain include files are found on only one system.
The Include Files check verifies that all include files specified in your application's
source files can be located. The Porting Assistant generates a message in the Builder
transcript for any include files that cannot be located. It also generates a message
indicating include files of the same name found in a different directory.
Because of the 64-bit architecture of the
Alpha platform, applications ported from 32-bit platforms may encounter problems in
structure alignment and pointer size truncation. The Porting Assistant helps locate those
files in an application that may contain 32-bit dependencies. This check is available for
C code only.
When porting to Tru64 UNIX, you can use
the Porting Assistant to check that your function calls are consistent with the system
definitions for the functions. This check will uncover several possible problems:
- Function does not exist on Tru64 UNIX
- Function is defined in an alternate
location on Tru64 UNIX
- Function's signature is different on Tru64
In the first case, the Porting Assistant
can suggest an alternate function. By using the Find Function Utility (screen shot), the Porting Assistant will show you alternate
functions on Tru64 UNIX.
In the second and third cases, you can
use the Man Page Browser (screen shot). The top of each
manpage lists the include file that
defines the function and the library containing the implementation.
Platform Specific Assumptions
Certain functions perform differently at
run-time from one platform to the next. The check for platform-specific assumptions
searches for function calls that may have this problem. For example:
- Memory functions can allocate, compare,
set, or copy a larger number of locations due to the extended memory range of Alpha
- You can use the asm keyword to place
machine instructions inline.
This check also identifies semantic
differences between OpenVMS and UNIX operating systems, for example, the format of file
names, directories, nodes, access control lists, and so on. The check can also identify
semantic differences between VAX C and DEC C, which are due primarily to VAX C not being
fully ANSI compliant.
Search Libraries Capabilities
The Porting Assistant provides library
search capabilities for archived and shared libraries on Tru64 UNIX that contain a
particular function to facilitate linking applications to the correct archived or shared
libraries. This capability enhances the search for referenced functions and the library or
libraries where they are defined or whether they exist in the Tru64 UNIX libraries. The
search of libraries allows the option of adding or eliminating additional libraries to the
The Makefile check helps in porting an
application makefile to Tru64 UNIX by verifying the following:
[Locating] [Understanding] [Making Changes]