mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-19 05:38:00 +00:00
tools/squashfs4: bump to 4.6.1
Changelogs: https://github.com/plougher/squashfs-tools/blob/4.6.1/CHANGES Removed upstreamed patches: - 001-Unsquashfs-Add-and-make-some-header-includes-conditi.patch - 002-Mksquashfs-Make-sysinfo-conditional.patch - 003-Only-use-available-CPUs.patch - 004-action-rework-strdupa-with-POSIX-strdup-and-free.patch - 005-Don-t-use-sigwaitinfo-sigtimedwait-if-not-supported.patch - 006-Move-sysinfo.h-into-the-linux-only-section-should-fi.patch - 007-Unsquashfs-fix-compilation-error-for-missing-sysctl..patch - 100-portability.patch Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
This commit is contained in:
parent
3efd49a588
commit
f0103c78d8
@ -8,14 +8,14 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=squashfs4
|
||||
PKG_CPE_ID:=cpe:/a:phillip_lougher:squashfs
|
||||
PKG_VERSION:=4.5.1
|
||||
PKG_VERSION:=4.6.1
|
||||
PKG_RELEASE=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/plougher/squashfs-tools
|
||||
PKG_SOURCE_DATE:=2022-03-17
|
||||
PKG_SOURCE_VERSION:=afdd63fc386919b4aa40d573b0a6069414d14317
|
||||
PKG_MIRROR_HASH:=59c294e00ddfc1f4bda658c7567584ce35fdd479c413ebdb1376981b27737be1
|
||||
PKG_SOURCE_DATE:=2023-03-26
|
||||
PKG_SOURCE_VERSION:=d8cb82d9840330f9344ec37b992595b5d7b44184
|
||||
PKG_MIRROR_HASH:=fc625af657ca284d69fbc32e3bb572d0afd566cf816b7c1c1b66dda0a0c2760a
|
||||
|
||||
HOST_BUILD_PARALLEL:=1
|
||||
|
||||
|
@ -1,39 +0,0 @@
|
||||
From a9119c969af0a5aa961d56978d5dd4f3eb952667 Mon Sep 17 00:00:00 2001
|
||||
From: Phillip Lougher <phillip@squashfs.org.uk>
|
||||
Date: Mon, 15 Aug 2022 17:04:43 +0100
|
||||
Subject: [PATCH 1/1] Unsquashfs: Add and make some header includes conditional
|
||||
|
||||
Fixes https://github.com/plougher/squashfs-tools/issues/122
|
||||
|
||||
Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
|
||||
---
|
||||
squashfs-tools/reader.c | 1 +
|
||||
squashfs-tools/unsquashfs.c | 5 +++++
|
||||
2 files changed, 6 insertions(+)
|
||||
|
||||
--- a/squashfs-tools/reader.c
|
||||
+++ b/squashfs-tools/reader.c
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
+#include <signal.h>
|
||||
#include "squashfs_fs.h"
|
||||
#include "mksquashfs.h"
|
||||
#include "caches-queues-lists.h"
|
||||
--- a/squashfs-tools/unsquashfs.c
|
||||
+++ b/squashfs-tools/unsquashfs.c
|
||||
@@ -32,8 +32,13 @@
|
||||
#include "stdarg.h"
|
||||
#include "fnmatch_compat.h"
|
||||
|
||||
+#ifdef __linux__
|
||||
#include <sys/sysinfo.h>
|
||||
#include <sys/sysmacros.h>
|
||||
+#elif defined __FreeBSD__
|
||||
+#include <sys/sysctl.h>
|
||||
+#endif
|
||||
+
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
@ -1,30 +0,0 @@
|
||||
From 374e39a786a5acda841056bec26fd0e0c4d40dac Mon Sep 17 00:00:00 2001
|
||||
From: Phillip Lougher <phillip@squashfs.org.uk>
|
||||
Date: Mon, 15 Aug 2022 17:09:05 +0100
|
||||
Subject: [PATCH 1/1] Mksquashfs: Make sysinfo() conditional
|
||||
|
||||
Fixes https://github.com/plougher/squashfs-tools/issues/123
|
||||
|
||||
Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
|
||||
---
|
||||
squashfs-tools/mksquashfs.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/squashfs-tools/mksquashfs.c
|
||||
+++ b/squashfs-tools/mksquashfs.c
|
||||
@@ -5802,6 +5802,7 @@ static int get_physical_memory()
|
||||
long long page_size = sysconf(_SC_PAGESIZE);
|
||||
int phys_mem;
|
||||
|
||||
+#ifdef __linux__
|
||||
if(num_pages == -1 || page_size == -1) {
|
||||
struct sysinfo sys;
|
||||
int res = sysinfo(&sys);
|
||||
@@ -5812,6 +5813,7 @@ static int get_physical_memory()
|
||||
num_pages = sys.totalram;
|
||||
page_size = sys.mem_unit;
|
||||
}
|
||||
+#endif
|
||||
|
||||
phys_mem = num_pages * page_size >> 20;
|
||||
|
@ -1,92 +0,0 @@
|
||||
From bc8e655a420d2f62bb0597947e96dce7b4d3fb36 Mon Sep 17 00:00:00 2001
|
||||
From: Wessel Dankers <wsl@fruit.je>
|
||||
Date: Sun, 30 Oct 2022 19:29:28 +0100
|
||||
Subject: [PATCH] Only use available CPUs
|
||||
|
||||
Not all online CPUs may be available for the current process,
|
||||
especially when CPU affinity is involved. In such cases too many
|
||||
threads will be created, which will then compete unnecessarily
|
||||
for CPU time.
|
||||
|
||||
Use sched_getaffinity() to determine the correct number of threads
|
||||
to create.
|
||||
---
|
||||
squashfs-tools/mksquashfs.c | 16 ++++++++++++----
|
||||
squashfs-tools/unsquashfs.c | 13 ++++++++++---
|
||||
2 files changed, 22 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/squashfs-tools/mksquashfs.c
|
||||
+++ b/squashfs-tools/mksquashfs.c
|
||||
@@ -52,7 +52,9 @@
|
||||
#include <ctype.h>
|
||||
#include <sys/sysinfo.h>
|
||||
|
||||
-#ifndef linux
|
||||
+#ifdef linux
|
||||
+#include <sched.h>
|
||||
+#else
|
||||
#include <sys/sysctl.h>
|
||||
#endif
|
||||
|
||||
@@ -5079,7 +5081,15 @@ static void initialise_threads(int readq
|
||||
BAD_ERROR("Failed to set signal mask in intialise_threads\n");
|
||||
|
||||
if(processors == -1) {
|
||||
-#ifndef linux
|
||||
+#ifdef linux
|
||||
+ cpu_set_t cpu_set;
|
||||
+ CPU_ZERO(&cpu_set);
|
||||
+
|
||||
+ if(sched_getaffinity(0, sizeof cpu_set, &cpu_set) == -1)
|
||||
+ processors = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
+ else
|
||||
+ processors = CPU_COUNT(&cpu_set);
|
||||
+#else
|
||||
int mib[2];
|
||||
size_t len = sizeof(processors);
|
||||
|
||||
@@ -5096,8 +5106,6 @@ static void initialise_threads(int readq
|
||||
ERROR_EXIT(" Defaulting to 1\n");
|
||||
processors = 1;
|
||||
}
|
||||
-#else
|
||||
- processors = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
#endif
|
||||
}
|
||||
|
||||
--- a/squashfs-tools/unsquashfs.c
|
||||
+++ b/squashfs-tools/unsquashfs.c
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "fnmatch_compat.h"
|
||||
|
||||
#ifdef __linux__
|
||||
+#include <sched.h>
|
||||
#include <sys/sysinfo.h>
|
||||
#include <sys/sysmacros.h>
|
||||
#elif defined __FreeBSD__
|
||||
@@ -2719,7 +2720,15 @@ void initialise_threads(int fragment_buf
|
||||
}
|
||||
|
||||
if(processors == -1) {
|
||||
-#ifndef linux
|
||||
+#ifdef linux
|
||||
+ cpu_set_t cpu_set;
|
||||
+ CPU_ZERO(&cpu_set);
|
||||
+
|
||||
+ if(sched_getaffinity(0, sizeof cpu_set, &cpu_set) == -1)
|
||||
+ processors = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
+ else
|
||||
+ processors = CPU_COUNT(&cpu_set);
|
||||
+#else
|
||||
int mib[2];
|
||||
size_t len = sizeof(processors);
|
||||
|
||||
@@ -2735,8 +2744,6 @@ void initialise_threads(int fragment_buf
|
||||
"Defaulting to 1\n");
|
||||
processors = 1;
|
||||
}
|
||||
-#else
|
||||
- processors = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
#endif
|
||||
}
|
||||
|
@ -1,37 +0,0 @@
|
||||
From 92e628ec0e26cf091d82356e3b74f73bedf4cfc8 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Sat, 15 Oct 2022 00:11:20 +0200
|
||||
Subject: [PATCH] action: rework strdupa with POSIX strdup and free
|
||||
|
||||
strdupa is not POSIX and cause compilation error on macos.
|
||||
Fix this by using strdup and free.
|
||||
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
|
||||
---
|
||||
squashfs-tools/action.c | 14 +++++++++++---
|
||||
1 file changed, 11 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/squashfs-tools/action.c
|
||||
+++ b/squashfs-tools/action.c
|
||||
@@ -2415,9 +2415,17 @@ static char *get_start(char *s, int n)
|
||||
|
||||
static int subpathname_fn(struct atom *atom, struct action_data *action_data)
|
||||
{
|
||||
- return fnmatch(atom->argv[0], get_start(strdupa(action_data->subpath),
|
||||
- count_components(atom->argv[0])),
|
||||
- FNM_PATHNAME|FNM_EXTMATCH) == 0;
|
||||
+ char *s, *tmp;
|
||||
+ int ret;
|
||||
+
|
||||
+ s = tmp = strdup(action_data->subpath);
|
||||
+ tmp = get_start(tmp, count_components(atom->argv[0]));
|
||||
+
|
||||
+ ret = fnmatch(atom->argv[0], tmp, FNM_PATHNAME|FNM_EXTMATCH);
|
||||
+
|
||||
+ free(s);
|
||||
+
|
||||
+ return ret == 0;
|
||||
}
|
||||
|
||||
/*
|
@ -1,192 +0,0 @@
|
||||
From dbe9747b4f09bd2f4d63af06e55c2c3ed35bfca1 Mon Sep 17 00:00:00 2001
|
||||
From: Phillip Lougher <phillip@squashfs.org.uk>
|
||||
Date: Tue, 7 Feb 2023 23:09:30 +0000
|
||||
Subject: [PATCH] Don't use sigwaitinfo()/sigtimedwait() if not supported
|
||||
|
||||
If sigwaitinfo() and sigtimedwait() are not supported,
|
||||
use sigwait() instead.
|
||||
|
||||
This will disable the queue/caches dump if ^\ (SIGQUIT)
|
||||
is hit twice within a second.
|
||||
|
||||
But the queue/caches dump is still available if SIGHUP
|
||||
is sent to the program.
|
||||
|
||||
Currently this check is applied to MAC OS X. FreeBSD and
|
||||
NetBSD appear to have these functions.
|
||||
|
||||
Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
|
||||
---
|
||||
squashfs-tools/info.c | 25 ++-------------
|
||||
squashfs-tools/signals.h | 54 ++++++++++++++++++++++++++++++++
|
||||
squashfs-tools/unsquashfs_info.c | 25 ++-------------
|
||||
3 files changed, 60 insertions(+), 44 deletions(-)
|
||||
create mode 100644 squashfs-tools/signals.h
|
||||
|
||||
--- a/squashfs-tools/info.c
|
||||
+++ b/squashfs-tools/info.c
|
||||
@@ -2,7 +2,7 @@
|
||||
* Create a squashfs filesystem. This is a highly compressed read only
|
||||
* filesystem.
|
||||
*
|
||||
- * Copyright (c) 2013, 2014, 2019, 2021
|
||||
+ * Copyright (c) 2013, 2014, 2019, 2021, 2022, 2023
|
||||
* Phillip Lougher <phillip@squashfs.org.uk>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -42,6 +42,7 @@
|
||||
#include "mksquashfs_error.h"
|
||||
#include "progressbar.h"
|
||||
#include "caches-queues-lists.h"
|
||||
+#include "signals.h"
|
||||
|
||||
static int silent = 0;
|
||||
static struct dir_ent *ent = NULL;
|
||||
@@ -144,7 +145,6 @@ void dump_state()
|
||||
void *info_thrd(void *arg)
|
||||
{
|
||||
sigset_t sigmask;
|
||||
- struct timespec timespec = { .tv_sec = 1, .tv_nsec = 0 };
|
||||
int sig, waiting = 0;
|
||||
|
||||
sigemptyset(&sigmask);
|
||||
@@ -152,26 +152,7 @@ void *info_thrd(void *arg)
|
||||
sigaddset(&sigmask, SIGHUP);
|
||||
|
||||
while(1) {
|
||||
- if(waiting)
|
||||
- sig = sigtimedwait(&sigmask, NULL, ×pec);
|
||||
- else
|
||||
- sig = sigwaitinfo(&sigmask, NULL);
|
||||
-
|
||||
- if(sig == -1) {
|
||||
- switch(errno) {
|
||||
- case EAGAIN:
|
||||
- /* interval timed out */
|
||||
- waiting = 0;
|
||||
- /* FALLTHROUGH */
|
||||
- case EINTR:
|
||||
- /* if waiting, the wait will be longer, but
|
||||
- that's OK */
|
||||
- continue;
|
||||
- default:
|
||||
- BAD_ERROR("sigtimedwait/sigwaitinfo failed "
|
||||
- "because %s\n", strerror(errno));
|
||||
- }
|
||||
- }
|
||||
+ sig = wait_for_signal(&sigmask, &waiting);
|
||||
|
||||
if(sig == SIGQUIT && !waiting) {
|
||||
print_filename();
|
||||
--- /dev/null
|
||||
+++ b/squashfs-tools/signals.h
|
||||
@@ -0,0 +1,54 @@
|
||||
+#ifndef SIGNALS_H
|
||||
+#define SIGNALS_H
|
||||
+/*
|
||||
+ * Create a squashfs filesystem. This is a highly compressed read only
|
||||
+ * filesystem.
|
||||
+ *
|
||||
+ * Copyright (c) 2023
|
||||
+ * Phillip Lougher <phillip@squashfs.org.uk>
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License
|
||||
+ * as published by the Free Software Foundation; either version 2,
|
||||
+ * or (at your option) any later version.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
+ *
|
||||
+ * signals.h
|
||||
+ */
|
||||
+
|
||||
+static inline int wait_for_signal(sigset_t *sigmask, int *waiting)
|
||||
+{
|
||||
+ int sig;
|
||||
+
|
||||
+#if defined(__APPLE__) && defined(__MACH__)
|
||||
+ sigwait(sigmask, &sig);
|
||||
+ *waiting = 0;
|
||||
+#else
|
||||
+ struct timespec timespec = { .tv_sec = 1, .tv_nsec = 0 };
|
||||
+
|
||||
+ while(1) {
|
||||
+ if(*waiting)
|
||||
+ sig = sigtimedwait(sigmask, NULL, ×pec);
|
||||
+ else
|
||||
+ sig = sigwaitinfo(sigmask, NULL);
|
||||
+
|
||||
+ if(sig != -1)
|
||||
+ break;
|
||||
+
|
||||
+ if(errno == EAGAIN)
|
||||
+ *waiting = 0;
|
||||
+ else if(errno != EINTR)
|
||||
+ BAD_ERROR("sigtimedwait/sigwaitinfo failed because %s\n", strerror(errno));
|
||||
+ }
|
||||
+#endif
|
||||
+ return sig;
|
||||
+}
|
||||
+#endif
|
||||
--- a/squashfs-tools/unsquashfs_info.c
|
||||
+++ b/squashfs-tools/unsquashfs_info.c
|
||||
@@ -2,7 +2,7 @@
|
||||
* Create a squashfs filesystem. This is a highly compressed read only
|
||||
* filesystem.
|
||||
*
|
||||
- * Copyright (c) 2013, 2021
|
||||
+ * Copyright (c) 2013, 2021, 2023
|
||||
* Phillip Lougher <phillip@squashfs.org.uk>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -40,6 +40,7 @@
|
||||
#include "squashfs_fs.h"
|
||||
#include "unsquashfs.h"
|
||||
#include "unsquashfs_error.h"
|
||||
+#include "signals.h"
|
||||
|
||||
char *pathname = NULL;
|
||||
|
||||
@@ -96,7 +97,6 @@ void dump_state()
|
||||
void *info_thrd(void *arg)
|
||||
{
|
||||
sigset_t sigmask;
|
||||
- struct timespec timespec = { .tv_sec = 1, .tv_nsec = 0 };
|
||||
int sig, waiting = 0;
|
||||
|
||||
sigemptyset(&sigmask);
|
||||
@@ -104,26 +104,7 @@ void *info_thrd(void *arg)
|
||||
sigaddset(&sigmask, SIGHUP);
|
||||
|
||||
while(1) {
|
||||
- if(waiting)
|
||||
- sig = sigtimedwait(&sigmask, NULL, ×pec);
|
||||
- else
|
||||
- sig = sigwaitinfo(&sigmask, NULL);
|
||||
-
|
||||
- if(sig == -1) {
|
||||
- switch(errno) {
|
||||
- case EAGAIN:
|
||||
- /* interval timed out */
|
||||
- waiting = 0;
|
||||
- /* FALLTHROUGH */
|
||||
- case EINTR:
|
||||
- /* if waiting, the wait will be longer, but
|
||||
- that's OK */
|
||||
- continue;
|
||||
- default:
|
||||
- BAD_ERROR("sigtimedwait/sigwaitinfo failed "
|
||||
- "because %s\n", strerror(errno));
|
||||
- }
|
||||
- }
|
||||
+ sig = wait_for_signal(&sigmask, &waiting);
|
||||
|
||||
if(sig == SIGQUIT && !waiting) {
|
||||
if(pathname)
|
@ -1,49 +0,0 @@
|
||||
From b2f6454a2b2517cfba7a24cf02e9bdf3b959c86a Mon Sep 17 00:00:00 2001
|
||||
From: Tony Butler <spudz76@gmail.com>
|
||||
Date: Sat, 18 Feb 2023 13:20:48 -0800
|
||||
Subject: [PATCH] Move sysinfo.h into the linux-only section, should fix build
|
||||
on MacOS.
|
||||
|
||||
All compilers set `__linux__`, but `linux` may not be defined, and usage
|
||||
was mixed. Use `__linux__` everywhere instead.
|
||||
|
||||
Signed-off-by: Tony Butler <spudz76@gmail.com>
|
||||
---
|
||||
squashfs-tools/mksquashfs.c | 6 +++---
|
||||
squashfs-tools/unsquashfs.c | 2 +-
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/squashfs-tools/mksquashfs.c
|
||||
+++ b/squashfs-tools/mksquashfs.c
|
||||
@@ -50,9 +50,9 @@
|
||||
#include <sys/wait.h>
|
||||
#include <limits.h>
|
||||
#include <ctype.h>
|
||||
-#include <sys/sysinfo.h>
|
||||
|
||||
-#ifdef linux
|
||||
+#ifdef __linux__
|
||||
+#include <sys/sysinfo.h>
|
||||
#include <sched.h>
|
||||
#else
|
||||
#include <sys/sysctl.h>
|
||||
@@ -5081,7 +5081,7 @@ static void initialise_threads(int readq
|
||||
BAD_ERROR("Failed to set signal mask in intialise_threads\n");
|
||||
|
||||
if(processors == -1) {
|
||||
-#ifdef linux
|
||||
+#ifdef __linux__
|
||||
cpu_set_t cpu_set;
|
||||
CPU_ZERO(&cpu_set);
|
||||
|
||||
--- a/squashfs-tools/unsquashfs.c
|
||||
+++ b/squashfs-tools/unsquashfs.c
|
||||
@@ -2720,7 +2720,7 @@ void initialise_threads(int fragment_buf
|
||||
}
|
||||
|
||||
if(processors == -1) {
|
||||
-#ifdef linux
|
||||
+#ifdef __linux__
|
||||
cpu_set_t cpu_set;
|
||||
CPU_ZERO(&cpu_set);
|
||||
|
@ -1,26 +0,0 @@
|
||||
From dcf492077ef10ed7550b6e2b38b81318645bbdd5 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Sun, 19 Feb 2023 04:36:01 +0100
|
||||
Subject: [PATCH] Unsquashfs: fix compilation error for missing sysctl.h on
|
||||
macos
|
||||
|
||||
Currently the include of sys/sysctl.h is guarded and done only for
|
||||
FreeBSD system. Remove this to fix compilation error on macos following
|
||||
the same pattern done in mksquashfs.c
|
||||
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
---
|
||||
squashfs-tools/unsquashfs.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/squashfs-tools/unsquashfs.c
|
||||
+++ b/squashfs-tools/unsquashfs.c
|
||||
@@ -36,7 +36,7 @@
|
||||
#include <sched.h>
|
||||
#include <sys/sysinfo.h>
|
||||
#include <sys/sysmacros.h>
|
||||
-#elif defined __FreeBSD__
|
||||
+#else
|
||||
#include <sys/sysctl.h>
|
||||
#endif
|
||||
|
@ -1,37 +0,0 @@
|
||||
--- a/squashfs-tools/xattr.c
|
||||
+++ b/squashfs-tools/xattr.c
|
||||
@@ -115,6 +115,7 @@ int xattr_get_prefix(struct xattr_list *
|
||||
|
||||
static int read_xattrs_from_system(char *filename, struct xattr_list **xattrs)
|
||||
{
|
||||
+#if defined(linux)
|
||||
ssize_t size, vsize;
|
||||
char *xattr_names, *p;
|
||||
int i;
|
||||
@@ -227,6 +228,10 @@ failed:
|
||||
free(xattr_list);
|
||||
free(xattr_names);
|
||||
return 0;
|
||||
+#else
|
||||
+ *xattrs = NULL;
|
||||
+ return 0;
|
||||
+#endif
|
||||
}
|
||||
|
||||
|
||||
--- a/squashfs-tools/unsquashfs_xattr.c
|
||||
+++ b/squashfs-tools/unsquashfs_xattr.c
|
||||
@@ -36,6 +36,7 @@ extern int strict_errors;
|
||||
|
||||
int write_xattr(char *pathname, unsigned int xattr)
|
||||
{
|
||||
+#if defined(linux)
|
||||
unsigned int count;
|
||||
struct xattr_list *xattr_list;
|
||||
int i;
|
||||
@@ -147,4 +148,5 @@ int write_xattr(char *pathname, unsigned
|
||||
free_xattr(xattr_list, count);
|
||||
|
||||
return !failed;
|
||||
+#endif
|
||||
}
|
Loading…
Reference in New Issue
Block a user