in src/main/abi-symbols/abi-dumper.pl [2571:2641]
sub selectSymbols()
{
foreach my $ID (sort {$a<=>$b} keys(%SymbolInfo))
{
my $Symbol = $SymbolInfo{$ID}{"MnglName"};
if(not $Symbol) {
$Symbol = $SymbolInfo{$ID}{"ShortName"};
}
if(not $Symbol)
{
delete($SymbolInfo{$ID});
next;
}
my $S = selectSymbol($SymbolInfo{$ID});
if($S==0)
{
if(defined $AllSymbols)
{
if($SymbolInfo{$ID}{"External"})
{
$S = 1;
}
else
{ # local
if(defined $DumpStatic) {
$S = 1;
}
}
}
}
if($S==0)
{
delete($SymbolInfo{$ID});
next;
}
elsif(defined $PublicHeadersPath)
{
if(not selectPublic($Symbol, $ID)
and (not defined $SymbolInfo{$ID}{"Alias"} or not selectPublic($SymbolInfo{$ID}{"Alias"}, $ID)))
{
delete($SymbolInfo{$ID});
next;
}
}
elsif(defined $KernelExport)
{
if(not defined $KSymTab{$Symbol})
{
delete($SymbolInfo{$ID});
next;
}
}
$SelectedSymbols{$ID} = $S;
delete($SymbolInfo{$ID}{"External"});
# add attributes
if(defined $ExtraDump)
{
foreach my $Attr (keys(%{$SymbolAttribute{$Symbol}})) {
$SymbolInfo{$ID}{$Attr} = $SymbolAttribute{$Symbol}{$Attr};
}
}
}
}