Prev / Next

2014-02-17 / Nagios 4.0 系が Solaris でビルドできない件

Nagios を 4 系にアップデートしてみようかと、4.0.2 をビルドしようとしたところ、
ビルドに失敗。
4.0.1 も試したけど同じように、以下のようなログを出して失敗。

$ CC=/usr/gcc/4.7/bin/gcc gmake all
cd ./base && /opt/dtbld/bin/make
make[1]: Entering directory `/home/tonaka/packages/BUILD/nagios-4.0.1/base'
/usr/gcc/4.7/bin/gcc -Wall -I.. -g -O2 -DHAVE_CONFIG_H -DNSCORE -c -o nagios.o nagios.c
In file included from nagios.c:38:0:
../include/comments.h:61:16: error: redefinition of 'struct comment'
In file included from ../include/config.h:144:0,
                 from nagios.c:35:
/usr/include/pwd.h:37:8: note: originally defined here
nagios.c: In function 'nagios_core_worker':
nagios.c:164:2: warning: format '%d' expects argument of type 'int', but argument 3 has type 'pid_t' [-Wformat]
nagios.c:164:2: warning: format '%d' expects argument of type 'int', but argument 4 has type 'pid_t' [-Wformat]
make[1]: *** [nagios.o] Error 1
make[1]: Leaving directory `/home/tonaka/packages/BUILD/nagios-4.0.1/base'
gmake: *** [all] Error 2


ぐぐると以下のチケットが見つかった。

Nagios Tracker - 0000476: Nagios fails to build on Solaris 11 - Mantis
http://tracker.nagios.org/view.php?id=476

include/comments.h で定義されている 'struct comment' というやつがあり、
Solaris の /usr/include/pwd.h で定義されている同名の 'struct comment' と
衝突することが原因とのこと。

この問題の解決には ABI の変更が必要なため、
次のマイナーリリースである 4.1.0 での解決になるそう。

nagios-4.1 branch では修正され Solaris 10 で動作しているらしい。

nagios-4.1 branch は以下

Nagios / Nagios Core / [c3776c]
http://sourceforge.net/p/nagios/nagioscore/ci/nagios-4.1/tree/

Referrer (Inside):
[2016-03-24-1] Nagios 4.1.1 を Solaris でビルド
comments powered by Disqus