diff --git a/build_patches/openwrt/0004-squashfs-Fix-compile-with-GCC-10.patch b/build_patches/openwrt/0004-squashfs-Fix-compile-with-GCC-10.patch new file mode 100644 index 0000000..f3d5966 --- /dev/null +++ b/build_patches/openwrt/0004-squashfs-Fix-compile-with-GCC-10.patch @@ -0,0 +1,47 @@ +From 1bbc1aa884902fd05cc579b53d68b2ba0b18683f Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Sun, 24 May 2020 12:23:31 +0200 +Subject: [PATCH] squashfs: Fix compile with GCC 10 + +Fixes the following build error with GCC 10: + /usr/bin/ld: read_fs.o:(.bss+0x0): multiple definition of `swap'; mksquashfs.o:(.bss+0x1b2a88): first defined here +And a compile warning. + +Fixes: FS#3104, FS#3119 +Signed-off-by: Hauke Mehrtens +--- + tools/squashfs/patches/140-gcc-10-fix.patch | 25 +++++++++++++++++++++ + 1 file changed, 25 insertions(+) + create mode 100644 tools/squashfs/patches/140-gcc-10-fix.patch + +diff --git a/tools/squashfs/patches/140-gcc-10-fix.patch b/tools/squashfs/patches/140-gcc-10-fix.patch +new file mode 100644 +index 00000000000..a02641f3072 +--- /dev/null ++++ b/tools/squashfs/patches/140-gcc-10-fix.patch +@@ -0,0 +1,25 @@ ++Fixes the following build error with GCC 10: ++ /usr/bin/ld: read_fs.o:(.bss+0x0): multiple definition of `swap'; mksquashfs.o:(.bss+0x1b2a88): first defined here ++And a compile warning. ++ ++--- a/squashfs-tools/read_fs.c +++++ b/squashfs-tools/read_fs.c ++@@ -61,7 +61,7 @@ extern int add_file(long long, long long ++ fprintf(stderr, s, ## args); \ ++ } while(0) ++ ++-int swap; +++static int swap; ++ ++ int read_block(int fd, long long start, long long *next, unsigned char *block, squashfs_super_block *sBlk) ++ { ++--- a/squashfs-tools/mksquashfs.c +++++ b/squashfs-tools/mksquashfs.c ++@@ -258,6 +258,7 @@ int read_sort_file(char *filename, int s ++ void sort_files_and_write(struct dir_info *dir); ++ struct file_info *duplicate(char *(get_next_file_block)(struct duplicate_buffer_handle *, unsigned int), struct duplicate_buffer_handle *file_start, long long bytes, unsigned int **block_list, long long *start, int blocks, struct fragment **fragment, char *frag_data, int frag_bytes); ++ struct dir_info *dir_scan1(char *, int (_readdir)(char *, char *, struct dir_info *)); +++int dir_scan2(squashfs_inode *inode, struct dir_info *dir_info); ++ ++ #define MKINODE(A) ((squashfs_inode)(((squashfs_inode) inode_bytes << 16) + (((char *)A) - data_cache))) ++