Add an option to the gold linker to put its version string into the .comment section.
PR 30187 * options.h (class General_options): Add enable-linker-version. * layout.cc (Layout::create_gold_note): If linker-version is enabled put the version string into the .comment section.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2023-03-27 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR 30187
|
||||
* options.h (class General_options): Add enable-linker-version.
|
||||
* layout.cc (Layout::create_gold_note): If linker-version is
|
||||
enabled put the version string into the .comment section.
|
||||
|
||||
2023-01-03 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* po/ro.po: Updated Romainian translation.
|
||||
|
||||
+30
-11
@@ -3333,19 +3333,38 @@ Layout::create_gold_note()
|
||||
|
||||
std::string desc = std::string("gold ") + gold::get_version_string();
|
||||
|
||||
size_t trailing_padding;
|
||||
Output_section* os = this->create_note("GNU", elfcpp::NT_GNU_GOLD_VERSION,
|
||||
".note.gnu.gold-version", desc.size(),
|
||||
false, &trailing_padding);
|
||||
if (os == NULL)
|
||||
return;
|
||||
Output_section* os;
|
||||
Output_section_data* posd;
|
||||
|
||||
Output_section_data* posd = new Output_data_const(desc, 4);
|
||||
os->add_output_section_data(posd);
|
||||
|
||||
if (trailing_padding > 0)
|
||||
if (!parameters->options().enable_linker_version())
|
||||
{
|
||||
posd = new Output_data_zero_fill(trailing_padding, 0);
|
||||
size_t trailing_padding;
|
||||
|
||||
os = this->create_note("GNU", elfcpp::NT_GNU_GOLD_VERSION,
|
||||
".note.gnu.gold-version", desc.size(),
|
||||
false, &trailing_padding);
|
||||
if (os == NULL)
|
||||
return;
|
||||
|
||||
posd = new Output_data_const(desc, 4);
|
||||
os->add_output_section_data(posd);
|
||||
|
||||
if (trailing_padding > 0)
|
||||
{
|
||||
posd = new Output_data_zero_fill(trailing_padding, 0);
|
||||
os->add_output_section_data(posd);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
os = this->choose_output_section(NULL, ".comment",
|
||||
elfcpp::SHT_PROGBITS, 0,
|
||||
false, ORDER_INVALID,
|
||||
false, false, false);
|
||||
if (os == NULL)
|
||||
return;
|
||||
|
||||
posd = new Output_data_const(desc, 1);
|
||||
os->add_output_section_data(posd);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -847,6 +847,10 @@ class General_options
|
||||
N_("Enable use of DT_RUNPATH"),
|
||||
N_("Disable use of DT_RUNPATH"));
|
||||
|
||||
DEFINE_enable(linker_version, options::EXACTLY_TWO_DASHES, '\0', false,
|
||||
N_("Put the linker version string into the .comment section"),
|
||||
N_("Put the linker version string into the .note.gnu.gold-version section"));
|
||||
|
||||
DEFINE_bool(enum_size_warning, options::TWO_DASHES, '\0', true, NULL,
|
||||
N_("(ARM only) Do not warn about objects with incompatible "
|
||||
"enum sizes"));
|
||||
|
||||
Reference in New Issue
Block a user