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

Codecov uploader fails on Apple ARM64 hardware #141

Closed
rhoskal opened this issue Oct 12, 2023 · 10 comments
Closed

Codecov uploader fails on Apple ARM64 hardware #141

rhoskal opened this issue Oct 12, 2023 · 10 comments
Labels
bug For issues and unexpected behaviors

Comments

@rhoskal
Copy link

rhoskal commented Oct 12, 2023

Describe the bug
Downloading the recommended mac uploader fails with the following message: bad CPU type in executable

To Reproduce
Steps to reproduce the behavior:

  1. Download mac version of the uploader (tried with v0.6.3 & v0.6.2)
  2. chmod +x uploader
  3. Run with ./uploader in root of project
  4. See error displayed in terminal

Expected behavior
Uploader works like normal

Sytem Info

Software:

    System Software Overview:

      System Version: macOS 13.6 (22G120)
      Kernel Version: Darwin 22.6.0

Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: Mac14,6
      Chip: Apple M2 Max
      Total Number of Cores: 12 (8 performance and 4 efficiency)
      Memory: 64 GB
      System Firmware Version: 8422.141.2
@rhoskal rhoskal added the bug For issues and unexpected behaviors label Oct 12, 2023
@thomasrockhu-codecov
Copy link
Contributor

@hansjhoffman have you tried downloading the aarch64 version of the uploader here?

@thomasrockhu-codecov thomasrockhu-codecov self-assigned this Oct 13, 2023
@rhoskal
Copy link
Author

rhoskal commented Oct 27, 2023

I did try as you suggested. Running file codecov-aarch64 prints out codecov-aarch64: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped. Linux binaries are not compatible with the Mac chipset. Same issues even with the latest v0.7.1

@ararslan
Copy link

@hansjhoffman, I've found that running the macOS x86_64 uploader binary on macOS ARM works when using Rosetta, e.g. like this. That is,

sudo softwareupdate --install-rosetta --agree-to-license
arch -x86_64 codecov <command line arguments>

@thomasrockhu-codecov thomasrockhu-codecov changed the title Codecov uploader fails on Apple M2 Codecov uploader fails on Apple ARM64 hardware Nov 7, 2023
@thomasrockhu-codecov thomasrockhu-codecov transferred this issue from codecov/uploader Nov 7, 2023
@thomasrockhu-codecov thomasrockhu-codecov removed their assignment Nov 9, 2023
@0xAlcibiades
Copy link

Has the associated github action been updated?

@AlexWayfer
Copy link

@hansjhoffman, I've found that running the macOS x86_64 uploader binary on macOS ARM works when using Rosetta, e.g. like this. That is,

sudo softwareupdate --install-rosetta --agree-to-license
arch -x86_64 codecov <command line arguments>

Yeah, thanks, it works: https://github.com/filewatcher/filewatcher/pull/257/files

https://cirrus-ci.com/task/5340143817588736

But we're still waiting for correct ARM build for macOS.

@eliatcodecov
Copy link
Contributor

eliatcodecov commented Jan 10, 2024

We will be pursuing ARM64 support in our codecov-cli, which will become the default system underpinning the github action in the near future. Therefore, github actions users should see the action work under arm64 in the near future. We will follow up on this ticket when the codecov-cli becomes the default for the action with further instruction about how to have the action work under arm64 (if further action by end users is needed).

We're currently determining if this will work ootb for apple arm64.

@rohan-at-sentry
Copy link

Hi everyone

We've released a new version of the codecov action and CLI that adds support for Apple ARM64. Here's a link to our blog outlining the latest update including how to upgrade to the CLI. You can also visit our docs for more detailed information on how to get set up with the CLI, especially if you're not using our Github Action, Bitrise Step or CircleCI orb.

@kajornsakp
Copy link

Hi! Am I understand correctly that codecov-cli is a replacement for uploader? In the case that I want to integrate iOS project with codecov. The codecov-cli can also process the resulting bundle from Xcode and upload it to codecov like uploader, right?

@thomasrockhu-codecov
Copy link
Contributor

@kajornsakp, the cli is a replacement for uploader, correct. The CLI should be able to upload to Codecov like the uploader

@thomasrockhu-codecov
Copy link
Contributor

The cli has a macos version here that should properly handle ARM64 hardware. Closing this out.

yarikoptic added a commit to yarikoptic/datalad that referenced this issue Aug 30, 2024
Otherwise we have been failing to upload codecov reports on appveyor for awhile.

The https://cli.codecov.io/macos/latest "folder" cannot be used directly
-- url there is leading to versioned codecov release so I am using that one.
Pros: no surprises.

Solution found at
codecov/feedback#141 (comment)

Here is how two differ:

	❯ wget https://cli.codecov.io/v0.7.4/macos/codecov
    ...
	Length: 22362720 (21M) [application/octet-stream]
	Saving to: ‘codecov’

	codecov                100%[=========================>]  21.33M  81.5MB/s    in 0.3s

	2024-08-30 08:22:04 (81.5 MB/s) - ‘codecov’ saved [22362720/22362720]

	❯ wget https://uploader.codecov.io/latest/macos/codecov
    ...
	Length: 52719456 (50M) [application/octet-stream]
	Saving to: ‘codecov.1’

	codecov.1              100%[=========================>]  50.28M  88.9MB/s    in 0.6s

	2024-08-30 08:22:12 (88.9 MB/s) - ‘codecov.1’ saved [52719456/52719456]

	❯ file codecov*
	codecov:   Mach-O universal binary with 2 architectures: [x86_64:\012- Mach-O 64-bit x86_64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE>] [\012- arm64:\012- Mach-O 64-bit arm64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE>]
	codecov.1: Mach-O 64-bit arm64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|WEAK_DEFINES|BINDS_TO_WEAK|PIE|HAS_TLV_DESCRIPTORS>
yarikoptic added a commit to yarikoptic/datalad that referenced this issue Aug 30, 2024
Otherwise we have been failing to upload codecov reports on appveyor for awhile.

The https://cli.codecov.io/macos/latest "folder" cannot be used directly
-- url there is leading to versioned codecov release so I am using that one.
Pros: no surprises.

Solution found at
codecov/feedback#141 (comment)

Here is how two differ:

	❯ wget https://cli.codecov.io/v0.7.4/macos/codecov
    ...
	Length: 22362720 (21M) [application/octet-stream]
	Saving to: ‘codecov’

	codecov                100%[=========================>]  21.33M  81.5MB/s    in 0.3s

	2024-08-30 08:22:04 (81.5 MB/s) - ‘codecov’ saved [22362720/22362720]

	❯ wget https://uploader.codecov.io/latest/macos/codecov
    ...
	Length: 52719456 (50M) [application/octet-stream]
	Saving to: ‘codecov.1’

	codecov.1              100%[=========================>]  50.28M  88.9MB/s    in 0.6s

	2024-08-30 08:22:12 (88.9 MB/s) - ‘codecov.1’ saved [52719456/52719456]

	❯ file codecov*
	codecov:   Mach-O universal binary with 2 architectures: [x86_64:\012- Mach-O 64-bit x86_64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE>] [\012- arm64:\012- Mach-O 64-bit arm64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE>]
	codecov.1: Mach-O 64-bit arm64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|WEAK_DEFINES|BINDS_TO_WEAK|PIE|HAS_TLV_DESCRIPTORS>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug For issues and unexpected behaviors
Projects
Status: Waiting for: Product Owner
Development

No branches or pull requests

8 participants