[PATCH v2 1/2] Disable SFrame support by default
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Wed Jul 23 12:47:47 GMT 2025
On 23/07/25 04:27, Florian Weimer wrote:
> * 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.
Fair enough.
More information about the Libc-alpha
mailing list