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