diff options
-rw-r--r-- | initd/early.c | 3 | ||||
-rw-r--r-- | libc-compat.h | 10 | ||||
-rw-r--r-- | plug/coldplug.c | 3 |
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); |