summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Pevec <apevec@fedoraproject.org>2009-03-03 13:47:59 +0000
committerAlan Pevec <apevec@fedoraproject.org>2009-03-03 13:47:59 +0000
commit12972687aca2262309b860ba5376b6d1612f86ba (patch)
tree83e5e56ca19ee66cd995bbc483d39bb827cdda63
parent78a2acde74f6fb6908f1d23506de03fe2d5985f3 (diff)
downloadcollectd-12972687aca2262309b860ba5376b6d1612f86ba.tar.gz
collectd-12972687aca2262309b860ba5376b6d1612f86ba.tar.xz
collectd-12972687aca2262309b860ba5376b6d1612f86ba.zip
- patch for strict-aliasing issue in liboping.c
-rw-r--r--collectd-4.5.3-gcc-4.4-strict-aliasing-issue.patch54
-rw-r--r--collectd.spec8
2 files changed, 61 insertions, 1 deletions
diff --git a/collectd-4.5.3-gcc-4.4-strict-aliasing-issue.patch b/collectd-4.5.3-gcc-4.4-strict-aliasing-issue.patch
new file mode 100644
index 0000000..cbb1c17
--- /dev/null
+++ b/collectd-4.5.3-gcc-4.4-strict-aliasing-issue.patch
@@ -0,0 +1,54 @@
+From 76cdc4d21f40a65d775bbce3468996c4d0045d96 Mon Sep 17 00:00:00 2001
+From: Alan Pevec <apevec@redhat.com>
+Date: Tue, 3 Mar 2009 14:36:36 +0100
+Subject: [PATCH] Fix gcc-4.4 strict-aliasing issue
+
+cc1: warnings being treated as errors
+liboping.c: In function 'ping_host_add':
+liboping.c:995: error: dereferencing pointer 'si' does break strict-aliasing rules
+...
+
+Signed-off-by: Alan Pevec <apevec@redhat.com>
+---
+ src/liboping/liboping.c | 18 ++++++++++++------
+ 1 files changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/src/liboping/liboping.c b/src/liboping/liboping.c
+index 13bcc92..dee28fb 100644
+--- a/src/liboping/liboping.c
++++ b/src/liboping/liboping.c
+@@ -987,9 +987,12 @@ int ping_host_add (pingobj_t *obj, const char *host)
+
+ if (ai_ptr->ai_family == AF_INET)
+ {
+- struct sockaddr_in *si;
+-
+- si = (struct sockaddr_in *) &sockaddr;
++ union {
++ struct sockaddr_storage any_socket;
++ struct sockaddr_in si;
++ } s;
++ s.any_socket = sockaddr;
++ si = &s.si;
+ si->sin_family = AF_INET;
+ si->sin_port = htons (ph->ident);
+ si->sin_addr.s_addr = htonl (INADDR_ANY);
+@@ -999,9 +1002,12 @@ int ping_host_add (pingobj_t *obj, const char *host)
+ }
+ else if (ai_ptr->ai_family == AF_INET6)
+ {
+- struct sockaddr_in6 *si;
+-
+- si = (struct sockaddr_in6 *) &sockaddr;
++ union {
++ struct sockaddr_storage any_socket;
++ struct sockaddr_in6 si;
++ } s;
++ s.any_socket = sockaddr;
++ si = &s.si;
+ si->sin6_family = AF_INET6;
+ si->sin6_port = htons (ph->ident);
+ si->sin6_addr = in6addr_any;
+--
+1.6.0.6
+
diff --git a/collectd.spec b/collectd.spec
index 55add01..d000c93 100644
--- a/collectd.spec
+++ b/collectd.spec
@@ -1,7 +1,7 @@
Summary: Statistics collection daemon for filling RRD files
Name: collectd
Version: 4.5.3
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2
Group: System Environment/Daemons
URL: http://collectd.org/
@@ -10,6 +10,8 @@ Source: http://collectd.org/files/%{name}-%{version}.tar.bz2
Patch0: %{name}-4.5.1-include-collectd.d.patch
# bug 468067 "pkg-config --libs OpenIPMIpthread" fails
Patch1: %{name}-4.5.1-configure-OpenIPMI.patch
+# posted upstream
+Patch2: collectd-4.5.3-gcc-4.4-strict-aliasing-issue.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
@@ -151,6 +153,7 @@ This plugin collects information from virtualized guests.
%setup -q
%patch0 -p1
%patch1 -p0
+%patch2 -p1
sed -i.orig -e 's|-Werror||g' Makefile.in */Makefile.in
@@ -407,6 +410,9 @@ fi
%changelog
+* Tue Mar 03 2009 Alan Pevec <apevec@redhat.com> 4.5.3-2
+- patch for strict-aliasing issue in liboping.c
+
* Mon Mar 02 2009 Alan Pevec <apevec@redhat.com> 4.5.3-1
- New upstream version 4.5.3
- fixes collectd is built without iptables plugin, bz# 479208