Chan_phone fails to compile with Asterisk-1.0.0 / Linux 2.6.8-gentoo-r4 Reproducible: Always Steps to Reproduce: 1. emerge asterisk Actual Results: gcc -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g -Iinclude -I../include -D_REENTRANT -D_GNU_SOURCE -O6 -march=i686 -DASTERISK_VERSION=\"1.0.0\" -DINSTALL_PREFIX=\"\" -DASTETCDIR=\"/etc/asterisk\" -DASTLIBDIR=\"/usr/lib/asterisk\" -DASTVARLIBDIR=\"/var/lib/asterisk\" -DASTVARRUNDIR=\"/var/run\" -DASTSPOOLDIR=\"/var/spool/asterisk\" -DASTLOGDIR=\"/var/log/asterisk\" -DASTCONFPATH=\"/etc/asterisk/asterisk.conf\" -DASTMODDIR=\"/usr/lib/asterisk/modules\" -DASTAGIDIR=\"/var/lib/asterisk/agi-bin\" -DBUSYDETECT_MARTIN -Wno-missing-prototypes -Wno-missing-declarations -DZAPATA_PRI -DCRYPTO -fPIC -c -o chan_phone.o chan_phone.c In file included from chan_phone.c:36: /usr/include/linux/ixjuser.h:353: error: parse error before '*' token make[1]: *** [chan_phone.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/asterisk-1.0.0/work/asterisk-1.0.0/channels' make: *** [subdirs] Error 1 Expected Results: A new build Asterisk Running kernel 2.6.8-gentoo-r4
this is not an asterisk bug, which version of linux-headers is installed?
sys-kernel/linux26-headers-2.6.8.1 and compiling with sys-devel/gcc-3.4.2-r2 typedef struct { int elements_used; IXJ_CADENCE_TERM termination; IXJ_CADENCE_ELEMENT __user *ce; } IXJ_CADENCE; I presume the __user is the issue here, could that be a missing include?
same kernel headers (sys-kernel/linux26-headers-2.6.8.1), same gcc (sys-devel/gcc-3.4.2-r2 -bootstrap* -build -debug -f77 -gcj +gtk -hardened -n32 -n64 +nls -nomultilib -objc -static (-uclibc)), same kernel (sys-kernel/gentoo-dev-sources-2.6.8-r4 -build -doc -ultra1) and same error! gcc -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g -Iinclude -I../include -D_REENTRANT -D_GNU_SOURCE -O6 -march=i686 -DZAPTEL_OPTIMIZATIONS -DASTERISK_VERSION=\"1.0.0\" -DINSTALL_PREFIX=\"\" -DASTETCDIR=\"/etc/asterisk\" -DASTLIBDIR=\"/usr/lib/asterisk\" -DASTVARLIBDIR=\"/var/lib/asterisk\" -DASTVARRUNDIR=\"/var/run\" -DASTSPOOLDIR=\"/var/spool/asterisk\" -DASTLOGDIR=\"/var/log/asterisk\" -DASTCONFPATH=\"/etc/asterisk/asterisk.conf\" -DASTMODDIR=\"/usr/lib/asterisk/modules\" -DASTAGIDIR=\"/var/lib/asterisk/agi-bin\" -DBUSYDETECT_MARTIN -Wno-missing-prototypes -Wno-missing-declarations -DZAPATA_PRI -DIAX_TRUNKING -DCRYPTO -fPIC -c -o chan_phone.o chan_phone.c In file included from chan_phone.c:36: /usr/include/linux/ixjuser.h:353: error: parse error before '*' token make[1]: *** [chan_phone.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/asterisk-1.0.0/work/asterisk-1.0.0/channels' make: *** [subdirs] Error 1
the solution is: edit your line 353 in /usr/include/linux/ixjuser.h from " IXJ_CADENCE_ELEMENT __user *ce;" to " IXJ_CADENCE_ELEMENT __user, *ce;" and asterisk will compile please see http://lists.digium.com/pipermail/asterisk-users/2004-August/059263.html
Works, so now it should be fixed in the kernel I guess.
*** Bug 77180 has been marked as a duplicate of this bug. ***