aboutsummaryrefslogtreecommitdiff
path: root/modules/Internals
diff options
context:
space:
mode:
authorAndrey Ponomarenko <aponomarenko@rosalab.ru>2012-06-18 17:50:25 +0400
committerAndrey Ponomarenko <aponomarenko@rosalab.ru>2012-06-18 17:50:25 +0400
commit35c44fd1428ba96f71ba80f1d45c175a9ab4a197 (patch)
treea797c2b0f3f8cf4713aa883519e113e5ca1ec0d0 /modules/Internals
parent5c09ef3aadb39afc16c59258feebbee1e49609d9 (diff)
downloadabi-compliance-checker-35c44fd1428ba96f71ba80f1d45c175a9ab4a197.tar.gz
ABI Compliance Checker 1.98.1
Diffstat (limited to 'modules/Internals')
-rw-r--r--modules/Internals/SysCheck.pm37
-rw-r--r--modules/Internals/XmlDump.pm13
2 files changed, 43 insertions, 7 deletions
diff --git a/modules/Internals/SysCheck.pm b/modules/Internals/SysCheck.pm
index 5823b57..d5c8ffd 100644
--- a/modules/Internals/SysCheck.pm
+++ b/modules/Internals/SysCheck.pm
@@ -719,6 +719,7 @@ sub read_sys_descriptor($)
my %Tags = (
"headers" => "mf",
"skip_headers" => "mf",
+ "skip_including" => "mf",
"skip_libs" => "mf",
"include_preamble" => "mf",
"non_self_compiled" => "mf",
@@ -1384,12 +1385,24 @@ sub dumpSystem($)
next;
}
}
+ if(my $Skip = $SysInfo->{$LSName}{"skip_including"})
+ { # do NOT search for some headers
+ if(check_list($HRelPath, $Skip)) {
+ next;
+ }
+ }
if(my $Skip = $SysCInfo->{"skip_headers"})
{ # do NOT search for some headers
if(check_list($HRelPath, $Skip)) {
next;
}
}
+ if(my $Skip = $SysCInfo->{"skip_including"})
+ { # do NOT search for some headers
+ if(check_list($HRelPath, $Skip)) {
+ next;
+ }
+ }
if(my $Skip = $SysInfo->{$LSName}{"non_self_compiled"})
{ # do NOT search for some headers
if(check_list($HRelPath, $Skip)) {
@@ -1448,6 +1461,12 @@ sub dumpSystem($)
next;
}
}
+ if(my $Skip = $SysCInfo->{"skip_including"})
+ { # do NOT search for some headers
+ if(check_list($Path, $Skip)) {
+ next;
+ }
+ }
$SysLib_SysHeaders{$Path}{$Path} = 1;
}
if($CheckHeadersOnly) {
@@ -1562,14 +1581,24 @@ sub dumpSystem($)
if($SysCInfo->{"skip_headers"}) {
@Skip = (@Skip, @{$SysCInfo->{"skip_headers"}});
}
+ if(@Skip) {
+ push(@Content, "<skip_headers>\n ".join("\n ", @Skip)."\n</skip_headers>");
+ }
+ my @SkipInc = ();
+ if($SysInfo->{$LSName}{"skip_including"}) {
+ @SkipInc = (@SkipInc, @{$SysInfo->{$LSName}{"skip_including"}});
+ }
+ if($SysCInfo->{"skip_including"}) {
+ @SkipInc = (@SkipInc, @{$SysCInfo->{"skip_including"}});
+ }
if($SysInfo->{$LSName}{"non_self_compiled"}) {
- @Skip = (@Skip, @{$SysInfo->{$LSName}{"non_self_compiled"}});
+ @SkipInc = (@SkipInc, @{$SysInfo->{$LSName}{"non_self_compiled"}});
}
if($SkipDHeaders{$LSName}) {
- @Skip = (@Skip, @{$SkipDHeaders{$LSName}});
+ @SkipInc = (@SkipInc, @{$SkipDHeaders{$LSName}});
}
- if(@Skip) {
- push(@Content, "<skip_headers>\n ".join("\n ", @Skip)."\n</skip_headers>");
+ if(@SkipInc) {
+ push(@Content, "<skip_including>\n ".join("\n ", @SkipInc)."\n</skip_including>");
}
if($SysInfo->{$LSName}{"add_include_paths"}) {
push(@Content, "<add_include_paths>\n ".join("\n ", @{$SysInfo->{$LSName}{"add_include_paths"}})."\n</add_include_paths>");
diff --git a/modules/Internals/XmlDump.pm b/modules/Internals/XmlDump.pm
index 04b16fb..3d243ae 100644
--- a/modules/Internals/XmlDump.pm
+++ b/modules/Internals/XmlDump.pm
@@ -281,10 +281,17 @@ sub createXmlDump($)
$ABI_DUMP .= openTag("symbols");
foreach my $Lib (sort {lc($a) cmp lc($b)} @Libs)
{
- $ABI_DUMP .= openTag_E("library", "name", $Lib);
+ $ABI_DUMP .= openTag("library", "name", $Lib);
foreach my $Symbol (sort {lc($a) cmp lc($b)} keys(%{$ABI->{"Symbols"}{$Lib}}))
{
- $ABI_DUMP .= addTag("symbol", $Symbol);
+ if((my $Size = $ABI->{"Symbols"}{$Lib}{$Symbol})<0)
+ { # data
+ $ABI_DUMP .= addTag("symbol", $Symbol, "size", -$Size);
+ }
+ else
+ { # functions
+ $ABI_DUMP .= addTag("symbol", $Symbol);
+ }
}
$ABI_DUMP .= closeTag("library");
}
@@ -296,7 +303,7 @@ sub createXmlDump($)
$ABI_DUMP .= openTag("dep_symbols");
foreach my $Lib (sort {lc($a) cmp lc($b)} @DepLibs)
{
- $ABI_DUMP .= openTag_E("library", "name", $Lib);
+ $ABI_DUMP .= openTag("library", "name", $Lib);
foreach my $Symbol (sort {lc($a) cmp lc($b)} keys(%{$ABI->{"DepSymbols"}{$Lib}}))
{
$ABI_DUMP .= addTag("symbol", $Symbol);