diff --git a/configure.ac b/configure.ac index cae2dce367..8a28c8e807 100644 --- a/configure.ac +++ b/configure.ac @@ -28,6 +28,9 @@ AC_SUBST(PACKAGE_URL, [http://www.freedesktop.org/wiki/Software/systemd]) AC_CANONICAL_HOST AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.]) +AS_IF([test "x$host_cpu" = "xmips" || test "x$host_cpu" = "xmipsel" || + test "x$host_cpu" = "xmips64" || test "x$host_cpu" = "xmips64el"], + [AC_DEFINE(ARCH_MIPS, [], [Whether on mips arch])]) AM_SILENT_RULES([yes]) diff --git a/src/missing.h b/src/missing.h index c0cb3eaea7..35e209fba4 100644 --- a/src/missing.h +++ b/src/missing.h @@ -36,6 +36,10 @@ #include "macro.h" +#ifdef ARCH_MIPS +#include +#endif + #ifndef RLIMIT_RTTIME #define RLIMIT_RTTIME 15 #endif @@ -77,19 +81,42 @@ static inline int pivot_root(const char *new_root, const char *put_old) { } #ifdef __x86_64__ -#ifndef __NR_fanotify_init -#define __NR_fanotify_init 300 -#endif -#ifndef __NR_fanotify_mark -#define __NR_fanotify_mark 301 -#endif +# ifndef __NR_fanotify_init +# define __NR_fanotify_init 300 +# endif +# ifndef __NR_fanotify_mark +# define __NR_fanotify_mark 301 +# endif +#elif defined _MIPS_SIM +# if _MIPS_SIM == _MIPS_SIM_ABI32 +# ifndef __NR_fanotify_init +# define __NR_fanotify_init 4336 +# endif +# ifndef __NR_fanotify_mark +# define __NR_fanotify_mark 4337 +# endif +# elif _MIPS_SIM == _MIPS_SIM_NABI32 +# ifndef __NR_fanotify_init +# define __NR_fanotify_init 6300 +# endif +# ifndef __NR_fanotify_mark +# define __NR_fanotify_mark 6301 +# endif +# elif _MIPS_SIM == _MIPS_SIM_ABI64 +# ifndef __NR_fanotify_init +# define __NR_fanotify_init 5295 +# endif +# ifndef __NR_fanotify_mark +# define __NR_fanotify_mark 5296 +# endif +# endif #else -#ifndef __NR_fanotify_init -#define __NR_fanotify_init 338 -#endif -#ifndef __NR_fanotify_mark -#define __NR_fanotify_mark 339 -#endif +# ifndef __NR_fanotify_init +# define __NR_fanotify_init 338 +# endif +# ifndef __NR_fanotify_mark +# define __NR_fanotify_mark 339 +# endif #endif static inline int fanotify_init(unsigned int flags, unsigned int event_f_flags) {