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

'goenv install [version]' does nothing on aarch64 (ubuntu bionic-based linux) #106

Closed
golyalpha opened this issue Dec 20, 2019 · 13 comments
Closed

Comments

@golyalpha
Copy link

I'm not sure why goenv doesn't do anything here, on aarch64. I've installed both rbenv and pyenv too, and pyenv is installing Python 3.8.0 for me on there right now, and I am pretty sure rbenv would be doing the same.

I tried running goenv install with verbose both on and off, and nothing gets printed out to the console.

Here's the goenv section of .bashrc:

export GOENV_ROOT="$HOME/.goenv"
export PATH="$GOENV_ROOT/bin:$PATH"
eval "$(goenv init -)"
export PATH="$GOROOT/bin:$PATH"
export PATH="$PATH:$GOPATH/bin"
@golyalpha
Copy link
Author

Alright, I can now confirm that this is a aarch64-specific issue.
Seeing the URL it is downloading, I can't help but wonder, is install actually building from source (like pyenv and rbenv do) or is it just downloading the binaries and unpacking them?

@cjmaria
Copy link

cjmaria commented Mar 2, 2021

This is also occurring for me on macOS 11.2.1 on the aarch64 M1 chip.

@josvisser66
Copy link

Happening for me too :-/

@josvisser66
Copy link

Debugged this. The issue is that there is no pre-built package for the Go version you are installing. E.g:

goenv install 1.15.2

fails silently because https://golang.org/dl/ does not contain a pre-built binary package for that version. The way that the installation procedure works is unfortunately that this fails silently.

If you install a version for which a prebuilt package does exist (e.g. 1.16.3) then everything works swimmingly.

@golyalpha
Copy link
Author

Yeah, I figured that was the case... Shame compiling go from sources is not as easy as "grabbing the sources and dependencies and running it through gcc".

@josvisser66
Copy link

Working on that now :-)

@hmijail
Copy link

hmijail commented Aug 22, 2022

Any plans to fix this?

I see people "fixing" it by running the x64 arch version, but I shudder to think the kind of breakage that might cause down the road - when libraries for one arch try to work with executables of another.

@golyalpha
Copy link
Author

@hmijail I wouldn't be too worried about that. Other software would be hardcore broken on the M1 Macs if that were the case there. That being said, x64 emulation on generic arm (even arm64) is pretty slow, so, I'd avoid it if at all possible.

@hmijail
Copy link

hmijail commented Aug 25, 2022

But that's what already happens. See for example libsndfile/libsndfile#852. Mixing architectures causes pain either directly at the linkage level, or indirectly at the expected paths level or build system level.

So I'd like to fix root causes instead of sowing weird breakage for later.

Re: emulation performance, the little I have checked myself wasn't actually a problem, either through macOS Rosetta or through Docker, so 🤷🏻

@golyalpha
Copy link
Author

Yeah, but thankfully that's an issue at build configuration, not runtime.

Re: emulation performance - I was talking about generic arm, not ASi arm. Obviously, x64 emulation on Neoverse or ASi cores will run much better than the much more common Cortex-A cores.

@ChronosMasterOfAllTime
Copy link
Collaborator

#273 At least will notify you so it doesnt quietly exit

@ghost
Copy link

ghost commented Nov 11, 2022

We can look into a new feature to compile from source (put behind some arg flag or prompt the user when no version for their Arch/OS is found)

@ChronosMasterOfAllTime
Copy link
Collaborator

Tracking this as a stretch goal for #342

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants