gold: Add sparc IFUNC support to Gold.
[deliverable/binutils-gdb.git] / gold / binary.cc
index f14df0dedf0e43c68dc4f24fe0d7cb8af39964e9..6cc99a96935c64a98714cba9c5588e7e9696a90b 100644 (file)
@@ -132,7 +132,11 @@ Binary_to_elf::sized_convert(const Task* task)
     }
 
   section_size_type filesize = convert_to_section_size_type(f.filesize());
-  const unsigned char* fileview = f.get_view(0, 0, filesize, false, false);
+  const unsigned char* fileview;
+  if (filesize == 0)
+    fileview = NULL;
+  else
+    fileview = f.get_view(0, 0, filesize, false, false);
 
   unsigned int align;
   if (size == 32)
@@ -223,10 +227,13 @@ Binary_to_elf::sized_convert(const Task* task)
                                               shstrtab.get_strtab_size(),
                                               0, 0, 1, 0, &pout);
 
-  memcpy(pout, fileview, filesize);
-  pout += filesize;
-  memset(pout, 0, aligned_filesize - filesize);
-  pout += aligned_filesize - filesize;
+  if (filesize > 0)
+    {
+      memcpy(pout, fileview, filesize);
+      pout += filesize;
+      memset(pout, 0, aligned_filesize - filesize);
+      pout += aligned_filesize - filesize;
+    }
 
   this->write_symbol<size, big_endian>("", &strtab, 0, 0, &pout);
   this->write_symbol<size, big_endian>(start_symbol_name, &strtab, 0, 1,
This page took 0.023874 seconds and 4 git commands to generate.