summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Golle2020-07-25 15:30:29 +0000
committerDaniel Golle2020-07-25 15:31:29 +0000
commit5cb3715a079c09d1e66a6455a246347c7cf7b998 (patch)
tree01876a4bbac8a9b348ca14ae914700dd9a82dc96
parentc482c5de77f4adf53cdd55c7ef391264ac189359 (diff)
downloadprocd-5cb3715a079c09d1e66a6455a246347c7cf7b998.tar.gz
jail: fix build on glibc and uclibc
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
-rw-r--r--jail/jail.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/jail/jail.c b/jail/jail.c
index 0d13f58..7c9a25f 100644
--- a/jail/jail.c
+++ b/jail/jail.c
@@ -547,6 +547,17 @@ static int apply_sysctl(const char *jail_root)
return 0;
}
+/* glibc defines makedev calling a function. make sure it's a pure macro */
+#if defined(__GLIBC__)
+#undef makedev
+/* from musl's sys/sysmacros.h */
+#define makedev(x,y) ( \
+ (((x)&0xfffff000ULL) << 32) | \
+ (((x)&0x00000fffULL) << 8) | \
+ (((y)&0xffffff00ULL) << 12) | \
+ (((y)&0x000000ffULL)) )
+#endif
+
static struct mknod_args default_devices[] = {
{ .path = "/dev/null", .mode = (S_IFCHR|S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH), .dev = makedev(1, 3) },
{ .path = "/dev/zero", .mode = (S_IFCHR|S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH), .dev = makedev(1, 5) },