From 74fffc39827629fb48c9e24a7d12ebbd5693df4b Mon Sep 17 00:00:00 2001 From: Jon TURNEY Date: Sat, 30 Aug 2014 15:02:49 +0100 Subject: [PATCH] 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 * 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 * 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 --- binutils/ChangeLog | 5 +++++ binutils/objcopy.c | 4 ++-- ld/ChangeLog | 6 ++++++ ld/emultempl/pe.em | 10 +++++----- ld/emultempl/pep.em | 10 +++++----- 5 files changed, 23 insertions(+), 12 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 19569d42baf..693e155048a 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2014-09-01 Jon TURNEY + + * objcopy.c (is_nondebug_keep_contents_section): Change + '.build-id' to '.buildid'. + 2014-08-22 Richard Henderson * dwarf.h (init_dwarf_regnames_aarch64): Declare. diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 46fd8bcd039..3b353ad168a 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -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; } diff --git a/ld/ChangeLog b/ld/ChangeLog index 53f93bb1356..ac85c63582f 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2014-09-01 Jon TURNEY + + * 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 * emulparams/armelf_fbsd.sh (TEXT_START_ADDR): Increase alignment to diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index 7a5b77bf9b2..979cc8b8e96 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -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; } diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em index 6d56bc321c8..b24a6082023 100644 --- a/ld/emultempl/pep.em +++ b/ld/emultempl/pep.em @@ -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; } -- 2.30.2