summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTanu Kaskinen <tanuk@iki.fi>2018-03-21 19:08:38 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-04-04 11:06:48 +0100
commit560941ca3483c56a3a28fc455c4e680c8bf0b948 (patch)
tree0a8cd92ca661f2e1485f0af7c1ae7009919b1586
parentb6794d2f5ad3ef1acfaeaed8b849cb00da22a2f8 (diff)
downloadpoky-560941ca3483c56a3a28fc455c4e680c8bf0b948.tar.gz
e2fsprogs: fix compatibility with glibc 2.27
glibc 2.27 added function copy_file_range(), and e2fsprogs happens to have a different function with the same name. The conflict made e2fsprogs-native build fail. Here's a backport of a fix from upstream, the fix was released in e2fsprogs 1.43.8. The master branch doesn't need this fix, since it has new enough e2fsprogs version. At least rocko, pyro and morty need this, I haven't checked older stable branches. Apparently the problematic function was introduced in e2fsprogs version 1.43. (From OE-Core rev: 350f2a4ad6e21acf1d357a90ba37b2c149ec7864) Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-misc-rename-copy_file_range-to-copy_file_chunk.patch62
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.4.bb1
2 files changed, 63 insertions, 0 deletions
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-misc-rename-copy_file_range-to-copy_file_chunk.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-misc-rename-copy_file_range-to-copy_file_chunk.patch
new file mode 100644
index 0000000000..3b1d7fe02d
--- /dev/null
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-misc-rename-copy_file_range-to-copy_file_chunk.patch
@@ -0,0 +1,62 @@
1From ad8078ca2ef35c91bedad61c9e2a6c01bf13a605 Mon Sep 17 00:00:00 2001
2From: Palmer Dabbelt <palmer@dabbelt.com>
3Date: Fri, 29 Dec 2017 10:19:51 -0800
4Subject: [PATCH] misc: rename copy_file_range to copy_file_chunk
5
6As of 2.27, glibc will have a copy_file_range library call to wrap the
7new copy_file_range system call. This conflicts with the function in
8misc/create_inode.c, which this patch renames _copy_file_range.
9
10Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com>
11Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12
13Upstream-Status: Backport
14
15Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
16---
17 misc/create_inode.c | 8 ++++----
18 1 file changed, 4 insertions(+), 4 deletions(-)
19
20diff --git a/misc/create_inode.c b/misc/create_inode.c
21index ae22ff6f..ea6fa7e7 100644
22--- a/misc/create_inode.c
23+++ b/misc/create_inode.c
24@@ -392,7 +392,7 @@ static ssize_t my_pread(int fd, void *buf, size_t count, off_t offset)
25 }
26 #endif /* !defined HAVE_PREAD64 && !defined HAVE_PREAD */
27
28-static errcode_t copy_file_range(ext2_filsys fs, int fd, ext2_file_t e2_file,
29+static errcode_t copy_file_chunk(ext2_filsys fs, int fd, ext2_file_t e2_file,
30 off_t start, off_t end, char *buf,
31 char *zerobuf)
32 {
33@@ -466,7 +466,7 @@ static errcode_t try_lseek_copy(ext2_filsys fs, int fd, struct stat *statbuf,
34
35 data_blk = data & ~(fs->blocksize - 1);
36 hole_blk = (hole + (fs->blocksize - 1)) & ~(fs->blocksize - 1);
37- err = copy_file_range(fs, fd, e2_file, data_blk, hole_blk, buf,
38+ err = copy_file_chunk(fs, fd, e2_file, data_blk, hole_blk, buf,
39 zerobuf);
40 if (err)
41 return err;
42@@ -517,7 +517,7 @@ static errcode_t try_fiemap_copy(ext2_filsys fs, int fd, ext2_file_t e2_file,
43 goto out;
44 for (i = 0, ext = ext_buf; i < fiemap_buf->fm_mapped_extents;
45 i++, ext++) {
46- err = copy_file_range(fs, fd, e2_file, ext->fe_logical,
47+ err = copy_file_chunk(fs, fd, e2_file, ext->fe_logical,
48 ext->fe_logical + ext->fe_length,
49 buf, zerobuf);
50 if (err)
51@@ -570,7 +570,7 @@ static errcode_t copy_file(ext2_filsys fs, int fd, struct stat *statbuf,
52 goto out;
53 #endif
54
55- err = copy_file_range(fs, fd, e2_file, 0, statbuf->st_size, buf,
56+ err = copy_file_chunk(fs, fd, e2_file, 0, statbuf->st_size, buf,
57 zerobuf);
58 out:
59 ext2fs_free_mem(&zerobuf);
60--
612.16.2
62
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.4.bb b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.4.bb
index 5216c7027c..7aa73a15ed 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.4.bb
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.4.bb
@@ -10,6 +10,7 @@ SRC_URI += "file://acinclude.m4 \
10 file://e2fsprogs-1.43-sysmacros.patch \ 10 file://e2fsprogs-1.43-sysmacros.patch \
11 file://mkdir_p.patch \ 11 file://mkdir_p.patch \
12 file://0001-e2fsck-exit-with-exit-status-0-if-no-errors-were-fix.patch \ 12 file://0001-e2fsck-exit-with-exit-status-0-if-no-errors-were-fix.patch \
13 file://0001-misc-rename-copy_file_range-to-copy_file_chunk.patch \
13" 14"
14 15
15SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch" 16SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch"