aboutsummaryrefslogtreecommitdiff
path: root/abi-compliance-checker.pl
diff options
context:
space:
mode:
Diffstat (limited to 'abi-compliance-checker.pl')
-rw-r--r--abi-compliance-checker.pl41
1 files changed, 32 insertions, 9 deletions
diff --git a/abi-compliance-checker.pl b/abi-compliance-checker.pl
index 0dece16..40033c4 100644
--- a/abi-compliance-checker.pl
+++ b/abi-compliance-checker.pl
@@ -92,7 +92,8 @@ $ExtraInfo, $ExtraDump, $Force, $Tolerance, $Tolerant, $SkipSymbolsListPath,
$CheckInfo, $Quick, $AffectLimit, $AllAffected, $CxxIncompat,
$SkipInternalSymbols, $SkipInternalTypes, $TargetArch, $GccOptions,
$TypesListPath, $SkipTypesListPath, $CheckPrivateABI, $CountSymbols, $OldStyle,
-$DisableQuickEmptyReport, $SkipTypedefUncover, $MinGWCompat, $SkipUnidentified);
+$DisableQuickEmptyReport, $SkipTypedefUncover, $MinGWCompat, $SkipUnidentified,
+$DisableConstantsCheck, $SkipAddedConstants, $SkipRemovedConstants);
my $CmdName = get_filename($0);
my %OS_LibExt = (
@@ -145,7 +146,10 @@ my %ERROR_CODE = (
"Empty_Set"=>11
);
-my $HomePage = "http://lvc.github.io/abi-compliance-checker/";
+my %HomePage = (
+ "Dev"=>"https://github.com/lvc/abi-compliance-checker",
+ "Wiki"=>"https://lvc.github.io/abi-compliance-checker/"
+);
my $ShortUsage = "ABI Compliance Checker (ABICC) $TOOL_VERSION
A tool for checking backward compatibility of a C/C++ library API
@@ -200,6 +204,9 @@ GetOptions("h|help!" => \$Help,
"types-list=s" => \$TypesListPath,
"skip-symbols=s" => \$SkipSymbolsListPath,
"skip-types=s" => \$SkipTypesListPath,
+ "disable-constants-check!" => \$DisableConstantsCheck,
+ "skip-added-constants!" => \$SkipAddedConstants,
+ "skip-removed-constants!" => \$SkipRemovedConstants,
"headers-list=s" => \$TargetHeadersPath,
"skip-headers=s" => \$SkipHeadersPath,
"header=s" => \$TargetHeader,
@@ -471,6 +478,9 @@ EXTRA OPTIONS:
-skip-types PATH
The list of types that should not be checked.
+ -disable-constants-check
+ Do not check for changes in constants.
+
-headers-list PATH
The file with a list of headers, that should be checked/dumped.
@@ -805,7 +815,8 @@ EXIT CODES:
non-zero - Incompatible or the tool has run with errors.
MORE INFORMATION:
- ".$HomePage."\n");
+ ".$HomePage{"Wiki"}."
+ ".$HomePage{"Dev"}."\n\n";
}
my %Operator_Indication = (
@@ -17948,7 +17959,7 @@ sub getReportFooter()
$Footer .= "<hr/>\n";
$Footer .= "<div class='footer' align='right'>";
- $Footer .= "<i>Generated by <a href='".$HomePage."'>ABI Compliance Checker</a> $TOOL_VERSION &#160;</i>\n";
+ $Footer .= "<i>Generated by <a href='".$HomePage{"Dev"}."'>ABI Compliance Checker</a> $TOOL_VERSION &#160;</i>\n";
$Footer .= "</div>\n";
$Footer .= "<br/>\n";
@@ -18343,9 +18354,12 @@ sub mergeConstants($)
if(not defined $Constants{2}{$Constant}{"Value"})
{ # removed
- %{$CompatProblems_Constants{$Level}{$Constant}{"Removed_Constant"}} = (
- "Target"=>$Constant,
- "Old_Value"=>$Old_Value );
+ if(not defined $SkipRemovedConstants)
+ {
+ %{$CompatProblems_Constants{$Level}{$Constant}{"Removed_Constant"}} = (
+ "Target"=>$Constant,
+ "Old_Value"=>$Old_Value );
+ }
next;
}
@@ -18396,6 +18410,10 @@ sub mergeConstants($)
}
}
+ if(defined $SkipAddedConstants) {
+ return;
+ }
+
foreach my $Constant (keys(%{$Constants{2}}))
{
if(not defined $Constants{1}{$Constant}{"Value"})
@@ -22816,8 +22834,12 @@ sub compareAPIs($)
}
mergeSymbols($Level);
- if(keys(%{$CheckedSymbols{$Level}})) {
- mergeConstants($Level);
+
+ if(not defined $DisableConstantsCheck)
+ {
+ if(keys(%{$CheckedSymbols{$Level}})) {
+ mergeConstants($Level);
+ }
}
$Cache{"mergeTypes"} = (); # free memory
@@ -22865,6 +22887,7 @@ sub getSysOpts()
"NoStdInc"=>$NoStdInc,
"CxxIncompat"=>$CxxIncompat,
"SkipUnidentified"=>$SkipUnidentified,
+ "DisableConstantsCheck"=>$DisableConstantsCheck,
"BinaryOnly" => $BinaryOnly,
"SourceOnly" => $SourceOnly