unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#61119] [PATCH core-updates 0/1] gnu: p7zip: Fix build with GCC 11.
@ 2023-01-28 12:57 Simon South
  2023-01-28 12:59 ` [bug#61119] [PATCH core-updates 1/1] " Simon South
  0 siblings, 1 reply; 3+ messages in thread
From: Simon South @ 2023-01-28 12:57 UTC (permalink / raw)
  To: 61119

On core-updates, p7zip is failing to build with error messages like

  ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an
  operand of type ‘bool’ in ‘operator++’ is forbidden in C++17
    308 |           numMethods++;
        |           ^~~~~~~~~~

This follows from the move to GCC 11 and its use by default of the GNU dialect
of the C++17 standard for interpreting C++ code.  (Note p7zip is essentially
abandoned and its code is aging.)

The patch to follow causes GCC to use the GNU dialect of the C++14 standard
instead, as GCC 10 did by default, reducing the error messages to warnings and
allowing the build to complete.

I've tested this on x86-64 and AArch64 and everything seems fine.

--
Simon South
simon@simonsouth.net


Simon South (1):
  gnu: p7zip: Fix build with GCC 11.

 gnu/local.mk                                  |  1 +
 gnu/packages/compression.scm                  |  1 +
 .../patches/p7zip-fix-build-with-gcc-11.patch | 49 +++++++++++++++++++
 3 files changed, 51 insertions(+)
 create mode 100644 gnu/packages/patches/p7zip-fix-build-with-gcc-11.patch


base-commit: 770d379d7b60590bfdcb749287cb6713dee093ce
prerequisite-patch-id: 418e6f2f834e0f77d4da64e48bf654d610fbfe80
-- 
2.39.1





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [bug#61119] [PATCH core-updates 1/1] gnu: p7zip: Fix build with GCC 11.
  2023-01-28 12:57 [bug#61119] [PATCH core-updates 0/1] gnu: p7zip: Fix build with GCC 11 Simon South
@ 2023-01-28 12:59 ` Simon South
  2023-03-04 16:30   ` bug#61119: [PATCH core-updates 0/1] " Ludovic Courtès
  0 siblings, 1 reply; 3+ messages in thread
From: Simon South @ 2023-01-28 12:59 UTC (permalink / raw)
  To: 61119

* gnu/packages/patches/p7zip-fix-build-with-gcc-11.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/compression.scm (p7zip)[source]: Apply it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/compression.scm                  |  1 +
 .../patches/p7zip-fix-build-with-gcc-11.patch | 49 +++++++++++++++++++
 3 files changed, 51 insertions(+)
 create mode 100644 gnu/packages/patches/p7zip-fix-build-with-gcc-11.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 8821c3fd8b..3dbad5b439 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1596,6 +1596,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/owncloud-disable-updatecheck.patch	\
   %D%/packages/patches/p7zip-CVE-2016-9296.patch		\
   %D%/packages/patches/p7zip-CVE-2017-17969.patch		\
+  %D%/packages/patches/p7zip-fix-build-with-gcc-11.patch	\
   %D%/packages/patches/p7zip-remove-unused-code.patch		\
   %D%/packages/patches/pam-krb5-CVE-2020-10595.patch		\
   %D%/packages/patches/pango-skip-libthai-test.patch		\
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index e1f47d1e3e..a555d2d319 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -1312,6 +1312,7 @@ (define-public p7zip
                      "switch(static_cast<HRESULT>(errorCode)) {"))))
               (patches (search-patches "p7zip-CVE-2016-9296.patch"
                                        "p7zip-CVE-2017-17969.patch"
+                                       "p7zip-fix-build-with-gcc-11.patch"
                                        "p7zip-remove-unused-code.patch"))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/patches/p7zip-fix-build-with-gcc-11.patch b/gnu/packages/patches/p7zip-fix-build-with-gcc-11.patch
new file mode 100644
index 0000000000..20a40488d8
--- /dev/null
+++ b/gnu/packages/patches/p7zip-fix-build-with-gcc-11.patch
@@ -0,0 +1,49 @@
+Building p7zip with GCC 11 or newer normally fails with error messages like
+
+  ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an
+  operand of type ‘bool’ in ‘operator++’ is forbidden in C++17
+    308 |           numMethods++;
+        |           ^~~~~~~~~~
+
+This patch causes GCC to interpret the code using the GNU dialect of the C++14
+standard, as GCC 10 did by default, and reduces these errors to warnings.
+
+diff --git a/makefile.linux_amd64_asm b/makefile.linux_amd64_asm
+index 075c6a8..b7d73ee 100644
+--- a/makefile.linux_amd64_asm
++++ b/makefile.linux_amd64_asm
+@@ -11,6 +11,8 @@ ALLFLAGS=-m64 ${OPTFLAGS} -pipe \
+ 	-D_7ZIP_ASM \
+ 	$(LOCAL_FLAGS)
+ 
++ALLFLAGS_CPP=-std=gnu++14
++
+ CXX=g++
+ CC=gcc
+ CC_SHARED=-fPIC
+diff --git a/makefile.linux_any_cpu_gcc_4.X b/makefile.linux_any_cpu_gcc_4.X
+index be093b5..c0f3120 100644
+--- a/makefile.linux_any_cpu_gcc_4.X
++++ b/makefile.linux_any_cpu_gcc_4.X
+@@ -10,7 +10,7 @@ ALLFLAGS=${OPTFLAGS} -pipe \
+ 	-D_7ZIP_LARGE_PAGES \
+ 	$(LOCAL_FLAGS)
+ 
+-ALLFLAGS_CPP=-DENV_HAVE_GCCVISIBILITYPATCH -fvisibility=hidden -fvisibility-inlines-hidden
++ALLFLAGS_CPP=-DENV_HAVE_GCCVISIBILITYPATCH -std=gnu++14 -fvisibility=hidden -fvisibility-inlines-hidden
+ 
+ CXX=g++
+ CC=gcc
+diff --git a/makefile.linux_x86_asm_gcc_4.X b/makefile.linux_x86_asm_gcc_4.X
+index 1ac339b..6e736d9 100644
+--- a/makefile.linux_x86_asm_gcc_4.X
++++ b/makefile.linux_x86_asm_gcc_4.X
+@@ -12,7 +12,7 @@ ALLFLAGS=${OPTFLAGS} -pipe -m32 \
+ 	-D_7ZIP_ASM \
+ 	$(LOCAL_FLAGS)
+ 
+-ALLFLAGS_CPP=-DENV_HAVE_GCCVISIBILITYPATCH -fvisibility=hidden -fvisibility-inlines-hidden
++ALLFLAGS_CPP=-DENV_HAVE_GCCVISIBILITYPATCH -std=gnu++14 -fvisibility=hidden -fvisibility-inlines-hidden
+ 
+ CXX=g++
+ CC=gcc
-- 
2.39.1





^ permalink raw reply related	[flat|nested] 3+ messages in thread

* bug#61119: [PATCH core-updates 0/1] gnu: p7zip: Fix build with GCC 11.
  2023-01-28 12:59 ` [bug#61119] [PATCH core-updates 1/1] " Simon South
@ 2023-03-04 16:30   ` Ludovic Courtès
  0 siblings, 0 replies; 3+ messages in thread
From: Ludovic Courtès @ 2023-03-04 16:30 UTC (permalink / raw)
  To: Simon South; +Cc: 61119-done

Hi,

Simon South <simon@simonsouth.net> skribis:

> * gnu/packages/patches/p7zip-fix-build-with-gcc-11.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.
> * gnu/packages/compression.scm (p7zip)[source]: Apply it.

Applied, thanks!

Ludo’.




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-03-04 16:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-28 12:57 [bug#61119] [PATCH core-updates 0/1] gnu: p7zip: Fix build with GCC 11 Simon South
2023-01-28 12:59 ` [bug#61119] [PATCH core-updates 1/1] " Simon South
2023-03-04 16:30   ` bug#61119: [PATCH core-updates 0/1] " Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).