summaryrefslogtreecommitdiff
path: root/scripts/Dpkg/Shlibs/SymbolFile.pm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/Dpkg/Shlibs/SymbolFile.pm')
-rw-r--r--scripts/Dpkg/Shlibs/SymbolFile.pm32
1 files changed, 3 insertions, 29 deletions
diff --git a/scripts/Dpkg/Shlibs/SymbolFile.pm b/scripts/Dpkg/Shlibs/SymbolFile.pm
index bc9b22a96..433e5d127 100644
--- a/scripts/Dpkg/Shlibs/SymbolFile.pm
+++ b/scripts/Dpkg/Shlibs/SymbolFile.pm
@@ -301,21 +301,7 @@ sub merge_symbols {
if (exists $obj->{syms}{$name}) {
# If the symbol is already listed in the file
$sym = $obj->{syms}{$name};
- if ($sym->{deprecated}) {
- # Symbol reappeared somehow
- $sym->{deprecated} = 0;
- $sym->{minver} = $minver if (not $sym->is_optional());
- } else {
- # We assume that the right dependency information is already
- # there.
- if (version_compare($minver, $sym->{minver}) < 0) {
- $sym->{minver} = $minver;
- }
- }
- if (not $sym->arch_is_concerned($self->{arch})) {
- # Remove arch tag because it is incorrect.
- $sym->delete_tag('arch');
- }
+ $sym->mark_found_in_library($minver, $self->{arch});
} else {
# The symbol is new and not present in the file
my $symobj = $dynsyms{$name};
@@ -329,23 +315,11 @@ sub merge_symbols {
}
}
- # Scan all symbols in the file and mark as deprecated those that are
- # no more provided (only if the minver is bigger than the version where
- # the symbol was introduced)
+ # Process all symbols which could not be found in the library.
foreach my $name (keys %{$self->{objects}{$soname}{syms}}) {
if (not exists $dynsyms{$name}) {
my $sym = $self->{objects}{$soname}{syms}{$name};
-
- # Ignore symbols from foreign arch
- next if not $sym->arch_is_concerned($self->{arch});
-
- if ($sym->{deprecated}) {
- # Bump deprecated if the symbol is optional so that it
- # keeps reappering in the diff while it's missing
- $sym->{deprecated} = $minver if $sym->is_optional();
- } elsif (version_compare($minver, $sym->{minver}) > 0) {
- $sym->{deprecated} = $minver;
- }
+ $sym->mark_not_found_in_library($minver, $self->{arch});
}
}
}