Copyright (C) 2009-2011 Institute for System Programming, RAS Copyright (C) 2011-2012 Nokia Corporation and/or its subsidiary(-ies) Copyright (C) 2011-2012 ROSA Laboratory Copyright (C) 2012-2016 Andrey Ponomarenko's ABI Laboratory All rights reserved. RELEASE INFORMATION Project: ABI Compliance Checker (ABICC) Version: 1.99.25 Date: 2016-10-07 This file explains how to install and setup environment for the tool in your computer. Content: 1. Requirements for Linux and FreeBSD 2. Requirements for Mac OS X 3. Requirements for MS Windows 4. Configure and Install 5. Usage (with ABI Dumper) 6. Usage (Original) 1. REQUIREMENTS FOR LINUX AND FREEBSD ===================================== 1. G++ (3.0-4.7, 4.8.3, 4.9 or newer) 2. GNU Binutils (c++filt, readelf, objdump) 3. Perl 5 4. Ctags 5. ABI Dumper (0.99.15 or newer) 2. REQUIREMENTS FOR MAC OS X ============================ 1. Xcode (g++, c++filt, otool, nm) 2. Perl 5 3. Ctags 2.1 Setup environment 1. If /usr/bin/g++ points to clang, then please specify GCC path by the -gcc-path option 2. You can install GCC by the command: brew install homebrew/versions/gcc49 And then specify its path: abi-compliance-checker --gcc-path=/usr/local/bin/gcc-4.9 ... 3. REQUIREMENTS FOR MS WINDOWS ============================== 1. MinGW (3.0-4.7, 4.8.3, 4.9 or newer) 2. MS Visual C++ (dumpbin, undname, cl) 3. Active Perl 5 (5.8 or newer) 4. Sigcheck v1.71 or newer 5. Info-ZIP 3.0 (zip, unzip) 6. Ctags 3.1 Setup environment 1. Add tool locations to the PATH environment variable 2. Run vcvars64.bat script (C:\Microsoft Visual Studio 9.0\VC\bin\) 4. CONFIGURE AND INSTALL ======================== This command will install the abi-compliance-checker program into the PREFIX/bin system directory and private modules into the PREFIX/share: sudo make install prefix=PREFIX [/usr, /usr/local, ...] 4.1 Remove sudo make uninstall prefix=PREFIX 5. USAGE (WITH ABI DUMPER) ========================== Library should be compiled with -g -Og options to contain DWARF debug info. Create ABI dumps for both library versions using the ABI Dumper tool (https://github.com/lvc/abi-dumper): abi-dumper OLD.so -o ABI-0.dump -lver 0 abi-dumper NEW.so -o ABI-1.dump -lver 1 Compare ABI dumps to create report: abi-compliance-checker -l NAME -old ABI-0.dump -new ABI-1.dump 6. USAGE (ORIGINAL) =================== Create XML-descriptors for two versions of a library (OLD.xml and NEW.xml): 1.0 /path1/to/header(s)/ /path2/to/header(s)/ ... /path1/to/library(ies)/ /path2/to/library(ies)/ ... Check compatibility: abi-compliance-checker -lib NAME -old OLD.xml -new NEW.xml For advanced usage, see doc/index.html or -help option. Enjoy!