Parcourir la source

Dpkg::Shlibs::Objdump: Mask ELF machine bits for SH and MIPS

These do not define the ABI, and seem to be set depending on the ISA
used. Mask them for now, and postpone possibly making more fine-grained
matching in the future.
Guillem Jover il y a 9 ans
Parent
commit
0cdf7ebbbf
2 fichiers modifiés avec 8 ajouts et 3 suppressions
  1. 7 0
      debian/changelog
  2. 1 3
      scripts/Dpkg/Shlibs/Objdump.pm

+ 7 - 0
debian/changelog

@@ -1,5 +1,12 @@
 dpkg (1.18.20) UNRELEASED; urgency=medium
 dpkg (1.18.20) UNRELEASED; urgency=medium
 
 
+  [ Guillem Jover ]
+  * Perl modules:
+    - Mask the machine bits for SH and MIPS in the ELF processor flags in
+      Dpkg::Shlibs::Objdump. These do not define the ABI, and make the
+      objects not match when they should, when looking for shared libraries
+      from dpkg-shlibdeps.
+
   [ Updated scripts translations ]
   [ Updated scripts translations ]
   * German (Helge Kreutzmann).
   * German (Helge Kreutzmann).
 
 

+ 1 - 3
scripts/Dpkg/Shlibs/Objdump.pm

@@ -133,10 +133,8 @@ my %elf_flags_mask = (
                            ELF_FLAG_ARM_NEW_ABI | ELF_FLAG_ARM_OLD_ABI |
                            ELF_FLAG_ARM_NEW_ABI | ELF_FLAG_ARM_OLD_ABI |
                            ELF_FLAG_ARM_SOFT_FLOAT | ELF_FLAG_ARM_HARD_FLOAT,
                            ELF_FLAG_ARM_SOFT_FLOAT | ELF_FLAG_ARM_HARD_FLOAT,
     ELF_MACH_IA64()     => ELF_FLAG_IA64_ABI64,
     ELF_MACH_IA64()     => ELF_FLAG_IA64_ABI64,
-    ELF_MACH_MIPS()     => ELF_FLAG_MIPS_ARCH_MASK | ELF_FLAG_MIPS_ABI_MASK |
-                           ELF_FLAG_MIPS_ABI2,
+    ELF_MACH_MIPS()     => ELF_FLAG_MIPS_ABI_MASK | ELF_FLAG_MIPS_ABI2,
     ELF_MACH_PPC64()    => ELF_FLAG_PPC64_ABI64,
     ELF_MACH_PPC64()    => ELF_FLAG_PPC64_ABI64,
-    ELF_MACH_SH()       => ELF_FLAG_SH_MACH_MASK,
 );
 );
 
 
 sub get_format {
 sub get_format {