New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/compile: implement powerpc 32-bit backend (ppc32) #22885

Open
rasky opened this Issue Nov 27, 2017 · 21 comments

Comments

Projects
None yet
@rasky
Member

rasky commented Nov 27, 2017

Tracking bug for missing PowerPC 32-bit backend. People interested in this can put a 馃憤 reaction here so that we can track interest.

@ALTree ALTree changed the title from gc: Implement powerpc 32-bit backend (ppc32) to cmd/compile: implement powerpc 32-bit backend (ppc32) Nov 27, 2017

@bradfitz bradfitz added this to the Unplanned milestone Nov 27, 2017

@villadalmine

This comment has been minimized.

villadalmine commented Mar 18, 2018

any update 驴?

@ianlancetaylor

This comment has been minimized.

Contributor

ianlancetaylor commented Mar 20, 2018

Updates will be posted here. There are no updates. I only see ten thumbs-up which is not really very many, though of course if someone volunteers to do the work and maintain a builder we will accept the port.

@villadalmine

This comment has been minimized.

villadalmine commented Mar 21, 2018

I want to help to work with g4/g5

@awilfox

This comment has been minimized.

awilfox commented May 25, 2018

32-bit PowerPC would be the 4xx, 6xx, 7xx (G3, Broadway/Wii, etc), and 74xx (G4), in addition to a few others.

The G5 is a POWER4+-based 64-bit PowerPC, which was supported until Go 1.9: see #19074 for more.

We at Ad茅lie have a ppc32 builder that could potentially be used for CI if this went anywhere.

@villadalmine

This comment has been minimized.

villadalmine commented Jun 11, 2018

any update about go with 32 bit for g4/g3 ?

@DarkDirectX

This comment has been minimized.

DarkDirectX commented Jun 14, 2018

I'm interested in create backend for ppc32, but currently I only have POWER8. I need to try build and run ppc32 binaries on my machine.

@awilfox

This comment has been minimized.

awilfox commented Jun 15, 2018

Linux installs on 64-bit PowerPC can do 32-bit chroots. You can set up a distro that supports ppc32, like Ad茅lie or Debian, into a chroot and work with it there.

I don't know if you can cross-endian chroot; I think you will need to be using big-endian PowerPC on the host.

@villadalmine

This comment has been minimized.

villadalmine commented Jun 15, 2018

I want to work with go in openbsd with powerpc g3/g4.

@travbrack

This comment has been minimized.

travbrack commented Jun 21, 2018

I'm interested in ppc32 in order to use prometheus node_exporter on a Dell/Cumulus switch

@Vartkat

This comment has been minimized.

Vartkat commented Jul 13, 2018

I'm interested in order to build restic backup on a MacMini PPC 7450.

@awilfox

This comment has been minimized.

awilfox commented Jul 14, 2018

I'll make a note that if you're using Linux and glibc, gcc-go works fine on PPC32. It does not yet work properly on musl, but I'm investigating that. This way we have a platform to bootstrap golang with, if there is ever such a backend.

@ymartin59

This comment has been minimized.

ymartin59 commented Sep 15, 2018

Interested by PPC32 here for "qoriq" Synology architectures

@Millnert

This comment has been minimized.

Millnert commented Oct 1, 2018

Also interested in this for deployment of Go code, including but not limited to Prometheus node_exporter & blackbox_exporter on PPC32-based network switches.

@Millnert

This comment has been minimized.

Millnert commented Oct 1, 2018

Updates will be posted here. There are no updates. I only see ten thumbs-up which is not really very many, though of course if someone volunteers to do the work and maintain a builder we will accept the port.

@ianlancetaylor Having read up on #19074 and #24358, and fumbling slightly in the dark here except for knowing that I'd definitely would like to be able to build go apps for ppc32, it seems based on your comment alone that all that is required in order to enable this support is:

  • that ppc32-based builders are provided
  • that someone gifts the work to the project of enabling support for the arch

But given those two referenced tickets, is there opposition within the go community against having ppc32 supported? ppc32 runs on millions of devices, not only Wii's but various network devices with either Linux or BSD. I believe the use case me and @travbrack lists could see see significant adoption (for some value of significant).

If those two items are the "only" things required, perhaps I'd be interested in helping out. I can definitely provide a few linux & bsd-builders, but I would absolutely need help with the second point.

@villadalmine

This comment has been minimized.

villadalmine commented Oct 1, 2018

I can help testing with openbsd in ppc32 and 64 . (macppc , old powerpc apple)

@ianlancetaylor

This comment has been minimized.

Contributor

ianlancetaylor commented Oct 1, 2018

Yes, having a builder and doing the work are all that is required. But maybe I should use scare quotes around "all" because the work is not trivial.

I can't think of any reason why anybody would be opposed to adding ppc32 support to Go. It seems like a good idea to me.

@awilfox

This comment has been minimized.

awilfox commented Oct 1, 2018

I'll note again here that any ppc64 (big endian) host can function as a ppc32 builder with a simple chroot. That's what we're doing at Ad茅lie to take advantage of the build speed of POWER9 hardware. You'll just have to be careful to not use any newer ISA instructions, since ppc32 goes back to at least the 700. (Not sure if the 4xx and 6xx would be supported by Go. Very popular in embedded still.)

@Millnert

This comment has been minimized.

Millnert commented Oct 3, 2018

The devices I'm looking at, I believe have 7xx, and it is exactly the fear (due to my ignorance) of accidentally using too new instruction sets that made me believe some Wii or similar would be an apt 7xx builder. But with less ignorance I guess newer hardware can be used as you say @awilfox.
Regardless, I googled Wii variants and it seems definitely tractable to solve this even in that way.

The big unknown for me is: where to even start looking at the scope of adding an arch to "cmd/compiler". @ianlancetaylor is non-trivial order of 100 hours, 1000 hours or more?

@ianlancetaylor

This comment has been minimized.

Contributor

ianlancetaylor commented Oct 3, 2018

The length of time it takes is very hard to say, since it depends on how much you know about compilers already and how well you understand the PPC/PPC64 architecture. Adding PPC32 support should be much simpler than supporting a new architecture from scratch, since it will be very similar to the existing PPC64 support. The length of time is not really in doing the actual work; it is in understanding what has to be done.

@awilfox

This comment has been minimized.

awilfox commented Oct 4, 2018

I'm not sure exactly how to set it up to be usable in this role, but I have an iBook G3 with a PPC750 running Ad茅lie Linux that I could probably be convinced to turn in to a builder. (Or, I could simply smoketest on it when asked.)

@asarghel

This comment has been minimized.

asarghel commented Oct 10, 2018

Hi everybody. I can help with testing in PowerMac dual G5, iMac G4 & PowerBook G4, all with Ubuntu 16.04.5:

~$ uname -a
Linux nice 4.4.0-137-powerpc64-smp #163-Ubuntu SMP Mon Sep 24 13:53:31 UTC 2018 ppc64 ppc64 ppc64 GNU/Linux

~$ cat /etc/issue
Ubuntu 16.04.5 LTS

~$ sudo apt show golang
[sudo] password for remote: 
Package: golang
Version: 2:1.6-1ubuntu4
Priority: optional
Section: devel
Source: golang-defaults
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 10.2 kB
Depends: golang-1.6, golang-doc (>= 2:1.6-1ubuntu4), golang-go (>= 2:1.6-1ubuntu4), golang-src (>= 2:1.6-1ubuntu4)
Homepage: https://golang.org
Download-Size: 2,766 B
APT-Sources: http://ports.ubuntu.com/ubuntu-ports xenial/main powerpc Packages

publicarray added a commit to publicarray/spksrc that referenced this issue Nov 18, 2018

publicarray added a commit to publicarray/spksrc that referenced this issue Nov 18, 2018

PPC is unsupported 馃槩
Synology has no PPC64 devices and Go has no ppc32 support golang/go#22885

ymartin59 added a commit to SynoCommunity/spksrc that referenced this issue Dec 1, 2018

Update dnscrypt-proxy to 2.0.19 (#3501)
* Fix script having 0 bytes after wget failes to get an IP

Use the cached file to fix the 0 byte file on upgrade
Can also be upgraded in the future

* Address issues raised

#3501 (comment)

* Disable online checks after saving file and reduce netprobe_timeout

* This decreases the boot time when offline (e.g setting up a new network)

* Should also reduce long service status updates in the package center.

Also allow the user to change the logfile location and the ability to disable it

* PPC is unsupported #1011 (comment)
and Go has no ppc32 support: golang/go#22885

* dnscrypt-proxy 2.0.19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment