summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure12
-rw-r--r--include/sys/shm.h3
-rw-r--r--include/sys/timerfd.h6
3 files changed, 20 insertions, 1 deletions
diff --git a/configure b/configure
index b61ffb82..96f93b24 100755
--- a/configure
+++ b/configure
@@ -270,9 +270,19 @@ fnmatch '-march=*|*\ -march=*' "$CFLAGS" || tryldflag CFLAGS_AUTO -march=i486
fnmatch '-mtune=*|*\ -mtune=*' "$CFLAGS" || tryldflag CFLAGS_AUTO -mtune=generic
fi
+#
+# Even with -std=c99, gcc accepts some constructs which are constraint
+# violations. We want to treat these as errors regardless of whether
+# other purely stylistic warnings are enabled -- especially implicit
+# function declarations, which are a dangerous programming error.
+#
+tryflag CFLAGS_AUTO -Werror=implicit-function-declaration
+tryflag CFLAGS_AUTO -Werror=implicit-int
+tryflag CFLAGS_AUTO -Werror=pointer-sign
+tryflag CFLAGS_AUTO -Werror=pointer-arith
+
if test "x$warnings" = xyes ; then
tryflag CFLAGS_AUTO -Wall
-tryflag CFLAGS_AUTO -Wpointer-arith
tryflag CFLAGS_AUTO -Wcast-align
tryflag CFLAGS_AUTO -Wno-parentheses
tryflag CFLAGS_AUTO -Wno-uninitialized
diff --git a/include/sys/shm.h b/include/sys/shm.h
index ce3029f5..bca6ed62 100644
--- a/include/sys/shm.h
+++ b/include/sys/shm.h
@@ -16,6 +16,9 @@ extern "C" {
#include <sys/ipc.h>
#include <bits/shm.h>
+#define SHM_R 0400
+#define SHM_W 0200
+
#define SHM_RDONLY 010000
#define SHM_RND 020000
#define SHM_REMAP 040000
diff --git a/include/sys/timerfd.h b/include/sys/timerfd.h
index 0afa7b0e..df645fe8 100644
--- a/include/sys/timerfd.h
+++ b/include/sys/timerfd.h
@@ -6,6 +6,12 @@ extern "C" {
#endif
#include <time.h>
+#include <fcntl.h>
+
+#define TFD_NONBLOCK O_NONBLOCK
+#define TFD_CLOEXEC O_CLOEXEC
+
+#define TFD_TIMER_ABSTIME 1
int timerfd_create(int, int);
int timerfd_settime(int, int, const struct itimerspec *, struct itimerspec *);