diff options
author | Andrey Ponomarenko <andrewponomarenko@yandex.ru> | 2015-12-11 23:55:02 +0300 |
---|---|---|
committer | Andrey Ponomarenko <andrewponomarenko@yandex.ru> | 2015-12-11 23:55:02 +0300 |
commit | f85c7fd6f689f7282e3880334e2a4866db8b7550 (patch) | |
tree | 798897dd87a81afcfbfd1b5230f8c57fbe7076cd | |
parent | 81cb4d77ca6f41b41405d78c8ab7166d8a1c9f77 (diff) | |
download | abi-dumper-f85c7fd6f689f7282e3880334e2a4866db8b7550.tar.gz |
Fixed incompatibility with GCC 5.2
-rw-r--r-- | INSTALL | 29 | ||||
-rw-r--r-- | README | 10 | ||||
-rw-r--r-- | abi-dumper.pl | 12 |
3 files changed, 31 insertions, 20 deletions
@@ -6,8 +6,8 @@ All rights reserved. RELEASE INFORMATION Project: ABI Dumper -Version: 0.99.12 -Date: 2015-11-01 +Version: 0.99.13 +Date: 2015-12-11 This file explains how to install and setup environment @@ -17,8 +17,8 @@ for the tool in your computer. Content: 1. Requirements for Linux and FreeBSD - 2. Configuring and Installing - 3. Running the Tool + 2. Configure and Install + 3. Usage 1. REQUIREMENTS FOR LINUX AND FREEBSD @@ -30,27 +30,32 @@ Content: -4. CONFIGURING AND INSTALLING -============================= +2. CONFIGURE AND INSTALL +======================== This command will install an abi-dumper program in the PREFIX/bin system directory: sudo make install prefix=PREFIX [/usr, /usr/local, ...] -4.1 Remove +2.1 Remove sudo make uninstall prefix=PREFIX -5. RUNNING THE TOOL -=================== +3. USAGE +======== - 1. abi-dumper libTest.so -o ABI.dump - abi-dumper Module.ko.debug -o ABI.dump + Dump ABI of a library: + + abi-dumper libTest.so -o ABI.dump + + Dump ABI of a kernel module: + + abi-dumper Module.ko.debug -o ABI.dump - 2. For advanced usage, see output of --help option + For advanced usage, see output of --help option @@ -1,5 +1,5 @@ NAME: - ABI Dumper - a tool to dump ABI of an ELF object containing DWARF debug info. + ABI Dumper — a tool to dump ABI of an ELF object containing DWARF debug info. The tool is intended to be used with ABI Compliance Checker tool for tracking ABI changes of a C/C++ library or kernel module. @@ -29,9 +29,13 @@ ABI CHECK: abi-dumper libTest.so.0 -o ABIv0.dump abi-dumper libTest.so.1 -o ABIv1.dump abi-compliance-checker -l libTest -old ABIv0.dump -new ABIv1.dump - + +FILTER PUBLIC ABI: + abi-dumper libTest.so -public-headers PATH + PATH — path to install tree of a library + COMPATIBILITY: ABI Compliance Checker >= 1.99.8 (https://github.com/lvc/abi-compliance-checker) ADV. USAGE: - For advanced usage, see output of --help option.
\ No newline at end of file + For advanced usage, see output of --help option. diff --git a/abi-dumper.pl b/abi-dumper.pl index 8f3354a..79db4a0 100644 --- a/abi-dumper.pl +++ b/abi-dumper.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl ########################################################################### -# ABI Dumper 0.99.12 +# ABI Dumper 0.99.13 # Dump ABI of an ELF object containing DWARF debug info # # Copyright (C) 2013-2015 Andrey Ponomarenko's ABI Laboratory @@ -47,7 +47,7 @@ use Cwd qw(abs_path cwd realpath); use Storable qw(dclone); use Data::Dumper; -my $TOOL_VERSION = "0.99.12"; +my $TOOL_VERSION = "0.99.13"; my $ABI_DUMP_VERSION = "3.2"; my $ORIG_DIR = cwd(); my $TMP_DIR = tempdir(CLEANUP=>1); @@ -1376,7 +1376,7 @@ sub read_DWARF_Dump($$) $Val=~s/\A\"//; $Val=~s/\"\Z//; - if($Val=~/GNU\s+(C|C\+\+)\s+(.+)\Z/) + if($Val=~/GNU\s+(C\d*|C\+\+)\s+(.+)\Z/) { $SYS_GCCV = $2; if($SYS_GCCV=~/\A(\d+\.\d+)(\.\d+|)/) @@ -2808,7 +2808,8 @@ sub getTypeInfo($) } } - if(my $BaseType = $DWARF_Info{$ID}{"type"}) + if($TInfo{"Type"} ne "Enum" + and my $BaseType = $DWARF_Info{$ID}{"type"}) { $TInfo{"BaseType"} = "$BaseType"; @@ -3119,7 +3120,8 @@ sub getTypeInfo($) } } - if(not $TInfo{"Name"}) + if(not $TInfo{"Name"} + and $TInfo{"Type"} ne "Enum") { my $ID_ = $ID; my $BaseID = undef; |