indygreg / indygreg/PyOxidizer

Static builds don't work with Cython

Open
#567 1 comment 1 reaction 0 assignees View on GitHub
bug enhancement
Dominant language
Rust
Stars
6.2k
Forks
256
PR merge metrics
No merged PRs in 30d

Description

Our current method for producing static builds is to patch `distutils` in order to capture object files (`.o` or `.obj`) before they are linked. This allows us to easily supplement the final set of linked objects with ones providing symbols for extensions.

This approach is currently broken on Cython because we don't have a mechanism to peer into Cython and obtain the list of object files it produces. This can result in build/link time or possibly even run-time failures due to missing symbols.

#107, #169, #171, #215, #339, and possibly other issues have exposure to this shortcoming.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the current distutils patch that captures object files for static builds, then investigate how Cython-produced object files could be discovered. Done means static builds reliably include the objects needed by Cython extensions without missing-symbol failures; the linked issues provide additional affected cases to examine.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.