Package: mklibs
Tags: patch

(Patch previously sent at 
<http://lists.debian.org/debian-boot/2008/09/msg00860.html>, pinged at 
<http://lists.debian.org/debian-boot/2009/03/msg00049.html>.  Patch still 
applies to current mklibs SVN.)

This patch fixes a problem using mklibs for SPARC64.  The psABI for this 
platform involves undefined, null-name symbols of type STT_SPARC_REGISTER 
describing how registers are used by objects, which are not of any use to 
mklibs (which cannot handle unnamed symbols in the output of 
mklibs-readelf).

Index: src/mklibs-readelf/main.cpp
===================================================================
--- src/mklibs-readelf/main.cpp (revision 55961)
+++ src/mklibs-readelf/main.cpp (working copy)
@@ -82,15 +82,18 @@
   }
 }
 
-static void process_symbols_undefined (const 
Elf::section_type<Elf::section_type_DYNSYM> *section)
+static void process_symbols_undefined (const 
Elf::section_type<Elf::section_type_DYNSYM> *section, uint16_t machine)
 {
   for (std::vector<Elf::symbol *>::const_iterator it = section->get_symbols 
().begin (); it != section->get_symbols ().end (); ++it)
   {
     const Elf::symbol *symbol = *it;
     uint8_t bind = symbol->get_bind ();
     uint16_t shndx = symbol->get_shndx ();
+    uint8_t type = symbol->get_type ();
     if (shndx != SHN_UNDEF)
       continue;
+    if (machine == EM_SPARCV9 && type == STT_SPARC_REGISTER)
+      continue;
     if (bind == STB_GLOBAL || bind == STB_WEAK)
       std::cout <<
         symbol->get_name_string () << ' ' <<
@@ -125,7 +128,8 @@
       process_symbols_provided (file->get_section_DYNSYM ());
       break;
     case COMMAND_PRINT_SYMBOLS_UNDEFINED:
-      process_symbols_undefined (file->get_section_DYNSYM ());
+      process_symbols_undefined (file->get_section_DYNSYM (),
+                                file->get_machine ());
       break;
   }
 }

-- 
Joseph S. Myers
jos...@codesourcery.com



-- 
To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to