samples/landlock: Fix building on musl libc

Building with make allyesconfig on musl results in the following

In file included from samples/landlock/sandboxer.c:22:
/usr/include/sys/prctl.h:88:8: error: redefinition of 'struct prctl_mm_map'
   88 | struct prctl_mm_map {
      |        ^~~~~~~~~~~~
In file included from samples/landlock/sandboxer.c:16:
usr/include/linux/prctl.h:134:8: note: originally defined here
  134 | struct prctl_mm_map {
      |        ^~~~~~~~~~~~

This is mainly due to difference in the sys/prctl.h between glibc and
musl. The struct prctl_mm_map is defined in sys/prctl.h in musl.

Signed-off-by: Brahmajit Das <listout@listout.xyz>
[mic: Move down the if/include/endif block]
Link: https://lore.kernel.org/r/20250630203248.16273-1-listout@listout.xyz
Signed-off-by: Mickaël Salaün <mic@digikod.net>
This commit is contained in:
Brahmajit Das 2025-07-01 02:02:48 +05:30 committed by Mickaël Salaün
parent e0a69cf2c0
commit 970f8a17c9
No known key found for this signature in database
GPG key ID: E5E3D0E88C82F6D2

View file

@ -13,7 +13,6 @@
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <linux/landlock.h> #include <linux/landlock.h>
#include <linux/prctl.h>
#include <linux/socket.h> #include <linux/socket.h>
#include <stddef.h> #include <stddef.h>
#include <stdio.h> #include <stdio.h>
@ -25,6 +24,10 @@
#include <unistd.h> #include <unistd.h>
#include <stdbool.h> #include <stdbool.h>
#if defined(__GLIBC__)
#include <linux/prctl.h>
#endif
#ifndef landlock_create_ruleset #ifndef landlock_create_ruleset
static inline int static inline int
landlock_create_ruleset(const struct landlock_ruleset_attr *const attr, landlock_create_ruleset(const struct landlock_ruleset_attr *const attr,