Skip to content

link(macos): runtime-only binaries missing -framework CoreFoundation after #6923 (iana_time_zone → _CFRelease undefined) #6936

Description

@proggeramlug

Summary

The runtime-only macOS link path no longer passes -framework CoreFoundation, but perry-runtime still pulls iana_time_zone, which references _CFRelease. Linking a runtime-only binary therefore fails with an undefined symbol.

Evidence

crates/perry-runtime/src/gc/tests/...::gc_side_table_roots_evacuation — an untouched test — fails identically under both the perry-dev and release profiles on current main. Observed while validating PR #6934 (unrelated change; the failure reproduces without it).

Symbol: _CFRelease, reached via iana_time_zoneperry-runtime.

Likely cause

PR #6923"perf(link): drop unused framework dylibs from runtime-only macOS binaries" (merged 2026-07-28) — removed framework dylibs from the runtime-only link line. CoreFoundation appears to have been dropped while a live dependency on it remained.

Suggested fix

Either re-add -framework CoreFoundation to the runtime-only macOS link path, or drop/feature-gate the iana_time_zone dependency for runtime-only builds if the timezone functionality is not required there.

Worth confirming whether the same reasoning removed any other still-referenced framework — a link-time symbol sweep against the trimmed set would catch siblings in one pass.

Note

Not a GC bug despite the failing test's name — the test simply happens to be one that links a runtime-only binary. A local workaround was used to unblock #6934's validation; this issue tracks the real fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions