[PPC64LE] Add PPC64LE platform support (interpreter-only)#3591
Merged
ksco merged 1 commit intoptitSeb:mainfrom Feb 28, 2026
Merged
[PPC64LE] Add PPC64LE platform support (interpreter-only)#3591ksco merged 1 commit intoptitSeb:mainfrom
ksco merged 1 commit intoptitSeb:mainfrom
Conversation
Add PPC64LE (POWER9+, little-endian) as a recognized platform for interpreter-only builds. No dynarec code is included yet. Platform support: - Build system: CMakeLists.txt cross-compiler setup, CPACK, CONFIG_64BIT - CI: GitHub Actions matrix with qemu-ppc64le-static testing - Host CPU feature detection (CRYPTO, DARN, ISA 3.1, MMA) - Signal handling for PPC64LE (xSPSave/old_savedsp, context registers) - O_LARGEFILE conversion (PPC64LE uses 0200000) - Static build: -fno-stack-protector (glibc uses TLS-based canary via r13) - __stack_chk_guard guard for PPC64LE static builds - Wrapper generator PPC64LE support
ptitSeb
approved these changes
Feb 28, 2026
Owner
|
LGTM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add PPC64LE (POWER8+ little-endian) platform support for box64 in interpreter-only mode. This is the first of a series of incremental PRs to bring PPC64LE support to box64, split from the original #3563 based on review feedback.
This PR contains only platform support infrastructure — no dynarec code.
Changes (19 files, ~148 lines)
Build System & CI
CMakeLists.txt: Add PPC64LE detection,-fno-stack-protectorfor static builds (glibc TLS canary uses r13).github/workflows/release.yml: Add PPC64LE to CI matrixHost Detection
src/build_info.h: Add PPC64LE build info stringsrc/tools/env.c: Add PPC64LE environment detectionsrc/include/hostext.h,src/os/hostext_linux.c,src/os/hostext_common.c: Host extension detection stubsSignal Handling
src/include/sigtools.h,src/libtools/signals.c,src/libtools/signal32.c,src/libtools/sigtools.c: PPC64LE signal context handling (ucontext_t, register access)Core Infrastructure
src/emu/x64emu_private.h: AddxSPSave/old_savedspfields (PPC64LE has no spare callee-saved register for xSavedSP)src/emu/x64runf0.c,src/include/box64context.h: CMPXCHG16B mutex path (PPC64LE pre-POWER10 lacks 128-bit LL/SC)Wrapped Libraries
src/wrapped/wrappedldlinux.c,src/wrapped/wrappedldlinux_private.h: PPC64LE ld-linux pathsrc/wrapped/wrappedlibc.c,src/wrapped32/wrappedlibc.c: O_LARGEFILE = 0200000 for PPC64LEsrc/wrapped/generated/functions_list.txt: Updated function listTesting
This PR enables box64 to build and run on PPC64LE in interpreter-only mode. The dynarec infrastructure will follow in a separate PR.
Related