amarao: (Default)
[personal profile] amarao
Если кто-то себя чувствует системным программистом, и думает, что много знает, просто откройте сырцы glibc, и почитайте в районе elf/rtld.c и связанных с ними файлами.

Сразу пройдёт.

А чо, так можно?

Date: 2023-05-30 08:01 pm (UTC)
archie_kot: (Default)
From: [personal profile] archie_kot
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:02 pm (UTC)
archie_kot: (Default)
From: [personal profile] archie_kot
И нет, не прошло

Profile

amarao: (Default)
amarao

February 2026

S M T W T F S
123456 7
8910111213 14
15161718192021
22232425262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 26th, 2026 05:11 pm
Powered by Dreamwidth Studios