Skip to content

Conversation

@Pythyu
Copy link
Contributor

@Pythyu Pythyu commented Dec 5, 2024

What does this PR do?

Add support to build the agent on macOS arm64 (M1)

Motivation

Hackathon project

This PR depends on

Describe how you validated your changes

Possible Drawbacks / Trade-offs

Additional Notes

~20-25 minutes for local build time

@Pythyu Pythyu added changelog/no-changelog qa/no-code-change No code change in Agent code requiring validation labels Dec 5, 2024
@github-actions github-actions bot added the medium review PR review might take time label Dec 5, 2024
@agent-platform-auto-pr
Copy link
Contributor

agent-platform-auto-pr bot commented Dec 5, 2024

[Fast Unit Tests Report]

On pipeline 51810726 (CI Visibility). The following jobs did not run any unit tests:

Jobs:
  • tests_deb-arm64-py3
  • tests_deb-x64-py3
  • tests_flavor_dogstatsd_deb-x64
  • tests_flavor_heroku_deb-x64
  • tests_flavor_iot_deb-x64
  • tests_rpm-arm64-py3
  • tests_rpm-x64-py3
  • tests_windows-x64

If you modified Go files and expected unit tests to run in these jobs, please double check the job logs. If you think tests should have been executed reach out to #agent-devx-help

if arm_target?
command "$(xcrun --find swift-stdlib-tool) --copy --scan-executable \"#{app_temp_dir}/MacOS/gui\" --scan-folder \"#{app_temp_dir}/Frameworks\" --platform macosx --destination \"#{app_temp_dir}/Frameworks\" --strip-bitcode"
else
command "$(xcrun --find swift-stdlib-tool) --copy --scan-executable \"#{app_temp_dir}/MacOS/gui\" --scan-folder \"#{app_temp_dir}/Frameworks\" --platform macosx --destination \"#{app_temp_dir}/Frameworks\" --strip-bitcode --strip-bitcode-tool $(xcrun --find bitcode_strip)"
Copy link
Contributor

@rdesgroppes rdesgroppes Jun 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good news on strip-bitcode-tool (no need for an arch-specific branch):

This option isn't present anymore (and is the default now)

(Credits to @CelianR: https://github.com/DataDog/datadog-agent/pull/33519/files#r2050505929)

@dd-devflow dd-devflow bot closed this Jun 28, 2025
@dd-devflow dd-devflow bot deleted the pythyu/mac_os_arm_builds branch June 28, 2025 00:01
rdesgroppes added a commit that referenced this pull request Jul 7, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20577
- DataDog/omnibus-ruby#239
- DataDog/datadog-agent-dev#137

Some earlier scouting:
- DataDog/omnibus-software#553 (credits to @Pythyu)
- DataDog/integrations-core#19193 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321
- DataDog/datadog-agent-buildimages#888

Known follow-ups:
- DataDog/integrations-core#20645
- #38446
- #38498
rdesgroppes added a commit that referenced this pull request Jul 7, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/omnibus-ruby#239
- DataDog/datadog-agent-dev#137

Some earlier scouting:
- DataDog/omnibus-software#553 (credits to @Pythyu)
- DataDog/integrations-core#19193 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321
- DataDog/datadog-agent-buildimages#888

Known follow-ups:
- DataDog/integrations-core#20645
- #38446
- #38498
rdesgroppes added a commit that referenced this pull request Jul 7, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/omnibus-ruby#239
- DataDog/datadog-agent-dev#137

Some earlier scouting:
- DataDog/omnibus-software#553 (credits to @Pythyu)
- DataDog/integrations-core#19193 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321
- DataDog/datadog-agent-buildimages#888

Known follow-ups:
- DataDog/integrations-core#20645
- #38446
- #38498
rdesgroppes added a commit that referenced this pull request Jul 8, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/omnibus-ruby#239

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
- #38498
rdesgroppes added a commit that referenced this pull request Jul 15, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/omnibus-ruby#239

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
- #38498
rdesgroppes added a commit that referenced this pull request Jul 16, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/omnibus-ruby#239

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
- #38498
rdesgroppes added a commit that referenced this pull request Jul 16, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/omnibus-ruby#239

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
- #38498
rdesgroppes added a commit that referenced this pull request Jul 18, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/integrations-core#20699
- DataDog/omnibus-ruby#239
- #38498
- DataDog/omnibus-ruby#240
- DataDog/agent-release-management#364

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
rdesgroppes added a commit that referenced this pull request Jul 18, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/integrations-core#20699
- DataDog/omnibus-ruby#239
- #38498
- DataDog/omnibus-ruby#240
- DataDog/agent-release-management#364

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
rdesgroppes added a commit that referenced this pull request Jul 18, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/integrations-core#20699
- DataDog/omnibus-ruby#239
- #38498
- DataDog/omnibus-ruby#240
- DataDog/agent-release-management#364

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
rdesgroppes added a commit that referenced this pull request Jul 18, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/integrations-core#20699
- DataDog/omnibus-ruby#239
- #38498
- DataDog/omnibus-ruby#240
- DataDog/agent-release-management#364

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
rdesgroppes added a commit that referenced this pull request Jul 21, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/integrations-core#20699
- DataDog/omnibus-ruby#239
- #38498
- DataDog/omnibus-ruby#240
- DataDog/agent-release-management#364

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
rdesgroppes added a commit that referenced this pull request Jul 21, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/integrations-core#20699
- DataDog/omnibus-ruby#239
- #38498
- DataDog/omnibus-ruby#240
- DataDog/agent-release-management#364

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
rdesgroppes added a commit that referenced this pull request Jul 21, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/integrations-core#20699
- DataDog/omnibus-ruby#239
- DataDog/omnibus-ruby#240
- #38498
- #39082
- DataDog/agent-release-management#364

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
- DataDog/agent-release-management#365
rdesgroppes added a commit that referenced this pull request Jul 21, 2025
This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/integrations-core#20699
- DataDog/omnibus-ruby#239
- DataDog/omnibus-ruby#240
- #38498
- #39082
- DataDog/agent-release-management#364

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20645
- DataDog/ci-platform-machine-images#343
- DataDog/agent-release-management#365
rdesgroppes added a commit that referenced this pull request Jul 22, 2025
rdesgroppes added a commit that referenced this pull request Jul 22, 2025
rdesgroppes added a commit that referenced this pull request Jul 28, 2025
lucastemb pushed a commit that referenced this pull request Aug 7, 2025
Add macOS build for AArch64/ARM64

This is the payload for adding macOS "native" build support for the
AArch64/ARM64 architecture to the Agent, that is by removing the need
for Rosetta 2 translation at runtime.

Groundwork enabling the present payload:
- DataDog/integrations-core#20455
- DataDog/integrations-core#20577
- DataDog/integrations-core#20699
- DataDog/omnibus-ruby#239
- DataDog/omnibus-ruby#240
- #38498
- #39082
- DataDog/agent-release-management#364

Some earlier scouting:
- DataDog/integrations-core#19193 (credits to @Pythyu)
- DataDog/omnibus-software#553 (credits to @Pythyu)
- #31787 (credits to @Pythyu)
- DataDog/ci-platform-machine-images#321

Some follow-ups:
- DataDog/datadog-agent-dev#137
- DataDog/datadog-agent-buildimages#888
- #38446
- DataDog/integrations-core#20812
- DataDog/integrations-core#20815
- DataDog/integrations-core#20645
- Datadog/ci-platform-machine-images#343
- DataDog/agent-release-management#365
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/no-changelog medium review PR review might take time qa/no-code-change No code change in Agent code requiring validation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants