GNU bug report logs - #68212
[PATCH] gnu: openssh: fix build on ppc64le.

Previous Next

Package: guix-patches;

Reported by: Jack Hill <jackhill <at> jackhill.us>

Date: Tue, 2 Jan 2024 16:54:01 UTC

Severity: normal

To reply to this bug, email your comments to 68212 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to marcel <at> van-der-boom.nl, john.kehayias <at> protonmail.com, efraim <at> flashner.co.il, guix-patches <at> gnu.org:
bug#68212; Package guix-patches. (Tue, 02 Jan 2024 16:54:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jack Hill <jackhill <at> jackhill.us>:
New bug report received and forwarded. Copy sent to marcel <at> van-der-boom.nl, john.kehayias <at> protonmail.com, efraim <at> flashner.co.il, guix-patches <at> gnu.org. (Tue, 02 Jan 2024 16:54:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jack Hill <jackhill <at> jackhill.us>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: openssh: fix build one ppc64le.
Date: Tue,  2 Jan 2024 11:53:28 -0500
* gnu/packages/ssh.scm (openssh)[source]:
Use 'openssh-gcc-13-ppc64le-fzero-call-used-regs.patch'.
* gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Reported by Marcel van der Boom <marcel <at> van-der-boom.nl>.

Change-Id: I41b1350b2cdd1487a8fd69b13b64f63c0dc166c9
---
 gnu/local.mk                                  |  1 +
 ...-gcc-13-ppc64le-fzero-call-used-regs.patch | 61 +++++++++++++++++++
 gnu/packages/ssh.scm                          |  5 +-
 3 files changed, 66 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 4b2393bfdd..b52134e34e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1735,6 +1735,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch	\
   %D%/packages/patches/openjdk-21-fix-rpath.patch		\
   %D%/packages/patches/openmpi-mtl-priorities.patch		\
+  %D%/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch	\
   %D%/packages/patches/openssh-trust-guix-store-directory.patch	\
   %D%/packages/patches/openresolv-restartcmd-guix.patch	\
   %D%/packages/patches/openrgb-unbundle-hueplusplus.patch	\
diff --git a/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch b/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch
new file mode 100644
index 0000000000..1af9868b9a
--- /dev/null
+++ b/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch
@@ -0,0 +1,61 @@
+From 1036d77b34a5fa15e56f516b81b9928006848cbd Mon Sep 17 00:00:00 2001
+From: Damien Miller <djm <at> mindrot.org>
+Date: Fri, 22 Dec 2023 17:56:26 +1100
+Subject: [PATCH] better detection of broken -fzero-call-used-regs
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gcc 13.2.0 on ppc64le refuses to compile some function, including
+cipher.c:compression_alg_list() with an error:
+
+> sorry, unimplemented: argument ‘used’ is not supportedcw
+> for ‘-fzero-call-used-regs’ on this target
+
+This extends the autoconf will-it-work test with a similarly-
+structured function that seems to catch this.
+
+Spotted/tested by Colin Watson; bz3645
+---
+
+Taken from upsteam, and for Guix by jackhill <at> jackhill.us
+Thanks Marcel van der Boom for noticing: https://issues.guix.gnu.org/67948#2
+
+m4/openssh.m4 | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/m4/openssh.m4 b/m4/openssh.m4
+index 5d4c56280..033df501c 100644
+--- a/m4/openssh.m4
++++ b/m4/openssh.m4
+@@ -20,18 +20,24 @@ char *f2(char *s, ...) {
+ 	va_end(args);
+ 	return strdup(ret);
+ }
++const char *f3(int s) {
++	return s ? "good" : "gooder";
++}
+ int main(int argc, char **argv) {
+-	(void)argv;
+ 	char b[256], *cp;
++	const char *s;
+ 	/* Some math to catch -ftrapv problems in the toolchain */
+ 	int i = 123 * argc, j = 456 + argc, k = 789 - argc;
+ 	float l = i * 2.1;
+ 	double m = l / 0.5;
+ 	long long int n = argc * 12345LL, o = 12345LL * (long long int)argc;
++	(void)argv;
+ 	f(1);
+-	snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o);
++	s = f3(f(2));
++	snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s);
+ 	if (write(1, b, 0) == -1) exit(0);
+-	cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o);
++	cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s);
++	if (write(1, cp, 0) == -1) exit(0);
+ 	free(cp);
+ 	/*
+ 	 * Test fallthrough behaviour.  clang 10's -Wimplicit-fallthrough does
+-- 
+2.41.0
+
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 0b364bbe90..e33a18f408 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -204,7 +204,10 @@ (define-public openssh
       (method url-fetch)
       (uri (string-append "mirror://openbsd/OpenSSH/portable/"
                           "openssh-" version ".tar.gz"))
-      (patches (search-patches "openssh-trust-guix-store-directory.patch"))
+      (patches (search-patches "openssh-trust-guix-store-directory.patch"
+                               ;; Can be removed with next openssh update
+                               ;; https://issues.guix.gnu.org/67948#2
+                               "openssh-gcc-13-ppc64le-fzero-call-used-regs.patch"))
       (sha256
        (base32 "0z3pgam8b4z05lvdb78iv06p204qwl7b94a3cnnwba2mfb0120li"))))
    (build-system gnu-build-system)

base-commit: 8f03c69b428923dc4d51cda23b10aa7fa7d89f05
-- 
2.41.0





Information forwarded to marcel <at> van-der-boom.nl, john.kehayias <at> protonmail.com, efraim <at> flashner.co.il, guix-patches <at> gnu.org:
bug#68212; Package guix-patches. (Tue, 02 Jan 2024 16:56:01 GMT) Full text and rfc822 format available.

Message #8 received at 68212 <at> debbugs.gnu.org (full text, mbox):

From: Jack Hill <jackhill <at> jackhill.us>
To: 68212 <at> debbugs.gnu.org
Subject: [PATCH v2] gnu: openssh: fix build on ppc64le.
Date: Tue,  2 Jan 2024 11:54:46 -0500
* gnu/packages/ssh.scm (openssh)[source]:
Use 'openssh-gcc-13-ppc64le-fzero-call-used-regs.patch'.
* gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Reported by Marcel van der Boom <marcel <at> van-der-boom.nl>.

Change-Id: I41b1350b2cdd1487a8fd69b13b64f63c0dc166c9
---

v2: fix typo in commit message

 gnu/local.mk                                  |  1 +
 ...-gcc-13-ppc64le-fzero-call-used-regs.patch | 61 +++++++++++++++++++
 gnu/packages/ssh.scm                          |  5 +-
 3 files changed, 66 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 4b2393bfdd..b52134e34e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1735,6 +1735,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch	\
   %D%/packages/patches/openjdk-21-fix-rpath.patch		\
   %D%/packages/patches/openmpi-mtl-priorities.patch		\
+  %D%/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch	\
   %D%/packages/patches/openssh-trust-guix-store-directory.patch	\
   %D%/packages/patches/openresolv-restartcmd-guix.patch	\
   %D%/packages/patches/openrgb-unbundle-hueplusplus.patch	\
diff --git a/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch b/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch
new file mode 100644
index 0000000000..1af9868b9a
--- /dev/null
+++ b/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch
@@ -0,0 +1,61 @@
+From 1036d77b34a5fa15e56f516b81b9928006848cbd Mon Sep 17 00:00:00 2001
+From: Damien Miller <djm <at> mindrot.org>
+Date: Fri, 22 Dec 2023 17:56:26 +1100
+Subject: [PATCH] better detection of broken -fzero-call-used-regs
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gcc 13.2.0 on ppc64le refuses to compile some function, including
+cipher.c:compression_alg_list() with an error:
+
+> sorry, unimplemented: argument ‘used’ is not supportedcw
+> for ‘-fzero-call-used-regs’ on this target
+
+This extends the autoconf will-it-work test with a similarly-
+structured function that seems to catch this.
+
+Spotted/tested by Colin Watson; bz3645
+---
+
+Taken from upsteam, and for Guix by jackhill <at> jackhill.us
+Thanks Marcel van der Boom for noticing: https://issues.guix.gnu.org/67948#2
+
+m4/openssh.m4 | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/m4/openssh.m4 b/m4/openssh.m4
+index 5d4c56280..033df501c 100644
+--- a/m4/openssh.m4
++++ b/m4/openssh.m4
+@@ -20,18 +20,24 @@ char *f2(char *s, ...) {
+ 	va_end(args);
+ 	return strdup(ret);
+ }
++const char *f3(int s) {
++	return s ? "good" : "gooder";
++}
+ int main(int argc, char **argv) {
+-	(void)argv;
+ 	char b[256], *cp;
++	const char *s;
+ 	/* Some math to catch -ftrapv problems in the toolchain */
+ 	int i = 123 * argc, j = 456 + argc, k = 789 - argc;
+ 	float l = i * 2.1;
+ 	double m = l / 0.5;
+ 	long long int n = argc * 12345LL, o = 12345LL * (long long int)argc;
++	(void)argv;
+ 	f(1);
+-	snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o);
++	s = f3(f(2));
++	snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s);
+ 	if (write(1, b, 0) == -1) exit(0);
+-	cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o);
++	cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s);
++	if (write(1, cp, 0) == -1) exit(0);
+ 	free(cp);
+ 	/*
+ 	 * Test fallthrough behaviour.  clang 10's -Wimplicit-fallthrough does
+-- 
+2.41.0
+
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 0b364bbe90..e33a18f408 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -204,7 +204,10 @@ (define-public openssh
       (method url-fetch)
       (uri (string-append "mirror://openbsd/OpenSSH/portable/"
                           "openssh-" version ".tar.gz"))
-      (patches (search-patches "openssh-trust-guix-store-directory.patch"))
+      (patches (search-patches "openssh-trust-guix-store-directory.patch"
+                               ;; Can be removed with next openssh update
+                               ;; https://issues.guix.gnu.org/67948#2
+                               "openssh-gcc-13-ppc64le-fzero-call-used-regs.patch"))
       (sha256
        (base32 "0z3pgam8b4z05lvdb78iv06p204qwl7b94a3cnnwba2mfb0120li"))))
    (build-system gnu-build-system)

base-commit: 8f03c69b428923dc4d51cda23b10aa7fa7d89f05
-- 
2.41.0





Changed bug title to '[PATCH] gnu: openssh: fix build on ppc64le.' from '[PATCH] gnu: openssh: fix build one ppc64le.' Request was from Jack Hill <jackhill <at> jackhill.us> to control <at> debbugs.gnu.org. (Tue, 02 Jan 2024 16:57:03 GMT) Full text and rfc822 format available.

Reply sent to Jack Hill <jackhill <at> jackhill.us>:
You have taken responsibility. (Wed, 17 Jan 2024 17:09:02 GMT) Full text and rfc822 format available.

Notification sent to Jack Hill <jackhill <at> jackhill.us>:
bug acknowledged by developer. (Wed, 17 Jan 2024 17:09:02 GMT) Full text and rfc822 format available.

Message #15 received at 68212-done <at> debbugs.gnu.org (full text, mbox):

From: Jack Hill <jackhill <at> jackhill.us>
To: 68212-done <at> debbugs.gnu.org
Cc: John Kehayias <john.kehayias <at> protonmail.com>,
 Ludovic Courtès <ludo <at> gnu.org>,
 Marcel van der Boom <marcel <at> van-der-boom.nl>,
 Efraim Flashner <efraim <at> flashner.co.il>
Subject: Re: [bug#68212] [PATCH v2] gnu: openssh: fix build on ppc64le.
Date: Wed, 17 Jan 2024 12:07:54 -0500 (EST)
[Message part 1 (text/plain, inline)]
This was applied to master by Ludo’ in 
ef270f9d73203c1b19c6163ce4d4257a52bfb605

Thanks and closing!

Best,
Jack

Information forwarded to guix-patches <at> gnu.org:
bug#68212; Package guix-patches. (Thu, 18 Jan 2024 09:23:01 GMT) Full text and rfc822 format available.

Message #18 received at 68212 <at> debbugs.gnu.org (full text, mbox):

From: Marcel van der Boom <marcel <at> van-der-boom.nl>
To: Jack Hill <jackhill <at> jackhill.us>
Cc: John Kehayias <john.kehayias <at> protonmail.com>, 68212 <at> debbugs.gnu.org,
 Ludovic Courtès <ludo <at> gnu.org>,
 Efraim Flashner <efraim <at> flashner.co.il>
Subject: Re: [bug#68212] [PATCH v2] gnu: openssh: fix build on ppc64le.
Date: Thu, 18 Jan 2024 10:22:10 +0100
This still fails for me, and apparently also on the build farm:

https://ci.guix.gnu.org/build/3266550/details

if I am reading it properly that build is after the described 
patch. The log has the same error as I have locally when building 
openssh

Interestingly, since the openssh release I have this in my 
manifest which *succeeds* in building openssh:


(define-public openssh-next
 (let ((xcommit "1036d77b34a5fa15e56f516b81b9928006848cbd"))
   (package
    (inherit openssh)
    (name "openssh-next")
    (version "9.6p1-1")
    (native-inputs
     (list autoconf
           automake
           pkg-config))
    (source
     (origin
      (method git-fetch)
      (uri (git-reference
            (url 
            "https://github.com/openssh/openssh-portable.git")
            (commit xcommit)))
      (file-name (git-file-name name version))
      (patches (search-patches 
      "openssh-trust-guix-store-directory.patch"))
      (sha256
       (base32 
       "1sary1ig972l4zjvpzncf9whfp5ab8snff2fw9sy5a8pda5n2a7w")))))))

This just refers to the commit that holds the patch, so in theory 
it should be the same as the applied patch, no?

Am I overlooking something?



[Jack Hill]:
> This was applied to master by Ludo’ in 
> ef270f9d73203c1b19c6163ce4d4257a52bfb605

> Thanks and closing!

> Best,
> Jack

--
Marcel van der Boom → marcel <at> van-der-boom.nl




Did not alter fixed versions and reopened. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 29 Jan 2024 07:53:02 GMT) Full text and rfc822 format available.

Removed tag(s) patch. Request was from Marcel van der Boom <marcel <at> hsdev.com> to control <at> debbugs.gnu.org. (Mon, 29 Jan 2024 18:01:02 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 137 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.