[PATCH v2 1/2] Disable SFrame support by default
Florian Weimer
fweimer@redhat.com
Wed Jul 23 07:27:15 GMT 2025
* Adhemerval Zanella:
> diff --git a/elf/dl-find_object.h b/elf/dl-find_object.h
> index 9aa2439eaa..6a50b4becf 100644
> --- a/elf/dl-find_object.h
> +++ b/elf/dl-find_object.h
> @@ -43,7 +43,9 @@ struct dl_find_object_internal
> #if DLFO_STRUCT_HAS_EH_COUNT
> int eh_count;
> #endif
> +#if ENABLE_SFRAME
> void *sframe;
> +#endif
> };
>
> /* Create a copy of *SOURCE in *COPY using relaxed MO loads and
> @@ -68,8 +70,10 @@ _dl_find_object_internal_copy (const struct dl_find_object_internal *source,
> atomic_store_relaxed (©->eh_count,
> atomic_load_relaxed (&source->eh_count));
> #endif
> +#if ENABLE_SFRAME
> atomic_store_relaxed (©->sframe,
> atomic_load_relaxed (&source->sframe));
> +#endif
> }
>
> static inline void
> @@ -86,10 +90,12 @@ _dl_find_object_to_external (struct dl_find_object_internal *internal,
> # if DLFO_STRUCT_HAS_EH_COUNT
> external->dlfo_eh_count = internal->eh_count;
> # endif
> +# if ENABLE_SFRAME
> external->dlfo_sframe = internal->sframe;
> if (internal->sframe != NULL)
> external->dlfo_flags = DLFO_FLAG_SFRAME;
> else
> +# endif
> external->dlfo_flags = 0;
> }
>
> @@ -112,7 +118,9 @@ _dl_find_object_from_map (struct link_map *l,
>
> /* Initialize object's exception handling segment and SFrame segment
> data. */
> +#if ENABLE_SFRAME
> atomic_store_relaxed (&result->sframe, NULL);
> +#endif
> atomic_store_relaxed (&result->eh_frame, NULL);
> #if DLFO_STRUCT_HAS_EH_COUNT
> atomic_store_relaxed (&result->eh_count, 0);
> @@ -132,11 +140,13 @@ _dl_find_object_from_map (struct link_map *l,
> read_seg |= 1;
> break;
>
> +#if ENABLE_SFRAME
> case PT_GNU_SFRAME:
> atomic_store_relaxed (&result->sframe,
> (void *) (ph->p_vaddr + l->l_addr));
> read_seg |= 2;
> /* Fall through. */
> +#endif
> default:
> break;
> }
I think thos changes are not necessary. We can support locating SFrame
data with _dl_find_object even if glibc itself does not contain any.
Thanks,
Florian
More information about the Libc-alpha
mailing list