const struct elf_backend_data *bed;
if (hdr->bfd_section != NULL)
- {
- BFD_ASSERT (strcmp (name,
- bfd_get_section_name (abfd, hdr->bfd_section)) == 0);
- return TRUE;
- }
+ return TRUE;
newsect = bfd_make_section_anyway (abfd, name);
if (newsect == NULL)
|| (name[1] == 'z' && name[7] == '_')))
{
enum { nothing, compress, decompress } action = nothing;
+ char *new_name;
if (bfd_is_section_compressed (abfd, newsect))
{
action = compress;
}
+ new_name = NULL;
switch (action)
{
case nothing:
abfd, name);
return FALSE;
}
+ if (name[1] != 'z')
+ {
+ unsigned int len = strlen (name);
+
+ new_name = bfd_alloc (abfd, len + 2);
+ if (new_name == NULL)
+ return FALSE;
+ new_name[0] = '.';
+ new_name[1] = 'z';
+ memcpy (new_name + 2, name + 1, len);
+ }
break;
case decompress:
if (!bfd_init_section_decompress_status (abfd, newsect))
abfd, name);
return FALSE;
}
+ if (name[1] == 'z')
+ {
+ unsigned int len = strlen (name);
+
+ new_name = bfd_alloc (abfd, len);
+ if (new_name == NULL)
+ return FALSE;
+ new_name[0] = '.';
+ memcpy (new_name + 1, name + 2, len - 1);
+ }
break;
}
+ if (new_name != NULL)
+ bfd_rename_section (abfd, newsect, new_name);
}
return TRUE;