Просмотр исходного кода

Dpkg::Shlibs::SymbolFile: Turn ARM Embedded ABI blacklist into a regex

The ARM Embedded ABI spec, states that symbols prefixed with __aeabi_
can appear in output objects, and are implementation specific, just
ignore them all, instead of trying to keep up with the GNU toolchain.
Not to mention that other toolchains might generate different symbols.
Guillem Jover лет назад: 12
Родитель
Сommit
942f05dd85
2 измененных файлов с 7 добавлено и 9 удалено
  1. 3 0
      debian/changelog
  2. 4 9
      scripts/Dpkg/Shlibs/SymbolFile.pm

+ 3 - 0
debian/changelog

@@ -22,6 +22,9 @@ dpkg (1.17.6) UNRELEASED; urgency=low
     computations, to be able to support large major/minor device numbers,
     supported on at least Linux, NetBSD and OpenBSD based systems.
     Thanks to Peter Chang <dpf@google.com>.
+  * Turn the ARM Embedded ABI symbols blacklist into a regex, to stop having
+    to keep up with the GNU toolchain, or other toolchains emitting different
+    symbols.
 
   [ Updated dpkg translations ]
   * Swedish (Peter Krefting).

+ 4 - 9
scripts/Dpkg/Shlibs/SymbolFile.pm

@@ -70,20 +70,15 @@ for my $i (14 .. 31) {
     $blacklist{"_savegpr_$i"} = 1;
 }
 
-# Many armel-specific symbols
-$blacklist{"__aeabi_$_"} = 1 foreach (qw(cdcmpeq cdcmple cdrcmple cfcmpeq
-cfcmple cfrcmple d2f d2iz d2lz d2uiz d2ulz dadd dcmpeq dcmpge dcmpgt
-dcmple dcmplt dcmpun ddiv dmul dneg drsub dsub f2d f2iz f2lz f2uiz f2ulz
-fadd fcmpeq fcmpge fcmpgt fcmple fcmplt fcmpun fdiv fmul fneg frsub fsub
-i2d i2f idiv idivmod l2d l2f lasr lcmp ldivmod llsl llsr lmul ui2d ui2f
-uidiv uidivmod ul2d ul2f ulcmp uldivmod unwind_cpp_pr0 unwind_cpp_pr1
-unwind_cpp_pr2 uread4 uread8 uwrite4 uwrite8));
-
 sub symbol_is_blacklisted {
     my ($symbol) = @_;
 
     return 1 if exists $blacklist{$symbol};
 
+    # The ARM Embedded ABI spec states symbols under this namespace as
+    # possibly appearing in output objects.
+    return 1 if $symbol =~ /^__aeabi_/;
+
     return 0;
 }