Bug 129744 - unionfs: error: structure has no member named `i_sem' with kernel 2.6.16-suspend2-r1
Bug#: 129744 Product:  Gentoo Linux Version: 2006.0 Platform: All
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: satya@gentoo.org Reported By: askwar@digitalprojects.com
Component: Unspecified
URL: 
Summary: unionfs: error: structure has no member named `i_sem' with kernel 2.6.16-suspend2-r1
Keywords:  
Status Whiteboard: 
Opened: 2006-04-12 14:04 0000
Description:   Opened: 2006-04-12 14:04 0000
While trying to emerge unionfs with the following flags:

[ebuild     U ] sys-fs/unionfs-1.1.4 [1.1.3-r1] USE="-acl -debug nfs" 0 kB

>>> checksums src_uri ;-) unionfs-1.1.4.tar.gz
 * Determining the location of the kernel source code
 * Found kernel source directory:
 *     /usr/src/linux
 * Found sources for kernel version:
 *     2.6.16-suspend2-r2.042.kernel-alsa
>>> Unpacking source...
>>> Unpacking unionfs-1.1.4.tar.gz to /Gentoo/Portage/build/portage/unionfs-1.1.4/work
>>> Source unpacked.
>>> Compiling source in /Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4 ...
 * Preparing unionfs module
******************************************************************************
If you have questions about or problems building Unionfs, please read INSTALL.
******************************************************************************

make -C /usr/src/linux
SUBDIRS=/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4
FISTDEVMK=/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/fistdev.mk
modules
make[1]: Entering directory `/usr/src/linux-2.6.16-suspend2-r2'
  CC [M]  /Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/subr.o
In file included from
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/subr.c:22:
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/unionfs.h:49:2:
#warning You are compiling Unionfs on an unsupported kernel version.
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/unionfs.h:50:2:
#warning To compile Unionfs, you will need to define UNIONFS_UNSUPPORTED.
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/unionfs.h:51:2:
#warning Try adding: EXTRACFLAGS=-DUNIONFS_UNSUPPORTED to fistdev.mk
In file included from
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/subr.c:22:
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/unionfs.h: In
function `lock_parent':
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/unionfs.h:779:
error: structure has no member named `i_sem'
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/unionfs.h: In
function `unlock_dir':
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/unionfs.h:785:
error: structure has no member named `i_sem'
make[2]: ***
[/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/subr.o] Error 1
make[1]: ***
[_module_/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4] Error
2
make[1]: Leaving directory `/usr/src/linux-2.6.16-suspend2-r2'
make: *** [unionfs.ko] Error 2

!!! ERROR: sys-fs/unionfs-1.1.4 failed.
Call stack:
  ebuild.sh, line 1532:   Called dyn_compile
  ebuild.sh, line 929:   Called src_compile
  ebuild.sh, line 1242:   Called linux-mod_src_compile
  linux-mod.eclass, line 512:   Called die

!!! Unable to make                                  LINUXSRC=/usr/src/linux
KERNELVERSION=2.6 all.
!!! If you need support, post the topmost build error, and the call stack if
relevant.



The error was:

/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/unionfs.h: In
function `lock_parent':
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/unionfs.h:779:
error: structure has no member named `i_sem'
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/unionfs.h: In
function `unlock_dir':
/Gentoo/Portage/build/portage/unionfs-1.1.4/work/unionfs-1.1.4/unionfs.h:785:
error: structure has no member named `i_sem'


Is this related to bug #128906  ?

I'm using suspend2-sources kernel.

