* [PATCH] btrfs-progs: Fix the issues btrfs-convert don't recognition ext4 i_{a,c,a}time_extra
@ 2021-08-24 17:04 Li Zhang
2021-08-26 18:34 ` David Sterba
0 siblings, 1 reply; 5+ messages in thread
From: Li Zhang @ 2021-08-24 17:04 UTC (permalink / raw)
To: linux-btrfs; +Cc: Li Zhang
Hi, I ran convert-tests.sh, and it reported that the
019-ext4-copy-timestamps test failed. The log is as
follows
...
mount -o loop -t ext4 btrfs-progs/tests/test.img btrfs-progs/tests/mnt
====== RUN CHECK touch btrfs-progs/tests/mnt/file
====== RUN CHECK stat btrfs-progs/tests/mnt/file
File: 'btrfs-progs/tests/mnt/file'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 700h/1792d Inode: 13 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:unlabeled_t:s0
Access: 2021-08-24 22:10:21.999209679 +0800
Modify: 2021-08-24 22:10:21.999209679 +0800
Change: 2021-08-24 22:10:21.999209679 +0800
...
btrfs-progs/btrfs-convert btrfs-progs/tests/test.img
...
====== RUN CHECK mount -t btrfs -o loop btrfs-progs/tests/test.img btrfs-progs/tests/mnt
====== RUN CHECK stat btrfs-progs/tests/mnt/file
File: 'btrfs-progs/tests/mnt/file'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 2ch/44d Inode: 267 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:unlabeled_t:s0
Access: 2021-08-24 22:10:21.000000000 +0800
Modify: 2021-08-24 22:10:21.000000000 +0800
Change: 2021-08-24 22:10:21.000000000 +0800
...
atime on converted inode does not match
test failed for case 019-ext4-copy-timestamps
Obviously, the log says that btrfs-convert does not
support nanoseconds. I looked at the source code and
found that only if ext2_fs.h defines EXT4_EPOCH_MASK
btrfs-convert to support nanoseconds. But in e2fsprogs,
EXT4_EPOCH_MASK was introduced in v1.43, but in some
older versions, such as v1.40, e2fsprogs actually
supports nanoseconds. It seems that if struct ext2_inode_large
contains the i_atime_extra member, ext4 is supports
nanoseconds, so I updated the logic to determine whether the
current ext4 file system supports nanosecond precision.
In addition, I imported some definitions to encode and
decode tv_nsec (copied from e2fsprogs source code).
---
configure.ac | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index c4fa461..20297c5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -253,7 +253,21 @@ AX_CHECK_DEFINE([linux/fiemap.h], [FIEMAP_EXTENT_SHARED], [],
AX_CHECK_DEFINE([ext2fs/ext2_fs.h], [EXT4_EPOCH_MASK],
[AC_DEFINE([HAVE_EXT4_EPOCH_MASK_DEFINE], [1],
[Define to 1 if e2fsprogs defines EXT4_EPOCH_MASK])],
- [AC_MSG_WARN([no definition of EXT4_EPOCH_MASK found, probably old e2fsprogs, no 64bit time precision of converted images])])
+ [have_ext4_epoch_mask_define=no])
+
+AS_IF([test "x$have_ext4_epoch_mask_define" = xno], [
+ AC_CHECK_MEMBERS([struct ext2_inode_large.i_atime_extra],
+ [
+ AC_DEFINE([HAVE_EXT4_EPOCH_MASK_DEFINE], [1], [Define to 1 if ext2_inode_large includes i_atime_extra]),
+ AC_DEFINE([EXT4_EPOCH_BITS], [2],[for encode and decode tv_nsec in ext2 inode]),
+ AC_DEFINE([EXT4_EPOCH_MASK], [((1 << EXT4_EPOCH_BITS) - 1)], [For encode and decode tv_nsec info in ext2 inode]),
+ AC_DEFINE([EXT4_NSEC_MASK], [(~0UL << EXT4_EPOCH_BITS)], [For encode and decode tv_nsec info in ext2 inode]),
+ AC_DEFINE([inode_includes(size, field)],[m4_normalize[(size >= (sizeof(((struct ext2_inode_large *)0)->field) + offsetof(struct ext2_inode_large, field)))]],
+ [For encode and decode tv_nsec info in ext2 inode])
+ ],
+ [AC_MSG_WARN([It seems that ext2_inode_large don't includes tv_nsec related info, probably old e2fsprogs, no 64bit time precision of converted images])],
+ [[#include <ext2fs/ext2_fs.h>]])
+])
AC_CHECK_HEADER(linux/blkzoned.h, [blkzoned_found=yes], [blkzoned_found=no])
AC_CHECK_MEMBER([struct blk_zone.capacity], [blkzoned_capacity=yes], [blkzoned_capacity=no], [[#include <linux/blkzoned.h>]])
--
1.8.3.1
Best regards,
Li
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] btrfs-progs: Fix the issues btrfs-convert don't recognition ext4 i_{a,c,a}time_extra
2021-08-24 17:04 [PATCH] btrfs-progs: Fix the issues btrfs-convert don't recognition ext4 i_{a,c,a}time_extra Li Zhang
@ 2021-08-26 18:34 ` David Sterba
2021-08-28 4:41 ` li zhang
2021-08-28 15:16 ` li zhang
0 siblings, 2 replies; 5+ messages in thread
From: David Sterba @ 2021-08-26 18:34 UTC (permalink / raw)
To: Li Zhang; +Cc: linux-btrfs
On Wed, Aug 25, 2021 at 01:04:47AM +0800, Li Zhang wrote:
> Hi, I ran convert-tests.sh, and it reported that the
> 019-ext4-copy-timestamps test failed. The log is as
> follows
>
> ...
> mount -o loop -t ext4 btrfs-progs/tests/test.img btrfs-progs/tests/mnt
> ====== RUN CHECK touch btrfs-progs/tests/mnt/file
> ====== RUN CHECK stat btrfs-progs/tests/mnt/file
> File: 'btrfs-progs/tests/mnt/file'
> Size: 0 Blocks: 0 IO Block: 4096 regular empty file
> Device: 700h/1792d Inode: 13 Links: 1
> Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
> Context: unconfined_u:object_r:unlabeled_t:s0
> Access: 2021-08-24 22:10:21.999209679 +0800
> Modify: 2021-08-24 22:10:21.999209679 +0800
> Change: 2021-08-24 22:10:21.999209679 +0800
> ...
> btrfs-progs/btrfs-convert btrfs-progs/tests/test.img
> ...
> ====== RUN CHECK mount -t btrfs -o loop btrfs-progs/tests/test.img btrfs-progs/tests/mnt
> ====== RUN CHECK stat btrfs-progs/tests/mnt/file
> File: 'btrfs-progs/tests/mnt/file'
> Size: 0 Blocks: 0 IO Block: 4096 regular empty file
> Device: 2ch/44d Inode: 267 Links: 1
> Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
> Context: unconfined_u:object_r:unlabeled_t:s0
> Access: 2021-08-24 22:10:21.000000000 +0800
> Modify: 2021-08-24 22:10:21.000000000 +0800
> Change: 2021-08-24 22:10:21.000000000 +0800
> ...
> atime on converted inode does not match
> test failed for case 019-ext4-copy-timestamps
>
> Obviously, the log says that btrfs-convert does not
> support nanoseconds. I looked at the source code and
> found that only if ext2_fs.h defines EXT4_EPOCH_MASK
> btrfs-convert to support nanoseconds. But in e2fsprogs,
> EXT4_EPOCH_MASK was introduced in v1.43, but in some
> older versions, such as v1.40, e2fsprogs actually
> supports nanoseconds. It seems that if struct ext2_inode_large
> contains the i_atime_extra member, ext4 is supports
> nanoseconds, so I updated the logic to determine whether the
> current ext4 file system supports nanosecond precision.
> In addition, I imported some definitions to encode and
> decode tv_nsec (copied from e2fsprogs source code).
So it's supportable even up to the old versions (1.40 was released in
2007) with the updated detection, nice.
> ---
> configure.ac | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/configure.ac b/configure.ac
> index c4fa461..20297c5 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -253,7 +253,21 @@ AX_CHECK_DEFINE([linux/fiemap.h], [FIEMAP_EXTENT_SHARED], [],
> AX_CHECK_DEFINE([ext2fs/ext2_fs.h], [EXT4_EPOCH_MASK],
> [AC_DEFINE([HAVE_EXT4_EPOCH_MASK_DEFINE], [1],
> [Define to 1 if e2fsprogs defines EXT4_EPOCH_MASK])],
> - [AC_MSG_WARN([no definition of EXT4_EPOCH_MASK found, probably old e2fsprogs, no 64bit time precision of converted images])])
> + [have_ext4_epoch_mask_define=no])
> +
> +AS_IF([test "x$have_ext4_epoch_mask_define" = xno], [
> + AC_CHECK_MEMBERS([struct ext2_inode_large.i_atime_extra],
> + [
> + AC_DEFINE([HAVE_EXT4_EPOCH_MASK_DEFINE], [1], [Define to 1 if ext2_inode_large includes i_atime_extra]),
> + AC_DEFINE([EXT4_EPOCH_BITS], [2],[for encode and decode tv_nsec in ext2 inode]),
> + AC_DEFINE([EXT4_EPOCH_MASK], [((1 << EXT4_EPOCH_BITS) - 1)], [For encode and decode tv_nsec info in ext2 inode]),
> + AC_DEFINE([EXT4_NSEC_MASK], [(~0UL << EXT4_EPOCH_BITS)], [For encode and decode tv_nsec info in ext2 inode]),
> + AC_DEFINE([inode_includes(size, field)],[m4_normalize[(size >= (sizeof(((struct ext2_inode_large *)0)->field) + offsetof(struct ext2_inode_large, field)))]],
The "," can't be at the end of the AC_DEFINE lines, this does not
produce valid ./configure and fails with
checking for FIEMAP_EXTENT_SHARED defined in linux/fiemap.h... yes
checking for EXT4_EPOCH_MASK defined in ext2fs/ext2_fs.h... yes
checking for struct ext2_inode_large.i_atime_extra... yes
./configure: line 6487: ,: command not found
./configure: line 6490: ,: command not found
./configure: line 6493: ,: command not found
./configure: line 6496: ,: command not found
because the "," appear in the final file as separate commands. Removing them
produces valid script and the detection works.
Added to devel, thanks.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] btrfs-progs: Fix the issues btrfs-convert don't recognition ext4 i_{a,c,a}time_extra
2021-08-26 18:34 ` David Sterba
@ 2021-08-28 4:41 ` li zhang
2021-08-30 9:34 ` David Sterba
2021-08-28 15:16 ` li zhang
1 sibling, 1 reply; 5+ messages in thread
From: li zhang @ 2021-08-28 4:41 UTC (permalink / raw)
To: David Sterba; +Cc: linux-btrfs
On Thu, Aug 26, 2021 at 08:34:06PM +0200, David Sterba wrote:
> On Wed, Aug 25, 2021 at 01:04:47AM +0800, Li Zhang wrote:
> > Hi, I ran convert-tests.sh, and it reported that the
> > 019-ext4-copy-timestamps test failed. The log is as
> > follows
> >
> > ...
> > mount -o loop -t ext4 btrfs-progs/tests/test.img btrfs-progs/tests/mnt
> > ====== RUN CHECK touch btrfs-progs/tests/mnt/file
> > ====== RUN CHECK stat btrfs-progs/tests/mnt/file
> > File: 'btrfs-progs/tests/mnt/file'
> > Size: 0 Blocks: 0 IO Block: 4096 regular empty file
> > Device: 700h/1792d Inode: 13 Links: 1
> > Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
> > Context: unconfined_u:object_r:unlabeled_t:s0
> > Access: 2021-08-24 22:10:21.999209679 +0800
> > Modify: 2021-08-24 22:10:21.999209679 +0800
> > Change: 2021-08-24 22:10:21.999209679 +0800
> > ...
> > btrfs-progs/btrfs-convert btrfs-progs/tests/test.img
> > ...
> > ====== RUN CHECK mount -t btrfs -o loop btrfs-progs/tests/test.img btrfs-progs/tests/mnt
> > ====== RUN CHECK stat btrfs-progs/tests/mnt/file
> > File: 'btrfs-progs/tests/mnt/file'
> > Size: 0 Blocks: 0 IO Block: 4096 regular empty file
> > Device: 2ch/44d Inode: 267 Links: 1
> > Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
> > Context: unconfined_u:object_r:unlabeled_t:s0
> > Access: 2021-08-24 22:10:21.000000000 +0800
> > Modify: 2021-08-24 22:10:21.000000000 +0800
> > Change: 2021-08-24 22:10:21.000000000 +0800
> > ...
> > atime on converted inode does not match
> > test failed for case 019-ext4-copy-timestamps
> >
> > Obviously, the log says that btrfs-convert does not
> > support nanoseconds. I looked at the source code and
> > found that only if ext2_fs.h defines EXT4_EPOCH_MASK
> > btrfs-convert to support nanoseconds. But in e2fsprogs,
> > EXT4_EPOCH_MASK was introduced in v1.43, but in some
> > older versions, such as v1.40, e2fsprogs actually
> > supports nanoseconds. It seems that if struct ext2_inode_large
> > contains the i_atime_extra member, ext4 is supports
> > nanoseconds, so I updated the logic to determine whether the
> > current ext4 file system supports nanosecond precision.
> > In addition, I imported some definitions to encode and
> > decode tv_nsec (copied from e2fsprogs source code).
>
> So it's supportable even up to the old versions (1.40 was released in
> 2007) with the updated detection, nice.
>
> > ---
> > configure.ac | 16 +++++++++++++++-
> > 1 file changed, 15 insertions(+), 1 deletion(-)
> >
> > diff --git a/configure.ac b/configure.ac
> > index c4fa461..20297c5 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -253,7 +253,21 @@ AX_CHECK_DEFINE([linux/fiemap.h], [FIEMAP_EXTENT_SHARED], [],
> > AX_CHECK_DEFINE([ext2fs/ext2_fs.h], [EXT4_EPOCH_MASK],
> > [AC_DEFINE([HAVE_EXT4_EPOCH_MASK_DEFINE], [1],
> > [Define to 1 if e2fsprogs defines EXT4_EPOCH_MASK])],
> > - [AC_MSG_WARN([no definition of EXT4_EPOCH_MASK found, probably old e2fsprogs, no 64bit time precision of converted images])])
> > + [have_ext4_epoch_mask_define=no])
> > +
> > +AS_IF([test "x$have_ext4_epoch_mask_define" = xno], [
> > + AC_CHECK_MEMBERS([struct ext2_inode_large.i_atime_extra],
> > + [
> > + AC_DEFINE([HAVE_EXT4_EPOCH_MASK_DEFINE], [1], [Define to 1 if ext2_inode_large includes i_atime_extra]),
> > + AC_DEFINE([EXT4_EPOCH_BITS], [2],[for encode and decode tv_nsec in ext2 inode]),
> > + AC_DEFINE([EXT4_EPOCH_MASK], [((1 << EXT4_EPOCH_BITS) - 1)], [For encode and decode tv_nsec info in ext2 inode]),
> > + AC_DEFINE([EXT4_NSEC_MASK], [(~0UL << EXT4_EPOCH_BITS)], [For encode and decode tv_nsec info in ext2 inode]),
> > + AC_DEFINE([inode_includes(size, field)],[m4_normalize[(size >= (sizeof(((struct ext2_inode_large *)0)->field) + offsetof(struct ext2_inode_large, field)))]],
>
> The "," can't be at the end of the AC_DEFINE lines, this does not
> produce valid ./configure and fails with
>
> checking for FIEMAP_EXTENT_SHARED defined in linux/fiemap.h... yes
> checking for EXT4_EPOCH_MASK defined in ext2fs/ext2_fs.h... yes
> checking for struct ext2_inode_large.i_atime_extra... yes
> ./configure: line 6487: ,: command not found
> ./configure: line 6490: ,: command not found
> ./configure: line 6493: ,: command not found
> ./configure: line 6496: ,: command not found
>
> because the "," appear in the final file as separate commands. Removing them
> produces valid script and the detection works.
>
> Added to devel, thanks.
Cool, thanks!
Is there any possibility that the version of the GNU build system caused
the ./configure error
to be generated? On my machine, I produced a valid ./configure, and my
compilation
environment is as follows:
aclocal: aclocal (GNU automake) 1.13.4
autoconf: autoconf (GNU Autoconf) 2.69
autoheader: autoheader (GNU Autoconf) 2.69
automake: automake (GNU automake) 1.13.4
OS: centos 7.6
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] btrfs-progs: Fix the issues btrfs-convert don't recognition ext4 i_{a,c,a}time_extra
2021-08-26 18:34 ` David Sterba
2021-08-28 4:41 ` li zhang
@ 2021-08-28 15:16 ` li zhang
1 sibling, 0 replies; 5+ messages in thread
From: li zhang @ 2021-08-28 15:16 UTC (permalink / raw)
To: David Sterba, Li Zhang, linux-btrfs
Cool, thanks!
Is there any possibility that the version of the GNU build system caused
the ./configure error
to be generated? On my machine, I produced a valid ./configure, and my
compilation
environment is as follows:
aclocal: aclocal (GNU automake) 1.13.4
autoconf: autoconf (GNU Autoconf) 2.69
autoheader: autoheader (GNU Autoconf) 2.69
automake: automake (GNU automake) 1.13.4
OS: centos 7.6
David Sterba <dsterba@suse.cz> 于2021年8月27日周五 上午2:36写道:
>
> On Wed, Aug 25, 2021 at 01:04:47AM +0800, Li Zhang wrote:
> > Hi, I ran convert-tests.sh, and it reported that the
> > 019-ext4-copy-timestamps test failed. The log is as
> > follows
> >
> > ...
> > mount -o loop -t ext4 btrfs-progs/tests/test.img btrfs-progs/tests/mnt
> > ====== RUN CHECK touch btrfs-progs/tests/mnt/file
> > ====== RUN CHECK stat btrfs-progs/tests/mnt/file
> > File: 'btrfs-progs/tests/mnt/file'
> > Size: 0 Blocks: 0 IO Block: 4096 regular empty file
> > Device: 700h/1792d Inode: 13 Links: 1
> > Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
> > Context: unconfined_u:object_r:unlabeled_t:s0
> > Access: 2021-08-24 22:10:21.999209679 +0800
> > Modify: 2021-08-24 22:10:21.999209679 +0800
> > Change: 2021-08-24 22:10:21.999209679 +0800
> > ...
> > btrfs-progs/btrfs-convert btrfs-progs/tests/test.img
> > ...
> > ====== RUN CHECK mount -t btrfs -o loop btrfs-progs/tests/test.img btrfs-progs/tests/mnt
> > ====== RUN CHECK stat btrfs-progs/tests/mnt/file
> > File: 'btrfs-progs/tests/mnt/file'
> > Size: 0 Blocks: 0 IO Block: 4096 regular empty file
> > Device: 2ch/44d Inode: 267 Links: 1
> > Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
> > Context: unconfined_u:object_r:unlabeled_t:s0
> > Access: 2021-08-24 22:10:21.000000000 +0800
> > Modify: 2021-08-24 22:10:21.000000000 +0800
> > Change: 2021-08-24 22:10:21.000000000 +0800
> > ...
> > atime on converted inode does not match
> > test failed for case 019-ext4-copy-timestamps
> >
> > Obviously, the log says that btrfs-convert does not
> > support nanoseconds. I looked at the source code and
> > found that only if ext2_fs.h defines EXT4_EPOCH_MASK
> > btrfs-convert to support nanoseconds. But in e2fsprogs,
> > EXT4_EPOCH_MASK was introduced in v1.43, but in some
> > older versions, such as v1.40, e2fsprogs actually
> > supports nanoseconds. It seems that if struct ext2_inode_large
> > contains the i_atime_extra member, ext4 is supports
> > nanoseconds, so I updated the logic to determine whether the
> > current ext4 file system supports nanosecond precision.
> > In addition, I imported some definitions to encode and
> > decode tv_nsec (copied from e2fsprogs source code).
>
> So it's supportable even up to the old versions (1.40 was released in
> 2007) with the updated detection, nice.
>
> > ---
> > configure.ac | 16 +++++++++++++++-
> > 1 file changed, 15 insertions(+), 1 deletion(-)
> >
> > diff --git a/configure.ac b/configure.ac
> > index c4fa461..20297c5 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -253,7 +253,21 @@ AX_CHECK_DEFINE([linux/fiemap.h], [FIEMAP_EXTENT_SHARED], [],
> > AX_CHECK_DEFINE([ext2fs/ext2_fs.h], [EXT4_EPOCH_MASK],
> > [AC_DEFINE([HAVE_EXT4_EPOCH_MASK_DEFINE], [1],
> > [Define to 1 if e2fsprogs defines EXT4_EPOCH_MASK])],
> > - [AC_MSG_WARN([no definition of EXT4_EPOCH_MASK found, probably old e2fsprogs, no 64bit time precision of converted images])])
> > + [have_ext4_epoch_mask_define=no])
> > +
> > +AS_IF([test "x$have_ext4_epoch_mask_define" = xno], [
> > + AC_CHECK_MEMBERS([struct ext2_inode_large.i_atime_extra],
> > + [
> > + AC_DEFINE([HAVE_EXT4_EPOCH_MASK_DEFINE], [1], [Define to 1 if ext2_inode_large includes i_atime_extra]),
> > + AC_DEFINE([EXT4_EPOCH_BITS], [2],[for encode and decode tv_nsec in ext2 inode]),
> > + AC_DEFINE([EXT4_EPOCH_MASK], [((1 << EXT4_EPOCH_BITS) - 1)], [For encode and decode tv_nsec info in ext2 inode]),
> > + AC_DEFINE([EXT4_NSEC_MASK], [(~0UL << EXT4_EPOCH_BITS)], [For encode and decode tv_nsec info in ext2 inode]),
> > + AC_DEFINE([inode_includes(size, field)],[m4_normalize[(size >= (sizeof(((struct ext2_inode_large *)0)->field) + offsetof(struct ext2_inode_large, field)))]],
>
> The "," can't be at the end of the AC_DEFINE lines, this does not
> produce valid ./configure and fails with
>
> checking for FIEMAP_EXTENT_SHARED defined in linux/fiemap.h... yes
> checking for EXT4_EPOCH_MASK defined in ext2fs/ext2_fs.h... yes
> checking for struct ext2_inode_large.i_atime_extra... yes
> ./configure: line 6487: ,: command not found
> ./configure: line 6490: ,: command not found
> ./configure: line 6493: ,: command not found
> ./configure: line 6496: ,: command not found
>
> because the "," appear in the final file as separate commands. Removing them
> produces valid script and the detection works.
>
> Added to devel, thanks.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] btrfs-progs: Fix the issues btrfs-convert don't recognition ext4 i_{a,c,a}time_extra
2021-08-28 4:41 ` li zhang
@ 2021-08-30 9:34 ` David Sterba
0 siblings, 0 replies; 5+ messages in thread
From: David Sterba @ 2021-08-30 9:34 UTC (permalink / raw)
To: li zhang; +Cc: linux-btrfs
On Sat, Aug 28, 2021 at 12:41:19PM +0800, li zhang wrote:
> Is there any possibility that the version of the GNU build system caused
> the ./configure error
> to be generated? On my machine, I produced a valid ./configure, and my
> compilation
> environment is as follows:
> aclocal: aclocal (GNU automake) 1.13.4
> autoconf: autoconf (GNU Autoconf) 2.69
> autoheader: autoheader (GNU Autoconf) 2.69
> automake: automake (GNU automake) 1.13.4
> OS: centos 7.6
You'd have to run the ./configure script or inspect it manually though
it could be hard to locate the lines in the generated script.
I get the following diff, the commas are interprted as shell commands.
--- configure-bad 2021-08-30 11:35:22.034446343 +0200
+++ configure-good 2021-08-30 11:34:19.130281370 +0200
@@ -6469,6 +6469,8 @@ else
have_ext4_epoch_mask_define=no
fi
+have_ext4_epoch_mask_define=no
+
if test "x$have_ext4_epoch_mask_define" = xno; then :
ac_fn_c_check_member "$LINENO" "struct ext2_inode_large" "i_atime_extra" "ac_cv_member_struct_ext2_inode_large_i_atime_extra" "#include <ext2fs/ext2_fs.h>
@@ -6482,16 +6484,16 @@ _ACEOF
$as_echo "#define HAVE_EXT4_EPOCH_MASK_DEFINE 1" >>confdefs.h
-,
+
$as_echo "#define EXT4_EPOCH_BITS 2" >>confdefs.h
-,
+
$as_echo "#define EXT4_EPOCH_MASK ((1 << EXT4_EPOCH_BITS) - 1)" >>confdefs.h
-,
+
$as_echo "#define EXT4_NSEC_MASK (~0UL << EXT4_EPOCH_BITS)" >>confdefs.h
-,
+
$as_echo "#define inode_includes(size, field) (size >= (sizeof(((struct ext2_inode_large *)0)->field) + offsetof(struct ext2_inode_large, field)))" >>confdefs.h
---
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-08-30 9:37 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-24 17:04 [PATCH] btrfs-progs: Fix the issues btrfs-convert don't recognition ext4 i_{a,c,a}time_extra Li Zhang
2021-08-26 18:34 ` David Sterba
2021-08-28 4:41 ` li zhang
2021-08-30 9:34 ` David Sterba
2021-08-28 15:16 ` li zhang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.