Linux localhost 2.6.18-028test015-master-vz #1 PREEMPT Thu Feb 8 15:21:13 UTC 2007 i686 Intel(R) Celeron(R) CPU 2.53GHz GenuineIntel GNU/Linux /TEMP_WORK/vzctl-3.0.14/ ./configure --prefix=/usr --enable-static=no --enable-shared=yes --enable-bashcomp --enable-logrotate "CFLAGS=-O2 -march=pentium4 -pipe" make Making all in src make[1]: Entering directory `/TEMP_WORK/vzctl-3.0.14/src' Making all in lib make[2]: Entering directory `/TEMP_WORK/vzctl-3.0.14/src/lib' make[2]: Цель `all' не требует выполнения команд. make[2]: Leaving directory `/TEMP_WORK/vzctl-3.0.14/src/lib' make[2]: Entering directory `/TEMP_WORK/vzctl-3.0.14/src' if gcc -DPACKAGE_NAME=\"vzctl\" -DPACKAGE_TARNAME=\"vzctl\" -DPACKAGE_VERSION=\"3.0.14\" -DPACKAGE_STRING=\"vzctl\ 3.0.14\" -DPACKAGE_BUGREPORT=\"devel@openvz.org\" -DPACKAGE=\"vzctl\" -DVERSION=\"3.0.14\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -I. -I. -I../include -DSBINDIR=\"/usr/sbin\" -DPKGCONFDIR=\"/usr/etc/vz\" -DPKGLIBDIR=\"/usr/lib/vzctl\" -O2 -march=pentium4 -pipe -Wall -Wpointer-arith -Wcast-qual -Winline -Wcast-align -Wno-unused-parameter -MT ndsend.o -MD -MP -MF ".deps/ndsend.Tpo" -c -o ndsend.o ndsend.c; \ then mv -f ".deps/ndsend.Tpo" ".deps/ndsend.Po"; else rm -f ".deps/ndsend.Tpo"; exit 1; fi ndsend.c:40: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘real_hwaddr’ ndsend.c:43: error: expected specifier-qualifier-list before ‘__u8’ ndsend.c: In function ‘init_device_addresses’: ndsend.c:76: error: ‘real_hwaddr’ undeclared (first use in this function) ndsend.c:76: error: (Each undeclared identifier is reported only once ndsend.c:76: error: for each function it appears in.) ndsend.c: In function ‘create_nd_packet’: ndsend.c:86: error: ‘struct nd_packet’ has no member named ‘icmp6_type’ ndsend.c:87: error: ‘struct nd_packet’ has no member named ‘icmp6_code’ ndsend.c:88: error: ‘struct nd_packet’ has no member named ‘icmp6_cksum’ ndsend.c:89: error: ‘struct nd_packet’ has no member named ‘reserved’ ndsend.c:90: error: ‘struct nd_packet’ has no member named ‘override’ ndsend.c:91: error: ‘struct nd_packet’ has no member named ‘solicited’ ndsend.c:92: error: ‘struct nd_packet’ has no member named ‘router’ ndsend.c:93: error: ‘struct nd_packet’ has no member named ‘reserved’ ndsend.c:94: error: ‘struct nd_packet’ has no member named ‘target’ ndsend.c:95: error: ‘struct nd_packet’ has no member named ‘otype’ ndsend.c:96: error: ‘struct nd_packet’ has no member named ‘ospace’ ndsend.c:97: error: ‘struct nd_packet’ has no member named ‘obits’ ndsend.c:97: error: ‘real_hwaddr’ undeclared (first use in this function) ndsend.c: In function ‘sender’: ndsend.c:106: error: ‘__u32’ undeclared (first use in this function) ndsend.c:106: error: expected expression before ‘)’ token ndsend.c:107: error: expected expression before ‘)’ token ndsend.c:108: error: expected expression before ‘)’ token ndsend.c:109: error: expected expression before ‘)’ token make[2]: *** [ndsend.o] Ошибка 1 make[2]: Leaving directory `/TEMP_WORK/vzctl-3.0.14/src' make[1]: *** [all-recursive] Ошибка 1 make[1]: Leaving directory `/TEMP_WORK/vzctl-3.0.14/src' make: *** [all-recursive] Ошибка 1
Get latest vzctl git version: git-clone http://git.openvz.org/pub/vzctl vzctl ...or add this header at the top of src/ndsend.c #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h> +#include <linux/types.h> #include <linux/if.h> #include <netinet/icmp6.h>
The following patch should help. BTW which distro do you use? I thought it is a Gentoo-specific problem... From: Kir Kolyshkin <kir@openvz.org> Date: Wed, 17 Jan 2007 13:53:22 +0000 (+0300) Subject: Fix ndsend compile with Gentoo linux-headers-2.6.19.2-r2 X-Git-Url: http://git.openvz.org/?p=vzctl;a=commitdiff;h=248b85a47a0e5a d4c93140eaabc23c936821dd26 Fix ndsend compile with Gentoo linux-headers-2.6.19.2-r2 The problem is abovementioned linux-headers change linux/if.h file in a way that it does no more include linux/types.h, thus unknown types like __u8 etc. We add this include explicitly and fix the problem. --- --- a/src/ndsend.c +++ b/src/ndsend.c @@ -17,6 +17,7 @@ #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h> +#include <linux/types.h> #include <linux/if.h> #include <netinet/icmp6.h>