mirror of
https://git.yoctoproject.org/poky
synced 2026-04-17 18:32:12 +02:00
erofs-utils: Convert from off64_t to off_t
Ensure largefile macros are used to determine size of off_t and not the explict 64bit version of functions and types (From OE-Core rev: 135e45931a0a2ea9954cb2da13ce59b0b3f569ef) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
From fef3b16dba2c5f6ad88951b80cdfbedd423e80a0 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 7 Dec 2022 20:16:52 -0800
|
||||
Subject: [PATCH v3 1/3] configure: use AC_SYS_LARGEFILE
|
||||
|
||||
The autoconf macro AC_SYS_LARGEFILE defines _FILE_OFFSET_BITS=64
|
||||
where necessary to ensure that off_t and all interfaces using off_t
|
||||
are 64bit, even on 32bit systems.
|
||||
|
||||
Pass -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=66 via CFLAGS
|
||||
|
||||
Upstream-Status: Submitted [https://lore.kernel.org/linux-erofs/20221215064758.93821-1-raj.khem@gmail.com/T/#t]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
configure.ac | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index a736ff0..e8bb003 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -13,6 +13,8 @@ AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_CONFIG_AUX_DIR(config)
|
||||
AM_INIT_AUTOMAKE([foreign -Wall])
|
||||
|
||||
+AC_SYS_LARGEFILE
|
||||
+
|
||||
# Checks for programs.
|
||||
AM_PROG_AR
|
||||
AC_PROG_CC
|
||||
@@ -319,6 +321,9 @@ if test "x$enable_lzma" = "xyes"; then
|
||||
CPPFLAGS="${saved_CPPFLAGS}"
|
||||
fi
|
||||
|
||||
+# Enable 64-bit off_t
|
||||
+CFLAGS+=" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||
+
|
||||
# Set up needed symbols, conditionals and compiler/linker flags
|
||||
AM_CONDITIONAL([ENABLE_LZ4], [test "x${have_lz4}" = "xyes"])
|
||||
AM_CONDITIONAL([ENABLE_LZ4HC], [test "x${have_lz4hc}" = "xyes"])
|
||||
--
|
||||
2.39.0
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
From 856189c324834b838f0e9cfc0d2e05f12518f264 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 7 Dec 2022 22:17:35 -0800
|
||||
Subject: [PATCH v3 2/3] erofs: replace [l]stat64 by equivalent [l]stat
|
||||
|
||||
Upstream-Status: Submitted [https://lore.kernel.org/linux-erofs/20221215064758.93821-2-raj.khem@gmail.com/T/#u]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
lib/inode.c | 10 +++++-----
|
||||
lib/xattr.c | 4 ++--
|
||||
mkfs/main.c | 4 ++--
|
||||
3 files changed, 9 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/lib/inode.c b/lib/inode.c
|
||||
index f192510..38003fc 100644
|
||||
--- a/lib/inode.c
|
||||
+++ b/lib/inode.c
|
||||
@@ -773,7 +773,7 @@ static u32 erofs_new_encode_dev(dev_t dev)
|
||||
|
||||
#ifdef WITH_ANDROID
|
||||
int erofs_droid_inode_fsconfig(struct erofs_inode *inode,
|
||||
- struct stat64 *st,
|
||||
+ struct stat *st,
|
||||
const char *path)
|
||||
{
|
||||
/* filesystem_config does not preserve file type bits */
|
||||
@@ -818,7 +818,7 @@ int erofs_droid_inode_fsconfig(struct erofs_inode *inode,
|
||||
}
|
||||
#else
|
||||
static int erofs_droid_inode_fsconfig(struct erofs_inode *inode,
|
||||
- struct stat64 *st,
|
||||
+ struct stat *st,
|
||||
const char *path)
|
||||
{
|
||||
return 0;
|
||||
@@ -826,7 +826,7 @@ static int erofs_droid_inode_fsconfig(struct erofs_inode *inode,
|
||||
#endif
|
||||
|
||||
static int erofs_fill_inode(struct erofs_inode *inode,
|
||||
- struct stat64 *st,
|
||||
+ struct stat *st,
|
||||
const char *path)
|
||||
{
|
||||
int err = erofs_droid_inode_fsconfig(inode, st, path);
|
||||
@@ -910,7 +910,7 @@ static struct erofs_inode *erofs_new_inode(void)
|
||||
/* get the inode from the (source) path */
|
||||
static struct erofs_inode *erofs_iget_from_path(const char *path, bool is_src)
|
||||
{
|
||||
- struct stat64 st;
|
||||
+ struct stat st;
|
||||
struct erofs_inode *inode;
|
||||
int ret;
|
||||
|
||||
@@ -918,7 +918,7 @@ static struct erofs_inode *erofs_iget_from_path(const char *path, bool is_src)
|
||||
if (!is_src)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
- ret = lstat64(path, &st);
|
||||
+ ret = lstat(path, &st);
|
||||
if (ret)
|
||||
return ERR_PTR(-errno);
|
||||
|
||||
diff --git a/lib/xattr.c b/lib/xattr.c
|
||||
index 71ffe3e..fd0e728 100644
|
||||
--- a/lib/xattr.c
|
||||
+++ b/lib/xattr.c
|
||||
@@ -467,7 +467,7 @@ static int erofs_count_all_xattrs_from_path(const char *path)
|
||||
{
|
||||
int ret;
|
||||
DIR *_dir;
|
||||
- struct stat64 st;
|
||||
+ struct stat st;
|
||||
|
||||
_dir = opendir(path);
|
||||
if (!_dir) {
|
||||
@@ -502,7 +502,7 @@ static int erofs_count_all_xattrs_from_path(const char *path)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
- ret = lstat64(buf, &st);
|
||||
+ ret = lstat(buf, &st);
|
||||
if (ret) {
|
||||
ret = -errno;
|
||||
goto fail;
|
||||
diff --git a/mkfs/main.c b/mkfs/main.c
|
||||
index d2c9830..5279805 100644
|
||||
--- a/mkfs/main.c
|
||||
+++ b/mkfs/main.c
|
||||
@@ -581,7 +581,7 @@ int main(int argc, char **argv)
|
||||
struct erofs_buffer_head *sb_bh;
|
||||
struct erofs_inode *root_inode;
|
||||
erofs_nid_t root_nid;
|
||||
- struct stat64 st;
|
||||
+ struct stat st;
|
||||
erofs_blk_t nblocks;
|
||||
struct timeval t;
|
||||
char uuid_str[37] = "not available";
|
||||
@@ -609,7 +609,7 @@ int main(int argc, char **argv)
|
||||
return 1;
|
||||
}
|
||||
|
||||
- err = lstat64(cfg.c_src_path, &st);
|
||||
+ err = lstat(cfg.c_src_path, &st);
|
||||
if (err)
|
||||
return 1;
|
||||
if (!S_ISDIR(st.st_mode)) {
|
||||
--
|
||||
2.39.0
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
From 8f8cbc7b773da63bce8226249784ba6824635c9c Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 7 Dec 2022 20:19:27 -0800
|
||||
Subject: [PATCH v3 3/3] internal.h: Make LFS mandatory for all usecases
|
||||
|
||||
erosfs depend on the consistent use of a 64bit offset
|
||||
type, force downstreams to use transparent LFS (_FILE_OFFSET_BITS=64),
|
||||
so that it becomes impossible for them to use 32bit interfaces.
|
||||
|
||||
Upstream-Status: Submitted [https://lore.kernel.org/linux-erofs/20221215064758.93821-3-raj.khem@gmail.com/T/#u]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
include/erofs/internal.h | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/include/erofs/internal.h b/include/erofs/internal.h
|
||||
index 6a70f11..d3b2986 100644
|
||||
--- a/include/erofs/internal.h
|
||||
+++ b/include/erofs/internal.h
|
||||
@@ -21,6 +21,7 @@ typedef unsigned short umode_t;
|
||||
|
||||
#include "erofs_fs.h"
|
||||
#include <fcntl.h>
|
||||
+#include <sys/types.h> /* for off_t definition */
|
||||
|
||||
#ifndef PATH_MAX
|
||||
#define PATH_MAX 4096 /* # chars in a path name including nul */
|
||||
@@ -104,6 +105,10 @@ struct erofs_sb_info {
|
||||
};
|
||||
};
|
||||
|
||||
+
|
||||
+/* make sure that any user of the erofs headers has atleast 64bit off_t type */
|
||||
+extern int erofs_assert_largefile[sizeof(off_t)-8];
|
||||
+
|
||||
/* global sbi */
|
||||
extern struct erofs_sb_info sbi;
|
||||
|
||||
--
|
||||
2.39.0
|
||||
|
||||
@@ -6,7 +6,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=73001d804ea1e3d84365f652242cca20"
|
||||
HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/tree/README"
|
||||
|
||||
SRCREV = "a2821a66b42aee5430bccee82c280e38d1e9ab29"
|
||||
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git;branch=master"
|
||||
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git;branch=master \
|
||||
file://0001-configure-use-AC_SYS_LARGEFILE.patch \
|
||||
file://0002-erofs-replace-l-stat64-by-equivalent-l-stat.patch \
|
||||
file://0003-internal.h-Make-LFS-mandatory-for-all-usecases.patch \
|
||||
"
|
||||
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))"
|
||||
|
||||
@@ -19,7 +23,7 @@ inherit pkgconfig autotools
|
||||
PACKAGECONFIG ??= "lz4"
|
||||
PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4"
|
||||
|
||||
EXTRA_OECONF = "${PACKAGECONFIG_CONFARGS} --disable-fuse"
|
||||
EXTRA_OECONF = "${PACKAGECONFIG_CONFARGS} --disable-fuse --enable-largefile"
|
||||
|
||||
CFLAGS:append:powerpc64le = " -D__SANE_USERSPACE_TYPES__"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user