2009-08-20 16:04:56

by Nick Dokos

[permalink] [raw]
Subject: Compile error in pu branch of e2fsprogs.

Hi Ted,

I got this error when trying to build the pu branch of e2fsprogs:

,----
| ...
| CC ../../misc/e4defrag.c
| ../../misc/e4defrag.c:326:2: warning: #warning Using locally defined fallocate syscall interface.
| ../../misc/e4defrag.c: In function ‘file_frag_count’:
| ../../misc/e4defrag.c:627: error: ‘FS_IOC_FIEMAP’ undeclared (first use in this function)
| ../../misc/e4defrag.c:627: error: (Each undeclared identifier is reported only once
| ../../misc/e4defrag.c:627: error: for each function it appears in.)
| ../../misc/e4defrag.c: In function ‘get_file_extents’:
| ../../misc/e4defrag.c:940: error: ‘FS_IOC_FIEMAP’ undeclared (first use in this function)
| make[2]: *** [e4defrag.o] Error 1
| make[2]: Leaving directory `/home/nick/src/e2fsprogs/build/misc'
| make[1]: *** [all-progs-recursive] Error 1
| make[1]: Leaving directory `/home/nick/src/e2fsprogs/build'
| make: *** [all] Error 2
| nick@shifter:~/src/e2fsprogs/build$ uname -r
| 2.6.31-rc6
`----

Currently, the #define is in filefrag.c:

,----
| nick@shifter:~/src/e2fsprogs$ find . -type f | xargs grep FS_IOC
| ./misc/filefrag.c:#define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap)
| ./misc/filefrag.c: rc = ioctl(fd, FS_IOC_FIEMAP, (unsigned long) fiemap);
| ./misc/e4defrag.c:/* The following macro is used for ioctl FS_IOC_FIEMAP
| ./misc/e4defrag.c: ret = ioctl(fd, FS_IOC_FIEMAP, &fiemap_buf);
| ./misc/e4defrag.c: ret = ioctl(fd, FS_IOC_FIEMAP, fiemap_buf);
| ./lib/ext2fs/fiemap.h: * FS_IOC_FIEMAP ioctl infrastructure.
`----

I moved it from there to lib/ext2fs/fiemap.h and that fixes it.

Thanks,
Nick


2009-08-20 16:13:53

by Eric Sandeen

[permalink] [raw]
Subject: Re: Compile error in pu branch of e2fsprogs.

Nick Dokos wrote:
> Hi Ted,
>
> I got this error when trying to build the pu branch of e2fsprogs:
>
> ,----
> | ...
> | CC ../../misc/e4defrag.c
> | ../../misc/e4defrag.c:326:2: warning: #warning Using locally defined fallocate syscall interface.
> | ../../misc/e4defrag.c: In function ‘file_frag_count’:
> | ../../misc/e4defrag.c:627: error: ‘FS_IOC_FIEMAP’ undeclared (first use in this function)
> | ../../misc/e4defrag.c:627: error: (Each undeclared identifier is reported only once
> | ../../misc/e4defrag.c:627: error: for each function it appears in.)
> | ../../misc/e4defrag.c: In function ‘get_file_extents’:
> | ../../misc/e4defrag.c:940: error: ‘FS_IOC_FIEMAP’ undeclared (first use in this function)
> | make[2]: *** [e4defrag.o] Error 1
> | make[2]: Leaving directory `/home/nick/src/e2fsprogs/build/misc'
> | make[1]: *** [all-progs-recursive] Error 1
> | make[1]: Leaving directory `/home/nick/src/e2fsprogs/build'
> | make: *** [all] Error 2
> | nick@shifter:~/src/e2fsprogs/build$ uname -r
> | 2.6.31-rc6
> `----
>
> Currently, the #define is in filefrag.c:
>
> ,----
> | nick@shifter:~/src/e2fsprogs$ find . -type f | xargs grep FS_IOC
> | ./misc/filefrag.c:#define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap)
> | ./misc/filefrag.c: rc = ioctl(fd, FS_IOC_FIEMAP, (unsigned long) fiemap);
> | ./misc/e4defrag.c:/* The following macro is used for ioctl FS_IOC_FIEMAP
> | ./misc/e4defrag.c: ret = ioctl(fd, FS_IOC_FIEMAP, &fiemap_buf);
> | ./misc/e4defrag.c: ret = ioctl(fd, FS_IOC_FIEMAP, fiemap_buf);
> | ./lib/ext2fs/fiemap.h: * FS_IOC_FIEMAP ioctl infrastructure.
> `----
>
> I moved it from there to lib/ext2fs/fiemap.h and that fixes it.

I guess that's my fault due to
http://git.kernel.org/?p=fs/ext2/e2fsprogs.git;a=commitdiff;h=4f1d0e8608ddf488316dffbe4cd9993bf3b22084

Would it be better to move the ioctl definition into one place, maybe
our local copy of fiemap.h?

-Eric

2009-08-20 16:32:12

by Nick Dokos

[permalink] [raw]
Subject: Re: Compile error in pu branch of e2fsprogs.

> Nick Dokos wrote:
...
> >
> > I moved it from there to lib/ext2fs/fiemap.h and that fixes it.
>
> ...
>
> Would it be better to move the ioctl definition into one place, maybe
> our local copy of fiemap.h?
>

Is "our local copy of fiemap.h" lib/ext2fs/fiemap.h? If so, yes, that
works (and I think it's better.)

Thanks,
Nick

2009-08-20 16:41:12

by Eric Sandeen

[permalink] [raw]
Subject: Re: Compile error in pu branch of e2fsprogs.

Nick Dokos wrote:
>> Nick Dokos wrote:
> ...
>>> I moved it from there to lib/ext2fs/fiemap.h and that fixes it.
>> ...
>>
>> Would it be better to move the ioctl definition into one place, maybe
>> our local copy of fiemap.h?
>>
>
> Is "our local copy of fiemap.h" lib/ext2fs/fiemap.h? If so, yes, that
> works (and I think it's better.)

yep that's what I meant.

-Eric

> Thanks,
> Nick


2009-08-23 14:49:06

by Theodore Ts'o

[permalink] [raw]
Subject: Re: Compile error in pu branch of e2fsprogs.

I've fixed this in the latest rebase of the pu branch, which has the
latest 'maint' branch fixes merged in. I've also finished cleaning up
and merged the bitmap changes into the 'next' branch, which is a
sizeable chunk of the 64-bit changes:

43 files changed, 1683 insertions(+), 352 deletions(-)

What's left to be cleaned up and merged:

96 files changed, 1940 insertions(+), 1402 deletions(-)

- Ted