systemtap/systemtap-linux-types.patch

71 lines
2.7 KiB
Diff

From: Josh Stone <jistone@redhat.com>
Subject: Fix build with glibc 2.16
Date: 2012-07-27
Upstream: yes
Signed-Off-by: aj@suse.de
From Fedora:
Squashed cherry-picks from upstream:
commit 037853b4644bb6ebd68e2f1fac11c3636f551d8e
Author: Josh Stone <jistone@redhat.com>
Date: Mon Jul 9 12:07:48 2012 -0700
Fix the build with glibc 2.16
With our elevated compiler warnings as errors, we got:
mainloop.c: In function 'stp_main_loop':
mainloop.c:581:3: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
mainloop.c:581:3: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
mainloop.c:583:35: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
mainloop.c:583:35: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
mainloop.c:631:2: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
mainloop.c:631:2: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
cc1: all warnings being treated as errors
This turns out to be a macro fight between glibc-2.16 and
kernel-headers, via including linux/types.h. We apparently don't
even need that header, so removing it lets us proceed normally.
Those curious can watch this bug to see how the conflict is resolved:
https://bugzilla.redhat.com/show_bug.cgi?id=837641
commit d9b0c1c8712ff255d4b6171fdb0e1ec39f444501
Author: Josh Stone <jistone@redhat.com>
Date: Wed Jul 18 18:33:12 2012 -0700
Further tweak to glibc/kernel-headers workaround
... following commit 037853b4644bb6ebd68e2f1fac11c3636f551d8e, for
https://bugzilla.redhat.com/show_bug.cgi?id=840902
Seems it's not always possible to avoid linux/types.h for the conflict
it presents with sys/select.h. Now include linux/types.h very early, so
glibc can stomp over it with #undef and #define, rather than vice versa.
diff --git a/runtime/staprun/staprun.h b/runtime/staprun/staprun.h
index d01a291..e9ce117 100644
--- a/runtime/staprun/staprun.h
+++ b/runtime/staprun/staprun.h
@@ -10,6 +10,11 @@
* Copyright (C) 2005-2008 Red Hat Inc.
*/
#define _FILE_OFFSET_BITS 64
+
+/* kernel-headers and glibc like to stomp on each other. We include this early
+ * so we can ensure glibc's own definitions will win. rhbz 837641 & 840902 */
+#include <linux/types.h>
+
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
@@ -28,7 +33,6 @@
#include <sys/poll.h>
#include <pthread.h>
#include <sys/socket.h>
-#include <linux/types.h>
#include <linux/limits.h>
#include <sys/wait.h>
#include <sys/statfs.h>