D Language Foundation July 2025 Quarterly Meeting Summary
Bastiaan Veelo
Bastiaan at Veelo.net
Mon Jan 12 08:26:56 UTC 2026
On Sunday, 11 January 2026 at 14:56:07 UTC, Mike Parker wrote:
> __Link errors in LDC__
>
> Bastiaan's second issue was an LDC linking problem after
> upgrading the front end. He didn’t expect a full answer on the
> call and would need to work on a reduction.
[...]
> He said the error mentioned "conflicting weak external
> definition". He'd only seen it a few times and had forgotten
> the context.
What turned out to be the issue was that I was using the "include
imports" flag (`-i`) wrong. We have a lot of library code in a
grab bag that various programs include from, and the -i flag
relieves us from having to otherwise manage or define
dependencies. None of these modules were in a D package though,
and thus the -i flag was effective on *all* imports, also those
imported from Dub packages and their dependencies. Dub already
takes care of linking in Dub packages, so those modules would be
linked twice. This would occasionally cause link errors but not
always, and the errors would appear and disappear with different
compilers and compiler versions. Understanding only half of the
problem, I was using exclusions (`-i=-dub_package`) to patch over
these errors, which doesn't scale, is flaky and is obviously not
how you are meant to use this.
The solution was to move our library modules into a D package,
and use only one flag with the package name (`-i=d_package`).
-- Bastiaan.
More information about the Digitalmars-d-announce
mailing list