keepalived-1.1.13がkernel 2.6.20でコンパイルできない
すでにupdateでkernel 2.6.20になるfc6でkeepalivedのmakeが通らない。
/usr/include/stdint.h:56: error: conflicting types for ‘uint64_t’ /lib/modules/2.6.20-1.2944.fc6/build/include/linux/types.h:124: error: previous declaration of ‘uint64_t’ was here vrrp_arp.c: In function ‘send_gratuitous_arp’: vrrp_arp.c:84: warning: pointer targets in initialization differ in signedness make[2]: *** [vrrp_arp.o] Error 1
こんな感じのエラーで止まる。
同じことを悩んでいる方もいました。
keepalived-1.1.13カーネル2.6.20以降でコンパイル通らず
次のバージョンで直る予定らしいですがorz
それまで待てないので、keepalivedのrpmではどうやっているのか、調べたところ、
http://ftp.iij.ad.jp/pub/linux/fedora/extras/6/SRPMS/keepalived-1.1.13-6.fc6.src.rpm
の中で、以下なpatchがあたってました
diff -Naupr keepalived-1.1.13.orig/keepalived/vrrp/vrrp_arp.c keepalived-1.1.13/keepalived/vrrp/vrrp_arp.c --- keepalived-1.1.13.orig/keepalived/vrrp/vrrp_arp.c 2006-10-11 11:44:59.000000000 +0200 +++ keepalived-1.1.13/keepalived/vrrp/vrrp_arp.c 2007-03-22 16:22:29.000000000 +0100 @@ -22,14 +22,14 @@ * Copyright (C) 2001-2006 Alexandre Cassen, <acassen@linux-vs.org> */ -/* system includes */ -#include <linux/if_packet.h> - /* local includes */ #include "vrrp_arp.h" #include "memory.h" #include "utils.h" +/* system includes */ +#include <linux/if_packet.h> + /* global vars */ char *garp_buffer; int garp_fd;
includeの順番が変わっただけっぽいですが、これでmake通るようになりました。