xref: /petsc/lib/petsc/bin/maint/abi-compliance-checker/INSTALL (revision e8b6250908b962c387f7ab2e7b38caaa661b5fa1)
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