[PATCH] gnu: (cross-gcc-arguments|gcc-boot0): Enable 128 bit long double for POWER9.

DoneSubmitted by dftxbs3e.
Details
3 participants
  • dftxbs3e
  • Ludovic Courtès
  • Tobias Geerinckx-Rice
Owner
unassigned
Severity
normal
D
D
dftxbs3e wrote on 2 Dec 2019 20:20
(address . guix-patches@gnu.org)
9d5aee30-1cfe-434b-f191-3bbd06caa319@free.fr
Hello,
This is to be applied against core-updates and fixes:
$ guix build --target=powerpc64le-linux-gnu bootstrap-tarballs
dftxbs3e
From dcbd3a812038fbc1a229836a850f529aa35b45c8 Mon Sep 17 00:00:00 2001From: dftxbs3e <dftxbs3e@free.fr>Date: Mon, 2 Dec 2019 20:02:24 +0100Subject: [PATCH 2/2] gnu: cross-gcc-arguments: Enable 128 bit long double for POWER9.
--- gnu/packages/cross-base.scm | 3 +++ 1 file changed, 3 insertions(+)
Toggle diff (16 lines)diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scmindex 13237fb8a8..e60a8ed03a 100644--- a/gnu/packages/cross-base.scm+++ b/gnu/packages/cross-base.scm@@ -150,6 +150,9 @@ base compiler and using LIBC (which may be either a libc package or #f.)" "--disable-decimal-float" ;would need libc "--disable-libcilkrts" + ;; On POWER9 (little endian) glibc needs the 128 bit long double type.+ "--with-long-double-128"+ ;; When target is any OS other than 'none' these ;; libraries will fail if there is no libc ;; present. See-- 2.21.0
From 87b30dcb90572bd46c8eb087efe7d75db362f59b Mon Sep 17 00:00:00 2001From: dftxbs3e <dftxbs3e@free.fr>Date: Mon, 2 Dec 2019 19:58:19 +0100Subject: [PATCH 1/2] gnu: gcc-boot0: Enable 128 bit long double for POWER9.
--- gnu/packages/commencement.scm | 3 +++ 1 file changed, 3 insertions(+)
Toggle diff (16 lines)diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scmindex 8bf7704598..bfdba4dbd2 100644--- a/gnu/packages/commencement.scm+++ b/gnu/packages/commencement.scm@@ -1576,6 +1576,9 @@ exec " gcc "/bin/" program "--disable-shared" "--enable-languages=c,c++" + ;; On POWER9 (little endian) glibc needs the 128 bit long double type.+ "--with-long-double-128"+ ;; libstdc++ cannot be built at this stage ;; ("Link tests are not allowed after ;; GCC_NO_EXECUTABLES.").-- 2.21.0
T
T
Tobias Geerinckx-Rice wrote on 2 Dec 2019 20:57
(address . 38459@debbugs.gnu.org)
87h82its9y.fsf@nckx
dftxbs3e,
dftxbs3e 写道:
Toggle quote (4 lines)> This is to be applied against core-updates and fixes:>> $ guix build --target=powerpc64le-linux-gnu bootstrap-tarballs
Thanks for sending this in! I'll be sure to merge it if no one else has objections.
I'm really not familiar with this part of Guix, though. I'd naively expect this to be guarded with an (if …) so it only applies to POWER. (Why) is that not possible or desirable?
Kind regards,
T G-R
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEfo+u0AlEeO9y5k0W2Imw8BjFSTwFAl3lbJkACgkQ2Imw8BjFSTxwORAAileDBPaaiYhdFu37sCcBQlE7Ays+tgR2BL3DnQh0qdUYFJgciXNQTpFKTbJ1TwwsvU7chjkrhQCkBzNvaKA7ZLMst0l6XblTTtl1qLR+ylR8Qti9pCRrg763vp1Ss3MQqgYMLLjziTyx+u4L+xwiXwjx4wEPhixou6clCRqUyvERs89AJM5//e2lG3ywD563U1zajJbSuEk2eU6GKdYd9w/W/WvBbxRCetPXfcrjjRODRPaINnlt0K6zT3keriUnJP67LKK7dmqz5r0lfllSZ6n0GwJe+9L/QraaY5blQgpy6GGWJBNmWZ1rippo8UW/xBZ++d0fAjL8cNjuTbxaswHFQbCJalWZ78tsfyuHOcEHgZoNkhhuNCbov3wYBT6m3b2Qxrjxa2DA81O8oucuODwIw9q+4cMbeEvIuORRhR23bUWeiOlIuRrTN6qQLDupnvO2u3aNXB/qW31VALWIERdLtBb7O7bifzn5ICrAt1RJEjx9CLtRMirna7V3t2V32NnoLkTGdgOd9yIZZKNIMUF0kqTw2XEhqBlU3tD1Mt2qHRc6T4R8l0tw0gSqeO3hzzRavnX8dP0RByuY88LVBTDDNNXwcBYJl4IcSRr5t82evYtyyoEvw5up7ZEhvRS5JgXaG141hMwurpIH8pmkUrM+ewiNmRME+JsFghLevSU==aEer-----END PGP SIGNATURE-----
D
D
dftxbs3e wrote on 2 Dec 2019 21:03
(address . guix-patches@gnu.org)
0e9bb696-0165-82c8-799b-58ae72e382cc@free.fr
Yes, it should certainly be guarded by an if to avoid breaking other platforms, even if it shouldnt hurt much.
Issue is I do not know Scheme enough to figure out the syntax for an inline if like that. So I would appreciate if you could help me on that?
On 12/2/19 8:57 PM, Tobias Geerinckx-Rice via Guix-patches via wrote:
Toggle quote (17 lines)> dftxbs3e,>> dftxbs3e 写道:>> This is to be applied against core-updates and fixes:>>>> $ guix build --target=powerpc64le-linux-gnu bootstrap-tarballs>> Thanks for sending this in!  I'll be sure to merge it if no one else > has objections.>> I'm really not familiar with this part of Guix, though.  I'd naively > expect this to be guarded with an (if …) so it only applies to POWER.  > (Why) is that not possible or desirable?>> Kind regards,>> T G-R
D
D
dftxbs3e wrote on 7 Dec 2019 20:28
(address . guix-patches@gnu.org)
07dcfc64-86c2-df79-9bf9-bf87b2568267@free.fr
I could figure it out myself.
Attached new patches!
On 12/2/19 9:03 PM, dftxbs3e wrote:
Toggle quote (27 lines)> Yes, it should certainly be guarded by an if to avoid breaking other > platforms, even if it shouldnt hurt much.>> Issue is I do not know Scheme enough to figure out the syntax for an > inline if like that. So I would appreciate if you could help me on that?>> On 12/2/19 8:57 PM, Tobias Geerinckx-Rice via Guix-patches via wrote:>> dftxbs3e,>>>> dftxbs3e 写道:>>> This is to be applied against core-updates and fixes:>>>>>> $ guix build --target=powerpc64le-linux-gnu bootstrap-tarballs>>>> Thanks for sending this in!  I'll be sure to merge it if no one else >> has objections.>>>> I'm really not familiar with this part of Guix, though.  I'd naively >> expect this to be guarded with an (if …) so it only applies to >> POWER.  (Why) is that not possible or desirable?>>>> Kind regards,>>>> T G-R>>>
From 0628808608a0b0851de913a88d626234358100c5 Mon Sep 17 00:00:00 2001From: dftxbs3e <dftxbs3e@free.fr>Date: Sat, 7 Dec 2019 20:27:12 +0100Subject: [PATCH 2/2] gnu: cross-gcc-arguments: Enable 128 bit long double for POWER9.
--- gnu/packages/cross-base.scm | 5 +++++ 1 file changed, 5 insertions(+)
Toggle diff (18 lines)diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scmindex 13237fb8a8..18dc1f592b 100644--- a/gnu/packages/cross-base.scm+++ b/gnu/packages/cross-base.scm@@ -150,6 +150,11 @@ base compiler and using LIBC (which may be either a libc package or #f.)" "--disable-decimal-float" ;would need libc "--disable-libcilkrts" + ,@(if (equal? "powerpc64le-linux-gnu" target)+ ;; On POWER9 (little endian) glibc needs the 128 bit long double type.+ '("--with-long-double-128")+ '())+ ;; When target is any OS other than 'none' these ;; libraries will fail if there is no libc ;; present. See-- 2.21.0
From 66bcaaebe1761499a60518dc83975006aa30b58f Mon Sep 17 00:00:00 2001From: dftxbs3e <dftxbs3e@free.fr>Date: Sat, 7 Dec 2019 20:26:51 +0100Subject: [PATCH 1/2] gnu: gcc-boot0: Enable 128 bit long double for POWER9.
--- gnu/packages/commencement.scm | 5 +++++ 1 file changed, 5 insertions(+)
Toggle diff (18 lines)diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scmindex 8bf7704598..a466a383bd 100644--- a/gnu/packages/commencement.scm+++ b/gnu/packages/commencement.scm@@ -1576,6 +1576,11 @@ exec " gcc "/bin/" program "--disable-shared" "--enable-languages=c,c++" + ,@(if (equal? "powerpc64le-linux-gnu" boot-triplet)+ ;; On POWER9 (little endian) glibc needs the 128 bit long double type.+ '("--with-long-double-128")+ '())+ ;; libstdc++ cannot be built at this stage ;; ("Link tests are not allowed after ;; GCC_NO_EXECUTABLES.").-- 2.21.0
T
T
Tobias Geerinckx-Rice wrote on 11 Dec 2019 01:04
(name . dftxbs3e)(address . dftxbs3e@free.fr)(address . 38459@debbugs.gnu.org)
8736drk9ui.fsf@nckx
dftxbs3e,
dftxbs3e 写道:
Toggle quote (4 lines)> I could figure it out myself.>> Attached new patches!
Thanks!
Toggle quote (1 lines)> + ,@(if (equal? "powerpc64le-linux-gnu" boot-triplet)
^^^^^^^^^^^^
This doesn't look right to my tired eyes.
BOOT-TRIPLET isn't a string, but a procedure that returns a string. As I see it, this comparison will always be false, on any platform, and the "--with-long-double-128" option will never be used.
How did you tests this? The other patch looks correct: perhaps you were somehow testing only its effects?
Kind regards,
T G-R
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEfo+u0AlEeO9y5k0W2Imw8BjFSTwFAl3wMnIACgkQ2Imw8BjFSTzuaw//dJPG2dUvn6GqdYniR+KYCfKLwwTUlAAmIzCLCdXaVQ7clI7xrs+8NllwDHLNmPo29ci54G8SJHdTrcp9+8a0eemSECZlAFYQCa8uMk1+cJKstv5eP71Ryu4VCc24BCLwkfs2Msiq1JfnxXKdBRVGLDRSlUjN2+YswXqN4OnYI/qdYDdfsxHQ4ZE/MXCsLurBJcb3JOtypBNZP8O0HoBASRYfV7L0HGp+AS7hYIpB5MnoWoKG0ozel1wGbG7UsF6Co7zZcSJ3PKOI0eyStjqH+q0wd0sjvxFdllKE5MMAEkXXJ2La6VdQcIuIDzoyztY+Sn3TepWjjkp82EP286TvAWc/FUict87W8gvuGQ9ISjzbt+iiOJiTIIXf7O8P/F/LCfCHvWv63xSdD0uXcjYsDqBpP2j/7hO9JD2XiHFyRnkvIasJoDjN/OWMRi6NsFrHO5SpukZmhVdWt3/KgHX3EXPr4epiOG7VCJpH+e7UO6qv9tOk6ZBwuCh6bhhxpScPnT0OHb5DWfJUjPqGnSuxUVOUQj9Qof7uACl1DA/ipm5Rp11Nmqt93q0bK2oGAnWKcbGYG2HUSk4XEjl9IPo6z/dWPkHYqaj4vPGkTImw7kWxfO+SvjkwB0mAxM8XV51O8PZsEgVYrZK+FEKt1u1BcgFU9AYdE5hZVIVJT+amR3w==PgV0-----END PGP SIGNATURE-----
D
D
dftxbs3e wrote on 21 Nov 2020 00:21
[PATCH] gnu: (cross-gcc-arguments|gcc-boot0): Enable 128 bit long double for POWER9.
(address . 38459@debbugs.gnu.org)
eb2b3e9047e5696c2a603be940e2830c9f450773.camel@free.fr
You are right, I can't test the commencement.scm patch yet becausebootstrap-tarballs are not built and included in GNU Guix yet. Thispatch is intended to allow them to build.
Attached new patches.
From 66bcaaebe1761499a60518dc83975006aa30b58f Mon Sep 17 00:00:00 2001From: dftxbs3e <dftxbs3e@free.fr>Date: Sat, 7 Dec 2019 20:26:51 +0100Subject: [PATCH 1/2] gnu: gcc-boot0: Enable 128 bit long double for POWER9.
--- gnu/packages/commencement.scm | 5 +++++ 1 file changed, 5 insertions(+)
Toggle diff (18 lines)diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scmindex 8bf7704598..a466a383bd 100644--- a/gnu/packages/commencement.scm+++ b/gnu/packages/commencement.scm@@ -1576,6 +1576,11 @@ exec " gcc "/bin/" program "--disable-shared" "--enable-languages=c,c++" + ,@(if (equal? "powerpc64le-linux-gnu" (boot-triplet))+ ;; On POWER9 (little endian) glibc needs the 128 bit long double type.+ '("--with-long-double-128")+ '())+ ;; libstdc++ cannot be built at this stage ;; ("Link tests are not allowed after ;; GCC_NO_EXECUTABLES.").-- 2.21.0
From 0628808608a0b0851de913a88d626234358100c5 Mon Sep 17 00:00:00 2001From: dftxbs3e <dftxbs3e@free.fr>Date: Sat, 7 Dec 2019 20:27:12 +0100Subject: [PATCH 2/2] gnu: cross-gcc-arguments: Enable 128 bit long double for POWER9.
--- gnu/packages/cross-base.scm | 5 +++++ 1 file changed, 5 insertions(+)
Toggle diff (18 lines)diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scmindex 13237fb8a8..18dc1f592b 100644--- a/gnu/packages/cross-base.scm+++ b/gnu/packages/cross-base.scm@@ -150,6 +150,11 @@ base compiler and using LIBC (which may be either a libc package or #f.)" "--disable-decimal-float" ;would need libc "--disable-libcilkrts" + ,@(if (equal? "powerpc64le-linux-gnu" target)+ ;; On POWER9 (little endian) glibc needs the 128 bit long double type.+ '("--with-long-double-128")+ '())+ ;; When target is any OS other than 'none' these ;; libraries will fail if there is no libc ;; present. See-- 2.21.0
D
D
dftxbs3e wrote on 21 Nov 2020 00:30
(address . 38459@debbugs.gnu.org)
8ddebd811dd8c6c13122ad867122ea6073269223.camel@free.fr
Note: this can be applied on master by now since core-updates wasmerged into it since then.
L
L
Ludovic Courtès wrote on 26 Nov 2020 23:28
(name . dftxbs3e)(address . dftxbs3e@free.fr)(address . 38459-done@debbugs.gnu.org)
87pn3zzrb2.fsf@gnu.org
Hi,
dftxbs3e <dftxbs3e@free.fr> skribis:
Toggle quote (8 lines)>>From 66bcaaebe1761499a60518dc83975006aa30b58f Mon Sep 17 00:00:00 2001> From: dftxbs3e <dftxbs3e@free.fr>> Date: Sat, 7 Dec 2019 20:26:51 +0100> Subject: [PATCH 1/2] gnu: gcc-boot0: Enable 128 bit long double for POWER9.>> ---> gnu/packages/commencement.scm | 5 +++++
[...]
Toggle quote (9 lines)>>From 0628808608a0b0851de913a88d626234358100c5 Mon Sep 17 00:00:00 2001> From: dftxbs3e <dftxbs3e@free.fr>> Date: Sat, 7 Dec 2019 20:27:12 +0100> Subject: [PATCH 2/2] gnu: cross-gcc-arguments: Enable 128 bit long double for> POWER9.>> ---> gnu/packages/cross-base.scm | 5 +++++
I’ve applied both as a single commit with a commit message that followsour conventions. At last. :-)
Thanks!
Ludo’.
Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send email to 38459@debbugs.gnu.org