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 +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 +--- + 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 4.5.3-2 +- patch for strict-aliasing issue in liboping.c + * Mon Mar 02 2009 Alan Pevec 4.5.3-1 - New upstream version 4.5.3 - fixes collectd is built without iptables plugin, bz# 479208