2009-03-17 Paul Pluzhnikov <ppluzhnikov@google.com>
authorPaul Pluzhnikov <ppluzhnikov@google.com>
Tue, 17 Mar 2009 20:36:30 +0000 (20:36 +0000)
committerPaul Pluzhnikov <ppluzhnikov@google.com>
Tue, 17 Mar 2009 20:36:30 +0000 (20:36 +0000)
* layout.h (Layout::create_note): Add section_name parameter.
* layout.cc (Layout::create_note): Likewise.
(Layout::create_build_id, Layout::create_gold_note): Fix callers.

gold/ChangeLog
gold/layout.cc
gold/layout.h

index 9425ea6e60e17f2c03ad2b042e39b2c2b7ad2329..501aabe79590124607ae8133dc42b124b5dd2753 100644 (file)
@@ -1,3 +1,9 @@
+2009-03-17  Paul Pluzhnikov  <ppluzhnikov@google.com>
+       
+       * layout.h (Layout::create_note): Add section_name parameter.
+       * layout.cc (Layout::create_note): Likewise.
+       (Layout::create_build_id, Layout::create_gold_note): Fix callers.
+       
 2009-03-17  Ian Lance Taylor  <iant@google.com>
 
        * descriptors.cc: Include "options.h".
index df74df36c5039deb05bf327b11bf2678ea231edc..b59caea6166d48e91709741e2adb88abf5de27bc 100644 (file)
@@ -1327,7 +1327,8 @@ Layout::finalize(const Input_objects* input_objects, Symbol_table* symtab,
 // *TRAILING_PADDING to the number of trailing zero bytes required.
 
 Output_section*
-Layout::create_note(const char* name, int note_type, size_t descsz,
+Layout::create_note(const char* name, int note_type,
+                   const char* section_name, size_t descsz,
                    bool allocate, size_t* trailing_padding)
 {
   // Authorities all agree that the values in a .note field should
@@ -1394,7 +1395,7 @@ Layout::create_note(const char* name, int note_type, size_t descsz,
 
   memcpy(buffer + 3 * (size / 8), name, namesz);
 
-  const char* note_name = this->namepool_.add(".note", false, NULL);
+  const char *note_name = this->namepool_.add(section_name, false, NULL);
   elfcpp::Elf_Xword flags = 0;
   if (allocate)
     flags = elfcpp::SHF_ALLOC;
@@ -1424,7 +1425,8 @@ Layout::create_gold_note()
 
   size_t trailing_padding;
   Output_section *os = this->create_note("GNU", elfcpp::NT_GNU_GOLD_VERSION,
-                                        desc.size(), false, &trailing_padding);
+                                        ".note.gnu.gold-version", desc.size(),
+                                        false, &trailing_padding);
 
   Output_section_data* posd = new Output_data_const(desc, 4);
   os->add_output_section_data(posd);
@@ -1556,7 +1558,8 @@ Layout::create_build_id()
   // Create the note.
   size_t trailing_padding;
   Output_section* os = this->create_note("GNU", elfcpp::NT_GNU_BUILD_ID,
-                                        descsz, true, &trailing_padding);
+                                        ".note.gnu.build-id", descsz, true,
+                                        &trailing_padding);
 
   if (!desc.empty())
     {
index ca0f89a9d4670b7fc99847b9d672ca325f5bade9..010ab2ee98a6ab12a241c47c5cd4251abe7409ed 100644 (file)
@@ -456,12 +456,12 @@ class Layout
   };
   typedef std::vector<Group_signature> Group_signatures;
 
-  // Create a .note section, filling in the header.
+  // Create a note section, filling in the header.
   Output_section*
-  create_note(const char* name, int note_type, size_t descsz,
-             bool allocate, size_t* trailing_padding);
+  create_note(const char* name, int note_type, const char *section_name,
+             size_t descsz, bool allocate, size_t* trailing_padding);
 
-  // Create a .note section for gold.
+  // Create a note section for gold version.
   void
   create_gold_note();