reproducible: always steps to reproduce: 1. emerge pvfs2 emerge --info: Portage 2.1.3.19 (default-linux/x86/2007.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.21.5-kearney2 i686) ================================================================= System uname: 2.6.21.5-kearney2 i686 Pentium III (Coppermine) Timestamp of tree: Thu, 03 Jan 2008 18:16:01 +0000 app-shells/bash: 3.2_p17-r1 dev-lang/python: 2.4.4-r6 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.10-r5 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.61-r1 sys-devel/automake: 1.10 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=i686 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /var/spool/torque" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-O2 -march=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" 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 --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="acl bash-completion berkdb bitmap-fonts cli cracklib crypt cups dri fortran gdbm gpm iconv isdnlog ldap midi mudflap ncurses nls nptl nptlonly offensive openmp pam pbs pcre perl pppd python readline reflection session spl ssl tcpd truetype-fonts type1-fonts unicode x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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" 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="apm ark chips cirrus cyrix dummy fbdev glint i128 i740 i810 imstt mach64 mga neomagic nsc nv r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa vga via vmware voodoo" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS build errors: make -C /usr/src/linux SUBDIRS=/var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6 modules CC [M] /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/pvfs2-utils.o CC [M] /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/devpvfs2-req.o CC [M] /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/pvfs2-cache.o CC [M] /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/dcache.o CC [M] /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/file.o CC [M] /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/inode.o CC [M] /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/dir.o CC [M] /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/namei.o CC [M] /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/super.o /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/super.c:854: warning: initialization from incompatible pointer type /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/super.c: In function 'pvfs2_get_sb': /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/super.c:1184: error: too few arguments to function 'get_sb_nodev' make[3]: *** [/var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6/super.o] Error 1 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [_module_/var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/src/kernel/linux-2.6] Error 2 make[1]: *** [default] Error 2 make: *** [just_kmod] Error 2 * * ERROR: sys-cluster/pvfs2-2.7.0 failed. * Call stack: * ebuild.sh, line 1701: Called dyn_compile * ebuild.sh, line 1039: Called qa_call 'src_compile' * ebuild.sh, line 44: Called src_compile * pvfs2-2.7.0.ebuild, line 89: Called linux-mod_src_compile * linux-mod.eclass, line 518: Called die * The specific snippet of code: * emake HOSTCC="$(tc-getBUILD_CC)" CC="$(get-KERNEL_CC)" LDFLAGS="$(get_abi_LDFLAGS)" \ * ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \ * || die "Unable to make ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}." * The die message: * Unable to make just_kmod. * The error also occurs on a ppc64 system that I have access to. I should also note that installing pvfs2 from source works fine on both machines. It seems that a configure variable is somehow getting reset. For instance, in /var/tmp/portage/sys-cluster/pvfs2-2.7.0/work/pvfs-2.7.0/maint/config/kernel.m4 line 441: "AC_DEFINE(HAVE_VFSMOUNT_GETSB, 1, Define if get_sb callback has struct vfsmount argument)," has the variable "HAVE_VFSMOUNT_GETSB" correct. It seems to be set to 0 somewhere later on during make which causes the calls to the wrong version of get_sb_nodev.
Relevant block from config.log. We've confirmed that this test does pass (as it should) if -Wno-strict-aliasing=2 is removed from the compile line. I'm working on a fix for the ebuild now, but just wanted to have this recorded here. configure:9538: checking if get_sb callback in kernel has struct vfsmount argument configure:9569: i686-pc-linux-gnu-gcc -c -O2 -march=i686 -pipe -Werror-implicit-function-declaration -nostdinc -isystem /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include -I/usr/src/linux/include -I/usr/src/linux/include/asm/mach-default -DKBUILD_STR(s)=#s -DKBUILD_BASENAME=KBUILD_STR(empty) -DKBUILD_MODNAME=KBUILD_STR(empty) -imacros /usr/src/linux/include/linux/autoconf.h -Werror -Wno-pointer-sign -Wno-strict-aliasing -Wno-strict-aliasing=2 conftest.c >&5 cc1: warnings being treated as errors In file included from /usr/src/linux/include/asm/system.h:7, from /usr/src/linux/include/asm/processor.h:18, from /usr/src/linux/include/linux/prefetch.h:14, from /usr/src/linux/include/linux/list.h:8, from /usr/src/linux/include/linux/wait.h:22, from /usr/src/linux/include/linux/fs.h:272, from conftest.c:42: /usr/src/linux/include/asm/cmpxchg.h: In function '__set_64bit_var': /usr/src/linux/include/asm/cmpxchg.h:57: warning: dereferencing type-punned pointer will break strict-aliasing rules /usr/src/linux/include/asm/cmpxchg.h:57: warning: dereferencing type-punned pointer will break strict-aliasing rules configure:9575: $? = 1 configure: failed program was: | /* confdefs.h. */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PVFS2_VERSION_MAJOR 2 | #define PVFS2_VERSION_MINOR 7 | #define PVFS2_VERSION_SUB 0 | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_FSTAB_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_ATTR_XATTR_H 1 | #define HAVE_SYS_XATTR_H 1 | #define SIZEOF_LONG_INT 4 | #define WITH_OPENSSL 1 | #define HAVE_OPENSSL_EVP_H 1 | #define HAVE_OPENSSL_CRYPTO_H 1 | #define SIZEOF_VOID_P 4 | #define HAVE_I_SIZE_WRITE 1 | #define HAVE_I_SIZE_READ 1 | #define HAVE_IGET_LOCKED 1 | #define HAVE_IGET5_LOCKED 1 | #define HAVE_STRUCT_KMEM_CACHE 1 | #define HAVE_AIO 1 | #define HAVE_AIO_VFS_SUPPORT 1 | #define HAVE_AIO_NEW_AIO_SIGNATURE 1 | /* end confdefs.h. */ | | #define __KERNEL__ | #include <linux/fs.h> | #include <linux/mount.h> | extern int pvfs_get_sb(struct file_system_type *fst, int flags, const char *devname, void *data, struct vfsmount *); | static struct file_system_type fst = { | .get_sb = pvfs_get_sb, | }; | | int | main () | { | fst.get_sb = 0; | ; | return 0; | }
Fixed in 2.7.0-r1 which I just committed to cvs. Thanks for the report.