diff options
author | thegeorg <thegeorg@yandex-team.com> | 2024-10-12 00:21:28 +0300 |
---|---|---|
committer | thegeorg <thegeorg@yandex-team.com> | 2024-10-12 00:33:07 +0300 |
commit | e493167a2cecbdc68258d70ddb044e7a0f56aa7f (patch) | |
tree | 43ca7bc8d04c95ca6c2b1c3fa5132cd525934485 | |
parent | c7307fc40d61e2a996fd7c22ee9ef52663897b3b (diff) | |
download | ydb-e493167a2cecbdc68258d70ddb044e7a0f56aa7f.tar.gz |
Provide sys/mman.h by the means of libc_compat
Default OS_SDK does not provide `#define MFD_CLOEXEC` and `#define MADV_WIPEONFORK`.
commit_hash:8546994c7256265f0c1623df629f2dd2e9f4414d
-rw-r--r-- | build/sysincl/libc-to-compat.yml | 1 | ||||
-rw-r--r-- | contrib/libs/libc_compat/memfd_create/memfd_create.c (renamed from contrib/libs/libc_compat/memfd_create.c) | 0 | ||||
-rw-r--r-- | contrib/libs/libc_compat/memfd_create/sys/mman.h | 16 | ||||
-rw-r--r-- | contrib/libs/libc_compat/ya.make | 14 |
4 files changed, 29 insertions, 2 deletions
diff --git a/build/sysincl/libc-to-compat.yml b/build/sysincl/libc-to-compat.yml index 058a5e2176..7fc026c29d 100644 --- a/build/sysincl/libc-to-compat.yml +++ b/build/sysincl/libc-to-compat.yml @@ -2,6 +2,7 @@ - source_filter: "^(?!contrib/libs/musl).*|^contrib/libs/musl/tests" includes: - ifaddrs.h: contrib/libs/libc_compat/include/ifaddrs/ifaddrs.h + - sys/mman.h: "contrib/libs/libc_compat/memfd_create/sys/mman.h" - sys/random.h: "contrib/libs/libc_compat/random/sys/random.h" - readpassphrase.h: "contrib/libs/libc_compat/include/readpassphrase/readpassphrase.h" - stdlib.h: "contrib/libs/libc_compat/reallocarray/stdlib.h" diff --git a/contrib/libs/libc_compat/memfd_create.c b/contrib/libs/libc_compat/memfd_create/memfd_create.c index 6805d807d6..6805d807d6 100644 --- a/contrib/libs/libc_compat/memfd_create.c +++ b/contrib/libs/libc_compat/memfd_create/memfd_create.c diff --git a/contrib/libs/libc_compat/memfd_create/sys/mman.h b/contrib/libs/libc_compat/memfd_create/sys/mman.h new file mode 100644 index 0000000000..d36e9bdbe4 --- /dev/null +++ b/contrib/libs/libc_compat/memfd_create/sys/mman.h @@ -0,0 +1,16 @@ +#pragma once + +#include_next <sys/mman.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define MFD_CLOEXEC 0x0001U +#define MADV_WIPEONFORK 18 + +int memfd_create(const char *name, unsigned flags); + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/contrib/libs/libc_compat/ya.make b/contrib/libs/libc_compat/ya.make index a8d7af0cf7..537ecdb9c5 100644 --- a/contrib/libs/libc_compat/ya.make +++ b/contrib/libs/libc_compat/ya.make @@ -107,11 +107,12 @@ IF (OS_LINUX AND NOT MUSL) # getrandom and getentropy were added in glibc=2.25 ENABLE(PROVIDE_GETRANDOM_GETENTROPY) + # memfd_create was added in glibc=2.27 + ENABLE(PROVIDE_MEMFD_CREATE) + SRCS( # explicit_bzero was added in glibc=2.25 explicit_bzero.c - # memfd_create was added in glibc=2.27 - memfd_create.c ) ENDIF() IF (OS_SDK != "ubuntu-20" AND OS_SDK != "ubuntu-22") @@ -160,4 +161,13 @@ IF (PROVIDE_GETSERVBYNAME) ) ENDIF() +IF (PROVIDE_MEMFD_CREATE) + SRCS( + memfd_create/memfd_create.c + ) + ADDINCL( + GLOBAL contrib/libs/libc_compat/memfd_create + ) +ENDIF() + END() |