Skip to content

Publish portable x86-64 and AArch64 Linux builds - #22

Open
Katze719 wants to merge 7 commits into
mainfrom
feat/linux-aarch64-portable-builds
Open

Publish portable x86-64 and AArch64 Linux builds#22
Katze719 wants to merge 7 commits into
mainfrom
feat/linux-aarch64-portable-builds

Conversation

@Katze719

@Katze719 Katze719 commented Aug 26, 2026

Copy link
Copy Markdown
Member

Summary

  • build x86_64-linux-gnu and aarch64-linux-gnu binaries on native runners in digest-pinned manylinux_2_28 containers
  • statically link the GNU C++ and GCC runtimes while enforcing a maximum glibc requirement of 2.28

@Katze719
Katze719 requested a review from Mqxx August 26, 2026 12:59
Comment thread .github/workflows/build_binary.yml Outdated
Comment thread .github/workflows/build_binary.yml Outdated
Katze719 and others added 2 commits August 26, 2026 20:20
Co-authored-by: Katze719 <38188106+Katze719@users.noreply.github.com>
Comment thread .github/workflows/block_pr_check_labels.yml
Comment thread .github/workflows/build_binary.yml
cmake --preset linux-gcc-release \
-DCMAKE_C_COMPILER=gcc-16 \
-DCMAKE_CXX_COMPILER=g++-16 \
cmake -S . -B "build/ffi/${{ matrix.arch }}" -G Ninja \

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is the extra /ffi/ directory necessary?

@Katze719 Katze719 Aug 27, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

no, it is not strictly necessary. the directory is only used during CI to separate the FFI metadata build and output paths, and it could have any other name.

--target cpp_bindings_linux cpp_bindings_linux_ffi_json

- name: 'Set PACKAGE_VERSION from env.sh'
cmake --build "build/ffi/${{ matrix.arch }}" \

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Same here with the /ffi/ directory.

-DCPP_BINDINGS_LINUX_ENABLE_FFI_JSON_EXPORT=ON \
-DCPP_BINDINGS_LINUX_ASTREIN_EXECUTABLE="${RUNNER_TEMP}/astrein/bin/astrein"
-DCPP_BINDINGS_LINUX_ASTREIN_EXECUTABLE="${RUNNER_TEMP}/astrein/bin/astrein" \
-DCPP_BINDINGS_LINUX_FFI_JSON_OUTPUT="${GITHUB_WORKSPACE}/dist/ffi/${{ matrix.arch }}.ffi.json"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Same here with the /ffi/ directory.

with:
if-no-files-found: error
name: cpp-bindings-linux-ffi-${{ matrix.target }}
path: dist/ffi/${{ matrix.arch }}.ffi.json

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Same here with the /ffi/ directory.

Comment thread .github/workflows/build_binary.yml
build/libcpp_bindings_linux.so
build/cpp_bindings_linux.ffi.json
name: cpp-bindings-linux-ffi
path: dist/ffi/*.ffi.json

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Same here with the /ffi/ directory.

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.

2 participants