Message ID | 20200319112206.620246-1-robimarko@gmail.com |
---|---|
State | Accepted |
Delegated to: | Alexander Couzens |
Headers | show |
Series | [OpenWrt-Devel] tools: squashfskit4: fix build with GCC10 | expand |
Hi, wan't squashfskit4 created as a workaround for an inactive upstream maintainer? Wouldn't it make sense to move back to upstream now that it is more up to date than our fork? Best, Paul On Thu Mar 19, 2020 at 2:22 AM PST, Robert Marko wrote: > From: Robert Marko <robert.marko@sartura.hr> > > In order to build squashfskit with GCC10, this backport from upstream is > needed. > > Signed-off-by: Robert Marko <robert.marko@sartura.hr> > --- > ...002-fix-build-failure-against-gcc-10.patch | 43 +++++++++++++++++++ > 1 file changed, 43 insertions(+) > create mode 100644 > tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch > > diff --git > a/tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch > b/tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch > new file mode 100644 > index 0000000000..46c6a5ea0f > --- /dev/null > +++ > b/tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch > @@ -0,0 +1,43 @@ > +From fe2f5da4b0f8994169c53e84b7cb8a0feefc97b5 Mon Sep 17 00:00:00 2001 > +From: Sergei Trofimovich <slyfox@gentoo.org> > +Date: Sun, 26 Jan 2020 18:35:13 +0000 > +Subject: [PATCH] squashfs-tools: fix build failure against gcc-10 > +MIME-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > +On gcc-10 (and gcc-9 -fno-common) build fails as: > + > +``` > +cc ... -o mksquashfs > +ld: read_fs.o:(.bss+0x0): > + multiple definition of `fwriter_buffer'; mksquashfs.o:(.bss+0x400c90): > first defined here > +ld: read_fs.o:(.bss+0x8): > + multiple definition of `bwriter_buffer'; mksquashfs.o:(.bss+0x400c98): > first defined here > +``` > + > +gcc-10 will change the default from -fcommon to fno-common: > +https://gcc.gnu.org/PR85678. > + > +The error also happens if CFLAGS=-fno-common passed explicitly. > + > +Reported-by: Toralf Förster > +Bug: https://bugs.gentoo.org/706456 > +Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> > +--- > + squashfs-tools/mksquashfs.h | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h > +index 1beefef7..b6503063 100644 > +--- a/squashfs-tools/mksquashfs.h > ++++ b/squashfs-tools/mksquashfs.h > +@@ -143,7 +143,7 @@ struct append_file { > + #endif > + > + extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache; > +-struct cache *bwriter_buffer, *fwriter_buffer; > ++extern struct cache *bwriter_buffer, *fwriter_buffer; > + extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer, > + *to_frag, *locked_fragment, *to_process_frag; > + extern struct append_file **file_mapping; > -- > 2.26.0.rc2 > > > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
On Fri, Mar 20, 2020 at 10:11 PM Paul Spooren <mail@aparcar.org> wrote: > Hi, > > wan't squashfskit4 created as a workaround for an inactive upstream > maintainer? Wouldn't it make sense to move back to upstream now that it > is more up to date than our fork? > > Best, > Paul > Sorry, I did not know about that situation but after a look it seems that squashfs-tools is more up to date that the fork. There has been a 4.4 release and couple of patches each month to it. > > On Thu Mar 19, 2020 at 2:22 AM PST, Robert Marko wrote: > > From: Robert Marko <robert.marko@sartura.hr> > > > > In order to build squashfskit with GCC10, this backport from upstream is > > needed. > > > > Signed-off-by: Robert Marko <robert.marko@sartura.hr> > > --- > > ...002-fix-build-failure-against-gcc-10.patch | 43 +++++++++++++++++++ > > 1 file changed, 43 insertions(+) > > create mode 100644 > > tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch > > > > diff --git > > a/tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch > > b/tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch > > new file mode 100644 > > index 0000000000..46c6a5ea0f > > --- /dev/null > > +++ > > b/tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch > > @@ -0,0 +1,43 @@ > > +From fe2f5da4b0f8994169c53e84b7cb8a0feefc97b5 Mon Sep 17 00:00:00 2001 > > +From: Sergei Trofimovich <slyfox@gentoo.org> > > +Date: Sun, 26 Jan 2020 18:35:13 +0000 > > +Subject: [PATCH] squashfs-tools: fix build failure against gcc-10 > > +MIME-Version: 1.0 > > +Content-Type: text/plain; charset=UTF-8 > > +Content-Transfer-Encoding: 8bit > > + > > +On gcc-10 (and gcc-9 -fno-common) build fails as: > > + > > +``` > > +cc ... -o mksquashfs > > +ld: read_fs.o:(.bss+0x0): > > + multiple definition of `fwriter_buffer'; mksquashfs.o:(.bss+0x400c90): > > first defined here > > +ld: read_fs.o:(.bss+0x8): > > + multiple definition of `bwriter_buffer'; mksquashfs.o:(.bss+0x400c98): > > first defined here > > +``` > > + > > +gcc-10 will change the default from -fcommon to fno-common: > > +https://gcc.gnu.org/PR85678. > > + > > +The error also happens if CFLAGS=-fno-common passed explicitly. > > + > > +Reported-by: Toralf Förster > > +Bug: https://bugs.gentoo.org/706456 > > +Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> > > +--- > > + squashfs-tools/mksquashfs.h | 2 +- > > + 1 file changed, 1 insertion(+), 1 deletion(-) > > + > > +diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h > > +index 1beefef7..b6503063 100644 > > +--- a/squashfs-tools/mksquashfs.h > > ++++ b/squashfs-tools/mksquashfs.h > > +@@ -143,7 +143,7 @@ struct append_file { > > + #endif > > + > > + extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache; > > +-struct cache *bwriter_buffer, *fwriter_buffer; > > ++extern struct cache *bwriter_buffer, *fwriter_buffer; > > + extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer, > > + *to_frag, *locked_fragment, *to_process_frag; > > + extern struct append_file **file_mapping; > > -- > > 2.26.0.rc2 > > > > > > _______________________________________________ > > openwrt-devel mailing list > > openwrt-devel@lists.openwrt.org > > https://lists.openwrt.org/mailman/listinfo/openwrt-devel > >
Hi Paul, Hi Robert, > Sorry, I did not know about that situation but after a look it seems > that squashfs-tools is more up to date that the fork. > There has been a 4.4 release and couple of patches each month to it. you're right! I would like to discontinue squashfskit. It had it's reason, but there are now 2 options: a) the upstream is more active and even made it reproducible b) there is a full rewrite squashfs-ng For now, I'll test the patch und merge it later. Maybe I'll also have the time evaluate the upstream and squashfs-ng. Best Regards, lynxis
On Sat, Mar 21, 2020 at 3:41 PM Alexander 'lynxis' Couzens <lynxis@fe80.eu> wrote: > > Hi Paul, > Hi Robert, > > > Sorry, I did not know about that situation but after a look it seems > > that squashfs-tools is more up to date that the fork. > > There has been a 4.4 release and couple of patches each month to it. > > you're right! I would like to discontinue squashfskit. It had it's > reason, but there are now 2 options: > > a) the upstream is more active and even made it reproducible > b) there is a full rewrite squashfs-ng > > For now, I'll test the patch und merge it later. Maybe I'll also have > the time evaluate the upstream and squashfs-ng. > > Best Regards, > lynxis Thanks, is there a chance for you to take a look at GCC10 detection patch too? https://patchwork.ozlabs.org/patch/1257707/ Robert > > > -- > Alexander Couzens > > mail: lynxis@fe80.eu > jabber: lynxis@fe80.eu > gpg: 390D CF78 8BF9 AA50 4F8F F1E2 C29E 9DA6 A0DF 8604
On Sat Mar 21, 2020 at 5:41 AM PST, Alexander 'lynxis' Couzens wrote: > Hi Paul, > Hi Robert, > > > Sorry, I did not know about that situation but after a look it seems > > that squashfs-tools is more up to date that the fork. > > There has been a 4.4 release and couple of patches each month to it. > > you're right! I would like to discontinue squashfskit. It had it's > reason, but there are now 2 options: > > a) the upstream is more active and even made it reproducible > b) there is a full rewrite squashfs-ng Long time ago I created a patch to use quashfs-ng as a full replacement of squashfskit/squashfs-tools. It is not fully implemented but maybe somebody wants to use it as an inspriation for further testing. https://github.com/aparcar/openwrt/pull/1 > For now, I'll test the patch und merge it later. Maybe I'll also have > the time evaluate the upstream and squashfs-ng. Best, Paul
diff --git a/tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch b/tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch new file mode 100644 index 0000000000..46c6a5ea0f --- /dev/null +++ b/tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch @@ -0,0 +1,43 @@ +From fe2f5da4b0f8994169c53e84b7cb8a0feefc97b5 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyfox@gentoo.org> +Date: Sun, 26 Jan 2020 18:35:13 +0000 +Subject: [PATCH] squashfs-tools: fix build failure against gcc-10 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On gcc-10 (and gcc-9 -fno-common) build fails as: + +``` +cc ... -o mksquashfs +ld: read_fs.o:(.bss+0x0): + multiple definition of `fwriter_buffer'; mksquashfs.o:(.bss+0x400c90): first defined here +ld: read_fs.o:(.bss+0x8): + multiple definition of `bwriter_buffer'; mksquashfs.o:(.bss+0x400c98): first defined here +``` + +gcc-10 will change the default from -fcommon to fno-common: +https://gcc.gnu.org/PR85678. + +The error also happens if CFLAGS=-fno-common passed explicitly. + +Reported-by: Toralf Förster +Bug: https://bugs.gentoo.org/706456 +Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> +--- + squashfs-tools/mksquashfs.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h +index 1beefef7..b6503063 100644 +--- a/squashfs-tools/mksquashfs.h ++++ b/squashfs-tools/mksquashfs.h +@@ -143,7 +143,7 @@ struct append_file { + #endif + + extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache; +-struct cache *bwriter_buffer, *fwriter_buffer; ++extern struct cache *bwriter_buffer, *fwriter_buffer; + extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer, + *to_frag, *locked_fragment, *to_process_frag; + extern struct append_file **file_mapping;