-
Notifications
You must be signed in to change notification settings - Fork 94
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
GHCup fails to install on armv7 #415
Comments
In GitLab by @maerwald on Aug 12, 2022, 10:22 I don't have an armv7 to investigate. It's possible that our new installation logic has problems on some platforms. You can download the previous release and use that: https://downloads.haskell.org/~ghcup/0.1.17.8/armv7-linux-ghcup-0.1.17.8 |
I had the same "Failed to merge file tree" issue on This can be reproduced without an
The explicit yaml is because Then run the following command in a directory with just the
You can also substitute the generic Debian image by changing the first line of
The same error is produced. Having confirmed this is an issue, to workaround it I needed a way to programmatically specify the ghcup version. Unfortunately it seems this is not supported by the bootstrap script, despite some promising functionality, because The following did the trick for me:
where FWIW, it's seems ironic that the marvellous version handling power of |
This doesn't work on amd64 architecture. You need qemu emulation. |
This is because 9.2.5 doesn't provide armv7 anymore: https://downloads.haskell.org/~ghc/9.2.5/ I think GHC devs have stopped supporting this platform. I don't mind supporting it unofficially, but then other people have to step up and contribute the bindists. |
I don't mind supporting these things in the bootstrap script:
Feel free to provide a PR. The script is here: https://github.com/haskell/ghcup-hs/blob/master/scripts/bootstrap/bootstrap-haskell |
Oh good to know! It's all still a bit mysterious to me. Seems to work out of the (Docker Desktop) box on
Oh, and I see 8.10.7 (which is the version specified in my use case) is no longer the recommended/default version in the
Yeah I'm not too fussed about supporting the latest version on old architectures. I'm sure there be dragons. But the same version on same architecture continuing to work would be grand. I think in this case, as long as the binaries don't go away, the existing bindists will do?
Okay, thanks for the invite. Selfishly, having done the work to determine the root cause and create a workaround, the business case for contributing further is entirely ego-based now. If I clear the plate of obligations, then my ego will come knocking ;-) |
I've done some investigation and here's some odd output:
Uhm... DirType of 160 does not make any sense. Nor do all the 0 values. The offending code is here: ghcup-hs/lib/GHCup/Prelude/File/Posix/Traversals.hs Lines 36 to 91 in 75b8911
And here:
And we use some FFI functions from unix: https://github.com/haskell/unix/blob/master/cbits/HsUnix.c And getting Lines 1 to 7 in 75b8911
I tried to compile some C code with open and readdir and access Any ideas @angerman ? |
We tracked down the cause to some weird header shenanigans that causes wrong offsets due to missing struct dirent
{
#ifndef __USE_FILE_OFFSET64
__ino_t d_ino;
__off_t d_off;
#else
__ino64_t d_ino;
__off64_t d_off;
#endif
unsigned short int d_reclen;
unsigned char d_type;
char d_name[256]; /* We must not include limits.h! */
}; Including |
This will be fixed in next release. Until then you can use this binary: https://downloads.haskell.org/ghcup/tmp/armv7-linux-ghcup-0.1.18.1 |
In GitLab by @j-hui on Aug 12, 2022, 03:54
I'm unable to install the GHC toolchain using ghcup on my armv7 board running Debian 10 (buster).
In particular, running
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
leads to:I've already installed all dependencies that the build script suggests; is there something else I'm missing?
The text was updated successfully, but these errors were encountered: