diff options
Diffstat (limited to 'scripts/Dpkg/Shlibs/SymbolFile.pm')
-rw-r--r-- | scripts/Dpkg/Shlibs/SymbolFile.pm | 32 |
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}); } } } |