Hi, I don't know what the problem is but I'm also using gentoo and the live ebuild (amd64) and it compiles fine with "scooter ~ # gcc --version gcc (Gentoo 4.4.3-r2 p1.2) 4.4.3" Regards, Felix On 28. August 2010 - 21:56, Zhu Yanhai wrote: > Date: Sat, 28 Aug 2010 21:56:48 +0800 > From: Zhu Yanhai <zhu.yanhai@xxxxxxxxx> > To: Mat <jackdachef@xxxxxxxxx> > Cc: chris.mason@xxxxxxxxxx, Josef Bacik <josef@xxxxxxxxxx>, > linux-btrfs@xxxxxxxxxxxxxxx > Subject: Re: btrfs-progs (unstable) failing to compile successfully > > Hi Mat, > What's the version of your gcc? > I don't have a linux box here at home to test, but it seems like the case > we meet in MeeGo after upgrading gcc to some new version, 4.5 maybe. > You need #include <sys/types.h> and <sys/stat.h> in btrfsck.c > to fix this. > > Regards, > Zhu Yanhai > > > 2010/8/28 Mat <jackdachef@xxxxxxxxx>: > > Hi guys, > > > > when trying to compile btrfs-progs from the unstable repo > > (git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git) > > via the live-ebuild (on Gentoo) > > > > it keeps on failing for me no matter what (sane) CFLAGS or LDFLAGS I use: > > > > (for reference and completeness I'll also post the ebuild here to find > > out if it's a ebuild-related problem): > > > > ************************************************************************************************************************************************** > > > > > > # Copyright 1999-2010 Gentoo Foundation > > # Distributed under the terms of the GNU General Public License v2 > > # $Header: /var/cvsroot/gentoo-x86/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild,v > > 1.13 2010/04/06 14:46:59 lavajoe Exp $ > > > > inherit eutils git > > > > DESCRIPTION="Btrfs filesystem utilities" > > HOMEPAGE="http://btrfs.wiki.kernel.org/" > > SRC_URI="" > > > > LICENSE="GPL-2" > > SLOT="0" > > KEYWORDS="" > > IUSE="acl debug-utils" > > > > DEPEND="debug-utils? ( dev-python/matplotlib ) > > acl? ( > > sys-apps/acl > > sys-fs/e2fsprogs > > )" > > RDEPEND="${DEPEND}" > > > > EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git" > > EGIT_BRANCH="master" > > > > src_unpack() { > > git_src_unpack > > cd "${S}" > > > > # Fix hardcoded "gcc" and "make" > > sed -i -e 's:gcc $(CFLAGS):$(CC) $(CFLAGS):' Makefile > > sed -i -e 's:make:$(MAKE):' Makefile > > } > > > > src_compile() { > > emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \ > > all || die > > emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \ > > btrfstune btrfs-image || die > > if use acl; then > > emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \ > > convert || die > > fi > > } > > > > src_install() { > > into / > > dosbin btrfs-show > > dosbin btrfs-vol > > dosbin btrfsctl > > dosbin btrfsck > > dosbin btrfstune > > dosbin btrfs-image > > dosbin btrfs > > # fsck will segfault if invoked at boot, so do not make this link > > #dosym btrfsck /sbin/fsck.btrfs > > newsbin mkfs.btrfs mkbtrfs > > dosym mkbtrfs /sbin/mkfs.btrfs > > if use acl; then > > dosbin btrfs-convert > > else > > ewarn "Note: btrfs-convert not built/installed (requires acl USE flag)" > > fi > > > > if use debug-utils; then > > dobin btrfs-debug-tree > > else > > ewarn "Note: btrfs-debug-tree not installed (requires debug-utils USE flag)" > > fi > > > > into /usr > > newbin bcp btrfs-bcp > > > > if use debug-utils; then > > newbin show-blocks btrfs-show-blocks > > else > > ewarn "Note: btrfs-show-blocks not installed (requires debug-utils USE flag)" > > fi > > > > dodoc INSTALL > > emake prefix="${D}/usr/share" install-man > > } > > > > pkg_postinst() { > > ewarn "WARNING: This version of btrfs-progs uses the latest unstable code," > > ewarn " and care should be taken that it is compatible with the" > > ewarn " version of btrfs in your kernel!" > > } > > > > > > ************************************************************************************************************************************************** > > > > USE="-debug-utils -acl" CFLAGS="-O2 -march=core2 -mtune=core2 -pipe" > > CXXFLAGS="${CFLAGS}" > > > > > > in the beginning I first suspected that it failed due to hardened > > toolchain (it's using RELRO, fPIE, fPIC and -D_FORTIFY_SOURCE=2 if I > > remember correctly) but switching to the > > vanilla-behavior of gcc and disabling fortify via -U_FORTIFY_SOURCE & > > the default gentoo LDFLAGS also didn't help: > > > > > > ************************************************************************************************************************************************** > > > >>>> Emerging (1 of 1) sys-fs/btrfs-progs-9999 > > * CPV: sys-fs/btrfs-progs-9999 > > * REPO: gentoo > > * USE: amd64 elibc_glibc kernel_linux multilib userland_GNU > >>>> Unpacking source... > > * GIT update --> > > * repository: git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git > > * at the commit: 075587c96c2f39e227847d13ca0ef305b13cd7d3 > > * branch: master > > * storage directory: "/home/distfiles/git-src/btrfs-progs" > > Cloning into /var/tmp/portage/sys-fs/btrfs-progs-9999/work/btrfs-progs-9999... > > done. > >>>> Unpacked to /var/tmp/portage/sys-fs/btrfs-progs-9999/work/btrfs-progs-9999 > >>>> Source unpacked in /var/tmp/portage/sys-fs/btrfs-progs-9999/work > >>>> Compiling source in /var/tmp/portage/sys-fs/btrfs-progs-9999/work/btrfs-progs-9999 ... > > make -j9 CC=x86_64-pc-linux-gnu-gcc 'CFLAGS=-O2 -march=core2 > > -mtune=core2 -pipe' 'LDFLAGS=-Wl,-O1 -Wl,--as-needed' all > > bash version.sh > > ls ctree.c > > ls disk-io.c > > ls radix-tree.c > > ctree.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.ctree.o.d,-MT,ctree.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c ctree.c > > disk-io.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.disk-io.o.d,-MT,disk-io.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c disk-io.c > > radix-tree.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.radix-tree.o.d,-MT,radix-tree.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c radix-tree.c > > ls extent-tree.c > > ls print-tree.c > > ls root-tree.c > > extent-tree.c > > print-tree.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.extent-tree.o.d,-MT,extent-tree.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c extent-tree.c > > root-tree.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.print-tree.o.d,-MT,print-tree.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c print-tree.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.root-tree.o.d,-MT,root-tree.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c root-tree.c > > ls dir-item.c > > ls file-item.c > > dir-item.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.dir-item.o.d,-MT,dir-item.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c dir-item.c > > file-item.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.file-item.o.d,-MT,file-item.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c file-item.c > > ls inode-item.c > > inode-item.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.inode-item.o.d,-MT,inode-item.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c inode-item.c > > ls inode-map.c > > inode-map.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.inode-map.o.d,-MT,inode-map.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c inode-map.c > > ls crc32c.c > > crc32c.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.crc32c.o.d,-MT,crc32c.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c crc32c.c > > ls rbtree.c > > rbtree.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.rbtree.o.d,-MT,rbtree.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c rbtree.c > > ls extent-cache.c > > extent-cache.c > > x86_64-pc-linux-gnu-gcc > > -Wp,-MMD,./.extent-cache.o.d,-MT,extent-cache.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c extent-cache.c > > ls extent_io.c > > extent_io.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.extent_io.o.d,-MT,extent_io.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c extent_io.c > > ls volumes.c > > volumes.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.volumes.o.d,-MT,volumes.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c volumes.c > > ls utils.c > > utils.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.utils.o.d,-MT,utils.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c utils.c > > ls btrfs-list.c > > btrfs-list.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.btrfs-list.o.d,-MT,btrfs-list.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c btrfs-list.c > > ls btrfsctl.c > > btrfsctl.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.btrfsctl.o.d,-MT,btrfsctl.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c btrfsctl.c > > ls mkfs.c > > ls debug-tree.c > > mkfs.c > > debug-tree.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.mkfs.o.d,-MT,mkfs.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c mkfs.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.debug-tree.o.d,-MT,debug-tree.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c debug-tree.c > > ls btrfs-show.c > > btrfs-show.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.btrfs-show.o.d,-MT,btrfs-show.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c btrfs-show.c > > ls btrfs-vol.c > > btrfs-vol.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.btrfs-vol.o.d,-MT,btrfs-vol.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c btrfs-vol.c > > ls btrfsck.c > > btrfsck.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.btrfsck.o.d,-MT,btrfsck.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c btrfsck.c > > ls btrfs.c > > btrfs.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.btrfs.o.d,-MT,btrfs.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c btrfs.c > > ls btrfs_cmds.c > > btrfs_cmds.c > > x86_64-pc-linux-gnu-gcc -Wp,-MMD,./.btrfs_cmds.o.d,-MT,btrfs_cmds.o > > -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c btrfs_cmds.c > > ls btrfs-map-logical.c > > btrfs-map-logical.c > > x86_64-pc-linux-gnu-gcc > > -Wp,-MMD,./.btrfs-map-logical.o.d,-MT,btrfs-map-logical.o -Wall > > -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -march=core2 > > -mtune=core2 -pipe -c btrfs-map-logical.c > > cd man; make > > make[1]: Entering directory > > `/var/tmp/portage/sys-fs/btrfs-progs-9999/work/btrfs-progs-9999/man' > > gzip -n -c mkfs.btrfs.8.in > mkfs.btrfs.8.gz > > gzip -n -c btrfsctl.8.in > btrfsctl.8.gz > > gzip -n -c btrfsck.8.in > btrfsck.8.gz > > gzip -n -c btrfs-image.8.in > btrfs-image.8.gz > > gzip -n -c btrfs-show.8.in > btrfs-show.8.gz > > gzip -n -c btrfs.8.in > btrfs.8.gz > > make[1]: Leaving directory > > `/var/tmp/portage/sys-fs/btrfs-progs-9999/work/btrfs-progs-9999/man' > > btrfsck.c: In function ‘maybe_free_inode_rec’: > > btrfsck.c:323:2: warning: implicit declaration of function ‘S_ISDIR’ > > btrfsck.c:328:2: warning: implicit declaration of function ‘S_ISREG’ > > btrfsck.c:328:2: warning: implicit declaration of function ‘S_ISLNK’ > > x86_64-pc-linux-gnu-gcc -O2 -march=core2 -mtune=core2 -pipe -o > > btrfsctl btrfsctl.o ctree.o disk-io.o radix-tree.o extent-tree.o > > print-tree.o root-tree.o dir-item.o file-item.o inode-item.o > > inode-map.o crc32c.o rbtree.o extent-cache.o extent_io.o volumes.o > > utils.o btrfs-list.o -Wl,-O1 -Wl,--as-needed -luuid > > x86_64-pc-linux-gnu-gcc -O2 -march=core2 -mtune=core2 -pipe -o > > mkfs.btrfs ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o > > root-tree.o dir-item.o file-item.o inode-item.o inode-map.o crc32c.o > > rbtree.o extent-cache.o extent_io.o volumes.o utils.o btrfs-list.o > > mkfs.o -Wl,-O1 -Wl,--as-needed -luuid > > x86_64-pc-linux-gnu-gcc -O2 -march=core2 -mtune=core2 -pipe -o > > btrfs-debug-tree ctree.o disk-io.o radix-tree.o extent-tree.o > > print-tree.o root-tree.o dir-item.o file-item.o inode-item.o > > inode-map.o crc32c.o rbtree.o extent-cache.o extent_io.o volumes.o > > utils.o btrfs-list.o debug-tree.o -Wl,-O1 -Wl,--as-needed -luuid > > x86_64-pc-linux-gnu-gcc -O2 -march=core2 -mtune=core2 -pipe -o > > btrfs-show btrfs-show.o ctree.o disk-io.o radix-tree.o extent-tree.o > > print-tree.o root-tree.o dir-item.o file-item.o inode-item.o > > inode-map.o crc32c.o rbtree.o extent-cache.o extent_io.o volumes.o > > utils.o btrfs-list.o -Wl,-O1 -Wl,--as-needed -luuid > > x86_64-pc-linux-gnu-gcc -O2 -march=core2 -mtune=core2 -pipe -o > > btrfs-vol btrfs-vol.o ctree.o disk-io.o radix-tree.o extent-tree.o > > print-tree.o root-tree.o dir-item.o file-item.o inode-item.o > > inode-map.o crc32c.o rbtree.o extent-cache.o extent_io.o volumes.o > > utils.o btrfs-list.o -Wl,-O1 -Wl,--as-needed -luuid > > x86_64-pc-linux-gnu-gcc -O2 -march=core2 -mtune=core2 -pipe -o btrfs > > btrfs.o btrfs_cmds.o \ > > ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o root-tree.o > > dir-item.o file-item.o inode-item.o inode-map.o crc32c.o rbtree.o > > extent-cache.o extent_io.o volumes.o utils.o btrfs-list.o -Wl,-O1 > > -Wl,--as-needed -luuid > > x86_64-pc-linux-gnu-gcc -O2 -march=core2 -mtune=core2 -pipe -o > > btrfs-map-logical ctree.o disk-io.o radix-tree.o extent-tree.o > > print-tree.o root-tree.o dir-item.o file-item.o inode-item.o > > inode-map.o crc32c.o rbtree.o extent-cache.o extent_io.o volumes.o > > utils.o btrfs-list.o btrfs-map-logical.o -Wl,-O1 -Wl,--as-needed > > -luuid > > x86_64-pc-linux-gnu-gcc -O2 -march=core2 -mtune=core2 -pipe -o btrfsck > > btrfsck.o ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o > > root-tree.o dir-item.o file-item.o inode-item.o inode-map.o crc32c.o > > rbtree.o extent-cache.o extent_io.o volumes.o utils.o btrfs-list.o > > -Wl,-O1 -Wl,--as-needed -luuid > > btrfsck.o: In function `maybe_free_inode_rec': > > btrfsck.c.text+0x1306): undefined reference to `S_ISDIR' > > btrfsck.c.text+0x1333): undefined reference to `S_ISREG' > > btrfsck.c.text+0x13fb): undefined reference to `S_ISREG' > > btrfsck.c.text+0x1462): undefined reference to `S_ISLNK' > > btrfsck.c.text+0x1491): undefined reference to `S_ISLNK' > > collect2: ld returned 1 exit status > > make: *** [btrfsck] Error 1 > > emake failed > > * ERROR: sys-fs/btrfs-progs-9999 failed: > > * (no error message) > > * > > * Call stack: > > * ebuild.sh, line 47: Called src_compile > > * environment, line 2569: Called die > > * The specific snippet of code: > > * emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" all || die; > > * > > * If you need support, post the output of 'emerge --info > > =sys-fs/btrfs-progs-9999', > > * the complete build log and the output of 'emerge -pqv > > =sys-fs/btrfs-progs-9999'. > > * The complete build log is located at > > '/var/log/portage/sys-fs:btrfs-progs-9999:20100828-102852.log'. > > * The ebuild environment file is located at > > '/var/tmp/portage/sys-fs/btrfs-progs-9999/temp/environment'. > > * S: '/var/tmp/portage/sys-fs/btrfs-progs-9999/work/btrfs-progs-9999' > > > >>>> Failed to emerge sys-fs/btrfs-progs-9999, Log file: > > > >>>> '/var/log/portage/sys-fs:btrfs-progs-9999:20100828-102852.log' > > > > * Messages for package sys-fs/btrfs-progs-9999: > > > > * GIT update --> > > * repository: git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git > > * at the commit: 075587c96c2f39e227847d13ca0ef305b13cd7d3 > > * branch: master > > * storage directory: "/home/distfiles/git-src/btrfs-progs" > > * ERROR: sys-fs/btrfs-progs-9999 failed: > > * (no error message) > > * > > * Call stack: > > * ebuild.sh, line 47: Called src_compile > > * environment, line 2569: Called die > > * The specific snippet of code: > > * emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" all || die; > > * > > * If you need support, post the output of 'emerge --info > > =sys-fs/btrfs-progs-9999', > > * the complete build log and the output of 'emerge -pqv > > =sys-fs/btrfs-progs-9999'. > > * The complete build log is located at > > '/var/log/portage/sys-fs:btrfs-progs-9999:20100828-102852.log'. > > * The ebuild environment file is located at > > '/var/tmp/portage/sys-fs/btrfs-progs-9999/temp/environment'. > > * S: '/var/tmp/portage/sys-fs/btrfs-progs-9999/work/btrfs-progs-9999' > > * > > * The following package has failed to build or install: > > * > > * (sys-fs/btrfs-progs-9999, ebuild scheduled for merge), Log file: > > * '/var/log/portage/sys-fs:btrfs-progs-9999:20100828-102852.log' > > * > > > > Many thanks in advance for your support & thanks a lot for your work on btrfs ! > > > > Mat > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html ---end quoted text--- -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
