summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--initd/early.c3
-rw-r--r--libc-compat.h10
-rw-r--r--plug/coldplug.c3
3 files changed, 14 insertions, 2 deletions
diff --git a/initd/early.c b/initd/early.c
index f410256..e87774f 100644
--- a/initd/early.c
+++ b/initd/early.c
@@ -22,6 +22,7 @@
#include <stdlib.h>
#include "init.h"
+#include "../libc-compat.h"
static void
early_dev(void)
@@ -66,7 +67,7 @@ early_mounts(void)
mount("sysfs", "/sys", "sysfs", MS_NOATIME | MS_NODEV | MS_NOEXEC | MS_NOSUID, 0);
mount("cgroup", "/sys/fs/cgroup", "cgroup", MS_NODEV | MS_NOEXEC | MS_NOSUID, 0);
mount("tmpfs", "/dev", "tmpfs", MS_NOATIME | MS_NOSUID, "mode=0755,size=512K");
- symlink("/tmp/shm", "/dev/shm");
+ ignore(symlink("/tmp/shm", "/dev/shm"));
mkdir("/dev/pts", 0755);
mount("devpts", "/dev/pts", "devpts", MS_NOATIME | MS_NOEXEC | MS_NOSUID, "mode=600");
early_dev();
diff --git a/libc-compat.h b/libc-compat.h
new file mode 100644
index 0000000..9435346
--- /dev/null
+++ b/libc-compat.h
@@ -0,0 +1,10 @@
+#ifndef __PROCD_LIBC_COMPAT_H
+#define __PROCD_LIBC_COMPAT_H
+
+#if defined(__GLIBC__) && !defined(__UCLIBC__)
+static inline int ignore(int x) {return x;}
+#else
+#define ignore(x) x
+#endif
+
+#endif
diff --git a/plug/coldplug.c b/plug/coldplug.c
index 123e17d..5fcb9a3 100644
--- a/plug/coldplug.c
+++ b/plug/coldplug.c
@@ -19,6 +19,7 @@
#include <unistd.h>
#include "../procd.h"
+#include "../libc-compat.h"
#include "hotplug.h"
@@ -45,7 +46,7 @@ void procd_coldplug(void)
umount2("/dev/pts", MNT_DETACH);
umount2("/dev/", MNT_DETACH);
mount("tmpfs", "/dev", "tmpfs", MS_NOSUID, "mode=0755,size=512K");
- symlink("/tmp/shm", "/dev/shm");
+ ignore(symlink("/tmp/shm", "/dev/shm"));
mkdir("/dev/pts", 0755);
umask(oldumask);
mount("devpts", "/dev/pts", "devpts", MS_NOEXEC | MS_NOSUID, 0);