blob: 1910ada63536b410dc7abcc50fd73f6e43ff8a5f [file] [log] [blame]
<!DOCTYPE html>
<html lang="en" dir="ltr" class="client-nojs">
<head>
<title>ABI Compliance Checker Options</title>
<meta charset="UTF-8" />
<meta name="generator" content="MediaWiki 1.18.1" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch_desc.php" title="ISP_RAS (en)" />
<link rel="EditURI" type="application/rsd+xml" href="http://ispras.linuxbase.org/api.php?action=rsd" />
<link rel="alternate" type="application/atom+xml" title="ISP_RAS Atom feed" href="/index.php?title=Special:RecentChanges&amp;feed=atom" />
<link rel="stylesheet" href="/load.php?debug=false&amp;lang=en&amp;modules=mediawiki.legacy.commonPrint%2Cshared%7Cskins.monobook&amp;only=styles&amp;skin=monobook&amp;*" />
<!--[if lt IE 5.5000]><link rel="stylesheet" href="/skins/monobook/IE50Fixes.css?303" media="screen" /><![endif]-->
<!--[if IE 5.5000]><link rel="stylesheet" href="/skins/monobook/IE55Fixes.css?303" media="screen" /><![endif]-->
<!--[if IE 6]><link rel="stylesheet" href="/skins/monobook/IE60Fixes.css?303" media="screen" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="/skins/monobook/IE70Fixes.css?303" media="screen" /><![endif]--><meta name="ResourceLoaderDynamicStyles" content="" />
<link rel="stylesheet" href="/load.php?debug=false&amp;lang=en&amp;modules=site&amp;only=styles&amp;skin=monobook&amp;*" />
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}a.new,#quickbar a.new{color:#ba0000}
/* cache key: rasispdb:resourceloader:filter:minify-css:4:c88e2bcd56513749bec09a7e29cb3ffa */
</style>
<script src="/load.php?debug=false&amp;lang=en&amp;modules=startup&amp;only=scripts&amp;skin=monobook&amp;*"></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace": "", "wgCanonicalSpecialPageName": false, "wgNamespaceNumber": 0, "wgPageName": "ABI_compliance_checker_Options", "wgTitle": "ABI Compliance Checker Options", "wgCurRevisionId": 8307, "wgArticleId": 2442, "wgIsArticle": true, "wgAction": "view", "wgUserName": null, "wgUserGroups": ["*"], "wgCategories": ["ABI Compliance Checker"], "wgBreakFrames": false, "wgRestrictionEdit": [], "wgRestrictionMove": []});
}
</script><script>if(window.mw){
mw.loader.load(["mediawiki.page.startup"]);
}
</script>
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-ABI_compliance_checker_Options action-view skin-monobook">
<div id="globalWrapper">
<div id="column-content"><div id="content">
<a id="top"></a>
<h1 id="firstHeading" class="firstHeading">ABI Compliance Checker Options</h1>
<div id="bodyContent">
<div id="siteSub"></div>
<div id="contentSub"></div>
<!-- start content -->
<div lang="en" dir="ltr" class="mw-content-ltr"><table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Information_Options"><span class="tocnumber">1</span> <span class="toctext">Information Options</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#General_Options"><span class="tocnumber">2</span> <span class="toctext">General Options</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="#Extra_Options"><span class="tocnumber">3</span> <span class="toctext">Extra Options</span></a></li>
<li class="toclevel-1 tocsection-4"><a href="#Other_Options"><span class="tocnumber">4</span> <span class="toctext">Other Options</span></a></li>
</ul>
</td></tr></table>
<h2> <span class="mw-headline" id="Information_Options"> Information Options </span></h2>
<ul><li><b>-h|-help</b>
</li></ul>
<div style="padding-left:40px;">Print help message.</div><br />
<ul><li><b>-i|-info</b>
</li></ul>
<div style="padding-left:40px;">Print complete info.</div><br />
<ul><li><b>-v|-version</b>
</li></ul>
<div style="padding-left:40px;">Print version information.</div><br />
<ul><li><b>-dumpversion</b>
</li></ul>
<div style="padding-left:40px;">Print the tool version and don't do anything else.</div><br />
<h2> <span class="mw-headline" id="General_Options"> General Options </span></h2>
<ul><li><b>-l|-lib|-library NAME</b>
</li></ul>
<div style="padding-left:40px;">Library name (without version). It affects only on the path and the title of the report.</div><br />
<ul><li><b>-d1|-old|-o PATH</b>
</li></ul>
<div style="padding-left:40px;">Path to the <a href="Descriptor.html" title="Library Descriptor">descriptor</a> of 1st (old) library version.</div><br />
<ul><li><b>-d2|-new|-n PATH</b>
</li></ul>
<div style="padding-left:40px;">Path to the <a href="Descriptor.html" title="Library Descriptor">descriptor</a> of 2nd (new) library version.</div><br />
<ul><li><b>-dump|-dump-abi PATH</b>
</li></ul>
<div style="padding-left:40px;">Create library ABI dump for the input XML descriptor. You can transfer it anywhere and pass instead of the descriptor. Also it can be used for debugging the tool.</div><br />
<ul><li><b>-old-dumps</b>
</li></ul>
<div style="padding-left:40px;">Enable support for old-version ABI dumps.</div><br />
<h2> <span class="mw-headline" id="Extra_Options"> Extra Options </span></h2>
<ul><li><b>-d|-descriptor-template</b>
</li></ul>
<div style="padding-left:40px;">Create XML-descriptor template ./VERSION.xml</div><br />
<ul><li><b>-app|-application PATH</b>
</li></ul>
<div style="padding-left:40px;">This option allow to specify the application that should be tested for portability to the new library version.</div><br />
<ul><li><b>-static-libs</b>
</li></ul>
<div style="padding-left:40px;">Check static libraries instead of the shared ones. The &lt;libs&gt; section of the XML-descriptor should point to static libraries location.</div><br />
<ul><li><b>-cross-gcc|-gcc-path PATH</b>
</li></ul>
<div style="padding-left:40px;">Path to the cross GCC compiler to use instead of the usual (host) GCC.</div><br />
<ul><li><b>-cross-prefix|-gcc-prefix PREFIX</b>
</li></ul>
<div style="padding-left:40px;">GCC toolchain prefix.</div><br />
<ul><li><b>-sysroot DIR</b>
</li></ul>
<div style="padding-left:40px;">Specify the alternative root directory. The tool will search for include paths in the DIR/usr/include and DIR/usr/lib directories.</div><br />
<ul><li><b>-v1|-version1 NUM</b>
</li></ul>
<div style="padding-left:40px;">Specify 1st library version outside the descriptor.</div><br />
<ul><li><b>-v2|-version2 NUM</b>
</li></ul>
<div style="padding-left:40px;">Specify 2nd library version outside the descriptor.</div><br />
<ul><li><b>-s|-strict</b>
</li></ul>
<div style="padding-left:40px;">Treat all compatibility warnings as problems.</div><br />
<ul><li><b>-headers-only</b>
</li></ul>
<div style="padding-left:40px;">Check header files without shared libraries. It is easy to run, but may provide provide a low quality compatibility report with false positives and without detecting of added/removed symbols.</div><br />
<ul><li><b>-objects-only</b>
</li></ul>
<div style="padding-left:40px;">Check shared libraries without header files. It is easy to run, but may a low quality report with false positives and without analysis of changes in parameters and data types.</div><br />
<ul><li><b>-check-impl|-check-implementation</b>
</li></ul>
<div style="padding-left:40px;">Compare canonified disassembled binary code of shared objects to detect changes in the implementation. Create section 'Changes in Implementation' in the report.</div><br />
<ul><li><b>-show-retval</b>
</li></ul>
<div style="padding-left:40px;">Show the symbol's return type in the report.</div><br />
<ul><li><b>-symbols-list PATH</b>
</li></ul>
<div style="padding-left:40px;">This option allow to specify a file with a list of interfaces (mangled names in C++) that should be checked, other library interfaces will not be checked.</div><br />
<ul><li><b>-skip-symbols PATH</b>
</li></ul>
<div style="padding-left:40px;">The list of symbols that should NOT be checked.</div><br />
<ul><li><b>-headers-list PATH</b>
</li></ul>
<div style="padding-left:40px;">The file with a list of headers, that should be checked/dumped.</div><br />
<ul><li><b>-skip-headers PATH</b>
</li></ul>
<div style="padding-left:40px;">The file with the list of header files, that should not be checked.</div><br />
<ul><li><b>-header NAME</b>
</li></ul>
<div style="padding-left:40px;">Check/Dump ABI of this header only.</div><br />
<ul><li><b>-use-dumps</b>
</li></ul>
<div style="padding-left:40px;">Make dumps for two versions of a library and compare dumps. This should increase the performance of the tool and decrease the operative memory usage.</div><br />
<ul><li><b>-nostdinc</b>
</li></ul>
<div style="padding-left:40px;">Do not search the GCC standard system directories for header files.</div><br />
<ul><li><b>-dump-system NAME -sysroot DIR</b>
</li></ul>
<div style="padding-left:40px;">Find all the shared libraries and header files in DIR directory, create XML descriptors and make ABI dumps for each library. The result set of ABI dumps can be compared (-cmp-systems) with the other one created for other version of operating system in order to check them for compatibility. Do not forget to specify -cross-gcc option if your target system requires some specific version of GCC compiler (different from the host GCC). The system ABI dump will be generated to: sys_dumps/NAME/ARCH.</div><br />
<ul><li><b>-dump-system PATH</b>
</li></ul>
<div style="padding-left:40px;">The same as the previous option but takes an <a href="Descriptor.html" title="Operating System Descriptor">XML descriptor</a> of the target system.</div><br />
<ul><li><b>-sysinfo DIR</b>
</li></ul>
<div style="padding-left:40px;">This option may be used with -dump-system to dump ABI of operating systems and configure the dumping process. Default: modules/SysInfo/&lt;target&gt; {unix, symbian, windows}</div><br />
<ul><li><b>-cmp-systems</b>
</li></ul>
<div style="padding-left:40px;">Compare two system ABI dumps. Create compatibility reports for each library and the common HTML report including the summary of test results for all checked libraries. Report will be generated to: sys_compat_reports/NAME1_to_NAME2/ARCH.</div><br />
<ul><li><b>-libs-list PATH</b>
</li></ul>
<div style="padding-left:40px;">The file with a list of libraries, that should be dumped by the -dump-system option or should be checked by the -cmp-systems option.</div><br />
<ul><li><b>-ext|-extended</b>
</li></ul>
<div style="padding-left:40px;">If your library A is supposed to be used by other library B and you want to control the ABI of B, then you should enable this option. The tool will check for changes in all data types, even if they are not used by any function in the library A. Such data types are not part of the A library ABI, but may be a part of the ABI of the B library.</div><br />
<ul><li><b>-q|-quiet</b>
</li></ul>
<div style="padding-left:40px;">Print all messages to the file instead of stdout and stderr.</div><br />
<ul><li><b>-stdout</b>
</li></ul>
<div style="padding-left:40px;">Print analysis results (compatibility reports and ABI dumps) to stdout instead of creating a file. This would allow piping data to other programs.</div><br />
<ul><li><b>-report-format FORMAT</b>
</li></ul>
<div style="padding-left:40px;">Change format of compatibility report: html (default) or xml.</div><br />
<ul><li><b>-dump-format FORMAT</b>
</li></ul>
<div style="padding-left:40px;">Change format of ABI dump: perl (default) or xml.</div><br />
<ul><li><b>-xml</b>
</li></ul>
<div style="padding-left:40px;">Alias for: --report-format=xml or --dump-format=xml</div><br />
<ul><li><b>-lang LANG</b>
</li></ul>
<div style="padding-left:40px;">Set library language (C or C++). You can use this option if the tool cannot auto-detect a language. This option may be useful for checking C-library headers (--lang=C) in -headers-only or -extended modes.</div><br />
<ul><li><b>-binary|-bin|-abi</b>
</li></ul>
<div style="padding-left:40px;">Show binary-compatibility problems only. Generate report to: compat_reports/LIB_NAME/V1_to_V2/abi_compat_report.html</div><br />
<ul><li><b>-source|-src|-api</b>
</li></ul>
<div style="padding-left:40px;">Show source-compatibility problems only. Generate report to: compat_reports/LIB_NAME/V1_to_V2/src_compat_report.html</div><br />
<ul><li><b>-affected-limit LIMIT</b>
</li></ul>
<div style="padding-left:40px;">The maximum number of affected symbols listed under the description of the changed type in the report.</div><br />
<h2> <span class="mw-headline" id="Other_Options"> Other Options </span></h2>
<ul><li><b>-test</b>
</li></ul>
<div style="padding-left:40px;">Run internal tests. Create two binary incompatible versions of a sample library and run the tool to check them for compatibility. This option allows to check if the tool works correctly in the current environment.</div><br />
<ul><li><b>-test-dump</b>
</li></ul>
<div style="padding-left:40px;">Test ability to create, restore and compare ABI dumps.</div><br />
<ul><li><b>-debug</b>
</li></ul>
<div style="padding-left:40px;">Debugging mode. Print debug info on the screen. Save intermediate analysis stages in the debug directory: debug/LIB_NAME/VER/.</div><br />
<ul><li><b>-cpp-compatible</b>
</li></ul>
<div style="padding-left:40px;">If your header file is written in C language and can be compiled by the C++ compiler (i.e. doesn't contain C++-keywords), then you can tell ACC about this and speedup the analysis.</div><br />
<ul><li><b>-p|-params PATH</b>
</li></ul>
<div style="padding-left:40px;">Path to file with the function parameter names. It can be used for improving report view if the library header files don't contain parameter names. File format:</div><br />
<div style="padding-left:70px;">func1;param1;param2;param3 ...<br />
<p>func2;param1;param2;param3 ...<br />
</p>
&#160;&#160;...</div><br />
<ul><li><b>-relpath PATH</b>
</li></ul>
<div style="padding-left:40px;">Replace {RELPATH} macros to PATH in the XML-descriptor used for dumping the library ABI (see -dump option).</div><br />
<ul><li><b>-relpath1 PATH</b>
</li></ul>
<div style="padding-left:40px;">Replace {RELPATH} macros to PATH in the 1st XML-descriptor (see -d1 option).</div><br />
<ul><li><b>-relpath2 PATH</b>
</li></ul>
<div style="padding-left:40px;">Replace {RELPATH} macros to PATH in the 2nd XML-descriptor (see -d2 option).</div><br />
<ul><li><b>-dump-path PATH</b>
</li></ul>
<div style="padding-left:40px;">Specify a *.abi.tar.gz or *.abi file path where to generate an ABI dump. Default path: abi_dumps/LIB_NAME/LIB_NAME_VERSION.abi.tar.gz</div><br />
<ul><li><b>-sort</b>
</li></ul>
<div style="padding-left:40px;">Enable sorting of data in ABI dumps.</div><br />
<ul><li><b>-report-path PATH</b>
</li></ul>
<div style="padding-left:40px;">Specify the file path where to generate the compatibility report. Default report path: compat_reports/LIB_NAME/V1_to_V2/abi_compat_report.html</div><br />
<ul><li><b>-bin-report-path PATH</b>
</li></ul>
<div style="padding-left:40px;">Path to binary-compatibility report. Default: compat_reports/LIB_NAME/V1_to_V2/abi_compat_report.html</div><br />
<ul><li><b>-src-report-path PATH</b>
</li></ul>
<div style="padding-left:40px;">Path to source-compatibility report. Default: compat_reports/LIB_NAME/V1_to_V2/src_compat_report.html</div><br />
<ul><li><b>-log-path PATH</b>
</li></ul>
<div style="padding-left:40px;">Log path for all messages. Default log path: logs/LIB_NAME/VER/log.txt</div><br />
<ul><li><b>-log1-path PATH</b>
</li></ul>
<div style="padding-left:40px;">Log path for 1st version of a library. Default log path: logs/LIB_NAME/V1/log.txt</div><br />
<ul><li><b>-log2-path PATH</b>
</li></ul>
<div style="padding-left:40px;">Log path for 2nd version of a library. Default log path: logs/LIB_NAME/V1/log.txt</div><br />
<ul><li><b>-logging-mode MODE</b>
</li></ul>
<div style="padding-left:40px;">Change logging mode. Modes: w - overwrite old logs (default), a - append old logs, n - do not write any logs</div><br />
<ul><li><b>-list-affected</b>
</li></ul>
<div style="padding-left:40px;">Generate file with the list of incompatible symbols beside the HTML compatibility report. Use 'c++filt @file' command from GNU Binutils to unmangle C++ symbols in the generated file. Default name: abi_affected.txt</div><br />
<ul><li><b>-component NAME</b>
</li></ul>
<div style="padding-left:40px;">The component name in the title and summary of the HTML report. Default: library</div><br />
<ul><li><b>-l-full|-lib-full NAME</b>
</li></ul>
<div style="padding-left:40px;">Change library name in the report title to NAME. By default will be displayed a name specified by -l option.</div><br />
<ul><li><b>-b|-browse PROGRAM</b>
</li></ul>
<div style="padding-left:40px;">Open report(s) in the browser (firefox, opera, etc.).</div><br />
<ul><li><b>-open</b>
</li></ul>
<div style="padding-left:40px;">Open report(s) in the default browser.</div><br />
<ul><li><b>-extra-info DIR</b>
</li></ul>
<div style="padding-left:40px;">Dump extra info to DIR.</div><br />
<ul><li><b>-extra-dump</b>
</li></ul>
<div style="padding-left:40px;">Create extended ABI dump containing all symbols from the translation unit.</div><br />
<ul><li><b>-force</b>
</li></ul>
<div style="padding-left:40px;">Try to use this option if the tool doesn't work.</div><br />
<ul><li><b>-tolerance LEVEL</b>
</li></ul>
<div style="padding-left:40px;">Apply a set of heuristics to successfully compile input header files. You can enable several tolerance levels by joining them into one string (e.g. 13, 124, etc.). Levels: 1 - skip non-Linux headers (e.g. win32_*.h, etc.), 2 - skip internal headers (e.g. *_p.h, impl/*.h, etc.), 3 - skip headers that iclude non-Linux headers, 4 - skip headers included by others.</div><br />
<ul><li><b>-tolerant</b>
</li></ul>
<div style="padding-left:40px;">Enable highest tolerance level [1234].</div><br />
<ul><li><b>-check</b>
</li></ul>
<div style="padding-left:40px;">Check completeness of the ABI dump.</div><br />
<ul><li><b>-quick</b>
</li></ul>
<div style="padding-left:40px;">Quick analysis. Disable check of some template instances.</div><br />
<!--
NewPP limit report
Preprocessor node count: 88/1000000
Post-expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
Expensive parser function count: 0/100
-->
<!-- Saved in parser cache with key rasispdb:pcache:idhash:2442-0!*!0!!en!*!* and timestamp 20130730150352 -->
</div></div></div></div></div></body></html>