mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-18 00:32:30 +08:00
Support objcopy --remove-section=.relaFOO
* objcopy.c (handle_remove_section_option): Don't require a dot after .rela and .rel to handle a possible relocation section. * testsuite/binutils-all/remove-relocs-07.s, * testsuite/binutils-all/remove-relocs-07.d, * testsuite/binutils-all/remove-relocs-08.d: New tests. * testsuite/binutils-all/remove-relocs-01.d, * testsuite/binutils-all/remove-relocs-04.d, * testsuite/binutils-all/remove-relocs-05.d, * testsuite/binutils-all/remove-relocs-06.d: Exclude mips64-openbsd.
This commit is contained in:
@ -3943,18 +3943,21 @@ discard_relocations (bfd *ibfd ATTRIBUTE_UNUSED, asection *isection)
|
||||
|
||||
/* Wrapper for dealing with --remove-section (-R) command line arguments.
|
||||
A special case is detected here, if the user asks to remove a relocation
|
||||
section (one starting with ".rela." or ".rel.") then this removal must
|
||||
section (one starting with ".rela" or ".rel") then this removal must
|
||||
be done using a different technique in a relocatable object. */
|
||||
|
||||
static void
|
||||
handle_remove_section_option (const char *section_pattern)
|
||||
{
|
||||
if (strncmp (section_pattern, ".rela.", 6) == 0)
|
||||
handle_remove_relocations_option (section_pattern + 5);
|
||||
else if (strncmp (section_pattern, ".rel.", 5) == 0)
|
||||
handle_remove_relocations_option (section_pattern + 4);
|
||||
|
||||
find_section_list (section_pattern, TRUE, SECTION_CONTEXT_REMOVE);
|
||||
if (strncmp (section_pattern, ".rel", 4) == 0)
|
||||
{
|
||||
section_pattern += 4;
|
||||
if (*section_pattern == 'a')
|
||||
section_pattern++;
|
||||
if (*section_pattern)
|
||||
handle_remove_relocations_option (section_pattern);
|
||||
}
|
||||
sections_removed = TRUE;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user