diff mbox series

[OpenWrt-Devel] tools: squashfskit4: fix build with GCC10

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

Commit Message

Robert Marko March 19, 2020, 11:22 a.m. UTC
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

Comments

Paul Spooren March 20, 2020, 9:09 p.m. UTC | #1
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
Robert Marko March 21, 2020, 11:39 a.m. UTC | #2
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
>
>
Alexander 'lynxis' Couzens March 21, 2020, 2:41 p.m. UTC | #3
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
Robert Marko March 22, 2020, 1:48 p.m. UTC | #4
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
Paul Spooren March 22, 2020, 7:39 p.m. UTC | #5
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 mbox series

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;