Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 1 | |
Andrey Ponomarenko | 8504379 | 2012-05-14 16:48:07 +0400 | [diff] [blame] | 2 | Copyright (C) 2009-2011 Institute for System Programming, RAS |
| 3 | Copyright (C) 2011-2012 Nokia Corporation and/or its subsidiary(-ies) |
Andrey Ponomarenko | 8bfdcd8 | 2015-09-08 17:58:01 +0300 | [diff] [blame] | 4 | Copyright (C) 2011-2012 ROSA Laboratory |
Andrey Ponomarenko | e3419b4 | 2016-01-28 15:06:08 +0300 | [diff] [blame] | 5 | Copyright (C) 2012-2016 Andrey Ponomarenko's ABI Laboratory |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 6 | All rights reserved. |
| 7 | |
| 8 | |
| 9 | RELEASE INFORMATION |
| 10 | |
Andrey Ponomarenko | 9e05bee | 2016-04-03 15:57:20 +0300 | [diff] [blame] | 11 | Project: ABI Compliance Checker (ABICC) |
Andrey Ponomarenko | e30363a | 2016-10-07 19:40:50 +0300 | [diff] [blame] | 12 | Version: 1.99.25 |
| 13 | Date: 2016-10-07 |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 14 | |
| 15 | |
Andrey Ponomarenko | 9927e33 | 2012-10-19 10:50:48 +0400 | [diff] [blame] | 16 | This file explains how to install and setup environment |
| 17 | for the tool in your computer. |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 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 |
Andrey Ponomarenko | 86b503b | 2015-12-11 23:40:03 +0300 | [diff] [blame] | 25 | 4. Configure and Install |
Andrey Ponomarenko | 8a4c3f8 | 2016-02-21 03:45:16 +0300 | [diff] [blame] | 26 | 5. Usage (with ABI Dumper) |
| 27 | 6. Usage (Original) |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 28 | |
| 29 | |
| 30 | 1. REQUIREMENTS FOR LINUX AND FREEBSD |
| 31 | ===================================== |
| 32 | |
Andrey Ponomarenko | c522134 | 2014-09-24 16:43:03 +0400 | [diff] [blame] | 33 | 1. G++ (3.0-4.7, 4.8.3, 4.9 or newer) |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 34 | 2. GNU Binutils (c++filt, readelf, objdump) |
Andrey Ponomarenko | 737aef5 | 2016-05-06 15:08:08 +0300 | [diff] [blame] | 35 | 3. Perl 5 |
| 36 | 4. Ctags |
Andrey Ponomarenko | 8a4c3f8 | 2016-02-21 03:45:16 +0300 | [diff] [blame] | 37 | 5. ABI Dumper (0.99.15 or newer) |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 38 | |
| 39 | |
| 40 | |
| 41 | 2. REQUIREMENTS FOR MAC OS X |
| 42 | ============================ |
| 43 | |
Andrey Ponomarenko | 570ece5 | 2012-11-30 16:36:44 +0400 | [diff] [blame] | 44 | 1. Xcode (g++, c++filt, otool, nm) |
Andrey Ponomarenko | dd17216 | 2016-10-04 19:41:25 +0300 | [diff] [blame] | 45 | 2. Perl 5 |
| 46 | 3. Ctags |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 47 | |
Andrey Ponomarenko | 737aef5 | 2016-05-06 15:08:08 +0300 | [diff] [blame] | 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 | |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 61 | |
| 62 | |
| 63 | 3. REQUIREMENTS FOR MS WINDOWS |
| 64 | ============================== |
| 65 | |
Andrey Ponomarenko | c522134 | 2014-09-24 16:43:03 +0400 | [diff] [blame] | 66 | 1. MinGW (3.0-4.7, 4.8.3, 4.9 or newer) |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 67 | 2. MS Visual C++ (dumpbin, undname, cl) |
Andrey Ponomarenko | 8504379 | 2012-05-14 16:48:07 +0400 | [diff] [blame] | 68 | 3. Active Perl 5 (5.8 or newer) |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 69 | 4. Sigcheck v1.71 or newer |
| 70 | 5. Info-ZIP 3.0 (zip, unzip) |
Andrey Ponomarenko | dd17216 | 2016-10-04 19:41:25 +0300 | [diff] [blame] | 71 | 6. Ctags |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 72 | |
| 73 | 3.1 Setup environment |
| 74 | |
Andrey Ponomarenko | 74b33ee | 2012-12-14 15:24:09 +0400 | [diff] [blame] | 75 | 1. Add tool locations to the PATH environment variable |
Andrey Ponomarenko | dd17216 | 2016-10-04 19:41:25 +0300 | [diff] [blame] | 76 | 2. Run vcvars64.bat script (C:\Microsoft Visual Studio 9.0\VC\bin\) |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 77 | |
| 78 | |
| 79 | |
Andrey Ponomarenko | 86b503b | 2015-12-11 23:40:03 +0300 | [diff] [blame] | 80 | 4. CONFIGURE AND INSTALL |
| 81 | ======================== |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 82 | |
Andrey Ponomarenko | 52b2e35 | 2015-08-11 22:45:36 +0300 | [diff] [blame] | 83 | This command will install the abi-compliance-checker program into the |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 84 | PREFIX/bin system directory and private modules into the PREFIX/share: |
| 85 | |
Andrey Ponomarenko | 52b2e35 | 2015-08-11 22:45:36 +0300 | [diff] [blame] | 86 | sudo make install prefix=PREFIX [/usr, /usr/local, ...] |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 87 | |
Andrey Ponomarenko | 52b2e35 | 2015-08-11 22:45:36 +0300 | [diff] [blame] | 88 | 4.1 Remove |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 89 | |
Andrey Ponomarenko | 52b2e35 | 2015-08-11 22:45:36 +0300 | [diff] [blame] | 90 | sudo make uninstall prefix=PREFIX |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 91 | |
| 92 | |
| 93 | |
Andrey Ponomarenko | 8a4c3f8 | 2016-02-21 03:45:16 +0300 | [diff] [blame] | 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) |
Andrey Ponomarenko | e3419b4 | 2016-01-28 15:06:08 +0300 | [diff] [blame] | 113 | =================== |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 114 | |
Andrey Ponomarenko | 86b503b | 2015-12-11 23:40:03 +0300 | [diff] [blame] | 115 | Create XML-descriptors for two versions |
| 116 | of a library (OLD.xml and NEW.xml): |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 117 | |
Andrey Ponomarenko | 86b503b | 2015-12-11 23:40:03 +0300 | [diff] [blame] | 118 | <version> |
| 119 | 1.0 |
| 120 | </version> |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 121 | |
Andrey Ponomarenko | 86b503b | 2015-12-11 23:40:03 +0300 | [diff] [blame] | 122 | <headers> |
| 123 | /path1/to/header(s)/ |
| 124 | /path2/to/header(s)/ |
| 125 | ... |
| 126 | </headers> |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 127 | |
Andrey Ponomarenko | 86b503b | 2015-12-11 23:40:03 +0300 | [diff] [blame] | 128 | <libs> |
| 129 | /path1/to/library(ies)/ |
| 130 | /path2/to/library(ies)/ |
| 131 | ... |
| 132 | </libs> |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 133 | |
Andrey Ponomarenko | 86b503b | 2015-12-11 23:40:03 +0300 | [diff] [blame] | 134 | Check compatibility: |
| 135 | |
| 136 | abi-compliance-checker -lib NAME -old OLD.xml -new NEW.xml |
| 137 | |
Andrey Ponomarenko | e3419b4 | 2016-01-28 15:06:08 +0300 | [diff] [blame] | 138 | For advanced usage, see doc/index.html or -help option. |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 139 | |
| 140 | |
Andrey Ponomarenko | ab28210 | 2012-03-11 11:57:02 +0400 | [diff] [blame] | 141 | Enjoy! |