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

Does not support the Apple M1 arm64 platform #347

Closed
zenyui opened this issue Sep 1, 2021 · 22 comments
Closed

Does not support the Apple M1 arm64 platform #347

zenyui opened this issue Sep 1, 2021 · 22 comments
Assignees
Labels
bug Something isn't working

Comments

@zenyui
Copy link

zenyui commented Sep 1, 2021

Describe the bug
I followed the instructions for uploading from linux, and it seems the linux (and alpine) binaries are referencing a dependency that's missing in most common linux images. I understand that this could be a problem with my images, but I imagine you want to either fix the binary or provide instructions given this fails for Debian, Ubuntu, and Alpine.

To Reproduce
Boot a debian container running bash:

docker run -it debian bash

Then, inside of that shell:

apt-get update && apt-get install -y curl
cd tmp
curl -Os https://uploader.codecov.io/latest/linux/codecov
chmod +x codecov
./codecov -h

You will get the error:

/lib64/ld-linux-x86-64.so.2: No such file or directory

Expected behavior
I expect to run the codecov cli and see the help text

Screenshots
n/a

Additional context
I tried this on latest debian and stretch as well as Ubuntu and Alpine.

@mitchell-codecov mitchell-codecov added the bug Something isn't working label Sep 9, 2021
@drazisil-codecov
Copy link
Contributor

Thanks for reporting , @zenyui !

Can you provide the exact docker images and tags you tested with so we can reproduce ? The linux and alpine binaries are not interchangeable .

@drazisil-codecov drazisil-codecov added the question Further information is requested label Sep 13, 2021
@drazisil-codecov
Copy link
Contributor

ping @zenyui

@zenyui
Copy link
Author

zenyui commented Nov 23, 2021

elaborating on my issue, here are steps to reproduce on both debian:latest and alpine:latest following your instructions.

reproduce on debian:latest

# start container
docker run -it debian bash
# inside of that container shell**
# install curl
apt-get update
apt-get install -y curl
# try to install codecov uploader
curl -Os https://uploader.codecov.io/latest/linux/codecov 
chmod +x codecov
# run codecov
./codecov -t ${CODECOV_TOKEN}

This outputs:

/lib64/ld-linux-x86-64.so.2: No such file or directory

reproduce on alpine:latest

# boot shell
docker run -it alpine:latest sh
# then, inside of that container's shell
# install curl
apk add curl
# install codecov
curl -Os https://uploader.codecov.io/latest/alpine/codecov
chmod +x codecov 
# run
./codecov -t ${CODECOV_TOKEN}

this outputs:

/lib/ld-musl-x86_64.so.1: No such file or directory

@drazisil-codecov
Copy link
Contributor

Ugg. Wonder when that broke.

➜  gh curl -Os https://uploader.codecov.io/latest/linux/codecov
➜  gh file codecov
codecov: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2e882d60273a4031f72a88815a36cb574dc1090b, for GNU/Linux 2.6.32, stripped
➜  gh 

That's supposed to be static, hence the error. 👀

@drazisil-codecov drazisil-codecov removed the question Further information is requested label Nov 24, 2021
@drazisil-codecov
Copy link
Contributor

@zenyui I have been unable to reproduce this error, following your exact instructions. If you pin to a tag, do you get the same error? latest does not pin to a version, and I wonder if an older version is somehow cached over that tag.

@zenyui
Copy link
Author

zenyui commented Nov 29, 2021

@drazisil-codecov I'll test with a specific tag. Perhaps worth noting - I'm on an M1 MacBook

@drazisil-codecov
Copy link
Contributor

I'm on an M1 MacBook

Highly worth noting. I don't think we have any way to build for M1. Do any CI providers support that arch yet? 👀

@drazisil-codecov
Copy link
Contributor

@drazisil-codecov
Copy link
Contributor

GitHub Actions: No - actions/runner-images#2187

@drazisil-codecov
Copy link
Contributor

@zenyui You are running the alpine and linux binaries on a M1? Does the MacOS binary work, at least?

@zenyui
Copy link
Author

zenyui commented Nov 29, 2021

@drazisil-codecov to be clear - I'm running the commands inside docker containers on an M1 host, not directly on the host.

FWIW, I encountered this issue trying to configure your new uploader to run from inside a docker container, as that's how I prefer to configure my CI (so I can test on my machine ahead of submitting to the CI). I'm unblocked for now as I am running your uploader directly on the github actions host, but it would be great to figure out what's going on here.

@drazisil-codecov
Copy link
Contributor

#523

@zenyui Sure. I wasn't saying you were doing anything wrong. We don't support the arm64 arch is the issue. I have a plan for this, but I'm about to go on vacation for a bit, so likely expect some silence from me.

Thank you for the report and additional information.

@zenyui
Copy link
Author

zenyui commented Nov 29, 2021

@drazisil-codecov np, I've also encountered a few funny issues with the M1 at our company (we're a golang shop, and sometimes dependencies reach out to system c libraries, etc).

I'm curious - what is your uploader doing that is platform specific? isn't it written in js?

@drazisil-codecov
Copy link
Contributor

drazisil-codecov commented Nov 29, 2021

I'm curious - what is your uploader doing that is platform specific? isn't it written in js?

We are hard-coding node in, so it's a standalone static binary that should run anywhere, without the need to install node or other dependencies.

@drazisil-codecov drazisil-codecov changed the title Linux/Alpine "/lib64/ld-linux-x86-64.so.2: No such file or directory" arm64: Linux/Alpine "/lib64/ld-linux-x86-64.so.2: No such file or directory" Nov 29, 2021
@drazisil-codecov drazisil-codecov changed the title arm64: Linux/Alpine "/lib64/ld-linux-x86-64.so.2: No such file or directory" Does not support the Apple M1 arm64 platform Jan 5, 2022
@mrmachine
Copy link

mrmachine commented Dec 22, 2022

A year later and hitting this issue while trying to get going with Codecov. Our self-hosted GH Actions runners run on arm64 (AWS graviton, not Apple Silicon) and x64 and produce a multi-arch manifest on Docker Hub. I'd like to be able to run Codecov to report on coverage in both images.

Is arm64 support for the uploader still on the roadmap?

@AlexWayfer
Copy link

Is arm64 support for the uploader still on the roadmap?

There is also #523 and no news for months. Although Apple M1 has been launched 2.5 years ago.

AlexWayfer added a commit to filewatcher/filewatcher-matrix that referenced this issue Feb 25, 2023
AlexWayfer added a commit to filewatcher/filewatcher-matrix that referenced this issue Feb 25, 2023
AlexWayfer added a commit to filewatcher/filewatcher-cli that referenced this issue Feb 25, 2023
AlexWayfer added a commit to filewatcher/filewatcher-cli that referenced this issue Feb 25, 2023
AlexWayfer added a commit to filewatcher/filewatcher-cli that referenced this issue Feb 25, 2023
@drazisil-codecov
Copy link
Contributor

Not yet supported on CircleCI, but coming soon https://circleci.canny.io/cloud-feature-requests/p/support-new-m1-arm-based-macs

AlexWayfer added a commit to filewatcher/filewatcher-spinner that referenced this issue Mar 2, 2023
AlexWayfer added a commit to filewatcher/filewatcher-spinner that referenced this issue Mar 2, 2023
@thomasrockhu-codecov
Copy link
Contributor

We released an aarch64 version of the uploader which should solve this case here. Let me know if this isn't the case.

@Kylmakalle
Copy link

@thomasrockhu-codecov Hi. I think aarch64 support does not solve this issue for arm64 macs. The binary you've mentioned is ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped which is a linux executable and not Mach-O Apple binary.

As for now, CircleCI (which is your CI provider as well) conducts multiple brownouts of Intel macOS runners, which makes it impossible to natively run codecov on mac (other than building from source?)

A workaround will be to run it with Rosetta

softwareupdate --install-rosetta --agree-to-license
arch -x86_64 ./codecov

I believe this issue must be re-opened.

Related: codecov/feedback#51

@NachoSoto
Copy link
Contributor

Any updates here?
Once CircleCI drops support for Intel we'll be obligated to drop Codecov 🤷🏻

@thomasrockhu-codecov
Copy link
Contributor

Going to handle this issue here codecov/feedback#141

cc: @zenyui @mrmachine @AlexWayfer @Kylmakalle @NachoSoto

@0xAlcibiades
Copy link

We have now moved our entire prod infra and github actions runners to Graviton 3, and this is a blocker for us using Codecov.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

9 participants