8fb0721eb7
- add selinux support; - add erofsfuse support; - add 0001-erofs-utils-fix-multiple-definition-of-sbi.patch [1]; - add 0002-erofs-utils-fuse-fix-linking-when-using-with-selinux.patch [2]; - add 0003-erofs-utils-fuse-disable-backtrace-if-unsupported.patch. [1] https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/patch/?id=6c938b755682629a26f85e5540f40c0d316130ed [2] https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/patch/?id=f1f9659e98ea925a100e50332309955f5b2b4234 Signed-off-by: Gao Xiang <hsiangkao@aol.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
83 lines
2.2 KiB
Diff
83 lines
2.2 KiB
Diff
From 833563ffd3126b6e85fc54402c6d68c29a30264c Mon Sep 17 00:00:00 2001
|
|
From: Gao Xiang <hsiangkao@aol.com>
|
|
Date: Thu, 17 Dec 2020 16:59:04 +0800
|
|
Subject: [PATCH] erofs-utils: fuse: disable backtrace if unsupported
|
|
|
|
backtrace is a GNU extension, enable it conditionally.
|
|
|
|
Signed-off-by: Gao Xiang <hsiangkao@aol.com>
|
|
---
|
|
configure.ac | 3 ++-
|
|
fuse/main.c | 8 ++++++--
|
|
2 files changed, 8 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index d5fdfb8a3d17..28926c303c5c 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -96,6 +96,7 @@ AC_ARG_VAR([LZ4_LIBS], [linker flags for lz4])
|
|
# Checks for header files.
|
|
AC_CHECK_HEADERS(m4_flatten([
|
|
dirent.h
|
|
+ execinfo.h
|
|
fcntl.h
|
|
getopt.h
|
|
inttypes.h
|
|
@@ -147,7 +148,7 @@ AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
|
|
#include <unistd.h>])
|
|
|
|
# Checks for library functions.
|
|
-AC_CHECK_FUNCS([fallocate gettimeofday memset realpath strdup strerror strrchr strtoull])
|
|
+AC_CHECK_FUNCS([backtrace fallocate gettimeofday memset realpath strdup strerror strrchr strtoull])
|
|
|
|
# Configure libuuid
|
|
AS_IF([test "x$with_uuid" != "xno"], [
|
|
diff --git a/fuse/main.c b/fuse/main.c
|
|
index 1e24efe110c2..c16291272e75 100644
|
|
--- a/fuse/main.c
|
|
+++ b/fuse/main.c
|
|
@@ -6,7 +6,6 @@
|
|
*/
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
-#include <execinfo.h>
|
|
#include <signal.h>
|
|
#include <libgen.h>
|
|
#include <fuse.h>
|
|
@@ -168,6 +167,9 @@ static int optional_opt_func(void *data, const char *arg, int key,
|
|
return 1;
|
|
}
|
|
|
|
+#if defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE)
|
|
+#include <execinfo.h>
|
|
+
|
|
static void signal_handle_sigsegv(int signal)
|
|
{
|
|
void *array[10];
|
|
@@ -187,7 +189,7 @@ static void signal_handle_sigsegv(int signal)
|
|
erofs_dump("========================================\n");
|
|
abort();
|
|
}
|
|
-
|
|
+#endif
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
@@ -197,11 +199,13 @@ int main(int argc, char *argv[])
|
|
erofs_init_configure();
|
|
fprintf(stderr, "%s %s\n", basename(argv[0]), cfg.c_version);
|
|
|
|
+#if defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE)
|
|
if (signal(SIGSEGV, signal_handle_sigsegv) == SIG_ERR) {
|
|
fprintf(stderr, "failed to initialize signals\n");
|
|
ret = -errno;
|
|
goto err;
|
|
}
|
|
+#endif
|
|
|
|
/* parse options */
|
|
ret = fuse_opt_parse(&args, &fusecfg, option_spec, optional_opt_func);
|
|
--
|
|
2.24.0
|
|
|