libbpf: Define MFD_CLOEXEC if not available
authorArnaldo Carvalho de Melo <acme@kernel.org>
Thu, 21 Mar 2024 16:01:58 +0000 (13:01 -0300)
committerAndrii Nakryiko <andrii@kernel.org>
Thu, 21 Mar 2024 18:27:17 +0000 (11:27 -0700)
Since its going directly to the syscall to avoid not having
memfd_create() available in some systems, do the same for its
MFD_CLOEXEC flags, defining it if not available.

This fixes the build in those systems, noticed while building perf on a
set of build containers.

Fixes: 9fa5e1a180aa639f ("libbpf: Call memfd_create() syscall directly")
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/ZfxZ9nCyKvwmpKkE@x1
tools/lib/bpf/libbpf.c

index 1e3e697b98bcaf66c75457e0fdd11b74888e0785..a2061fcd612d7f67d22daa1f86168104f92d11e2 100644 (file)
@@ -1650,6 +1650,10 @@ static int sys_memfd_create(const char *name, unsigned flags)
        return syscall(__NR_memfd_create, name, flags);
 }
 
+#ifndef MFD_CLOEXEC
+#define MFD_CLOEXEC 0x0001U
+#endif
+
 static int create_placeholder_fd(void)
 {
        int fd;