PR 10156
authorIan Lance Taylor <ian@airs.com>
Wed, 24 Jun 2009 05:09:11 +0000 (05:09 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 24 Jun 2009 05:09:11 +0000 (05:09 +0000)
* layout.cc (Layout::create_note): Use choose_output_section
rather than make_output_section.

gold/ChangeLog
gold/layout.cc

index 5507317..debf933 100644 (file)
@@ -1,5 +1,11 @@
 2009-06-23  Ian Lance Taylor  <iant@google.com>
 
+       PR 10156
+       * layout.cc (Layout::create_note): Use choose_output_section
+       rather than make_output_section.
+
+2009-06-23  Ian Lance Taylor  <iant@google.com>
+
        PR 10237
        * options.cc (General_options::parse_V): Set printed_version_.
        (General_options::General_options): Initialize printed_version_.
index 8dba501..4014ec0 100644 (file)
@@ -1361,10 +1361,11 @@ Layout::finalize(const Input_objects* input_objects, Symbol_table* symtab,
 }
 
 // Create a note header following the format defined in the ELF ABI.
-// NAME is the name, NOTE_TYPE is the type, DESCSZ is the size of the
-// descriptor.  ALLOCATE is true if the section should be allocated in
-// memory.  This returns the new note section.  It sets
-// *TRAILING_PADDING to the number of trailing zero bytes required.
+// NAME is the name, NOTE_TYPE is the type, SECTION_NAME is the name
+// of the section to create, DESCSZ is the size of the descriptor.
+// ALLOCATE is true if the section should be allocated in memory.
+// This returns the new note section.  It sets *TRAILING_PADDING to
+// the number of trailing zero bytes required.
 
 Output_section*
 Layout::create_note(const char* name, int note_type,
@@ -1435,13 +1436,12 @@ Layout::create_note(const char* name, int note_type,
 
   memcpy(buffer + 3 * (size / 8), name, namesz);
 
-  const char *note_name = this->namepool_.add(section_name, false, NULL);
   elfcpp::Elf_Xword flags = 0;
   if (allocate)
     flags = elfcpp::SHF_ALLOC;
-  Output_section* os = this->make_output_section(note_name,
-                                                elfcpp::SHT_NOTE,
-                                                flags);
+  Output_section* os = this->choose_output_section(NULL, section_name,
+                                                  elfcpp::SHT_NOTE,
+                                                  flags, false);
   Output_section_data* posd = new Output_data_const_buffer(buffer, notehdrsz,
                                                           size / 8,
                                                           "** note header");