[systemtap] bz840902 ppc build fix (related to bz837641)

Josh Stone jistone at fedoraproject.org
Thu Jul 19 02:19:17 UTC 2012


commit 4fb0fa448b919733a2beca31b19d9c47cec9de74
Author: Josh Stone <jistone at redhat.com>
Date:   Wed Jul 18 18:51:27 2012 -0700

    bz840902 ppc build fix (related to bz837641)

 bz837641-bz840902-linux-types.patch   |   63 +++++++++++++++++++++++++++++++++
 bz837641-staprun-no-linux-types.patch |   38 --------------------
 systemtap.spec                        |    9 +++--
 3 files changed, 69 insertions(+), 41 deletions(-)
---
diff --git a/bz837641-bz840902-linux-types.patch b/bz837641-bz840902-linux-types.patch
new file mode 100644
index 0000000..9c2ab69
--- /dev/null
+++ b/bz837641-bz840902-linux-types.patch
@@ -0,0 +1,63 @@
+Squashed cherry-picks from upstream:
+
+commit 037853b4644bb6ebd68e2f1fac11c3636f551d8e
+Author: Josh Stone <jistone at 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 at 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>
diff --git a/systemtap.spec b/systemtap.spec
index b8f2a56..2b1cb83 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -20,7 +20,7 @@
 
 Name: systemtap
 Version: 1.8
-Release: 4%{?dist}
+Release: 5%{?dist}
 # for version, see also configure.ac
 
 
@@ -90,7 +90,7 @@ BuildRequires: /usr/share/publican/Common_Content/%{publican_brand}/defaults.cfg
 %endif
 %endif
 
-Patch2: bz837641-staprun-no-linux-types.patch
+Patch2: bz837641-bz840902-linux-types.patch
 Patch3: PR14348.patch
 
 # Install requirements
@@ -252,7 +252,7 @@ find . \( -name configure -o -name config.h.in \) -print | xargs touch
 cd ..
 %endif
 
-# bz837641-staprun-no-linux-types.patch
+# bz837641-bz840902-linux-types.patch
 %patch2 -p1
 %patch3 -p1
 
@@ -586,6 +586,9 @@ exit 0
 # ------------------------------------------------------------------------
 
 %changelog
+* Wed Jul 18 2012 Josh Stone <jistone at redhat.com> - 1.8-5
+- bz840902 ppc build fix (related to bz837641)
+
 * Fri Jul 13 2012 Peter Robinson <pbrobinson at fedoraproject.org> - 1.8-4
 - Fix ifarch statement
 - use file based requires for glibc-devel on x86_64 so that we work in koji


More information about the scm-commits mailing list