diff options
Diffstat (limited to 'abi-compliance-checker.pl')
-rw-r--r-- | abi-compliance-checker.pl | 41 |
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  </i>\n"; + $Footer .= "<i>Generated by <a href='".$HomePage{"Dev"}."'>ABI Compliance Checker</a> $TOOL_VERSION  </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 |