net-misc/dahdi-tools-2.2.0 does not compile with stable linux-headers Reproducible: Always Steps to Reproduce: 1. emerge <linux-headers-2.6.29 2. emerge dahdi-tools Actual Results: x86_64-pc-linux-gnu-gcc -O2 -pipe -march=amdfam10 -I. -O2 -g -fPIC -Wall -DBUILDING_TONEZONE -MD -MT sethdlc.o -MF .sethdlc.o.d -MP -c -o sethdlc.o sethdlc.c sethdlc.c: In function ‘error’: sethdlc.c:62: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c: In function ‘set_iface’: sethdlc.c:207: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:210: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:211: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:246: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:247: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:248: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:249: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:251: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c: In function ‘set_proto_fr’: sethdlc.c:325: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:326: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c: In function ‘set_proto_hdlc’: sethdlc.c:363: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:364: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c: In function ‘set_proto_cisco’: sethdlc.c:397: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:398: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c: In function ‘set_proto’: sethdlc.c:409: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:412: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:422: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:423: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:429: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:432: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c: In function ‘set_pvc’: sethdlc.c:454: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:459: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:460: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:462: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:472: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:473: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c: In function ‘show_port’: sethdlc.c:509: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:511: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:513: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:514: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:525: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:528: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:531: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:545: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:546: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:558: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:559: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:570: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:631: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c: In function ‘main’: sethdlc.c:690: error: invalid use of undefined type ‘struct __kernel_ifreq’ sethdlc.c:690: error: invalid use of undefined type ‘struct __kernel_ifreq’ make[1]: *** [sethdlc.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/net-misc/dahdi-tools-2.2.0/work/dahdi-tools-2.2.0' make: *** [all] Error 2 Expected Results: Build successfully With linux-headers-2.6.29 and later, dahdi-tools compiles fine.
I also have issues w/ gentoo-sources-2.6.30-r5 -------------------- emerge --info -------------------- Portage 2.1.6.13 (default/linux/amd64/10.0, gcc-4.1.2, glibc-2.8_p20080602-r1, 2.6.30-gentoo-r5 x86_64) ================================================================= System uname: Linux-2.6.30-gentoo-r5-x86_64-Intel-R-_Pentium-R-_4_CPU_3.00GHz-with-gentoo-1.12.11.1 Timestamp of tree: Sat, 31 Oct 2009 05:00:01 +0000 app-shells/bash: 4.0_p28 dev-java/java-config: 1.3.7-r1, 2.1.8-r1 dev-lang/python: 2.4.4-r13, 2.5.4-r2, 2.6.2-r1 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.63-r1 sys-devel/automake: 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LDFLAGS="-Wl,-O1" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/layman/voip" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="acl alsa amd64 berkdb bzip2 cli cracklib crypt cups dbus dri fortran gdbm gpm hal iconv ipv6 isdnlog mmx modules mp3 mudflap multilib mysql ncurses nls nptl nptlonly openmp oss pam pcre perl pppd python readline reflection session spl sse sse2 ssl sysfs tcpd unicode vim-syntax xorg xv zaptel zlib" ALSA_CARDS="via82xx" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="via" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS -------------------- dahdi-tools-2.2.0/temp/build.log -------------------- >>> Unpacking source... >>> Unpacking dahdi-tools-2.2.0.tar.gz to /var/tmp/portage/net-misc/dahdi-tools-2.2.0/work [32;01m*[0m Applying dahdi-tools-2.2.0-ifreq.patch ... [A[195C [34;01m[ [32;01mok[34;01m ][0m [32;01m*[0m Applying dahdi-tools-2.2.0-modprobe-suffix.patch ... [A[195C [34;01m[ [32;01mok[34;01m ][0m >>> Source unpacked in /var/tmp/portage/net-misc/dahdi-tools-2.2.0/work >>> Compiling source in /var/tmp/portage/net-misc/dahdi-tools-2.2.0/work/dahdi-tools-2.2.0 ... * econf: updating dahdi-tools-2.2.0/menuselect/config.guess with /usr/share/gnuconfig/config.guess * econf: updating dahdi-tools-2.2.0/menuselect/config.sub with /usr/share/gnuconfig/config.sub ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define __EXTENSIONS__... yes checking for x86_64-pc-linux-gnu-gcc... (cached) x86_64-pc-linux-gnu-gcc checking whether we are using the GNU C compiler... (cached) yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... (cached) yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... (cached) none needed checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking for GNU make... make checking for grep... (cached) /bin/grep checking for sh... /bin/sh checking for ln... /bin/ln checking for wget... /usr/bin/wget checking for -Wdeclaration-after-statement support... yes checking for DAHDI_CODE in dahdi/user.h... yes checking for newtBell in -lnewt... yes checking newt.h usability... yes checking newt.h presence... yes checking for newt.h... yes checking for usb_init in -lusb... yes checking usb.h usability... yes checking usb.h presence... yes checking for usb.h... yes checking for GENERIC_HDLC_VERSION version 4 in linux/hdlc.h... no checking for GENERIC_HDLC_VERSION version 4 in linux/hdlc/ioctl.h... yes configure: creating ./config.status config.status: creating build_tools/menuselect-deps config.status: creating makeopts configure: *** dahdi-tools build successfully configured *** make -j3 CC="" CXX="g++" LD="" AR="" RANLIB="" CFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" makeopts Generating input for menuselect ... make[1]: Entering directory `/var/tmp/portage/net-misc/dahdi-tools-2.2.0/work/dahdi-tools-2.2.0/menuselect' Package gtk+-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtk+-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gtk+-2.0' found make[1]: Leaving directory `/var/tmp/portage/net-misc/dahdi-tools-2.2.0/work/dahdi-tools-2.2.0/menuselect' CC="" CXX="g++" LD="" AR="" RANLIB="" CFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" menuselect make[1]: Entering directory `/var/tmp/portage/net-misc/dahdi-tools-2.2.0/work/dahdi-tools-2.2.0/menuselect' gcc -g -c -D_GNU_SOURCE -Wall -c -o menuselect.o menuselect.c gcc -g -c -D_GNU_SOURCE -Wall -c -o strcompat.o strcompat.c gcc -g -c -D_GNU_SOURCE -Wall -c -o menuselect_stub.o menuselect_stub.c make[2]: Entering directory `/var/tmp/portage/net-misc/dahdi-tools-2.2.0/work/dahdi-tools-2.2.0/menuselect/mxml' gcc -O -Wall -c mxml-attr.c gcc -O -Wall -c mxml-entity.c gcc -O -Wall -c mxml-file.c gcc -O -Wall -c mxml-index.c gcc -O -Wall -c mxml-node.c gcc -O -Wall -c mxml-search.c gcc -O -Wall -c mxml-set.c gcc -O -Wall -c mxml-private.c gcc -O -Wall -c mxml-string.c /bin/rm -f libmxml.a /usr/bin/ar crvs libmxml.a mxml-attr.o mxml-entity.o mxml-file.o mxml-index.o mxml-node.o mxml-search.o mxml-set.o mxml-private.o mxml-string.o a - mxml-attr.o a - mxml-entity.o a - mxml-file.o a - mxml-index.o a - mxml-node.o a - mxml-search.o a - mxml-set.o a - mxml-private.o a - mxml-string.o ranlib libmxml.a make[2]: Leaving directory `/var/tmp/portage/net-misc/dahdi-tools-2.2.0/work/dahdi-tools-2.2.0/menuselect/mxml' gcc -o menuselect menuselect.o strcompat.o menuselect_stub.o mxml/libmxml.a make[1]: Leaving directory `/var/tmp/portage/net-misc/dahdi-tools-2.2.0/work/dahdi-tools-2.2.0/menuselect' menuselect/menuselect --check-deps menuselect.makeopts make[1]: Entering directory `/var/tmp/portage/net-misc/dahdi-tools-2.2.0/work/dahdi-tools-2.2.0' x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fomit-frame-pointer -I. -O2 -g -fPIC -Wall -DBUILDING_TONEZONE -MD -MT zonedata.lo -MF .zonedata.lo.d -MP -c -o zonedata.lo zonedata.c x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fomit-frame-pointer -I. -O2 -g -fPIC -Wall -DBUILDING_TONEZONE -MD -MT tonezone.lo -MF .tonezone.lo.d -MP -c -o tonezone.lo tonezone.c x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fomit-frame-pointer -I. -O2 -g -fPIC -Wall -DBUILDING_TONEZONE -MD -MT zonedata.o -MF .zonedata.o.d -MP -c -o zonedata.o zonedata.c x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fomit-frame-pointer -I. -O2 -g -fPIC -Wall -DBUILDING_TONEZONE -MD -MT tonezone.o -MF .tonezone.o.d -MP -c -o tonezone.o tonezone.c x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fomit-frame-pointer -I. -O2 -g -fPIC -Wall -DBUILDING_TONEZONE -MD -MT fxotune.o -MF .fxotune.o.d -MP -c -o fxotune.o fxotune.c x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fomit-frame-pointer -I. -O2 -g -fPIC -Wall -DBUILDING_TONEZONE -MD -MT sethdlc.o -MF .sethdlc.o.d -MP -c -o sethdlc.o sethdlc.c x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fomit-frame-pointer -I. -O2 -g -fPIC -Wall -DBUILDING_TONEZONE -MD -MT dahdi_cfg.o -MF .dahdi_cfg.o.d -MP -c -o dahdi_cfg.o dahdi_cfg.c sethdlc.c: In function 'error': sethdlc.c:62: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c: In function 'set_iface': sethdlc.c:207: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:210: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:211: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:246: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:247: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:248: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:249: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:251: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c: In function 'set_proto_fr': sethdlc.c:325: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:326: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c: In function 'set_proto_hdlc': sethdlc.c:363: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:364: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c: In function 'set_proto_cisco': sethdlc.c:397: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:398: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c: In function 'set_proto': sethdlc.c:409: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:412: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:422: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:423: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:429: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:432: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c: In function 'set_pvc': sethdlc.c:454: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:459: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:460: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:462: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:472: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:473: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c: In function 'show_port': sethdlc.c:509: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:511: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:513: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:514: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:525: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:528: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:531: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:545: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:546: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:558: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:559: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:570: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:631: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c: In function 'main': sethdlc.c:690: error: invalid use of undefined type 'struct __kernel_ifreq' sethdlc.c:690: error: invalid use of undefined type 'struct __kernel_ifreq' make[1]: *** [sethdlc.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/var/tmp/portage/net-misc/dahdi-tools-2.2.0/work/dahdi-tools-2.2.0' make: *** [all] Error 2 [31;01m*[0m [31;01m*[0m ERROR: net-misc/dahdi-tools-2.2.0 failed. [31;01m*[0m Call stack: [31;01m*[0m ebuild.sh, line 49: Called src_compile [31;01m*[0m environment, line 2300: Called _eapi1_src_compile [31;01m*[0m ebuild.sh, line 623: Called _eapi2_src_compile [31;01m*[0m ebuild.sh, line 634: Called die [31;01m*[0m The specific snippet of code: [31;01m*[0m emake || die "emake failed" [31;01m*[0m The die message: [31;01m*[0m emake failed [31;01m*[0m [31;01m*[0m If you need support, post the topmost build error, and the call stack if relevant. [31;01m*[0m A complete build log is located at '/var/tmp/portage/net-misc/dahdi-tools-2.2.0/temp/build.log'. [31;01m*[0m The ebuild environment file is located at '/var/tmp/portage/net-misc/dahdi-tools-2.2.0/temp/environment'. [31;01m*[0m
(In reply to comment #0) > net-misc/dahdi-tools-2.2.0 does not compile with stable linux-headers Until the strange patching is removed from linux-headers; this is very difficult to work around. Mike, is this still needed? (i.e. does it fix specific packages that I could patch instead of the headers themselves?)
The simple workaround for now is to add >=linux-headers-2.6.29 to DEPEND
Issue confirmed, as is the "fix" in comment #3.
Hi, just ran into this again. Can we please move this along?
(In reply to comment #5) > Hi, just ran into this again. Can we please move this along? Mike, is the strange patching in older linux-headers still required please? CC'ing QA in an effort to escalate this due to lack of response.
it isnt hard to workaround at all. use `has_version` to detect when it's needed.
+*dahdi-tools-2.2.0-r1 (22 Dec 2009) + + 22 Dec 2009; <chainsaw@gentoo.org> -dahdi-tools-2.2.0.ebuild, + +dahdi-tools-2.2.0-r1.ebuild, + +files/dahdi-tools-2.2.0-no-hardware-fiddling.patch, + +files/dahdi-tools-2.2.0-vendorlib.patch: + Install in perl vendor directory, not site as per bug #295105. Explicitly + block zaptel as per bug #295107 (both by Diego E. "Flameeyes" Pettenò). + Work around Gentoo-specific broken linux headers, closes bug #290918 by + Chí-Thanh Christopher Nguyễn. Do not fiddle with the hardware in the + Makefile, closes bug #296359 by Jaco Kroon.