-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Support for linux on ARM #74
Comments
We can't cross-compile Consul because it relies on cgo. This means that we need an actual ARM device to build Consul on. I actually have some plans to use maybe a hosted Raspberry Pi service to build this, but not in the short term. For the time being, I recommend building Consul yourself if ARM is your target platform. |
Yeah I attempted cross compilation and noted that @davecheney had done some work in this area but I don't think Just a note, I have spun up a few Raspberry pi's running consul and they are working fine, as you say the main thing to note is the build current does need to be done on a pi, then pushed to the other devices. Process was:
Overall it performs great and memory use is pretty stable. Thanks |
@wolfeidau Glad to hear it is working! Let me know if you find any issues on ARM. |
@wolfeidau Do you have an ARM-compiled version somewhere that I could download? I couldn't get it to build on my Raspberry Pi (process gets killed during |
Yeah memory use of the linker is a known issue I believe, hence it failing to build on your device. I will upload a build you can test later as I have access to ARM systems with 2 gig of ram which we use as build agents. Which version of golang are you using atm, out of interest? I think i built it with 1.2 a while ago. |
Awesome I appreciate it. I only tried with go1.3 |
I published a release to https://bintray.com/wolfeidau/consul/consul/0.3.0/view/files using slightly modified build scripts in the project. Works on the systems I have, haven't tested on a pi yet though. |
Alas, a segfault. Here's what gdb had to say:
|
Just uploaded a binary built with the |
Getting a different segfault now:
|
OK I dug up my Raspberry pi and managed to build a working binary using golang 1.2. Need to chase up @davecheney on how to best solve the cross compile issue. This version is packaged as |
Works like a charm, thank you! And I'll throw in my vote for having @davecheney figure out how to streamline this :) |
👍 |
Hi, I'm not sure if it helps but I built go1.3 tarballs for all Arm arches a I'm still not sure what the underlying issue(s) are that this bug report is
|
Hi there. Regarding cross-compiling using qemu-static, please note there are bugs with it and pthreads running on multi-core machines. We have fixed those developing pinthread in Devuan https://git.devuan.org/packages-base/pinthread/blob/master/README.md I'm just wondering if this may be useful also to streamline ARM builds of consul anywhere around here |
You can do the builds of this on a cloud service now like https://www.scaleway.com/. Fast cheap ARM based VPS on demand. That is what I am using for builds using the distributions built by @davecheney. |
With Go 1.5, cross compilation requires no preparation of the local tool Hope this helps Dave On Wed, 2 Sep 2015 09:07 Mark Wolfe notifications@github.com wrote:
|
Is there any chance of an updated version for ARM? Or working build instructions? I'm trying to build in docker with armhf/ubuntu, build-essential and Dave Chenny's Go 1.5.x. |
@alexellis The whole underlying storage mechanism changed in Consul 0.6.0 (there's no more cgo, it's all memdb and written in Go now AFAIK) - you might want to open a new issue with the exact errors you are getting for further assistance. |
@alexellis Have you seen the download page https://www.consul.io/downloads.html with consul 0.6.3 for ARM as well. |
@highlyunavailable @StefanScherer Hi again Stefan, after finding this thread and spending ages trying to build on ARM docker.. the binary comes as welcome news. We really need some official ARM images for things like Consul. Ref: #125 (says no consul binary available on arm) I'm trying to set up a multi-host docker 1.9.1 ARM cluster with swarm, so the documentation calls for Consul. Anyway this is what I've put together:
agent.config
|
Sorry for any confusion. Just in case someone comes across this later, building Consul for ARM 0.6.0 and later should be a matter of following the build instructions in the readme. We cross-compile using |
Just interested to hear if anyone has tried this on an ARM device?
Was there any reasons why it wasn't cross compiled for ARM?
Thanks
The text was updated successfully, but these errors were encountered: