diff -rup binutils.orig/gas/config/obj-elf.c binutils-2.30/gas/config/obj-elf.c --- binutils.orig/gas/config/obj-elf.c 2018-09-24 17:50:06.974172867 +0100 +++ binutils-2.30/gas/config/obj-elf.c 2018-09-25 15:19:33.559830794 +0100 @@ -82,9 +82,11 @@ static void obj_elf_gnu_attribute (int); static void obj_elf_tls_common (int); static void obj_elf_lcomm (int); static void obj_elf_struct (int); +static void obj_elf_attach_to_group (int); static const pseudo_typeS elf_pseudo_table[] = { + {"attach_to_group", obj_elf_attach_to_group, 0}, {"comm", obj_elf_common, 0}, {"common", obj_elf_common, 1}, {"ident", obj_elf_ident, 0}, @@ -1007,6 +1009,27 @@ obj_elf_section_name (void) return name; } +static void +obj_elf_attach_to_group (int dummy ATTRIBUTE_UNUSED) +{ + const char * gname = obj_elf_section_name (); + + if (gname == NULL) + { + as_warn ("group name not parseable"); + return; + } + + if (elf_group_name (now_seg)) + { + as_warn ("already has a group"); + return; + } + + elf_group_name (now_seg) = xstrdup (gname); + elf_section_flags (now_seg) |= SHF_GROUP; +} + void obj_elf_section (int push) { diff -rup binutils.orig/gas/doc/as.texinfo binutils-2.30/gas/doc/as.texinfo --- binutils.orig/gas/doc/as.texinfo 2018-09-24 17:50:06.984172788 +0100 +++ binutils-2.30/gas/doc/as.texinfo 2018-09-25 15:19:43.557748972 +0100 @@ -4407,6 +4407,7 @@ Some machine configurations provide addi * Altmacro:: @code{.altmacro} * Ascii:: @code{.ascii "@var{string}"}@dots{} * Asciz:: @code{.asciz "@var{string}"}@dots{} +* Attach_to_group:: @code{.attach_to_group @var{name}} * Balign:: @code{.balign @var{abs-expr} , @var{abs-expr}} * Bundle directives:: @code{.bundle_align_mode @var{abs-expr}}, etc * Byte:: @code{.byte @var{expressions}} @@ -4703,6 +4704,12 @@ trailing zero byte) into consecutive add @code{.asciz} is just like @code{.ascii}, but each string is followed by a zero byte. The ``z'' in @samp{.asciz} stands for ``zero''. +@node Attach_to_group +@section @code{.attach_to_group @var{name}} +Attaches the current section to the named group. This is like declaring +the section with the @code{G} attribute, but can be done after the section +has been created. + @node Balign @section @code{.balign[wl] @var{abs-expr}, @var{abs-expr}, @var{abs-expr}} Only in binutils-2.30/gas/doc: as.texinfo.orig