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
Fix dmd:frontend linker errors introduced in 2.112
Three backend symbols were referenced from dmd:frontend modules:
1. statementsem.d and dsymbolsem.d unconditionally imported dmd.iasm
(inline assembler, backend-only). Wrap the calls in version(NoBackend),
consistent with how iasm/package.d itself handles the no-backend case.
2. globals.d (dmd:lexer) has Edition used as an AA value type, which
causes TypeInfo_Enum for Edition to be instantiated in globals.o.
That TypeInfo references Edition.__init, defined in astenums.d. Since
astenums.d was only in dmd:frontend (not dmd:lexer), the symbol was
unresolvable due to static archive link order. Fix by moving astenums.d
into dmd:lexer and excluding it from dmd:frontend's source path.
Add a regression test (compiler/test/dub_package/frontend_subpackage.d)
that links against dmd:frontend only and calls initDMD(). Add a targeted
CI step (test_frontend_subpackage) that runs this test with both the host
compiler and the freshly-built compiler, using -m${MODEL} to match the
build architecture.
Fixesdlang#23119
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0 commit comments