Если кто-то себя чувствует системным программистом, и думает, что много знает, просто откройте сырцы glibc, и почитайте в районе elf/rtld.c и связанных с ними файлами.
struct rtld_global _rtld_global =
{
/* Get architecture specific initializer. */
#include <dl-procruntime.c>
/* Generally the default presumption without further information is an
* executable stack but this is not true for all platforms. */
._dl_stack_flags = DEFAULT_STACK_PERMS,
#ifdef _LIBC_REENTRANT
._dl_load_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER,
._dl_load_write_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER,
._dl_load_tls_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER,
#endif
._dl_nns = 1,
._dl_ns =
{
#ifdef _LIBC_REENTRANT
[LM_ID_BASE] = { ._ns_unique_sym_table
= { .lock = _RTLD_LOCK_RECURSIVE_INITIALIZER } }
#endif
}
};
Такая инициализация полей структуры - это круто. А вот выделенный кусок я ваще не понял. [LM_ID_BASE] = {...} - это как ваще?? Ну прикольно. Я смотрю синтаксис Си тоже на месте не стоит. Но на С++ получилось бы короче и понятнее
А чо, так можно?
Date: 2023-05-30 08:01 pm (UTC)struct rtld_global _rtld_global = { /* Get architecture specific initializer. */ #include <dl-procruntime.c> /* Generally the default presumption without further information is an * executable stack but this is not true for all platforms. */ ._dl_stack_flags = DEFAULT_STACK_PERMS, #ifdef _LIBC_REENTRANT ._dl_load_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER, ._dl_load_write_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER, ._dl_load_tls_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER, #endif ._dl_nns = 1, ._dl_ns = { #ifdef _LIBC_REENTRANT [LM_ID_BASE] = { ._ns_unique_sym_table = { .lock = _RTLD_LOCK_RECURSIVE_INITIALIZER } } #endif } };Такая инициализация полей структуры - это круто.
А вот выделенный кусок я ваще не понял. [LM_ID_BASE] = {...} - это как ваще??
Ну прикольно. Я смотрю синтаксис Си тоже на месте не стоит.
Но на С++ получилось бы короче и понятнее
Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:Re: А чо, так можно?
From:(no subject)
From:no subject
Date: 2023-05-30 08:02 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From: