From: Joshua Branson <jbranso@dismail.de>
To: Chris Marusich <cmmarusich@gmail.com>
Cc: guix-devel@gnu.org
Subject: Re: Please review blog post draft: powerpc64le-linux support
Date: Tue, 06 Apr 2021 11:47:00 -0400 [thread overview]
Message-ID: <878s5vl8jv.fsf@dismail.de> (raw)
In-Reply-To: <87a6qbc28m.fsf@gmail.com> (Chris Marusich's message of "Tue, 06 Apr 2021 00:15:53 -0700")
Awesome! Great work! I read the below draft blog post like a Harry
Potter novel! It is superbly written. And it makes a lot of sense!
Chris Marusich <cmmarusich@gmail.com> writes:
> Hi,
>
> Léo and I have drafted the following blog post. Could you take a few
> minutes to read it and give us your thoughts?
>
> It's a work in progress. The primary goal is to announce the new
> powerpc64le-linux support and explain why it matters (POWER9 is an
> exciting, freedom-friendly platform!). The secondary goal is to explain
> some of the details about what we did, and invite people to get
> involved.
>
> Your feedback would be highly appreciated!
>
> --
> Chris
Seriously good job on this blog post, and all involved in the powerPC
porting work! Fabulous job chaps! Cheerio! Also below are my tiny
edits:
> +
> +### Why Is This Important?
> +
> +This is important because it means that GNU Guix now works on the [RYF
> +Talos II and Talos II Lite
> +mainboards](https://www.fsf.org/news/talos-ii-mainboard-and-talos-ii-lite-mainboard-now-fsf-certified-to-respect-your-freedom)
> +and it's IBM POWER9 processor. This is a modern, performant hardware
I believe you should use "its". it's is short for "it is".
> +platform that respects your freedom. It can run without any non-free
> +code, all the way down to its bootloader and firmware. It's a
> +freedom-friendly platform that aligns well with GNU Guix's commitment
> +to software freedom.
> +
> +How is this any different from existing RYF hardware, you might ask?
> +The existing RYF
> +[laptops](https://ryf.fsf.org/products?category=1&vendor=All&sort_by=created&sort_order=DESC),
> +[mainboards](https://ryf.fsf.org/products?category=5&vendor=All&sort_by=created&sort_order=DESC),
> +and
> +[workstations](https://ryf.fsf.org/products?category=30&vendor=All&sort_by=created&sort_order=DESC)
> +can only really be used with Intel Core Duo or AMD Opteron processors.
> +Those processors were released over 15 years ago. Since then,
> +processor performance has increased drastically. People should not
> +have to choose between performance and freedom, but the fact is that
> +for many years, that is exactly what we were forced to do. However,
> +the Talos II and Talos II Lite have changed this: the free software
> +community now has an RYF-certified option that can compete with the
> +performance of modern Intel and AMD systems.
> +
> +Although the performance of POWER9 processors is competitive with
> +modern Intel and AMD processors, its real advantage is that it<
Why is there "it<" ? Is that some markup I'm not familiar with?
> +respects your freedom. Modern processors from [both Intel and AMD
> +include back
> +doors](https://www.fsf.org/blogs/sysadmin/the-management-engine-an-attack-on-computer-users-freedom)
> +over which you are given no control. Additionally, hardware design
> +defects in the processors of both vendors have been discovered, giving
> +rise to critical security vulnerabilities like
> +[Spectre](https://en.wikipedia.org/wiki/Spectre_(security_vulnerability))
> +and
> +[Meltdown](https://en.wikipedia.org/wiki/Meltdown_(security_vulnerability)).
> +In many cases, these vulnerabilities can only be fixed by installing
> +[non-free CPU microcode](https://wiki.debian.org/Microcode) - unless,
> +of course, [the vendor decides not to provide any fix at
> +all](https://arstechnica.com/gadgets/2018/04/intel-drops-plans-to-develop-spectre-microcode-for-ancient-chips/)!
> +
> +Compared to that, the RYF Talos II and Talos II Lite are a breath of
> +fresh air that the free software community really deserves. Raptor
> +Computing Systems' commitment to software freedom and owner control is
> +an inspiring reminder that it **is** possible to ship a great product
> +that respects the freedom of your customers. And going forward, the
> +future looks bright for the open, royalty-free Power ISA, [which is
> +now a Linux Foundation
> +project](https://www.linuxfoundation.org/press-release/2019/08/the-linux-foundation-announces-new-open-hardware-technologies-and-collaboration/)
> +(see also: [the same announcement from The OpenPOWER
> +Foundation](https://openpowerfoundation.org/the-next-step-in-the-openpower-foundation-journey/).
> +
> +
> +In Guix, all software for a given system (e.g., powerpc64le-linux) is
> +built starting from its bootstrap binaries. It is intended that the
> +bootstrap binaries are the only pieces of software in the entire
> +package collection that Guix cannot build from source. In practice,
> +[additional bootstrap roots are
> +possible](https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00814.html),
> +but introducing them in Guix is highly discouraged, and our community
> +[actively](https://guix.gnu.org/en/blog/2019/guix-reduces-bootstrap-seed-by-50/)
> +[works](https://guix.gnu.org/en/blog/2020/guix-further-reduces-bootstrap-seed-to-25/)
> +to [reduce](https://guix.gnu.org/en/blog/2018/bootstrapping-rust/) our
> +overall bootstrap footprint.
> +
> +So first you need to build the the bootstrap binaries for your
"the the" --> "the"
> +platform. In theory, you can do this in many ways. For example, you
> +might try to manually compile them on an existing system. However,
> +Guix has [package
> +definitions](https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/make-bootstrap.scm?id=5d8c2c00d60196c46a32b68c618ccbe2b3aa48f4)
> +that you can use to build them - using Guix, of course!
>
> +In both the big-endian and little-endian case, we were saddened to
> +discover that the bootstrap binaries are not entirely reproducible.
> +This fact is documented in [bug
> +41669](https://debbugs.gnu.org/cgi/bugreport.cgi?bug=41669), along
> +with our extensive investigations. In short, if you build the
> +bootstrap binaries on two separate machines without using any
> +substitutes, you will find that the derivation which cross-compiles
> +%gcc-static (the bootstrap GCC, version 5.5.0) produces different
> +output on the two systems. However, if you build %gcc-static twice on
> +the same system, it builds reproducibly. This suggests that something
> +in the transitive closure of inputs of %gcc-static is perhaps
> +contributing to its non-reproducibility. There is an interesting graph toward the end of the bug report that suggests that the non-reproducibliity is introduced by one or more of 21 derivations in the transitive closure of %gcc-static's inputs that do not build reproducibly across systems.
On my computer, the above line is SUPER LONG. Should you do a M-x
fill-paragraph on the above line? Or does that not really matter?
> +### Next Steps
> +
> +It is now possible to install Guix on a powerpc64le-linux system and
> +use it to build some useful software - in particular, Guix itself. So
> +Guix is now "self-hosted" on this platform, which gives us a
> +comfortable place to begin further work.
> +
> +The following tasks still need to be done. Anyone can help, so please
> +get in touch if you want to contribute!
> +
> +- Solve the GCC bootstrap binary reproducibility issue.
> +- Get Guix System to work on powerpc64le-linux.
> +- Get CI infrastructure to work (Cuirass, guix-build-coordinator,
> + substitutes, etc.)
> +- Fix all package build failures.
> +- Try building rust, and if it works, judiciously re-introduce the
> + librsvg dependency for powerpc64le-linux in gtk+ and gtk+-2, since
> + [it is currently
> + missing](https://git.savannah.gnu.org/cgit/guix.git).
Just out of curiosity, does rust work on power? I'm under the
impression that rust, while memory safe, is not so easy to bootstrap.
Though I am eager to see someone bootstrap rust to power! Best of luck
you brave soul!
> +- Upgrade GCC to 8 on core-updates, fix issues that occur.
> +- Merge core-updates to master after that.
--
Joshua Branson (joshuaBPMan in #guix)
Sent from Emacs and Gnus
https://gnucode.me
https://video.hardlimit.com/accounts/joshua_branson/video-channels
https://propernaming.org
"You can have whatever you want, as long as you help
enough other people get what they want." - Zig Ziglar
next prev parent reply other threads:[~2021-04-06 15:48 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-06 7:15 Please review blog post draft: powerpc64le-linux support Chris Marusich
2021-04-06 15:47 ` Joshua Branson [this message]
2021-04-08 5:46 ` Chris Marusich
2021-04-06 23:13 ` Léo Le Bouter
2021-04-08 6:04 ` Chris Marusich
2021-04-08 8:55 ` Chris Marusich
2021-04-08 10:49 ` Vincent Legoll
2021-04-08 16:37 ` Chris Marusich
2021-04-08 17:15 ` Vincent Legoll
2021-04-08 22:59 ` Léo Le Bouter
2021-04-10 9:59 ` Tobias Platen
2021-04-11 7:34 ` Chris Marusich
2021-04-11 7:37 ` Chris Marusich
2021-04-12 19:46 ` Chris Marusich
2021-04-15 22:06 ` Léo Le Bouter
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=878s5vl8jv.fsf@dismail.de \
--to=jbranso@dismail.de \
--cc=cmmarusich@gmail.com \
--cc=guix-devel@gnu.org \
/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 external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.