Commit cb49601
committed
fix(compile): force
perry-stdlib unconditionally re-bundles perry-updater (so user code
calling `perry/updater` resolves at link time). perry-updater's
`perry_updater_verify_signature_v2` references the extern symbol
`js_crypto_ed25519_verify`, which only exists when perry-stdlib is
built with `feature = "crypto"`. The auto-optimize path passes
`--no-default-features` and only adds features inferred from user
imports, so `crypto` is off for any user binary that doesn't
explicitly import a crypto API — and the link fails on
`undefined reference to js_crypto_ed25519_verify` from the bundled
updater object.
Surfaced when v0.5.868 re-enabled the gtk4 doc-tests entry; the
gtk4 link path triggers the auto-optimize rebuild, the rebuilt
stdlib didn't include crypto, and every doc-test failed to link.
Forces `crypto` on always (mirrors how `async-runtime` is forced
when `ctx.needs_ui` for the same reason — bundled object code
that needs a symbol gated behind a feature).crypto feature in auto-optimized stdlib (v0.5.871)1 parent c39541d commit cb49601
2 files changed
Lines changed: 11 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
972 | 972 | | |
973 | 973 | | |
974 | 974 | | |
975 | | - | |
976 | | - | |
| 975 | + | |
977 | 976 | | |
978 | 977 | | |
979 | 978 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
342 | 342 | | |
343 | 343 | | |
344 | 344 | | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
345 | 355 | | |
346 | 356 | | |
347 | 357 | | |
| |||
0 commit comments