OSDN Git Service

Exit normally when relocations are already packed.
authorDmitriy Ivanov <dimitry@google.com>
Fri, 24 Apr 2015 19:39:14 +0000 (12:39 -0700)
committerDmitriy Ivanov <dimitry@google.com>
Fri, 24 Apr 2015 19:39:14 +0000 (12:39 -0700)
Bug: http://b/18051137
Change-Id: Idfffac5fe965e3cdeabe6d3b2dcd8c275c6ae5df

tools/relocation_packer/src/elf_file.cc
tools/relocation_packer/src/elf_file_unittest.cc

index fb74233..c8ddde6 100644 (file)
@@ -618,8 +618,8 @@ bool ElfFile<ELF>::PackTypedRelocations(std::vector<typename ELF::Rela>* relocat
   typedef typename ELF::Rela Rela;
 
   if (has_android_relocations_) {
-    LOG(ERROR) << "Relocation table is already packed";
-    return false;
+    LOG(INFO) << "Relocation table is already packed";
+    return true;
   }
 
   // If no relocations then we have nothing packable.  Perhaps
index 5271eef..32f7968 100644 (file)
@@ -103,8 +103,8 @@ template <typename ELF>
 static void ProcessUnpack(FILE* relocs_so, FILE* packed_relocs_so) {
   relocation_packer::ElfFile<ELF> elf_file(fileno(packed_relocs_so));
 
-  // Ensure packing fails (already packed).
-  EXPECT_FALSE(elf_file.PackRelocations());
+  // Ensure packing already packed elf-file does not fail the build.
+  EXPECT_TRUE(elf_file.PackRelocations());
 
   // Unpack golden relocations, and check files are now identical.
   EXPECT_TRUE(elf_file.UnpackRelocations());