Blame SOURCES/binutils-attach-to-group.patch

2e9b04
diff -rup binutils.orig/gas/config/obj-elf.c binutils-2.34/gas/config/obj-elf.c
2e9b04
--- binutils.orig/gas/config/obj-elf.c	2020-02-02 11:34:11.858321477 +0000
2e9b04
+++ binutils-2.34/gas/config/obj-elf.c	2020-02-02 11:34:30.099247619 +0000
2e9b04
@@ -78,9 +78,11 @@ static void obj_elf_gnu_attribute (int);
2e9b04
 static void obj_elf_tls_common (int);
2e9b04
 static void obj_elf_lcomm (int);
2e9b04
 static void obj_elf_struct (int);
2e9b04
+static void obj_elf_attach_to_group (int);
2e9b04
 
2e9b04
 static const pseudo_typeS elf_pseudo_table[] =
2e9b04
 {
2e9b04
+  {"attach_to_group", obj_elf_attach_to_group, 0},
2e9b04
   {"comm", obj_elf_common, 0},
2e9b04
   {"common", obj_elf_common, 1},
2e9b04
   {"ident", obj_elf_ident, 0},
2e9b04
@@ -1003,6 +1005,27 @@ obj_elf_section_name (void)
2e9b04
   return name;
2e9b04
 }
2e9b04
 
2e9b04
+static void
2e9b04
+obj_elf_attach_to_group (int dummy ATTRIBUTE_UNUSED)
2e9b04
+{
2e9b04
+  const char * gname = obj_elf_section_name ();
2e9b04
+
2e9b04
+  if (gname == NULL)
2e9b04
+    {
2e9b04
+      as_warn ("group name not parseable");
2e9b04
+      return;
2e9b04
+    }
2e9b04
+
2e9b04
+  if (elf_group_name (now_seg))
2e9b04
+    {
2e9b04
+      as_warn ("already has a group");
2e9b04
+      return;
2e9b04
+    }
2e9b04
+
2e9b04
+  elf_group_name (now_seg) = xstrdup (gname);
2e9b04
+  elf_section_flags (now_seg) |= SHF_GROUP;
2e9b04
+}
2e9b04
+
2e9b04
 void
2e9b04
 obj_elf_section (int push)
2e9b04
 {
2e9b04
Only in binutils-2.34/gas/config: obj-elf.c.orig
2e9b04
diff -rup binutils.orig/gas/doc/as.texi binutils-2.34/gas/doc/as.texi
2e9b04
--- binutils.orig/gas/doc/as.texi	2020-02-02 11:34:11.850321509 +0000
2e9b04
+++ binutils-2.34/gas/doc/as.texi	2020-02-02 11:35:11.359080560 +0000
2e9b04
@@ -4359,6 +4359,7 @@ Some machine configurations provide addi
2e9b04
 * Altmacro::                    @code{.altmacro}
2e9b04
 * Ascii::                       @code{.ascii "@var{string}"}@dots{}
2e9b04
 * Asciz::                       @code{.asciz "@var{string}"}@dots{}
2e9b04
+* Attach_to_group::             @code{.attach_to_group @var{name}}
2e9b04
 * Balign::                      @code{.balign [@var{abs-expr}[, @var{abs-expr}]]}
2e9b04
 * Bundle directives::           @code{.bundle_align_mode @var{abs-expr}}, etc
2e9b04
 * Byte::                        @code{.byte @var{expressions}}
2e9b04
@@ -4656,6 +4657,12 @@ trailing zero byte) into consecutive add
2e9b04
 @code{.asciz} is just like @code{.ascii}, but each string is followed by
2e9b04
 a zero byte.  The ``z'' in @samp{.asciz} stands for ``zero''.
2e9b04
 
2e9b04
+@node Attach_to_group
2e9b04
+@section @code{.attach_to_group @var{name}}
2e9b04
+Attaches the current section to the named group.  This is like declaring
2e9b04
+the section with the @code{G} attribute, but can be done after the section
2e9b04
+has been created.
2e9b04
+
2e9b04
 @node Balign
2e9b04
 @section @code{.balign[wl] [@var{abs-expr}[, @var{abs-expr}[, @var{abs-expr}]]]}
2e9b04
 
2e9b04
Only in binutils-2.34/gas/doc: as.texi.orig
2e9b04
Only in binutils-2.34/gas/doc: as.texi.rej