Purge unsupported platforms - #818
Conversation
This comment has been minimized.
This comment has been minimized.
CI Test ResultsRun: #36008462458 | Commit:
Status Overview
Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled Summary: Total: 32 | Passed: 32 | Failed: 0 Updated: 2026-09-24 14:35:45 UTC |
There was a problem hiding this comment.
kaahos
left a comment
There was a problem hiding this comment.
The agent tells me some copyrights updates are missing in symbols_linux.cpp, trap.cpp, tsc.h, otel_process_ctx.cpp, Arch.java. Other than that, this looks good to me, thanks!
Co-authored-by: Paul Fournillon <[email protected]>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4ec08cfe33
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
What does this PR do?:
Removes all code paths for unsupported 32-bit targets — x86 (
__i386__) and ARM/Thumb (__arm__/__thumb__) — across the native profiler core, the Gradle build-logic (Kotlin), and the Java native-library loader:arch.h,dwarf.h,tsc.h,trap.cpp,os_linux.cpp,otel_process_ctx.cpp,symbols_linux.cpp,safeAccess.cpp,hotspot/vmStructs.cpp— dropped the#if/#elifbranches, constants (BREAKPOINT_THUMB,R_386_*,R_ARM_*), and the now-unreachable__LP64__/ELF32 fallback paths.Architecture.ktandPlatformUtils.kt— removed theX86/ARMenum values and their detection/dispatch branches.Arch.java— removed thex86/armenum constants used for native-lib resource resolution.returnAddressAttribution_ut.cppthat still referenced i386 as a live target.Motivation:
None of these 32-bit targets are built, tested, or shipped by this project. The dead preprocessor branches and enum variants were pure maintenance burden — untested, easy to get subtly wrong on future edits (e.g. the arm/thumb code was flagged in its own comments as "untested on real hardware"), and misleading in docs/comments that still cited them as real targets.
Additional Notes:
Deletion-only change; no behavior difference for the remaining supported targets (x86_64, aarch64) or for PPC64LE/RISC-V/LoongArch, which were untouched. Verified via repo-wide grep that no references to
__i386__,__arm__,__thumb__,BREAKPOINT_THUMB,R_386/R_ARM_*, or the removedArchitecture/Archenum values remain anywhere in source, build config, or CI.How to test the change?:
Existing unit/integration test suite on x86_64 and aarch64 (the only targets this repo builds/tests) — no new coverage is needed since this only removes code for architectures that were never exercised by CI. Confirmed
arch.h/tsc.hcompile standalone,build-logic/conventionscompiles (gradlew compileKotlin), andArch.javacompiles (javac).For Datadog employees:
credentials of any kind, I've requested a security review (run the
dd:platform-security-reviewskill, or file a request via the PSEC review form).
bewairealso runs automatically on every PR.Unsure? Have a question? Request a review!