blob: 47d7125cebf2a0c1e30a49c0040b3f7db58f3b5e [file] [log] [blame]
Andrey Ponomarenkoab282102012-03-11 11:57:02 +04001
Andrey Ponomarenko85043792012-05-14 16:48:07 +04002Copyright (C) 2009-2011 Institute for System Programming, RAS
3Copyright (C) 2011-2012 Nokia Corporation and/or its subsidiary(-ies)
Andrey Ponomarenko8bfdcd82015-09-08 17:58:01 +03004Copyright (C) 2011-2012 ROSA Laboratory
Andrey Ponomarenkoe3419b42016-01-28 15:06:08 +03005Copyright (C) 2012-2016 Andrey Ponomarenko's ABI Laboratory
Andrey Ponomarenkoab282102012-03-11 11:57:02 +04006All rights reserved.
7
8
9RELEASE INFORMATION
10
Andrey Ponomarenko9e05bee2016-04-03 15:57:20 +030011Project: ABI Compliance Checker (ABICC)
Andrey Ponomarenkoe30363a2016-10-07 19:40:50 +030012Version: 1.99.25
13Date: 2016-10-07
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040014
15
Andrey Ponomarenko9927e332012-10-19 10:50:48 +040016This file explains how to install and setup environment
17for the tool in your computer.
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040018
19
20Content:
21
22 1. Requirements for Linux and FreeBSD
23 2. Requirements for Mac OS X
24 3. Requirements for MS Windows
Andrey Ponomarenko86b503b2015-12-11 23:40:03 +030025 4. Configure and Install
Andrey Ponomarenko8a4c3f82016-02-21 03:45:16 +030026 5. Usage (with ABI Dumper)
27 6. Usage (Original)
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040028
29
301. REQUIREMENTS FOR LINUX AND FREEBSD
31=====================================
32
Andrey Ponomarenkoc5221342014-09-24 16:43:03 +040033 1. G++ (3.0-4.7, 4.8.3, 4.9 or newer)
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040034 2. GNU Binutils (c++filt, readelf, objdump)
Andrey Ponomarenko737aef52016-05-06 15:08:08 +030035 3. Perl 5
36 4. Ctags
Andrey Ponomarenko8a4c3f82016-02-21 03:45:16 +030037 5. ABI Dumper (0.99.15 or newer)
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040038
39
40
412. REQUIREMENTS FOR MAC OS X
42============================
43
Andrey Ponomarenko570ece52012-11-30 16:36:44 +040044 1. Xcode (g++, c++filt, otool, nm)
Andrey Ponomarenkodd172162016-10-04 19:41:25 +030045 2. Perl 5
46 3. Ctags
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040047
Andrey Ponomarenko737aef52016-05-06 15:08:08 +0300482.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 Ponomarenkoab282102012-03-11 11:57:02 +040061
62
633. REQUIREMENTS FOR MS WINDOWS
64==============================
65
Andrey Ponomarenkoc5221342014-09-24 16:43:03 +040066 1. MinGW (3.0-4.7, 4.8.3, 4.9 or newer)
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040067 2. MS Visual C++ (dumpbin, undname, cl)
Andrey Ponomarenko85043792012-05-14 16:48:07 +040068 3. Active Perl 5 (5.8 or newer)
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040069 4. Sigcheck v1.71 or newer
70 5. Info-ZIP 3.0 (zip, unzip)
Andrey Ponomarenkodd172162016-10-04 19:41:25 +030071 6. Ctags
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040072
733.1 Setup environment
74
Andrey Ponomarenko74b33ee2012-12-14 15:24:09 +040075 1. Add tool locations to the PATH environment variable
Andrey Ponomarenkodd172162016-10-04 19:41:25 +030076 2. Run vcvars64.bat script (C:\Microsoft Visual Studio 9.0\VC\bin\)
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040077
78
79
Andrey Ponomarenko86b503b2015-12-11 23:40:03 +0300804. CONFIGURE AND INSTALL
81========================
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040082
Andrey Ponomarenko52b2e352015-08-11 22:45:36 +030083 This command will install the abi-compliance-checker program into the
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040084 PREFIX/bin system directory and private modules into the PREFIX/share:
85
Andrey Ponomarenko52b2e352015-08-11 22:45:36 +030086 sudo make install prefix=PREFIX [/usr, /usr/local, ...]
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040087
Andrey Ponomarenko52b2e352015-08-11 22:45:36 +0300884.1 Remove
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040089
Andrey Ponomarenko52b2e352015-08-11 22:45:36 +030090 sudo make uninstall prefix=PREFIX
Andrey Ponomarenkoab282102012-03-11 11:57:02 +040091
92
93
Andrey Ponomarenko8a4c3f82016-02-21 03:45:16 +0300945. 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
1126. USAGE (ORIGINAL)
Andrey Ponomarenkoe3419b42016-01-28 15:06:08 +0300113===================
Andrey Ponomarenkoab282102012-03-11 11:57:02 +0400114
Andrey Ponomarenko86b503b2015-12-11 23:40:03 +0300115 Create XML-descriptors for two versions
116 of a library (OLD.xml and NEW.xml):
Andrey Ponomarenkoab282102012-03-11 11:57:02 +0400117
Andrey Ponomarenko86b503b2015-12-11 23:40:03 +0300118 <version>
119 1.0
120 </version>
Andrey Ponomarenkoab282102012-03-11 11:57:02 +0400121
Andrey Ponomarenko86b503b2015-12-11 23:40:03 +0300122 <headers>
123 /path1/to/header(s)/
124 /path2/to/header(s)/
125 ...
126 </headers>
Andrey Ponomarenkoab282102012-03-11 11:57:02 +0400127
Andrey Ponomarenko86b503b2015-12-11 23:40:03 +0300128 <libs>
129 /path1/to/library(ies)/
130 /path2/to/library(ies)/
131 ...
132 </libs>
Andrey Ponomarenkoab282102012-03-11 11:57:02 +0400133
Andrey Ponomarenko86b503b2015-12-11 23:40:03 +0300134 Check compatibility:
135
136 abi-compliance-checker -lib NAME -old OLD.xml -new NEW.xml
137
Andrey Ponomarenkoe3419b42016-01-28 15:06:08 +0300138 For advanced usage, see doc/index.html or -help option.
Andrey Ponomarenkoab282102012-03-11 11:57:02 +0400139
140
Andrey Ponomarenkoab282102012-03-11 11:57:02 +0400141Enjoy!