From ef4ab7a8185e12b2a2e76982a9fe82c8d0f10a38 Mon Sep 17 00:00:00 2001 From: Paul Pluzhnikov Date: Tue, 17 Mar 2009 20:36:30 +0000 Subject: [PATCH] 2009-03-17 Paul Pluzhnikov * 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 | 6 ++++++ gold/layout.cc | 11 +++++++---- gold/layout.h | 8 ++++---- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/gold/ChangeLog b/gold/ChangeLog index 9425ea6e60e..501aabe7959 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2009-03-17 Paul Pluzhnikov + + * 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 * descriptors.cc: Include "options.h". diff --git a/gold/layout.cc b/gold/layout.cc index df74df36c50..b59caea6166 100644 --- a/gold/layout.cc +++ b/gold/layout.cc @@ -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()) { diff --git a/gold/layout.h b/gold/layout.h index ca0f89a9d46..010ab2ee98a 100644 --- a/gold/layout.h +++ b/gold/layout.h @@ -456,12 +456,12 @@ class Layout }; typedef std::vector 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(); -- 2.30.2