1 2Copyright (C) 2009-2011 Institute for System Programming, RAS 3Copyright (C) 2011-2012 Nokia Corporation and/or its subsidiary(-ies) 4Copyright (C) 2012-2018 Andrey Ponomarenko's ABI Laboratory 5All rights reserved. 6 7 8RELEASE INFORMATION 9 10Project: ABI Compliance Checker (ABICC) 11Version: 2.3 12Date: May 15, 2018 13 14 15This file explains how to install and setup environment 16for the tool in your computer. 17 18 19Content: 20 21 1. Requirements for Linux and FreeBSD 22 2. Requirements for Mac OS X 23 3. Requirements for MS Windows 24 4. Configure and Install 25 5. Usage (with ABI Dumper) 26 6. Usage (Original) 27 28 291. REQUIREMENTS FOR LINUX AND FREEBSD 30===================================== 31 32 1. G++ (3.0 or newer) 33 2. GNU Binutils (c++filt, readelf, objdump) 34 3. Perl 5 35 4. Ctags 36 5. ABI Dumper (1.1 or newer) 37 38 39 402. REQUIREMENTS FOR MAC OS X 41============================ 42 43 1. Xcode (g++, c++filt, otool, nm) 44 2. Perl 5 45 3. Ctags 46 472.1 Setup environment 48 49 1. If /usr/bin/g++ points to clang, then please 50 specify GCC path by the -gcc-path option 51 52 2. You can install GCC by the command: 53 54 brew install homebrew/versions/gcc49 55 56 And then specify its path: 57 58 abi-compliance-checker --gcc-path=/usr/local/bin/gcc-4.9 ... 59 60 61 623. REQUIREMENTS FOR MS WINDOWS 63============================== 64 65 1. MinGW (3.0 or newer) 66 2. MS Visual C++ (dumpbin, undname, cl) 67 3. Active Perl 5 (5.8 or newer) 68 4. Sigcheck v1.71 or newer 69 5. Info-ZIP 3.0 (zip, unzip) 70 6. Ctags 71 723.1 Setup environment 73 74 1. Add tool locations to the PATH environment variable 75 2. Run vcvars64.bat script (C:\Microsoft Visual Studio 9.0\VC\bin\) 76 77 78 794. CONFIGURE AND INSTALL 80======================== 81 82 This command will install the abi-compliance-checker program into the 83 PREFIX/bin system directory and private modules into the PREFIX/share: 84 85 sudo make install prefix=PREFIX [/usr, /usr/local, ...] 86 874.1 Remove 88 89 sudo make uninstall prefix=PREFIX 90 91 92 935. USAGE (WITH ABI DUMPER) 94========================== 95 96 Library should be compiled with -g -Og 97 options to contain DWARF debug info. 98 99 Create ABI dumps for both library versions 100 using the ABI Dumper tool (https://github.com/lvc/abi-dumper): 101 102 abi-dumper OLD.so -o ABI-0.dump -lver 0 103 abi-dumper NEW.so -o ABI-1.dump -lver 1 104 105 You can filter public ABI symbols with the help of 106 additional -public-headers option of the ABI Dumper tool. 107 108 Compare ABI dumps to create report: 109 110 abi-compliance-checker -l NAME -old ABI-0.dump -new ABI-1.dump 111 112 113 1146. USAGE (ORIGINAL) 115=================== 116 117 Create XML-descriptors for two versions 118 of a library (OLD.xml and NEW.xml): 119 120 <version> 121 1.0 122 </version> 123 124 <headers> 125 /path1/to/header(s)/ 126 /path2/to/header(s)/ 127 ... 128 </headers> 129 130 <libs> 131 /path1/to/library(ies)/ 132 /path2/to/library(ies)/ 133 ... 134 </libs> 135 136 Check compatibility: 137 138 abi-compliance-checker -lib NAME -old OLD.xml -new NEW.xml 139 140 For advanced usage, see doc/index.html or -help option. 141 142 143Enjoy! 144