Skip to content

Feature/configurable arch baseline - #35

Open
pplupo wants to merge 1 commit into
Euro-Office:mainfrom
pplupo:feature/configurable-arch-baseline
Open

Feature/configurable arch baseline#35
pplupo wants to merge 1 commit into
Euro-Office:mainfrom
pplupo:feature/configurable-arch-baseline

Conversation

@pplupo

@pplupo pplupo commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Makes the target x86-64 microarchitecture baseline for Linux builds configurable, instead of hardcoding it. Adds vcpkg overlay triplets (x64-linux-v2 default, x64-linux-baseline for plain x86-64) and threads ARCH_TRIPLET/ARCH_MARCH_FLAGS through the Docker bake config and build.sh.

Why

Raising the official baseline to x86-64-v2 (SSE4.2/POPCNT) gives Qt and other vcpkg-built dependencies access to SIMD-optimized code paths instead of falling back to unoptimized generic code — but it drops support for older CPUs that predate v2. Rather than the team maintaining a second, permanently-tracked toolchain to support that hardware, this exposes the microarchitecture as a build-time parameter so anyone who needs a legacy build can produce one themselves from the same sources, without affecting the default build path.

Changes

  • core: adds triplets/x64-linux-v2.cmake (default) and triplets/x64-linux-baseline.cmake vcpkg overlay triplets; wires ARCH_TRIPLET/ARCH_MARCH_FLAGS build args into the core cmake invocation in .docker/core.bake.Dockerfile.
  • desktop-apps: same args threaded through .docker/desktop-apps.bake.Dockerfile's vcpkg/cmake invocation, since Qt is built there via the vcpkg manifest.
  • Superproject: declares ARCH_TRIPLET (default x64-linux-v2) and ARCH_MARCH_FLAGS (default -march=x86-64-v2) in build/docker-bake.hcl and build/linux/docker-bake.hcl, and exposes them as overridable environment variables in build/linux/build.sh.

Usage

Default behavior is unchanged. To produce a baseline x86-64 build:

```sh
ARCH_TRIPLET=x64-linux-baseline ARCH_MARCH_FLAGS=-march=x86-64 ./build.sh
```

Scope / non-goals

  • No change to official release builds, CI, or support — those stay on x86-64-v2.
  • Doesn't provide a one-flag "legacy build" experience end-to-end; someone building baseline still owns their own build/distribution.

Euro-Office/core#125
#35
Euro-Office/DesktopEditors#61

Thread ARCH_TRIPLET/ARCH_MARCH_FLAGS build args through to the vcpkg
toolchain invocation, matching the overlay triplets added in the core
submodule, so a baseline x86-64 build can be produced by anyone who
needs it without the team maintaining a second official toolchain.

Signed-off-by: Peter P. Lupo <pplupo@gmail.com>
@pplupo
pplupo force-pushed the feature/configurable-arch-baseline branch from 31ca9d0 to 7b1f0fc Compare July 22, 2026 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant