Skip to content
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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: provide ARM release binaries? #13066

Closed
bradfitz opened this issue Oct 27, 2015 · 28 comments
Closed

build: provide ARM release binaries? #13066

bradfitz opened this issue Oct 27, 2015 · 28 comments
Milestone

Comments

@bradfitz
Copy link
Contributor

Should we provide linux-arm release downloads?

Currently they're provided by @davecheney at http://dave.cheney.net/unofficial-arm-tarballs

But we can easily add one line to cmd/release and ship them too. But should we, and which?

We had this conversation once but I can't find the bug. Maybe it was email.

/cc @adg @davecheney

@bradfitz bradfitz added this to the Go1.6 milestone Oct 27, 2015
@DieterReuter
Copy link

I would really appreciate pre-compiled tarballs for ARMv6 and ARMv7 (maybe later ARMv8 as well). Since the test suite is already running on Scaleway, it would be easy to support at least ARMv7.

Compiling Go from source is typically damn slow on some ARM board like the RPi.

@MathiasRenner
Copy link

Agree!

@ondrajz
Copy link

ondrajz commented Oct 27, 2015

I would like to see official ARM releases at least for the most common boards like RPi.

@davecheney
Copy link
Contributor

@DieterReuter i'll see what can be done for arm6 and arm7.

Arm8 will not be possible, but it's not a big deal as most arm64 systems are within 2x of their intel counterparts so compiling from source is a few minutes work.

@DieterReuter
Copy link

@davecheney thanks. Do you think we could compile ARMv6 and ARMv7 on the Scaleway machines? I'm not sure with the ARMv6 version.
According to ARMv8, I thought this is already been tested, or isn't it?

@davecheney
Copy link
Contributor

Do you think we could compile ARMv6 and ARMv7 on the Scaleway machines? I'm not sure with the ARMv6 version.

yes that is the plan.

According to ARMv8, I thought this is already been tested, or isn't it?

Yes, see the dashboard.

@DieterReuter
Copy link

Ah, cool. Right now we just need ARMv6 and ARMv7 versions to build this Docker thing way faster on Scaleway (and these slow Pi's and other ARM boards as well). I'd really appreciate if we could use official pre-compiled versions.

@DieterReuter
Copy link

@davecheney Because I need the pre-compiled tarballs for ARM prior to the release of Go 1.6, I just created an easy build script to create the ARM tarballs from scratch on a freshly installed Linux machine (without the need to have Go already available). Please feel free to check it out and comment https://github.com/hypriot/golang-armbuilds.

@rakyll
Copy link
Contributor

rakyll commented Nov 23, 2015

Could we initially start providing ARMv7 binaries? Due to the bootstrapping requirement, building from source is a lot of work nowadays and discourages the users.

@DieterReuter
Copy link

@rakyll Thanks for this request, that's exactly the reason I'm asking for this too. As a user I just like to install a Go compiler to compile my programs from source. I really don't like to bother with bootstrapping and compiling the Go compiler myself. It takes hours and hours and I run constantly into some problems. Right now each and every user has to do this steps, without detailed informations about the official or recommended way (sorry Go team, it's not well documented right now)! That's just cumbersome and boring and leads to errors and frustrated users.

For this reason I did created a public repo with all the details. We could use it in the meantime until pre-compiled Go tarballs are available for all ARM versions. How to compile Go on ARM devices for 1.4 and 1.5 is essential to know. The build process is documented and, it just requires gcc and a pure Linux distro. Everything is open and scripted in bash and there is a Dockerfile too as and example.

But you don't have to compile Go by your own on a slow ARM device, I just included all pre-compiled tarballs for the recent Go 1.4 and 1.5 releases as a GitHub release. Just download and install it the usual way:

I feel, it's mandatory to provide 100% transparancy - that's open source for me. With a complete build documentation everybody can bootstrap Go on any Linux device just with gcc. For all the builds we should include all log files for all released builds. And for the users we just need the ready-to-use tarballs to safe time and avoid problems.

Disclamer: my repo is WIP now and will hopefully superseeded by official downloads soon.

@davecheney
Copy link
Contributor

http://dave.cheney.net/2015/10/16/bootstrapping-go-1-5-on-non-intel-platforms

Feel free to copy this information into the go wiki or send a CL to update
the source install documentation.

Thanks

Dave

On Mon, 23 Nov 2015, 18:34 Dieter Reuter notifications@github.com wrote:

@rakyll https://github.com/rakyll Thanks for this request, that's
exactly the reason I'm asking for this too. As a user I just like to
install a Go compiler to compile my programs from source. I really don't
like to bother with bootstrapping and compiling the Go compiler myself. It
takes hours and hours and I run constantly into some problems. Right now
each and every user has to do this steps, without detailed informations
about the official or recommended way (sorry Go team, it's not well
documented right now)! That's just cumbersome and boring and leads to
errors and frustrated users.

For this reason I did created a public repo with all the details. We could
use it in the meantime until pre-compiled Go tarballs are available for all
ARM versions. How to compile Go on ARM devices for 1.4 and 1.5 is essential
to know. The build process is documented and, it just requires gcc and a
pure Linux distro. Everything is open and scripted in bash and there is a
Dockerfile too as and example.

But you don't have to compile Go by your own on a slow ARM device, I just
included all pre-compiled tarballs for the recent Go 1.4 and 1.5 releases
as a GitHub release. Just download and install it the usual way:

I feel, it's mandatory to provide 100% transparancy - that's open source
for me. With a complete build documentation everybody can bootstrap Go on
any Linux device just with gcc. For all the builds we should include all
log files for all released builds. And for the users we just need the
ready-to-use tarballs to safe time and avoid problems.

Disclamer: my repo is WIP now and will hopefully superseeded by
official downloads soon.


Reply to this email directly or view it on GitHub
#13066 (comment).

@davecheney
Copy link
Contributor

Also ./make.bash takes around 20% of the full ./all.bash time. You don't
need to always run ./all.bash, that's what the build infrastructure is for

On Mon, 23 Nov 2015, 18:44 Dave Cheney dave@cheney.net wrote:

http://dave.cheney.net/2015/10/16/bootstrapping-go-1-5-on-non-intel-platforms

Feel free to copy this information into the go wiki or send a CL to update
the source install documentation.

Thanks

Dave

On Mon, 23 Nov 2015, 18:34 Dieter Reuter notifications@github.com wrote:

@rakyll https://github.com/rakyll Thanks for this request, that's
exactly the reason I'm asking for this too. As a user I just like to
install a Go compiler to compile my programs from source. I really don't
like to bother with bootstrapping and compiling the Go compiler myself. It
takes hours and hours and I run constantly into some problems. Right now
each and every user has to do this steps, without detailed informations
about the official or recommended way (sorry Go team, it's not well
documented right now)! That's just cumbersome and boring and leads to
errors and frustrated users.

For this reason I did created a public repo with all the details. We
could use it in the meantime until pre-compiled Go tarballs are available
for all ARM versions. How to compile Go on ARM devices for 1.4 and 1.5 is
essential to know. The build process is documented and, it just requires
gcc and a pure Linux distro. Everything is open and scripted in bash and
there is a Dockerfile too as and example.

But you don't have to compile Go by your own on a slow ARM device, I just
included all pre-compiled tarballs for the recent Go 1.4 and 1.5 releases
as a GitHub release. Just download and install it the usual way:

I feel, it's mandatory to provide 100% transparancy - that's open source
for me. With a complete build documentation everybody can bootstrap Go on
any Linux device just with gcc. For all the builds we should include all
log files for all released builds. And for the users we just need the
ready-to-use tarballs to safe time and avoid problems.

Disclamer: my repo is WIP now and will hopefully superseeded by
official downloads soon.


Reply to this email directly or view it on GitHub
#13066 (comment).

@davecheney
Copy link
Contributor

Lastly, please make sure you let your distribution of choice know how much
you want to see Go 1.5 in their current release.

On Mon, 23 Nov 2015, 18:47 Dave Cheney dave@cheney.net wrote:

Also ./make.bash takes around 20% of the full ./all.bash time. You don't
need to always run ./all.bash, that's what the build infrastructure is for

On Mon, 23 Nov 2015, 18:44 Dave Cheney dave@cheney.net wrote:

http://dave.cheney.net/2015/10/16/bootstrapping-go-1-5-on-non-intel-platforms

Feel free to copy this information into the go wiki or send a CL to
update the source install documentation.

Thanks

Dave

On Mon, 23 Nov 2015, 18:34 Dieter Reuter notifications@github.com
wrote:

@rakyll https://github.com/rakyll Thanks for this request, that's
exactly the reason I'm asking for this too. As a user I just like to
install a Go compiler to compile my programs from source. I really don't
like to bother with bootstrapping and compiling the Go compiler myself. It
takes hours and hours and I run constantly into some problems. Right now
each and every user has to do this steps, without detailed informations
about the official or recommended way (sorry Go team, it's not well
documented right now)! That's just cumbersome and boring and leads to
errors and frustrated users.

For this reason I did created a public repo with all the details. We
could use it in the meantime until pre-compiled Go tarballs are available
for all ARM versions. How to compile Go on ARM devices for 1.4 and 1.5 is
essential to know. The build process is documented and, it just requires
gcc and a pure Linux distro. Everything is open and scripted in bash
and there is a Dockerfile too as and example.

But you don't have to compile Go by your own on a slow ARM device, I
just included all pre-compiled tarballs for the recent Go 1.4 and 1.5
releases as a GitHub release. Just download and install it the usual way:

I feel, it's mandatory to provide 100% transparancy - that's open source
for me. With a complete build documentation everybody can bootstrap Go on
any Linux device just with gcc. For all the builds we should include
all log files for all released builds. And for the users we just need the
ready-to-use tarballs to safe time and avoid problems.

Disclamer: my repo is WIP now and will hopefully superseeded by
official downloads soon.


Reply to this email directly or view it on GitHub
#13066 (comment).

@DieterReuter
Copy link

@davecheney Thanks for this details and infos. We really should include this build informations into upstream, that's exactly the place where a new user show find it. I'm really happy to help in this process too!

@nathany
Copy link
Contributor

nathany commented Nov 23, 2015

There is a GoArm Wiki page that anyone can edit, but I'm not sure how easily people will discover it.

Official ARM builds for Go 1.6 would be great. As one example, Raspian (Raspberry Pi) uses Debian Jessie but the Go and GCC versions are dated enough that they can't be used to bootstrap a newer version of Go. Official binaries could make it a lot easier to try Go, especially for people who are just learning programming.

@jhorst
Copy link

jhorst commented Nov 24, 2015 via email

@nathany
Copy link
Contributor

nathany commented Nov 24, 2015

@jhorst The Pi intended for people learning programming and hardware, and I believe Go is a good language for learning computers.

This is probably not the place for this discussion though. You can reach me at gopher@nathany.com if you like, or we can chat on the forum or mailing list.

@DieterReuter
Copy link

@davecheney, @bradfitz: According to using some build servers for ARM64: What kind of devices do you use right now for testing Go on ARM64?

I'd like to figure out, if we can find some cloud provider or manufacturer who would like to sponsor some ARM64 machines. I'm already in direct contact with ARM and with some of the new server/cpu manufacturers for ARM64 and hoping to find some possible solution - can't promise anything right now, but I'll try my best.

My goal would be, to get official ARM64 binary builds too.

How much build servers or instances would we need? Preferable as a cloud service or is it possible to use on-premise too, with a high-speed internet access of course?

@KEltermann
Copy link

@davecheney: I'd like to report a successful install of "Unofficial Go 1.5.2 linux/arm tarball" on a raspberry pi (model 1). I had some issues which vanished after completely un-installing the old raspbian/debian package of golang (which was 1.0something).
Thank You for providing the build.

@mwhudson
Copy link
Contributor

On 19 December 2015 at 00:50, Dieter Reuter notifications@github.com
wrote:

@davecheney https://github.com/davecheney, @bradfitz
https://github.com/bradfitz: According to using some build servers for
ARM64: What kind of devices do you use right now for testing Go on ARM64?

I'm pretty sure that both the builders on build.golang.org are APM xgene
developer boards.

I'd like to figure out, if we can find some cloud provider or manufacturer
who would like to sponsor some ARM64 machines. I'm already in direct
contact with ARM and with some of the new server/cpu manufacturers for
ARM64 and hoping to find some possible solution - can't promise anything
right now, but I'll try my best.

I'm pretty sure that there is no public arm64 cloud yet. If you find one,
let me know :-)

My goal would be, to get official ARM64 binary builds too.

Why, particularly? Most arm64 machines are much more powerful than the
raspberry pi and building Go yourself on them fairly painless. Even my
dragonboard 410c manages it, and I think that's the lowest spec board you
can buy :-)

How much build servers or instances would we need? Preferable as a cloud
service or is it possible to use on-premise too, with a high-speed internet
access of course?


Reply to this email directly or view it on GitHub
#13066 (comment).

@DieterReuter
Copy link

@mwhudson, Applied Micro X-Gene is pretty ok. But why don't provide a ARM64 binary release?

Honestly, if I'd like to use Go 1.5, I don't like to install gcc and some old weird tools first, then compiling Go 1.4 and finally get to a Go 1.5 runtime. Then I only have it built by myself, and have to run all the tests to get sure, that everything is fine.
That's a cumbersome and maybe erroneous process, which doesn't help to reach my goal: "I want to use Go 1.5!".

With a pre-build and fully tested tarball of a Go 1.5 runtime, we just have to install and use it. And we could be sure, it's completely tested as well. I think you can agree too.

@davecheney
Copy link
Contributor

See my blog for details for how to build a bootstrap toolchain without
having to do the gcc/go1.4 dance on the arm64 host.

On Mon, 21 Dec 2015, 07:15 Dieter Reuter notifications@github.com wrote:

@mwhudson https://github.com/mwhudson, Applied Micro X-Gene is pretty
ok. But why don't provide a ARM64 binary release?

Honestly, if I'd like to use Go 1.5, I don't like to install gcc and some
old weird tools first, then compiling Go 1.4 and finally get to a Go 1.5
runtime. Then I only have it built by myself, and have to run all the tests
to get sure, that everything is fine.
That's a cumbersome and maybe erroneous process, which doesn't help to
reach my goal: "I want to use Go 1.5!".

With a pre-build and fully tested tarball of a Go 1.5 runtime, we just
have to install and use it. And we could be sure, it's completely tested as
well. I think you can agree too.


Reply to this email directly or view it on GitHub
#13066 (comment).

@Cabalist
Copy link

Cabalist commented Jan 4, 2016

I'd love to see Go 1.5 precompiled for the raspberry pi. I am currently in Hour 3 of waiting for it to compile. :)

@davecheney
Copy link
Contributor

@bradfitz
Copy link
Contributor Author

bradfitz commented Jan 4, 2016

We did ARM binaries for Go 1.6 beta 1, so I think we can close this now.

I don't think we'll be doing them for Go 1.5.

@bradfitz bradfitz closed this as completed Jan 4, 2016
@alexellis
Copy link

@bradfitz @DieterReuter I cannot find these binaries. Please can you link me?

@DieterReuter
Copy link

@alexellis Please have a look here: https://golang.org/dl/
And use the latest go1.6.2.linux-armv6l.tar.gz for ARMv6/ARMv7 devices.

@alexellis
Copy link

Thank you. I looked at the release page for Go and didn't see it there, this works 👍

@golang golang locked and limited conversation to collaborators Jun 9, 2017
@rsc rsc unassigned adg Jun 23, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests