ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzalf_5.4.0.1/rzalfanalysistool.htm

92 lines
6.1 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="concept" />
<meta name="DC.Title" content="Analyze your program's compatibility with i5/OS PASE" />
<meta name="abstract" content="The first step in an assessment of the portability of a C application to the iSeries server involves the analysis of the interfaces that are used in your application." />
<meta name="description" content="The first step in an assessment of the portability of a C application to the iSeries server involves the analysis of the interfaces that are used in your application." />
<meta name="DC.Relation" scheme="URI" content="rzalfpreparing.htm" />
<meta name="DC.Relation" scheme="URI" content="http://www.ibm.com/servers/enable/site/porting/iseries/overview/apitool.html" />
<meta name="DC.Relation" scheme="URI" content="rzalfplanning.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2000, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2000, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzalfanalysist" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Analyze your program's compatibility with i5/OS PASE</title>
</head>
<body id="rzalfanalysist"><a name="rzalfanalysist"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Analyze your program's compatibility with <span class="keyword">i5/OS</span> PASE</h1>
<div><p>The first step in an assessment of the portability of a C application
to the iSeries™ server
involves the analysis of the interfaces that are used in your application.</p>
<p>This API analysis identifies those interfaces that are
used within the application that are not industry standard and not supported
on <span class="keyword">i5/OS™</span>. It also identifies
the interfaces that are compliant with industry standard but supported differently
because of the different architecture of <span class="keyword">i5/OS</span> compared
to AIX<sup>®</sup> or Linux<sup>®</sup> machines.</p>
<p>The API Analysis Tool consists of front-end and back-end processes. The
front-end process scans the compiled application to extract the interfaces
(external functions and data) that are used by the application, and generates
a list of all those interfaces. The back-end process takes this list of interfaces
as input and compares the interfaces with a database of typical system APIs
and their support.</p>
<p>The front-end process of the API analysis tool is a shell script. It uses
the <tt>nm</tt> or <tt>dump</tt> command to find symbol information from the
external symbol table of the application.</p>
<p>Binaries that have been stripped of symbols can contain enough dynamic
binding information for the tool to analyze. Statically bound binaries remove
the library interfaces from the analysis but still expose system call dependencies
for analysis.</p>
<div class="section"><h4 class="sectiontitle">Additional analysis to perform before you compile</h4><p>In
addition to the information you gather from the API analysis tool, you should
also gather the following information:</p>
<ul><li>Obtain a list of libraries used by your application<div class="p">The analysis tool
gives you feedback on some of the standard APIs that your application uses,
but it does not look for many common API sets. A library analysis helps identify
some of the middleware APIs that your application uses. You can run the following
command against each of your commands and shared objects to get a list of
libraries required by your application: <pre> dump -H binary_name</pre>
</div>
</li>
<li>Check your code for hardcoded path names<p>If you run programs that change
credentials or want your programs or scripts to run even when the <span class="keyword">i5/OS</span> PASE environment variable
PASE_EXEC_QOPENSYS=N, you might need to change hardcoded path names.</p>
<p>Because
/usr/bin/ksh is an absolute path (starting at the root), if it is not found
or if it is not a byte stream file, <span class="keyword">i5/OS</span> PASE
searches the /QOpenSys file system for path name /QOpenSys/usr/bin/ksh. QShell
utility programs are not byte stream files, so <span class="keyword">i5/OS</span> PASE
searches the /QOpenSys file system even when the original (absolute) path
is a symbolic link to a QShell utility program, such as /usr/bin/sh.</p>
</li>
</ul>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzalfpreparing.htm" title="The steps you need to take to prepare AIX programs that run effectively on i5/OS vary with the nature of your program and your actual needs for i5/OS system-unique interfaces and functions.">Prepare programs to run in i5/OS PASE</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="rzalfplanning.htm" title="When you begin to work with i5/OS PASE, the points listed in this topic might be helpful to you.">Plan for i5/OS PASE</a></div>
</div>
<div class="relinfo"><strong>Related information</strong><br />
<div><a href="http://www.ibm.com/servers/enable/site/porting/iseries/overview/apitool.html" target="_blank">API Analysis Tool</a></div>
</div>
</div>
</body>
</html>