[PATCH v11 02/25] Object Attributes v2: new abstractions for subsections and attributes

Jan Beulich jbeulich@suse.com
Thu Jan 8 11:28:17 GMT 2026


On 31.12.2025 00:05, Matthieu Longo wrote:
> @@ -3157,6 +3182,39 @@ extern Elf_Internal_Shdr *_bfd_elf_single_rel_hdr
>  extern bool _bfd_elf_read_notes
>    (bfd *, file_ptr, bfd_size_type, size_t) ATTRIBUTE_HIDDEN;
>  
> +extern obj_attr_v2_t *bfd_elf_obj_attr_v2_init (obj_attr_tag_t,
> +  union obj_attr_value_v2) ATTRIBUTE_HIDDEN;
> +extern void _bfd_elf_obj_attr_v2_free (obj_attr_v2_t *, obj_attr_encoding_v2_t)
> +  ATTRIBUTE_HIDDEN;
> +extern obj_attr_v2_t *_bfd_elf_obj_attr_v2_copy (const obj_attr_v2_t *,
> +  obj_attr_encoding_v2_t) ATTRIBUTE_HIDDEN;
> +extern int _bfd_elf_obj_attr_v2_cmp (const obj_attr_v2_t *,
> +  const obj_attr_v2_t *) ATTRIBUTE_HIDDEN;
> +extern obj_attr_v2_t *
> +obj_attr_v2_find_by_tag (const obj_attr_subsection_v2_t *, obj_attr_tag_t,
> +  bool) ATTRIBUTE_HIDDEN;
> +LINKED_LIST_MUTATIVE_OPS_PROTOTYPE(obj_attr_subsection_v2_t,
> +				   obj_attr_v2_t, extern);
> +LINKED_LIST_MERGE_SORT_PROTOTYPE_(obj_attr_v2_t, extern);
> +LINKED_LIST_MERGE_SORT_PROTOTYPE(obj_attr_subsection_v2_t,
> +				 obj_attr_v2_t, extern);

Actually aren't the functions resulting from these and ...

> +extern obj_attr_subsection_v2_t *bfd_elf_obj_attr_subsection_v2_init
> +  (const char*, obj_attr_subsection_scope_v2_t, bool, obj_attr_encoding_v2_t);
> +extern void _bfd_elf_obj_attr_subsection_v2_free (obj_attr_subsection_v2_t *)
> +  ATTRIBUTE_HIDDEN;
> +extern obj_attr_subsection_v2_t *_bfd_elf_obj_attr_subsection_v2_copy
> +  (const obj_attr_subsection_v2_t *) ATTRIBUTE_HIDDEN;
> +extern int _bfd_elf_obj_attr_subsection_v2_cmp
> +  (const obj_attr_subsection_v2_t *, const obj_attr_subsection_v2_t *)
> +  ATTRIBUTE_HIDDEN;
> +extern obj_attr_subsection_v2_t * obj_attr_subsection_v2_find_by_name
> +  (obj_attr_subsection_v2_t *, const char *, bool);
> +LINKED_LIST_MUTATIVE_OPS_PROTOTYPE(obj_attr_subsection_list_t,
> +				   obj_attr_subsection_v2_t, extern);
> +LINKED_LIST_MERGE_SORT_PROTOTYPE_(obj_attr_subsection_v2_t, extern);
> +LINKED_LIST_MERGE_SORT_PROTOTYPE(obj_attr_subsection_list_t,
> +				 obj_attr_subsection_v2_t, extern);

... these also libbfd-internal? They'd want to be hidden as well then, to
avoid counteracting my effort to remove internal functions from the dynamic
symbol table. As it looks, simply amending the "extern" by ATTRIBUTE_HIDDEN
will do.

Also note that there's a style issue here and for the corresponding _DECL():
There's a blank missing ahead of the opening parentheses. (This actually
extends to doubly-linked-list.h itself as well.)

Okay with all respective issues sorted.

Jan


More information about the Binutils mailing list