[PATCH v2 5/5] Linux: Consolidate auxiliary vector parsing
Florian Weimer
fweimer@redhat.com
Tue Feb 8 20:34:43 GMT 2022
* Adhemerval Zanella:
>> diff --git a/sysdeps/unix/sysv/linux/dl-parse_auxv.h b/sysdeps/unix/sysv/linux/dl-parse_auxv.h
>> new file mode 100644
>> index 0000000000..f450c6c5ce
>> --- /dev/null
>> +++ b/sysdeps/unix/sysv/linux/dl-parse_auxv.h
>> +typedef ElfW(Addr) dl_parse_auxv_t[AT_MINSIGSTKSZ + 1];
>> +
>> +/* Copy the auxiliary vector into AUX_VALUES and set up GLRO
>> + variables. */
>> +static inline
>> +void _dl_parse_auxv (ElfW(auxv_t) *av, dl_parse_auxv_t auxv_values)
>> +{
>> + auxv_values[AT_ENTRY] = (ElfW(Addr)) ENTRY_POINT;
>
> Extra whitespace.
Fxied.
>> + auxv_values[AT_PAGESZ] = EXEC_PAGESIZE;
>> + auxv_values[AT_FPUCW] = _FPU_DEFAULT;
>> +
>> + /* NB: Default to a constant CONSTANT_MINSIGSTKSZ. */
>> + _Static_assert (__builtin_constant_p (CONSTANT_MINSIGSTKSZ),
>> + "CONSTANT_MINSIGSTKSZ is constant");
>
> Shouldn't it warn that CONSTANT_MINSIGSTKSZ is not a constant?
Sorry, would please rephrase? Should I change this to
""CONSTANT_MINSIGSTKSZ is not constant"?
>> + auxv_values[AT_MINSIGSTKSZ] = CONSTANT_MINSIGSTKSZ;
>> +
>> + for (; av->a_type != AT_NULL; av++)
>> + if (av->a_type <= AT_MINSIGSTKSZ)
>> + auxv_values[av->a_type] = av->a_un.a_val;
>> +
>> + GLRO(dl_pagesize) = auxv_values[AT_PAGESZ];
>> + __libc_enable_secure = auxv_values[AT_SECURE];
>> + GLRO(dl_platform) = (void *) auxv_values[AT_PLATFORM];
>> + GLRO(dl_hwcap) = auxv_values[AT_HWCAP];
>> + GLRO(dl_hwcap2) = auxv_values[AT_HWCAP2];
>> + GLRO(dl_clktck) = auxv_values[AT_CLKTCK];
>> + GLRO(dl_fpu_control) = auxv_values[AT_FPUCW];
>> + _dl_random = (void *) auxv_values[AT_RANDOM];
>> + GLRO(dl_minsigstacksize) = auxv_values[AT_MINSIGSTKSZ];
>> + GLRO(dl_sysinfo_dso) = (void *) auxv_values[AT_SYSINFO_EHDR];
>> +#ifdef NEED_DL_SYSINFO
>
> I think you can now assume NEED_DL_SYSINFO is always defined.
NEED_DL_SYSINFO is only defined by i386 and ia64, only
NEED_DL_SYSINFO_DSO is always defined on Linux.
Thanks,
Florian
More information about the Libc-alpha
mailing list