dmd
dmd copied to clipboard
Error: undefined symbol: core.internal.dassert.inFinalizer and core.internal.dassert.miniFormatFakeAttributes
Iain Buclaw (@ibuclaw) reported this on 2022-01-23T12:25:47Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=22700
CC List
- Iain Buclaw (@ibuclaw)
- Mathias LANG (@Geod24)
Description
This PR: https://github.com/dlang/druntime/pull/3701
Has a link failure when compiling the following test:
```
void test8765(string msg, int a)
{
assert(a);
assert(msg == "0 != true");
}
```
When compiling with the flags: dmd testassert.d -checkaction=context -main
Bisecting druntime, this is caused by https://github.com/dlang/druntime/pull/3493
Bisecting dmd is still underway.
ibuclaw (@ibuclaw) commented on 2022-01-23T12:30:40Z
Can only go as far back as the following PR in dmd before druntime no longer is compilable.
https://github.com/dlang/dmd/pull/12209
Fair amount of reduction needs to be done.
pro.mathias.lang (@Geod24) commented on 2022-01-23T15:24:23Z
Currently `-checkaction=context` is not usable without `-unittest`, at least this has been our experience. It results in heaps of undefined symbols.
This is due, I believe, to Druntime being compiled with `-checkaction=D` (the default).
See Also: https://github.com/dlang/dmd/pull/13224#discussion_r789706699
moonlightsentinel commented on 2022-02-01T11:58:19Z
(In reply to Mathias LANG from comment #2)
> This is due, I believe, to Druntime being compiled with `-checkaction=D`
Both `-checkaction=D` and `-release` (or `-check=assert=off`) prevent the message generation.
No one ever fixes these bugs.