From: Efraim Flashner <efraim@flashner.co.il>
To: Chris Marusich <cmmarusich@gmail.com>
Cc: 48825@debbugs.gnu.org
Subject: [bug#48825] [PATCH] gnu: Simplify the use of --with-long-double-128 on powerpc64le.
Date: Sun, 6 Jun 2021 11:12:59 +0300 [thread overview]
Message-ID: <YLyDi/ArZklbRkAB@3900XT> (raw)
In-Reply-To: <87o8cmtdxr.fsf@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 6829 bytes --]
On Thu, Jun 03, 2021 at 10:08:00PM -0700, Chris Marusich wrote:
> Hi,
>
> Currently in Guix, we explicitly specify --with-long-double-128 on
> powerpc64le-linux (and potentially other powerpc64-* systems) in two
> places. It turns out that this is not necessary. This patch simplifies
> our code.
>
> I originally authored this in order to try fixing bug 47698, but it
> didn't solve that problem, and it turns out the --with-long-double-128
> option is probably unrelated to that bug. However, it's still worth
> making this change to simplify our code.
>
> If nobody has any issues with this, then in 2 weeks I will commit it.
> One question is: where should I commit it? I'd like to commit it to
> master, but it causes many rebuilds on powerpc64le-linux (it does not
> cause rebuilds on any other platforms), so per the guidelines ((guix)
> Submitting Patches) I ought to commit it to core-updates. However,
> because the glibc upgrade from 2.31 to 2.32 on core-updates causes many
> problems for powerpc64le-linux, core-updates has never once been a
> viable branch for powerpc64le-linux in the time since support was first
> added on master. So if I commit this patch to core-updates, it won't
> really do anyone any good right now. With all this in mind, I think
> master is the right place to commit this patch.
>
> --
> Chris
couple of thoughts:
powerpc64le is in 'technology preview', so IMO it's fine to make big
changes to it as needed.
On master (and probably on core-updates too) we have a patch for glibc
to force ... something (that I don't remember) on powerpc architectures,
which has the side effect of needing '--with-long-double-128' on
powerpc-linux also in commencement.scm. If we could drop that patch then
I don't think we would need it anymore for powerpc.
> From ad89f9f59d22cc10fbf7dd6f738ce15a6e79b640 Mon Sep 17 00:00:00 2001
> From: Chris Marusich <cmmarusich@gmail.com>
> Date: Sat, 10 Apr 2021 18:16:17 -0700
> Subject: [PATCH] gnu: Simplify the use of --with-long-double-128 on
> powerpc64le.
>
> In short, this change adds the "--with-long-double-128" configure option in
> one place and removes it from two other (now-redundant) places. It does not
> cause any rebuilds on systems other than powerpc64le-linux.
>
> * gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add a clause for
> targets starting with "powerpc64le-" which adds the "--with-long-double-128"
> option. This causes any package using this procedure to be built using this
> new option on powerpc64le systems. In particular, this affects the gcc
> package and the gcc-final package, in addition to all the other versions of
> GCC defined in (gnu packages gcc).
> * gnu/packages/commencement.scm (gcc-boot0)[#:configure-flags]: Remove the
> code that adds the "--with-long-double-128" configure option for powerpc64le,
> since it is now redundant. The gcc-boot0 package uses (and adds to) the gcc
> package's configure options. This means that the above change in gcc.scm is
> sufficient to ensure that the gcc-boot0 package's configure options will
> include "--with-long-double-128" on powerpc64le systems.
> * gnu/packages/cross-base.scm (cross-gcc-arguments)[#:configure-flags]: Remove
> the code that adds the "--with-long-double-128" configure option for
> powerpc64le, since it is now redundant. The cross-gcc-arguments procedure
> uses (and adds to) the configure options of its xgcc argument (a package).
> This means that regardless of which gcc from gcc.scm is used as the xgcc, the
> above change in gcc.scm is sufficient to ensure that the cross-gcc-arguments
> procedure's configure options will include "--with-long-double-128" on
> powerpc64le systems.
> ---
> gnu/packages/commencement.scm | 7 -------
> gnu/packages/cross-base.scm | 6 ------
> gnu/packages/gcc.scm | 3 +++
> 3 files changed, 3 insertions(+), 13 deletions(-)
>
> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> index d4511ed914..db564db9c4 100644
> --- a/gnu/packages/commencement.scm
> +++ b/gnu/packages/commencement.scm
> @@ -2819,13 +2819,6 @@ exec " gcc "/bin/" program
> "--disable-shared"
> "--enable-languages=c,c++"
>
I've adjusted this on core-updates to also take effect on powerpc-linux.
> - ;; boot-triplet inserts "guix" in the triplet.
> - ,@(if (equal? "powerpc64le-guix-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.").
> diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
> index 180594509b..c1e5f2eb79 100644
> --- a/gnu/packages/cross-base.scm
> +++ b/gnu/packages/cross-base.scm
> @@ -153,12 +153,6 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
> "--disable-decimal-float" ;would need libc
> "--disable-libcilkrts"
>
> - ,@(if (string-prefix? "powerpc64le-" 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
> diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
> index a412c93c29..22a0f35422 100644
> --- a/gnu/packages/gcc.scm
> +++ b/gnu/packages/gcc.scm
> @@ -79,6 +79,9 @@ where the OS part is overloaded to denote a specific ABI---into GCC
> ;; Cilk has been removed from GCC 8 anyway.
> '("--disable-libcilkrts"))
>
This can be just 'powerpc64le'
> + ((string-prefix? "powerpc64le-" target)
> + '("--with-long-double-128"))
> +
> (else
> ;; TODO: Add `arm.*-gnueabi', etc.
> '())))
> --
> 2.30.2
>
--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2021-06-06 8:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-04 5:08 [bug#48825] [PATCH] gnu: Simplify the use of --with-long-double-128 on powerpc64le Chris Marusich
2021-06-06 8:12 ` Efraim Flashner [this message]
2021-06-18 18:49 ` Chris Marusich
2021-06-25 3:47 ` bug#48825: " Chris Marusich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YLyDi/ArZklbRkAB@3900XT \
--to=efraim@flashner.co.il \
--cc=48825@debbugs.gnu.org \
--cc=cmmarusich@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).