alexander@blatt /tmp $ emerge --info
Portage 2.1_pre7-r5 (default-linux/x86/2006.0, gcc-3.4.6, glibc-2.3.6-r3,
2.6.16-suspend2-r1.042.kernel-alsa i686)
=================================================================
System uname: 2.6.16-suspend2-r1.042.kernel-alsa i686 Intel(R) Celeron(R) M
processor         1.50GHz
Gentoo Base System version 1.12.0_pre17
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632)
[disabled]
ccache version 2.4 [enabled]
dev-lang/python:     2.3.4-r1, 2.4.2-r1
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.16.1-r2
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r3
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -mtune=pentium-m -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.5/env
/usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config
/usr/lib/mozilla/defaults/pref /usr/share/X11/xkb /usr/share/config
/var/qmail/control"
CONFIG_PROTECT_MASK="/etc/eselect/compiler /etc/gconf /etc/revdep-rebuild
/etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -mtune=pentium-m -pipe -fomit-frame-pointer"
DISTDIR="/Gentoo/Portage/distfiles"
EMERGE_DEFAULT_OPTS="--alphabetical"
FEATURES="autoconfig buildpkg ccache collision-protect distlocks
metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="        http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/  
http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/    
ftp://ftp.tu-clausthal.de/pub/linux/gentoo/    
http://distro.ibiblio.org/pub/linux/distributions/gentoo/       
ftp://distro.ibiblio.org/pub/linux/distributions/gentoo        
http://distfiles.gentoo.org/ "
LANG="de_DE.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="de"
PKGDIR="/Gentoo/Portage/packages"
PORTAGE_TMPDIR="/Gentoo/Portage/build"
PORTDIR="/Gentoo/Portage/tree"
PORTDIR_OVERLAY="/Gentoo/Portage/local-tree/misc
/Gentoo/Portage/local-tree/overlays/gentoo-de"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="x86 GAPING_SECURITY_HOLE X acpi alsa amd apache2 apm arts artswrappersuid
async avi bash-completion bdf berkdb bitmap-fonts bluetooth bootsplash cairo
caps cardbus ccache cdda cddb cdio cdparanoia cdr cdrom cle266 cli crypt css
ctype curlwrappers dba dbus devmap dillo divx4linux dlloader dri dvd dvdread
emoticon esd exif expat fam fastbuild fbcon fbdev firefox force-cgi-redirect
fping freetype ftp gd gdbm gif gnokii gnome gstreamer gtk gtk2 hal hpn icc id3
idn imap imlib imlib2 insecure-drivers insecure-savers isdnlog javascript jikes
jpeg kde kdeenablefinal libedit libwww linuxthreads-tls logrotate lynxkeymap
mad madwifi maildir matroska mbox memlimit mmx mmxext mozilla moznoirc mozsvg
mp3 mpeg mpeg2 mpeg4 mplayer multicall ncurses netboot network new-login nfs
nis nls no-old-linux no-suexec noantlr nobcel nobeanutils nobsf nobsh nocd
nocommonslogging nocommonsnet nodrm nogg nogulm nojsch nojython nolog4j nomac
nooro nopri norhino noxalan noxerces nozaptel nptl nsplugin offensive ogg
opengl openssh pam_console pam_timestamp passfile password patented pccts
pcmcia pcre perl perlsuid pic player png pnp posix pppd qt quicktime rar
readline real recode reiserfs sdl sendfile sensord session sftp simplexml sms
soap sockets spell spf spl sse sse2 ssl startup-notification stream subp
subtitles suid symlink sysfs syslog tiff tokenizer transcode truetype
truetype-fonts trusted type1-fonts udev underscores unichrome unicode unsafe
usb utf8 uudeview vim vim-pager vlm vorbis wifi win32codecs wma123 x11vnc
xinetd xml xmms xpm xscreensaver xsl xv xvid xvmc zlib elibc_glibc
input_devices_evdev input_devices_keyboard input_devices_mouse kernel_linux
linguas_de userland_GNU video_cards_apm video_cards_fbdev video_cards_vesa
video_cards_vga video_cards_via"
Unset:  ASFLAGS, CTARGET, INSTALL_MASK, LC_ALL, MAKEOPTS

------- Comment #1 From Christian Andreetta (RETIRED) 2006-04-13 01:19:10 0000 -------
Grnf! Could you try to install 1.1.3-r1? (I think it was already installed,
right?)
I think the upstream devs didn't include all the mutex/semaphors fixes...

------- Comment #2 From Christian Andreetta (RETIRED) 2006-04-13 01:31:35 0000 -------
1.1.4-r1 is in portage, with the mutex/semaphores patch. Could you try it?

