aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.com>2024-10-12 00:21:28 +0300
committerthegeorg <thegeorg@yandex-team.com>2024-10-12 00:33:07 +0300
commite493167a2cecbdc68258d70ddb044e7a0f56aa7f (patch)
tree43ca7bc8d04c95ca6c2b1c3fa5132cd525934485
parentc7307fc40d61e2a996fd7c22ee9ef52663897b3b (diff)
downloadydb-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.yml1
-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.h16
-rw-r--r--contrib/libs/libc_compat/ya.make14
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()