strongswan-2.8.0 fails to build with the latest linux-headers (2.6.19.2-r1) with the following: starterwhack.c: In function `send_whack_msg': starterwhack.c:113: warning: implicit declaration of function `offsetof' starterwhack.c:113: error: syntax error before "struct" starterwhack.c: At top level: starterwhack.c:121: error: syntax error before "if" starterwhack.c:124: warning: type defaults to `int' in declaration of `close' starterwhack.c:124: warning: parameter names (without types) in function declaration starterwhack.c:124: warning: data definition has no type or storage class starterwhack.c:125: error: syntax error before "return" starterwhack.c:129: warning: type defaults to `int' in declaration of `close' starterwhack.c:129: warning: parameter names (without types) in function declaration starterwhack.c:129: warning: data definition has no type or storage class starterwhack.c:130: error: syntax error before "return" make[2]: *** [starterwhack.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/net-misc/strongswan-2.8.0/work/strongswan-2.8.0/programs/starter' make[1]: *** [programs] Error 1 make[1]: Leaving directory `/var/tmp/portage/net-misc/strongswan-2.8.0/work/strongswan-2.8.0/programs' make: *** [programs] Error 1 Go back to linux-headers-2.6.17-r2 and the merge completes. Reproducible: Always Steps to Reproduce: 1. emerge linux-headers-2.6.19.2-r1 2. emerge strongswan-2.8.0 3. # emerge --info Portage 2.1.2-r1 (hardened/x86/2.6, gcc-3.4.6, glibc-2.3.6-r5, 2.6.19-hardened-r4 i686) ================================================================= System uname: 2.6.19-hardened-r4 i686 Intel(R) Celeron(R) CPU 2.40GHz Gentoo Base System version 1.12.9 Timestamp of tree: Fri, 19 Jan 2007 14:30:01 +0000 dev-lang/python: 2.4.4 dev-python/pycrypto: 2.0.1-r5 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.61 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.14 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage//packages/x86/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage/" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="acl berkdb crypt curl dlloader hardened ldap nls nptl nptlonly pam pic postgres readline ssl tcpd userlocales x86 xorg zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="mouse keyboard" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPT
more info: https://lists.strongswan.org/pipermail/users/2007-January/001634.html https://lists.strongswan.org/pipermail/users/2007-January/001635.html
I added the patch mentioned in the e-mails on the list. Please test, as I'm running a stable system and don't want to kill my glibc with newer linux-haders. Furthermore I added a newer version of strongswan. If you want to make me happy, please test both versions ;)
With linux-headers-2.6.19.2-r1, strongswan-2.8.0 and 2.8.1 now fail in the same place with: cc -DVIRTUAL_IP -DDEBUG -I../../linux/include -Wall -DIPSEC_EXECDIR=\"/usr/libexec/ipsec\" -DIPSEC_CONFDDIR=\"/etc/ipsec/ipsec.d\" -DIPSEC_CONFDIR=\"/etc/ipsec\" -march=pentium3 -O2 -pipe -fomit-frame-pointer -I../../linux/include -Wall -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wbad-function-cast -DNAT_TRAVERSAL -c interfaces.c In file included from interfaces.c:26: ../../linux/include/freeswan/ipsec_tunnel.h:53: error: syntax error before "__u32" ../../linux/include/freeswan/ipsec_tunnel.h:53: warning: no semicolon at end of struct or union ../../linux/include/freeswan/ipsec_tunnel.h:59: error: syntax error before '}' token interfaces.c: In function `_iface_up': interfaces.c:223: error: dereferencing pointer to incomplete type interfaces.c:223: error: dereferencing pointer to incomplete type make[2]: *** [interfaces.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/net-misc/strongswan-2.8.0/work/strongswan-2.8.0/programs/starter' make[1]: *** [programs] Error 1 make[1]: Leaving directory `/var/tmp/portage/net-misc/strongswan-2.8.0/work/strongswan-2.8.0/programs' make: *** [programs] Error 1
I've included <linux/types.h> in programs/starter/interfaces.c and it compiles
I'm not quite sure if this the same bug or not, but I cant seem compile strongswan either. Both 2.8.0 and 2.8.1. die with the same error: In file included from interfaces.c:26: ../../linux/include/freeswan/ipsec_tunnel.h:53: error: expected specifier-qualifier-list before ‘__u32’ interfaces.c: In function ‘_iface_up’: interfaces.c:192: warning: dereferencing type-punned pointer will break strict-aliasing rules interfaces.c:223: error: ‘struct ipsectunnelconf’ has no member named ‘cf_u’ interfaces.c:223: error: ‘struct ipsectunnelconf’ has no member named ‘cf_u’ interfaces.c: In function ‘starter_ifaces_load’: interfaces.c:399: warning: pointer targets in passing argument 2 of ‘valid_str’ differ in signedness make[2]: *** [interfaces.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/net-misc/strongswan-2.8.1/work/strongswan-2.8.1/programs/starter' make[1]: *** [programs] Error 1 make[1]: Leaving directory `/var/tmp/portage/net-misc/strongswan-2.8.1/work/strongswan-2.8.1/programs' make: *** [programs] Error 1 2.8.0 dies: Architecture is amd64: Portage 2.1.2-r8 (default-linux/amd64/2006.1/desktop, gcc-4.1.1, glibc-2.5-r0, 2.6.19-gentoo-r2 x86_64) ================================================================= System uname: 2.6.19-gentoo-r2 x86_64 AMD Athlon(tm) 64 Processor 3500+ Gentoo Base System release 1.12.9 Timestamp of tree: Tue, 06 Feb 2007 08:50:01 +0000 ccache version 2.4 [enabled] dev-java/java-config: 1.3.7, 2.0.31-r3 dev-lang/python: 2.3.6, 2.4.4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r6 dev-util/confcache: 0.4.2-r1 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.61 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.14 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.20 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=k8 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -march=k8 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict userfetch userpriv usersandbox" As of this writting, 2.8.2. was not available in the portage
I just tried to create a strongswan-2.8.2-package with the fix for linux-headers-2.6.20. But that is even worse. The new version of linux-headers is missing the offsetof-function in linux/stddef.h. I'll try to contact the upstream-developers about a fix.
strongswan-2.8.4 is out which compiles again with recent linux-headers.