aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Ponomarenko <andrewponomarenko@yandex.ru>2015-12-11 23:55:02 +0300
committerAndrey Ponomarenko <andrewponomarenko@yandex.ru>2015-12-11 23:55:02 +0300
commitf85c7fd6f689f7282e3880334e2a4866db8b7550 (patch)
tree798897dd87a81afcfbfd1b5230f8c57fbe7076cd
parent81cb4d77ca6f41b41405d78c8ab7166d8a1c9f77 (diff)
downloadabi-dumper-f85c7fd6f689f7282e3880334e2a4866db8b7550.tar.gz
Fixed incompatibility with GCC 5.2
-rw-r--r--INSTALL29
-rw-r--r--README10
-rw-r--r--abi-dumper.pl12
3 files changed, 31 insertions, 20 deletions
diff --git a/INSTALL b/INSTALL
index 628f39f..ec1e23e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -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
diff --git a/README b/README
index 41606b0..01661c3 100644
--- a/README
+++ b/README
@@ -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;