You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Related to #170. The goal of replacing the curated cross-package CI bootstrap with make packages (FPC's fpmake system) was blocked by a fundamental assembler incompatibility in FPC 3.2.2.
Problem
FPC 3.2.2 generates .globl labels inside .cfi_startproc/.cfi_endproc pairs in certain units (notably rtti.pp in rtl-objpas). Xcode 16.4's Clang assembler rejects these:
non-private labels cannot appear between .cfi_startproc / .cfi_endproc pairs
This is a known FPC 3.2.2 bug that has been fixed in FPC trunk. Multiple workarounds were attempted in #217 and all failed:
Intercepting as (PATH, -FD, compiler directory) — FPC hardcodes the SDK assembler path on macOS
Post-hoc .s file fixing — fpmake cleans output between runs
-s flag — leaks into fpmake bootstrap
Label renaming / CFI stripping — either too broad (breaks .globl) or fpmake regenerates files
Proposed investigation
Evaluate building FPC from trunk (or a recent stable snapshot) instead of 3.2.2 for the cross-compilation toolchain. This would:
Fix the assembler label bug, enabling make packages
Replace the curated per-package build with automatic package installation
Context
Related to #170. The goal of replacing the curated cross-package CI bootstrap with
make packages(FPC's fpmake system) was blocked by a fundamental assembler incompatibility in FPC 3.2.2.Problem
FPC 3.2.2 generates
.globllabels inside.cfi_startproc/.cfi_endprocpairs in certain units (notablyrtti.ppinrtl-objpas). Xcode 16.4's Clang assembler rejects these:This is a known FPC 3.2.2 bug that has been fixed in FPC trunk. Multiple workarounds were attempted in #217 and all failed:
as(PATH,-FD, compiler directory) — FPC hardcodes the SDK assembler path on macOS.sfile fixing — fpmake cleans output between runs-sflag — leaks into fpmake bootstrap.globl) or fpmake regenerates filesProposed investigation
Evaluate building FPC from trunk (or a recent stable snapshot) instead of 3.2.2 for the cross-compilation toolchain. This would:
make packagesThings to evaluate
make packagesbuilds ~100+ packages vs the current 4)Current state
The curated approach on
mainworks and covers all packages GocciaScript currently uses:There is no immediate urgency — this is a sustainability improvement.