[v1,07/14] clean-up create_obj_attrs_section: comment about .gnu.attributes VS .gnu.build.attributes

Message ID 20250227104811.178094-8-matthieu.longo@arm.com
State New
Headers
Series Several clean-ups and refactorings before a long patch series on AArch64 build attributes |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm fail Patch failed to apply
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 fail Patch failed to apply

Commit Message

Matthieu Longo Feb. 27, 2025, 10:47 a.m. UTC
  ---
 gas/write.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
  

Patch

diff --git a/gas/write.c b/gas/write.c
index 325c4402061..c725841d505 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -1918,27 +1918,27 @@  subsegs_finish (void)
 }
 
 #ifdef OBJ_ELF
+
 static void
 create_obj_attrs_section (void)
 {
-  segT s;
-  char *p;
-  offsetT size;
-  const char *name;
-
-  size = bfd_elf_obj_attr_size (stdoutput);
+  offsetT size = bfd_elf_obj_attr_size (stdoutput);
   if (size == 0)
     return;
 
-  name = get_elf_backend_data (stdoutput)->obj_attrs_section;
-  if (!name)
+  const char *name = get_elf_backend_data (stdoutput)->obj_attrs_section;
+  if (name == NULL)
+    /* Note: .gnu.attributes is different from GNU_BUILD_ATTRS_SECTION_NAME
+       (a.k.a .gnu.build.attributes). The first one seems to be used by some
+       backends like PowerPC to store the build attributes. The second one is
+       used to store build notes.  */
     name = ".gnu.attributes";
-  s = subseg_new (name, 0);
+  segT s = subseg_new (name, 0);
   elf_section_type (s)
     = get_elf_backend_data (stdoutput)->obj_attrs_section_type;
   bfd_set_section_flags (s, SEC_READONLY | SEC_DATA);
   frag_now_fix ();
-  p = frag_more (size);
+  char *p = frag_more (size);
   bfd_elf_set_obj_attr_contents (stdoutput, (bfd_byte *)p, size);
 
   subsegs_finish_section (s);