Change pe/coff build-id section name to '.buildid'

The section name used to store the build-id on pe/coff is arbitrary, as it's
contents should be located using the pe/coff header's DataDirectory debug data
entry, not by using the section name.

But '.build-id' is not a good choice for that section name, as it is 9
characters long, and hence truncated to 8 characters when
--disable-long-section-names is used (which is the default, when producing an
executable with no dwarf debug sections, e.g. using ld --strip-all --build-id)

This truncation then breaks 'objcopy --only-keep-debug', which does use the
section name, due to concerns that keeping an arbitrary section which contains
the debug directory is not sensible.

binutils/ChangeLog

2014-09-01  Jon TURNEY  <jon.turney@dronecode.org.uk>

	* objcopy.c (is_nondebug_keep_contents_section): Change pe/coff
	build-id section name from '.build-id' to '.buildid'.

ld/ChangeLog

2014-09-01  Jon TURNEY  <jon.turney@dronecode.org.uk>

	* emultempl/pe.em (write_build_id, setup_build_id): Change pe/coff
	build-id section name from '.build-id' to '.buildid'.
	* emultempl/pep.em (write_build_id, setup_build_id): Ditto.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
This commit is contained in:
Jon TURNEY 2014-08-30 15:02:49 +01:00
parent 2e4bb98a0e
commit 74fffc3982
5 changed files with 23 additions and 12 deletions

View File

@ -1,3 +1,8 @@
2014-09-01 Jon TURNEY <jon.turney@dronecode.org.uk>
* objcopy.c (is_nondebug_keep_contents_section): Change
'.build-id' to '.buildid'.
2014-08-22 Richard Henderson <rth@redhat.com>
* dwarf.h (init_dwarf_regnames_aarch64): Declare.

View File

@ -1148,13 +1148,13 @@ is_nondebug_keep_contents_section (bfd *ibfd, asection *isection)
if (ibfd->xvec->flavour == bfd_target_elf_flavour)
return (elf_section_type (isection) == SHT_NOTE);
/* Always keep the .build-id section for PE/COFF.
/* Always keep the .buildid section for PE/COFF.
Strictly, this should be written "always keep the section storing the debug
directory", but that may be the .text section for objects produced by some
tools, which it is not sensible to keep. */
if (ibfd->xvec->flavour == bfd_target_coff_flavour)
return (strcmp (bfd_get_section_name (ibfd, isection), ".build-id") == 0);
return (strcmp (bfd_get_section_name (ibfd, isection), ".buildid") == 0);
return FALSE;
}

View File

@ -1,3 +1,9 @@
2014-09-01 Jon TURNEY <jon.turney@dronecode.org.uk>
* emultempl/pe.em (write_build_id, setup_build_id): Change pe/coff
build-id section name from '.build-id' to '.buildid'.
* emultempl/pep.em (write_build_id, setup_build_id): Ditto.
2014-08-22 Andreas Tobler <andreast@fgznet.ch>
* emulparams/armelf_fbsd.sh (TEXT_START_ADDR): Increase alignment to

View File

@ -1297,7 +1297,7 @@ write_build_id (bfd *abfd)
bfd_size_type build_id_size;
unsigned char *build_id;
/* Find the section the .build-id output section has been merged info. */
/* Find the section the .buildid output section has been merged info. */
for (asec = abfd->sections; asec != NULL; asec = asec->next)
{
struct bfd_link_order *l = NULL;
@ -1319,7 +1319,7 @@ write_build_id (bfd *abfd)
if (!link_order)
{
einfo (_("%P: warning: .build-id section discarded,"
einfo (_("%P: warning: .buildid section discarded,"
" --build-id ignored.\n"));
return TRUE;
}
@ -1383,7 +1383,7 @@ write_build_id (bfd *abfd)
return TRUE;
}
/* Make .build-id section, and set up coff_tdata->build_id. */
/* Make .buildid section, and set up coff_tdata->build_id. */
static bfd_boolean
setup_build_id (bfd *ibfd)
{
@ -1398,7 +1398,7 @@ setup_build_id (bfd *ibfd)
flags = (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_IN_MEMORY
| SEC_LINKER_CREATED | SEC_READONLY | SEC_DATA);
s = bfd_make_section_anyway_with_flags (ibfd, ".build-id", flags);
s = bfd_make_section_anyway_with_flags (ibfd, ".buildid", flags);
if (s != NULL)
{
struct pe_tdata *t = pe_data (link_info.output_bfd);
@ -1416,7 +1416,7 @@ setup_build_id (bfd *ibfd)
return TRUE;
}
einfo ("%P: warning: Cannot create .build-id section,"
einfo ("%P: warning: Cannot create .buildid section,"
" --build-id ignored.\n");
return FALSE;
}

View File

@ -1261,7 +1261,7 @@ write_build_id (bfd *abfd)
bfd_size_type build_id_size;
unsigned char *build_id;
/* Find the section the .build-id output section has been merged info. */
/* Find the section the .buildid output section has been merged info. */
for (asec = abfd->sections; asec != NULL; asec = asec->next)
{
struct bfd_link_order *l = NULL;
@ -1283,7 +1283,7 @@ write_build_id (bfd *abfd)
if (!link_order)
{
einfo (_("%P: warning: .build-id section discarded,"
einfo (_("%P: warning: .buildid section discarded,"
" --build-id ignored.\n"));
return TRUE;
}
@ -1347,7 +1347,7 @@ write_build_id (bfd *abfd)
return TRUE;
}
/* Make .build-id section, and set up coff_tdata->build_id. */
/* Make .buildid section, and set up coff_tdata->build_id. */
static bfd_boolean
setup_build_id (bfd *ibfd)
{
@ -1362,7 +1362,7 @@ setup_build_id (bfd *ibfd)
flags = (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_IN_MEMORY
| SEC_LINKER_CREATED | SEC_READONLY | SEC_DATA);
s = bfd_make_section_anyway_with_flags (ibfd, ".build-id", flags);
s = bfd_make_section_anyway_with_flags (ibfd, ".buildid", flags);
if (s != NULL)
{
struct pe_tdata *t = pe_data (link_info.output_bfd);
@ -1380,7 +1380,7 @@ setup_build_id (bfd *ibfd)
return TRUE;
}
einfo ("%P: warning: Cannot create .build-id section,"
einfo ("%P: warning: Cannot create .buildid section,"
" --build-id ignored.\n");
return FALSE;
}