------- Comment #3 From Alexander Skwar 2006-04-13 10:55:31 0000 -------
Still no go :(

But I got a different error message:

make -C /usr/src/linux
SUBDIRS=/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4
FISTDEVMK=/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4/fistdev.mk
modules
make[1]: Entering directory `/usr/src/linux-2.6.16-suspend2-r2'
  CC [M] 
/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4/subr.o
In Datei, eingef

------- Comment #4 From Alexander Skwar 2006-04-13 10:55:31 0000 -------
Still no go :(

But I got a different error message:

make -C /usr/src/linux
SUBDIRS=/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4
FISTDEVMK=/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4/fistdev.mk
modules
make[1]: Entering directory `/usr/src/linux-2.6.16-suspend2-r2'
  CC [M] 
/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4/subr.o
In Datei, eingefügt von
/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4/subr.c:22:
/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4/unionfs.h:49:2:
#warning You are compiling Unionfs on an unsupported kernel version.
/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4/unionfs.h:50:2:
#warning To compile Unionfs, you will need to define UNIONFS_UNSUPPORTED.
/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4/unionfs.h:51:2:
#warning Try adding: EXTRACFLAGS=-DUNIONFS_UNSUPPORTED to fistdev.mk
make[2]: ***
[/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4/subr.o]
Fehler 1
make[1]: ***
[_module_/Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4]
Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.16-suspend2-r2'
make: *** [unionfs.ko] Fehler 2

!!! ERROR: sys-fs/unionfs-1.1.4-r1 failed.
Call stack:
  ebuild.sh, line 1532:   Called dyn_compile
  ebuild.sh, line 929:   Called src_compile
  ebuild.sh, line 1242:   Called linux-mod_src_compile
  linux-mod.eclass, line 512:   Called die

!!! Unable to make                                  LINUXSRC=/usr/src/linux
KERNELVERSION=2.6 all.
!!! If you need support, post the topmost build error, and the call stack if
relevant.

------- Comment #5 From Alexander Skwar 2006-04-13 10:57:08 0000 -------
(In reply to comment #3)
> #warning To compile Unionfs, you will need to define UNIONFS_UNSUPPORTED.
> /Gentoo/Portage/build/portage/unionfs-1.1.4-r1/work/unionfs-1.1.4/unionfs.h:51:2:
> #warning Try adding: EXTRACFLAGS=-DUNIONFS_UNSUPPORTED to fistdev.mk
> make[2]: ***

Is this done? Is UNIONFS_UNSUPPORTED defined?

------- Comment #6 From Diego Busacca 2006-04-13 13:56:07 0000 -------
I think the best work-aroud is set EXTRACFLAGS=-DUNIONFS_UNSUPPORTED in the
ebuild if the kernel version is >2.6.15

The kernel version check is necessary because unionfs-1.1.4 also check for a
kernel >=2.6.9

------- Comment #7 From TGL 2006-04-15 03:42:37 0000 -------
(In reply to comment #5)
> I think the best work-aroud is set EXTRACFLAGS=-DUNIONFS_UNSUPPORTED in the
> ebuild if the kernel version is >2.6.15

Agreed, i was about to open a bug report about that when i've found this one. I
will attach a simple ebuild patch which works for me.

------- Comment #8 From TGL 2006-04-15 03:43:37 0000 -------
Created an attachment (id=84707) [details]
compil-fix-for-2.6.16.patch

Patch for the 1.1.4-r1 ebuild

------- Comment #9 From Christian Andreetta (RETIRED) 2006-04-27 07:03:42 0000 -------
@TLG: sadly, kernel_is is defined in kernel-2.eclass, which is not suitable for
modules, but for kernel sources only (the ETYPE var is mandatory, and this
eclass pollutes the *DEPENDS vars too much).
So, old school (linux-mod vars):
[[ ${KV_MAJOR} -ge 2 && ${KV_MINOR} -ge 6 && ${KV_PATCH} -ge 16 ]] && ...

unionfs-1.1.4-r2 in portage: thanks.

------- Comment #10 From Henrik Brix Andersen 2006-04-27 07:09:24 0000 -------
(In reply to comment #8)
> @TLG: sadly, kernel_is is defined in kernel-2.eclass, which is not suitable for
> modules

linux-info.eclass provides a working kernel_is() for use in ebuilds:

if kernel_is gt 2 6 15; then
    ...
fi

------- Comment #11 From Christian Andreetta (RETIRED) 2006-04-27 07:29:48 0000 -------
@brix: didn't see it. thanx